Příznaky
Když na serveru Microsoft SQL Server 2008 R2 nebo Microsoft SQL Server 2012 používáte server pro předávání zpráv služby Service Broker, může se na serveru zobrazit chyba "nevracení yield", pokud platí jedna nebo více následujících podmínek:
-
Server je zaneprázdněn předáváním zpráv služby Service Broker.
-
Je třeba přeposílat velké množství zpráv.
-
V systému SQL Server Profiler sledujete, že na cílovém serveru se nedají doručit některé zprávy kvůli problému se sítí nebo dosažení doby života zprávy.
-
V tabulce sys. Routes máte hodně položek.
Navíc dochází ke snížení výkonu zpracování zpráv.
Příčina
Zpráva "nevracení by" v protokolu chyb je upozornění. Když se zobrazí tato zpráva, SQL Server je zaneprázdněn kontrolou cílového seznamu zpráv. SQL Server navíc určuje, zda jsou zprávy starší než hodnota časového limitu a vyžadují odstranění. Pokud je velikost směrovací tabulky velká a seznam zpráv je velmi dlouhý, může tento proces trvat dlouhou dobu k dokončení práce, která způsobuje chybu "neyield".
Řešení
Informace o kumulativní aktualizaci
Kumulativní aktualizace 6 pro SQL Server 2012
Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 6. Další informace o tom, jak získat tento kumulativní balíček aktualizací pro SQL Server 2012, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
2728897 Kumulativní balíček aktualizací 6 pro SQL Server 2012Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího SQL serveru 2012 Oprava. Doporučujeme zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
2692828 Buildy SQL Server 2012, které byly vydány po vydání SQL Server 2012
Kumulativní aktualizace 2 pro SQL Server 2012 SP1
Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 2. Další informace o tom, jak získat tento kumulativní balíček aktualizací pro SQL Server 2012 SP1, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
2790947 Kumulativní aktualizace 2 pro SQL Server 2012 Service Pack 1Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze aktualizace SQL Server 2012 SP1. Doporučujeme zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
2772858 Buildy SQL Server 2012, které byly vydány po vydání SQL Server 2012 Service Pack 1
Kumulativní aktualizace 4 pro SQL Server 2008 R2 Service Pack 2 (SP2)
Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 4. Další informace o tom, jak získat tento kumulativní balíček aktualizací pro SQL Server 2008 R2 Service Pack 2, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
2777358 Kumulativní aktualizace 4 pro SQL Server 2008 R2 Service Pack 2Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze systému SQL Server 2008 R2 Service Pack 2 – oprava. Doporučujeme zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
2730301 Sestavení SQL Server 2008 R2, která byla vydána po SQL serveru 2008 R2 Service Pack 2, byla vydána
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.