2014-06-24 19 views
0

我是SQL Service Broker的新手,所以請原諒我的無知。SQL服務代理在數據庫重啓後禁用

我們有一個SQL服務代理,需要在數據庫重新啓動後再次啓用。我們如何才能在sql服務重啓後自動啓用?

此外,我們還可以在代理被禁用時發送消息,並且不會引發SQL錯誤。我們可以搜索隊列並且它什麼都沒有(兩個隊列都沒有 - 見下文)。

一旦我們啓用代理,所有消息都會出現在隊列中。這是一種正常行爲或一些錯誤配置。

請參閱下面瞭解服務代理的配置。

謝謝

格雷格

ALTER DATABASE our_database SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE 



CREATE MESSAGE TYPE IncomingFileMessage 
VALIDATION = NONE; 


CREATE CONTRACT IncomingMessageContract 
(IncomingFileMessage SENT BY ANY); 

CREATE QUEUE ReceivingQueue 

CREATE QUEUE IncomingMessageQueue 


CREATE SERVICE ReceivingMessageService 
ON QUEUE ReceivingQueue (IncomingMessageContract); 

CREATE SERVICE IncomingMessageService 
ON QUEUE IncomingMessageQueue (IncomingMessageContract); 

回答

0

你不需要做任何事情來服務後經紀重新啓用啓動。一旦啓用,它將保持啓用狀態,直到被明確禁用或數據庫恢復。實際上,很可能數據庫在創建時已經啓用。

至於代理被禁用時發送的消息在哪裏:請查看sys.transmission_queue。存在交貨問題時存儲已發送的消息(在這種情況下,代理被禁用)是正常行爲。

相關問題