Service Broker ‘leaked’ target conversation endpoints fix ships in Cumulative Update for SQL Server 2005 SP2August 21st, 2007
The CU3 of SQL Server 2005 SP2 was just released on the web, http://support.microsoft.com/kb/939537
It contains an update to Service Broker:
|50001416||940260 (http://support.microsoft.com/kb/940260/)||FIX: Error message when you use Service Broker in SQL Server 2005: “An error occurred while receiving data: ’64(The specified network name is no longer available.)’”|
The title of the fix is derived from the original incident case, but the fix is actualy for the one case that would lead to ‘leaked’ conversation endpoints on the target in remote scenarios (communication between two different SQL Server instances) was fixed. The case fixed is when the pattern of message exchange is correct:
- Initiator sends one or more messages
- Target issue END CONVERSATION and sends the EndDialog message
- Initiator receives the EndDialog and responds by issuing it’s own END CONVERSATION
The defect was that if the initiator issues the END CONVERSATION within 1 (one) seconds of the target sending the EndDialog message, the target endpoint was ‘leaked’.
Note that this fix does not address local cases (two databases within the same SQL Server instance) nor the case of remote ‘incorrect’ message exchange pattern, when the initiator ends the conversation first w/o ever receiving any message from the target.