Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
Был работающий сервис, который реплицировал изменения из одной базы в другие.
Возникла необходимость создать новый контракт и новый тип сообщения.
initiator
Создал сообщения и контракт. Drop Service и Drop Queue
Создал Queue и сервис, прописав в нем новые контракты
Вы цикле прошелся:
GRANT SEND ON SERVICE::<созданный сервис>
ТО <пользователь привязанный к сертификату с удаленного сервера>
DROP REMOTE SERVICE BINDING
CREATE REMOTE SERVICE BINDING ... TO <имя удаленного сервиса> With user <пользователь привязанный к сертификату с удаленного сервера>

Target
Drop Service, Создал новый контракт и сообщение
Drop Queue
Создал Queue и сервис, прописав в нем новые контракты

GRANT SEND ON SERVICE::<имя локального сервиса>
TO <пользователь привязанный к сертификату с сервера initiator>;

DROP REMOTE SERVICE BINDING...

CREATE REMOTE SERVICE BINDING ...
TO <Сервис Initiatir>
WITH USER = <пользователь привязанный к сертификату с сервера initiator>

При отправке сообщения (как по новому контракту так и по старому), ошибок нет, но и сообщения не приходят.

Select transmission_status,* from sys.transmission_queue - пустая на initiator

Три дня идет поиск по инету. Все что нашел -просмотрел и проверил. Скорее всего упустил какую-то мелочь, но понять не могу. Подскажите куда смотреть или где ошибся?
25 мар 15, 12:34    [17429172]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
В догонку.
Удаленные сервера на главный тоже отсылают сообщения. С эти все ок.
25 мар 15, 12:47    [17429272]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
VicNic-2012
Подскажите куда смотреть
Берите профайлер и мониторьте происходящее.

ЗЫ: Что помешало реализовать желаемое через alter service?
25 мар 15, 13:12    [17429476]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
Отфильтровал Profiler по логину на локальном сервере. Мониторю локальный сервер.
Трассировка во вложении. Что из не видно?

К сообщению приложен файл (SB_TRC.trc - 15Kb) cкачать
25 мар 15, 13:53    [17429775]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
какие фильтры поставить на target и initiator для profiler?
25 мар 15, 13:57    [17429809]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
VicNic-2012
Отфильтровал Profiler по логину на локальном сервере. Мониторю локальный сервер.
Трассировка во вложении. Что из не видно?
Непонятно, что и как вы фильтровали. В вашей трассе есть только прием и обработка входящих сообщений.
До кучи - https://technet.microsoft.com/en-us/library/bb522922(v=sql.105).aspx
25 мар 15, 14:30    [17430104]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
invm
VicNic-2012
Отфильтровал Profiler по логину на локальном сервере. Мониторю локальный сервер.
Трассировка во вложении. Что из не видно?
Непонятно, что и как вы фильтровали. В вашей трассе есть только прием и обработка входящих сообщений.
До кучи - https://technet.microsoft.com/en-us/library/bb522922(v=sql.105).aspx


Select transmission_status,* from sys.transmission_queue на initiator - Пустая. Это говорит о том, что сообщение дошло, так как в противном случаи оно не будет удалено из нее.
На target
Запустил запрос (спасибо за ссылку) который выдает время последней активации очереди на приемнике. Она не активируется при отправке сообщения....это вводит в ступор!
25 мар 15, 14:46    [17430254]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
VicNic-2012
Select transmission_status,* from sys.transmission_queue на initiator - Пустая. Это говорит о том, что сообщение дошло, так как в противном случаи оно не будет удалено из нее.
Ну так смотрите на принимающей стороне. Может у вас там очередь в состоянии off и входящие сообщения застревают в transmission_queue.
25 мар 15, 14:52    [17430311]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
invm
VicNic-2012
Select transmission_status,* from sys.transmission_queue на initiator - Пустая. Это говорит о том, что сообщение дошло, так как в противном случаи оно не будет удалено из нее.
Ну так смотрите на принимающей стороне. Может у вас там очередь в состоянии off и входящие сообщения застревают в transmission_queue.


Первым делом посмотрел это. Очередь on.
25 мар 15, 14:57    [17430367]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
VicNic-2012
invm
пропущено...
Ну так смотрите на принимающей стороне. Может у вас там очередь в состоянии off и входящие сообщения застревают в transmission_queue.


Первым делом посмотрел это. Очередь on.

Отправка идет так:
-- Insert statements for trigger here
declare @msg xml
select @msg = ms.msg from msg_send_log ms where ms.id = 607

declare @dialog as uniqueidentifier;

