Symptoms
When you have a server for Service Broker Message Forwarding in Microsoft SQL Server 2008 R2 or in Microsoft SQL Server 2012, you may receive a "non-yielding" error on the server if one or more of the following conditions are true:
-
The server is busy forwarding Service Broker Messages.
-
There is a large volume of messages to be forwarded.
-
In a SQL Server Profiler trace you notice there are some messages that cannot be delivered to the target server because of a network problem or the lifetime of a message is reached.
-
You have many entries in sys.routes table.
Additionally, the performance of message processing decreases.
Cause
The "non-yielding" message in the error log is a warning. When you receive this message, SQL server is busy examining the message target list. Additionally, SQL server determines whether messages are older than the time-out value and require deletion. If the size of the route table is large and the message list is very long, this process may take a long time to complete the work that causes the "non-yielding" error.
Resolution
Cumulative update information
Cumulative update 6 for SQL Server 2012
The fix for this issue was first released in Cumulative Update 6. For more information about how to obtain this cumulative update package for SQL Server 2012, click the following article number to view the article in the Microsoft Knowledge Base:
2728897 Cumulative update package 6 for SQL Server 2012Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2012 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
2692828 The SQL Server 2012 builds that were released after SQL Server 2012 was released
Cumulative Update 2 for SQL Server 2012 SP1
The fix for this issue was first released in Cumulative Update 2. For more information about how to obtain this cumulative update package for SQL Server 2012 SP1, click the following article number to view the article in the Microsoft Knowledge Base:
2790947 Cumulative update package 2 for SQL Server 2012 Service Pack 1Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2012 SP1 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
2772858 The SQL Server 2012 builds that were released after SQL Server 2012 Service Pack 1 was released
Cumulative update 4 for SQL Server 2008 R2 Service Pack 2 (SP2)
The fix for this issue was first released in Cumulative Update 4. For more information about how to obtain this cumulative update package for SQL Server 2008 R2 Service Pack 2, click the following article number to view the article in the Microsoft Knowledge Base:
2777358 Cumulative update package 4 for SQL Server 2008 R2 Service Pack 2Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 R2 Service Pack 2 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
2730301 The SQL Server 2008 R2 builds that were released after SQL Server 2008 R2 Service Pack 2 was released
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.