2014-07-23 140 views
0

我們承載了最初構建於SQL Server 2008 R2上的一個解決方案,此實例託管在SQL Server 2008實例(不是R2)上。該數據庫中創建的罰款,但由於某些原因,服務代理隊列,用創建:SQL Server Service Broker POISON_MESSAGE_HANDLING(STATUS = ON)

POISON_MESSAGE_HANDLING(STATUS = OFF) 

我試圖將此項設置爲上,但沒有運氣,我們一直宣稱這樣的隊列:

CREATE QUEUE QueueName WITH STATUS=ON, ACTIVATION 
(STATUS = ON, MAX_QUEUE_READERS = 1, 
PROCEDURE_NAME = QueueProcedureName, EXECUTE AS OWNER); 

有沒有辦法用R2的默認值創建隊列?

編輯 - 更多信息:

這是錯誤消息,這是沒有意義的2008 R2上的正常工作。 GO ALTER QUEUE [Store]。[UpdateStoredPublishingSegmentUsersSendQueue] WITH POISON_MESSAGE_HANDLING(STATUS = ON);

Msg 102,Level 15,State 1,Line 2 'POISON_MESSAGE_HANDLING'附近的語法不正確。

+0

'我試過設置這個,但沒有運氣'定義'沒有運氣'。任何錯誤消息? –

回答

0

免責聲明:我沒有試過以下命令,因爲我在2005年運行時不支持POISON_MESSAGE_HANDLING選項。

您是否在執行CREATE?命令後嘗試執行ALTER QUEUE命令?

ALTER QUEUE <queue name> WITH 
    POISON_MESSAGE_HANDLING (STATUS = ON) 

在替代嘗試修改您的CREATE命令是這樣的:

CREATE QUEUE <queue name> WITH 
    STATUS=ON, 
    ACTIVATION (
     STATUS = ON, 
     MAX_QUEUE_READERS = 1, 
     PROCEDURE_NAME = <activated sproc name>, 
     EXECUTE AS OWNER 
    ), 
    POISON_MESSAGE_HANDLING (STATUS = ON); 
1

這是與SQL Server的版本的問題。在版本低於2008 R2的版本中不支持POISON-MESSAGE_HANDLING。希望這可以幫助!

+0

我刪除了該部分並創建了隊列。 CREATE QUEUE [Core]。[TestSendQueue] WITH STATUS = ON,RETENTION = OFF ON [PRIMARY] 我認爲這個問題更爲複雜,因爲它在Sql 2008中不受支持。 –

相關問題