BEGIN DIALOG @Dialog
FROM SERVICE [//kinosoft.ru/Cinema/ServerService]
TO SERVICE '//kinosoft.ru/Cinema/LocalServiceL8'
ON CONTRACT [//kinosoft.ru/Cinema/S_L_Event_Name_Contract]
WITH ENCRYPTION = OFF, LIFETIME = 3600;
-- Send message
Select @Dialog;

SEND ON CONVERSATION @dialog
MESSAGE TYPE [//kinosoft.ru/Cinema/S_L_Event_Name_Message] (@msg);
END CONVERSATION @dialog;

Маршрут прописан как:
CREATE ROUTE [LocalRouteL8]
WITH SERVICE_NAME = N'//kinosoft.ru/Cinema/LocalServiceL8' ,
ADDRESS = N'TCP://192.168.1.9:4442'
GO
25 мар 15, 15:03    [17430441]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
VicNic-2012
invm
пропущено...
Непонятно, что и как вы фильтровали. В вашей трассе есть только прием и обработка входящих сообщений.
До кучи - https://technet.microsoft.com/en-us/library/bb522922(v=sql.105).aspx


Select transmission_status,* from sys.transmission_queue на initiator - Пустая. Это говорит о том, что сообщение дошло, так как в противном случаи оно не будет удалено из нее.
На target
Запустил запрос (спасибо за ссылку) который выдает время последней активации очереди на приемнике. Она не активируется при отправке сообщения....это вводит в ступор!


это так при условии, что сообщение туда перед тем попало
25 мар 15, 15:05    [17430458]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
VicNic-2012
invm
пропущено...
Ну так смотрите на принимающей стороне. Может у вас там очередь в состоянии off и входящие сообщения застревают в transmission_queue.


Первым делом посмотрел это. Очередь on.


На приемнике:
-- Создание очереди сообщений филиала
CREATE QUEUE dbo.LocalCinemaQueue
WITH ACTIVATION (
STATUS = ON,
PROCEDURE_NAME = dbo.SB_PR_load_server_message,
MAX_QUEUE_READERS = 1,
EXECUTE AS SELF
);
GO

-- Создание сервиса Service Broker'а
CREATE SERVICE [//kinosoft.ru/Cinema/LocalServiceL8]
ON QUEUE dbo.LocalCinemaQueue (
[//kinosoft.ru/Cinema/S_L_Event_Name_Contract],
[//kinosoft.ru/Cinema/S_L_Event_Name_Change_Contract]
);
GO
25 мар 15, 15:05    [17430463]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
Winnipuh
VicNic-2012
пропущено...


Select transmission_status,* from sys.transmission_queue на initiator - Пустая. Это говорит о том, что сообщение дошло, так как в противном случаи оно не будет удалено из нее.
На target
Запустил запрос (спасибо за ссылку) который выдает время последней активации очереди на приемнике. Она не активируется при отправке сообщения....это вводит в ступор!


это так при условии, что сообщение туда перед тем попало


На приемнике есть еще одна база, на которой включен ServiceBroker и в нее сообщения доходят. То есть EndPoint работает.
Это отдельный не связанный SB со своими сущностями и типами сообщений...
25 мар 15, 15:11    [17430531]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
VicNic-2012
VicNic-2012
пропущено...


Первым делом посмотрел это. Очередь on.

Отправка идет так:
-- Insert statements for trigger here
declare @msg xml
select @msg = ms.msg from msg_send_log ms where ms.id = 607

declare @dialog as uniqueidentifier;

BEGIN DIALOG @Dialog
FROM SERVICE [//kinosoft.ru/Cinema/ServerService]
TO SERVICE '//kinosoft.ru/Cinema/LocalServiceL8'
ON CONTRACT [//kinosoft.ru/Cinema/S_L_Event_Name_Contract]
WITH ENCRYPTION = OFF, LIFETIME = 3600;
-- Send message
Select @Dialog;

SEND ON CONVERSATION @dialog
MESSAGE TYPE [//kinosoft.ru/Cinema/S_L_Event_Name_Message] (@msg);
END CONVERSATION @dialog;

Маршрут прописан как:
CREATE ROUTE [LocalRouteL8]
WITH SERVICE_NAME = N'//kinosoft.ru/Cinema/LocalServiceL8' ,
ADDRESS = N'TCP://192.168.1.9:4442'
GO


На Initiator:
-- Создание очереди сообщений филиала
CREATE QUEUE dbo.ServerCinemaQueue
WITH ACTIVATION (
STATUS = ON,
PROCEDURE_NAME = dbo.load_L_S_message,
MAX_QUEUE_READERS = 1,
EXECUTE AS SELF
);


-- Создание сервиса Service Broker'а
CREATE SERVICE [//kinosoft.ru/Cinema/ServerService]
ON QUEUE [dbo].[ServerCinemaQueue] (
[//kinosoft.ru/Cinema/S_L_Event_Name_Contract],
[//kinosoft.ru/Cinema/S_L_Event_Name_Change_Contract],
[//kinosoft.ru/Cinema/L_S_Clients_Contract],
[//kinosoft.ru/Cinema/L_S_Events_Contract],
[//kinosoft.ru/Cinema/L_S_Moves_Contract]
);
GO
25 мар 15, 15:17    [17430585]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
VicNic-2012,
25 мар 15, 15:58    [17430960]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
После танцев с бубном на один сервер сообщения стали приходить, но на запрос:
SELECT conversation_handle, is_initiator, s.name as 'local service',
far_service, sc.name 'contract', state_desc
,lifetime
FROM sys.conversation_endpoints ce
LEFT JOIN sys.services s ON ce.service_id = s.service_id
LEFT JOIN sys.service_contracts sc ON ce.service_contract_id = sc.service_contract_id
order by far_service

conversation_handle is_initiator local servi ce far_service contract state_desc
6CEC35AA-F2D2-E411-9F03-50E549C7A828 0 NULL //kinosoft.ru/Cinema/ServerService NULL CLOSED

На других серверах даже этого нет.....
25 мар 15, 16:35    [17431215]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
VicNic-2012
После танцев с бубном на один сервер сообщения стали приходить, но на запрос:
SELECT conversation_handle, is_initiator, s.name as 'local service',
far_service, sc.name 'contract', state_desc
,lifetime
FROM sys.conversation_endpoints ce
LEFT JOIN sys.services s ON ce.service_id = s.service_id
LEFT JOIN sys.service_contracts sc ON ce.service_contract_id = sc.service_contract_id
order by far_service

conversation_handle is_initiator local servi ce far_service contract state_desc
6CEC35AA-F2D2-E411-9F03-50E549C7A828 0 NULL //kinosoft.ru/Cinema/ServerService NULL CLOSED

На других серверах даже этого нет.....


local service far_service contract state_desc
NULL //kinosoft.ru/Cinema/ServerService NULL CLOSED
25 мар 15, 16:48    [17431306]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
VicNic-2012,
25 мар 15, 20:02    [17432141]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
ssbdiagnose -E CONFIGURATION FROM SERVICE //kinosoft.ru/C
inema/ServerService
-S 127.0.0.1\SQL12KINO
-U sa -p БЛАБЛАБЛА
-d "БАЗАV2"
TO SERVICE //kinosoft.ru/Cinema/LocalServiceL8
-S 192.168.1.9
-U sa
-p БЛАБЛА
-d БАЗАTarget
ON CONTRACT //kinosoft.ru/Cinema/S_L_Event_Name_Contract

Microsoft SQL Server 11.0.2100.60
Service Broker Diagnostic Utility
D 29997 127.0.0.1\SQL12KINO Televisiontest Компонент Service Broker имеет тот
же идентификатор GUID, что и база данных Television на сервере 127.0.0.1\SQL12KI
NO
D 29997 192.168.20.194 KDE_local Компонент Service Broker имеет тот же и
дентификатор GUID, что и база данных KDE на сервере 127.0.0.1\SQL12KINO
D 29975 //kinosoft.ru/Cinema/LocalServiceL8 БАЗАTarget Пользователь SB_Cin
ema_Server_ServiceUser не имеет разрешение SEND на службу //kinosoft.ru/Cinema/L
ocalServiceL8
D 29980 //kinosoft.ru/Cinema/LocalServiceL8 БАЗАTarget Пользователь SB_Cin
ema_Local_ServiceUser не имеет разрешение CONTROL на службу //kinosoft.ru/Cinema
/LocalServiceL8
Произошло внутреннее исключение: Этот хост неизвестен
Ошибок - 5, предупреждений - 0
25 мар 15, 20:16    [17432195]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
VicNic-2012
ssbdiagnose -E CONFIGURATION FROM SERVICE //kinosoft.ru/C
inema/ServerService
-S 127.0.0.1\SQL12KINO
-U sa -p БЛАБЛАБЛА
-d "БАЗАV2"
TO SERVICE //kinosoft.ru/Cinema/LocalServiceL8
-S 192.168.1.9
-U sa
-p БЛАБЛА
-d БАЗАTarget
ON CONTRACT //kinosoft.ru/Cinema/S_L_Event_Name_Contract

Microsoft SQL Server 11.0.2100.60
Service Broker Diagnostic Utility
D 29997 127.0.0.1\SQL12KINO Televisiontest Компонент Service Broker имеет тот
же идентификатор GUID, что и база данных Television на сервере 127.0.0.1\SQL12KI
NO
D 29997 192.168.20.194 KDE_local Компонент Service Broker имеет тот же и
дентификатор GUID, что и база данных KDE на сервере 127.0.0.1\SQL12KINO
D 29975 //kinosoft.ru/Cinema/LocalServiceL8 БАЗАTarget Пользователь SB_Cin
ema_Server_ServiceUser не имеет разрешение SEND на службу //kinosoft.ru/Cinema/L
ocalServiceL8
D 29980 //kinosoft.ru/Cinema/LocalServiceL8 БАЗАTarget Пользователь SB_Cin
ema_Local_ServiceUser не имеет разрешение CONTROL на службу //kinosoft.ru/Cinema
/LocalServiceL8
Произошло внутреннее исключение: Этот хост неизвестен
Ошибок - 5, предупреждений - 0
25 мар 15, 23:20    [17432752]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker проблема  [new]
VicNic-2012
Member

Откуда:
Сообщений: 30
VicNic-2012,
26 мар 15, 10:40    [17433804]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить