powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Простейший Service Broker
2 сообщений из 27, страница 2 из 2
Простейший Service Broker
    #39892462
Звездочёт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,

нет, таблицы нет в БД

Вот что я делаю полностью:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
CREATE QUEUE dbo.ExpenseQueue1 with STATUS = ON, RETENTION = OFF, POISON_MESSAGE_HANDLING (STATUS = ON) ;
GO

CREATE QUEUE dbo.ExpenseQueue2 WITH STATUS = ON, RETENTION = OFF, ACTIVATION(PROCEDURE_NAME = expense_procedure, MAX_QUEUE_READERS = 10, EXECUTE AS SELF), POISON_MESSAGE_HANDLING (STATUS = ON)
GO

CREATE SERVICE ExpensesService1
    ON QUEUE dbo.ExpenseQueue1
GO
CREATE SERVICE ExpensesService2
    ON QUEUE dbo.ExpenseQueue2
GO

ALTER SERVICE [ExpensesService1] ON QUEUE [dbo].[ExpenseQueue1] (ADD CONTRACT [DEFAULT])
GO

ALTER SERVICE [ExpensesService2] ON QUEUE [dbo].[ExpenseQueue2] (ADD CONTRACT [DEFAULT])
GO

DECLARE @dialog_handle UNIQUEIDENTIFIER;

BEGIN DIALOG @dialog_handle
   FROM SERVICE ExpensesService1
   TO SERVICE 'ExpensesService2'
   WITH ENCRYPTION = OFF ;  


SELECT * FROM sys.service_queues  -- вижу [dbo].[expense_procedure] в поле activation_procedure

DECLARE @I int;
SET @I=1
WHILE @I<5
BEGIN
	begin tran;
	SEND ON CONVERSATION (@dialog_handle) (CAST('TEST2' AS VARBINARY(MAX)));
	commit;
	SET @I=@I+1;
END

SELECT * FROM sys.conversation_endpoints;

WAITFOR(RECEIVE status, service_name, message_body, try_convert(xml, [message_body]) FROM ExpenseQueue2), TIMEOUT 100;
-- тут вижу 4 сообщения

WAITFOR(RECEIVE status, service_name, message_body, try_convert(xml, [message_body]) FROM ExpenseQueue2), TIMEOUT 100;
-- тут уже нет сообщений

END CONVERSATION @dialog_handle

DROP SERVICE ExpensesService1;
DROP SERVICE ExpensesService2;
DROP QUEUE ExpenseQueue1;
DROP QUEUE ExpenseQueue2;
...
Рейтинг: 0 / 0
Простейший Service Broker
    #39892473
Звездочёт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,

всё, нашёл, ошибка в процедуре.

Преобразование типов.
Надо было её вручную вызвать и посмотреть, я не догадался (
...
Рейтинг: 0 / 0
2 сообщений из 27, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Простейший Service Broker
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]