Sample Header Ad - 728x90

is there any advantage when troubleshooting service broker, to create the queue with retention=ON?

2 votes
1 answer
531 views
from CREATE QUEUE (Transact-SQL) : > RETENTION Specifies the retention setting for the queue. If RETENTION > = ON, all messages sent or received on conversations that use this queue are retained in the queue until the conversations have ended. > This lets you retain messages for auditing purposes, or to perform > compensating transactions if an error occurs. If this clause is not > specified, the retention setting defaults to OFF. when I have to do some Service Broker Troubleshooting I have a look at these: -- Message Types SELECT * FROM sys.service_message_types; -- Contracts SELECT * FROM sys.service_contracts; -- Queues SELECT * FROM sys.service_queues; -- Services SELECT * FROM sys.services; -- Endpoints SELECT * FROM sys.endpoints; I check this: SELECT conversation_handle, is_initiator, s.name as 'local service', far_service, sc.name 'contract', state_desc 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; -- Error messages in the queue SELECT * FROM sys.transmission_queue; QUESTION: Is there any advantage in setting RETENTION=ON for service broker queues? as further info: Where would the message be stored? For how long? thank you Recommendations on how to organize Queues in Service Broker The following Chinese article shows an example of retention=on : 在创建QUEUE的时候,指定retention也很重要。。 1. 如果retention=on.那么即使message被receive之后,还是留在了queue里面,直到这个conversation被end ALTER QUEUE [dbo].[targetQueue] WITH STATUS = ON , RETENTION = ON , POISON_MESSAGE_HANDLING (STATUS = ON)  --------------------- 作者:dbLenis 来源:CSDN 原文:https://blog.csdn.net/wujiandao/article/details/7288864 版权声明:本文为博主原创文章,转载请附上博文链接! enter image description here
Asked by Marcello Miorelli (17274 rep)
Nov 14, 2018, 02:30 PM
Last activity: Jul 5, 2023, 01:00 AM