Modèle : Correctif générique

N° de bogue : 185563 (Maintenance du contenu) VSTS : 1240830

Correctifs du Service Pack 1 (SP1) de Microsoft SQL Server 2012 sont publiés sous la forme d’un fichier téléchargeable unique. Les correctifs étant cumulatifs, chaque nouvelle version contient tous les correctifs et correctifs de sécurité inclus dans le précédent Service Pack 1 de SQL Server 2012 version du correctif.

Introduction

Cette mise à jour introduit une amélioration de Service Broker dans SQL Server 2012 et 2014 de SQL Server. Avant d’appliquer cette mise à jour, le nombre maximal de threads utilisés par le Service Broker pour envoyer des messages à des serveurs distants est double le nombre de processeurs qui exécutent le Service Broker. Lorsque le nombre de serveurs à distance est arrêté, les threads qui envoient des messages aux serveurs distants attendent l’expiration du délai de Winsock. Par conséquent, la remise des messages à des serveurs distants qui sont en ligne est retardée lorsque le nombre maximal de threads en attente est atteint.

Résolution

Après avoir appliqué cette mise à jour, vous devez également contacter le support technique de Microsoft pour définir des paramètres spécifiques.
Avant cette mise à jour, SQL Server créé uniquement deux threads par processeur physique pour gérer des tâches de Service Broker. La trace suivante de trois indicateurs ont été ajoutés à SQL Server 2012 Cumulative mise à jour 4 pour le Service Pack 1 de SQL Server 2012. Le dernier indicateur trace 8428 est pris en charge dans SQL Server 2014 :

  • 8426 indicateur de suivi - le nombre maximal de threads est le nombre de processeurs physiques multipliée par 8.

  • 8427 indicateur de suivi - le nombre maximal de threads est le nombre de processeurs physiques multipliée par 16.

  • 8428 indicateur de suivi - le nombre maximal de threads est le nombre de processeurs physiques multiplié par 32.

Remarque Ces indicateurs de trace doivent être configurés en tant que paramètres de démarrage et nécessiter un redémarrage de SQL Server prennent effet.

Informations de mise à jour cumulative

Le problème a été résolu tout d’abord dans les mises à jour cumulatives suivantes de SQL Server :

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et de sécurité inclus dans la mise à jour cumulative précédente. Nous vous recommandons de télécharger et d’installer les dernières mises à jour cumulatives pour SQL Server :


Plus d'informations

Scénario client 1
Client a une application SQL Server Service Broker (SSB) longue qui possède un initiateur et 1100 + cibles. Client est en Afrique du Sud et la compagnie d’électricité fait totales propagées presque chaque semaine. Il existe donc toujours certaines cibles qui sont arrêtés et ne peuvent pas communiquer. Vers le bas d’environ 30 à 40 à tout moment. Lorsque les surtensions de se propager et quelque part autour de 100 + cibles aller vers le bas, puis les messages SSB tous les interruption du flux à une des cibles.
Le problème se résout automatiquement dès que la cible est revenu en ligne. Toutefois, qui peut être de quelques jours plus tard.
Certaines données initiales affiche désormais les événements du Générateur de profils SSB se produisant sur une longue période, à l’exception du Broker : connexion.

ON INITIATOR PROFILER TRACE
===================================

Only Broker:Connection events, no other Broker activity.

Count Name SubClass_Name subclass_value

------- ----------------------- ----------------------- --------------

335942 Broker:Connection Accept 6

335942 Broker:Connection Connected 2

335942 Broker:Connection Connecting 1

335942 Broker:Connection Receive IO Error 8

335942 Broker:Connection Closed 5

335942 Broker:Connection Closing 4

335942 Broker:Connection Connect Failed 3

335942 Broker:Connection Send IO Error 7

Reviewed ***sys.dm_broker_connections***

1907 Rows

All rows with state_desc = CONNECTED, have a login_state_desc = WAIT LOGIN NEGOTIATE

All rows with state_desc = CONNECTING, have a login_state_desc = INITIAL

Count state_desc login_state_desc

563 CONNECTING INITIAL

1345 CONNECTED WAIT LOGIN NEGOTIATE

sys.transmission_queue

As many as 513 Transmissions with the following errors:

Connection attempt failed with error: '10060(A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.)'.

Connection attempt failed with error: '10061(No connection could be made because the target machine actively refused it.)'.

Connection_Endpoint State Counts

GroupCnt state_desc

----------- ------------------------------------------------------------

2571 CONVERSING
1 ERROR

Scénario client 2

Le client a un initiateur à Moscou. Ils ont 500 cibles à Moscou et 3000 + cibles tout en ayant la Russie. Entre 9 h 00 et 07 h 00, ils ne désactivent pas l’électricité, les routeurs et les ordinateurs pour les cibles de 3000 +. L’initiateur toujours essaie d’envoyer les messages et les messages pour les cibles de 500 qui sont vers certaines des 3000 cibles qui sont en mode hors connexion.

Chaque broker minute service va tenter d’envoyer le message à partir de la sys.transmission_queue, car nous n’avons pas reçu un accusé de réception à partir de cibles en mode hors connexion. Lorsque nous appelons la WSPConnect, nous allez préemptifs et occupent un thread de travail au bout de 20 secondes. Sur cet ordinateur des clients, il limite ceci à 32 threads qu’elles ont plus de cœurs que vous. Dans sys.sysprocesses, vous pouvez voir ces sessions avec un waittype en tant que PREMPTIVE_WSASETLASTERROR. Lorsque nous avons atteint la limite de 32 également cela retarde l’envoi des messages vers les cibles de 500 qui sont des.

Exemple de Dump de pile

Dans les deux cas, la pile de suivi a été observée sur tous les gestionnaires de tâches SSB.
Il existe 16 Threads dans cette même pile :
16 threads [stats]: 42 44 46 47 52 56 58 59 60 61 ... 000000007731135a ntdll!ZwWaitForSingleObject+0xa (e:\obj.amd64fre\minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 180)
000007fefca41e35 mswsock!SockWaitForSingleObject+0xe145
000007fefca411b9 mswsock!SockDoConnectReal+0xb329
000007fefca35e30 mswsock!SockDoConnect+0x32f (d:\w7rtm\minio\sockets\winsock2\wsp\mswsock\msafdlib\connect.c @ 1710)
000007fefca35bca mswsock!WSPConnect+0x2a (d:\w7rtm\minio\sockets\winsock2\wsp\mswsock\msafdlib\connect.c @ 222)
000007fefdb2466c ws2_32!connect+0xac (d:\w7rtm\minio\sockets\winsock2\ws2_32\src\sockctrl.cpp @ 198)
000000000245d1b5 sqlservr!Tcp::SocketOpenSync+0x5c9 (e:\sql10_main_t\sql\ntdbms\sni\src\tcp.cpp @ 3944)
000000000245d777 sqlservr!Tcp::Open+0x47b (e:\sql10_main_t\sql\ntdbms\sni\src\tcp.cpp @ 4097)
00000000024438c3 sqlservr!SNIOpenSync+0x623 (e:\sql10_main_t\sql\ntdbms\sni\src\sni.cpp @ 2523)
000000000138d84e sqlservr!CConnectionEndpoint::AsyncConnect+0xc52 (e:\sql10_main_t\sql\ntdbms\broker\src\ssbconendpointopen.cpp @ 828)
000000000138bb55 sqlservr!CEndPointConnectTask::IdempotentInvoke+0x15 (e:\sql10_main_t\sql\ntdbms\broker\src\ssbconendpointopen.cpp @ 69)
00000000014418cf sqlservr!CSbTaskManager::HandleReusableTask+0x247 (e:\sql10_main_t\sql\ntdbms\broker\src\ssbtask.cpp @ 1337)
000000000144089a sqlservr!CSbTask::TaskStart+0x412 (e:\sql10_main_t\sql\ntdbms\broker\src\ssbtask.cpp @ 686)
0000000001440442 sqlservr!CSbTask::BeginTaskStart+0x1a (e:\sql10_main_t\sql\ntdbms\broker\src\ssbtask.cpp @ 564)
000000000079b450 sqlservr!SOS_Task::Param::Execute+0x12a (e:\sql10_main_t\sql\common\dk\sos\include\sos.inl @ 10347)
000000000079b116 sqlservr!SOS_Scheduler::RunTask+0x96 (e:\sql10_main_t\sql\common\dk\sos\src\scheduler.cpp @ 919)
000000000079af5b sqlservr!SOS_Scheduler::ProcessTasks+0x128 (e:\sql10_main_t\sql\common\dk\sos\src\scheduler.cpp @ 800)
00000000008d44fa sqlservr!SchedulerManager::WorkerEntryPoint+0x2d2 (e:\sql10_main_t\sql\common\dk\sos\src\node.cpp @ 1801)
00000000008d47dd sqlservr!SystemThread::RunWorker+0xcc (e:\sql10_main_t\sql\common\dk\sos\include\worker.inl @ 789)
0000000000d1c0cd sqlservr!SystemThreadDispatcher::ProcessWorker+0x2db (e:\sql10_main_t\sql\common\dk\sos\src\node.cpp @ 449)
00000000008d53d2 sqlservr!SchedulerManager::ThreadEntryPoint+0x173 (e:\sql10_main_t\sql\common\dk\sos\src\node.cpp @ 1999)
00000000738137d7 msvcr80!_callthreadstartex+0x17 (f:\dd\vctools\crt_bld\self_64_amd64\crt\src\threadex.c @ 348)
0000000073813894 msvcr80!_threadstartex+0x84 (f:\dd\vctools\crt_bld\self_64_amd64\crt\src\threadex.c @ 326)
00000000770b652d kernel32!BaseThreadInitThunk+0xd (d:\win7sp1_gdr\base\win32\client\thread.c @ 65)
00000000772ec521 ntdll!RtlUserThreadStart+0x1d (d:\win7sp1_gdr\minkernel\ntos\rtl\rtlexec.c @ 3185)

État

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Références

Pour plus d’informations sur le modèle de service incrémentiel pour SQL Server, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

935897 un modèle de service incrémentiel est disponible auprès de l’équipe SQL Server pour proposer des correctifs pour les problèmes signalésPour plus d’informations sur le schéma d’appellation des mises à jour de SQL Server, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

Packages de mises à jour de schéma de nommage 822499 pour les logiciels de Microsoft SQL ServerPour plus d’informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

Description 824684 terminologie standard utilisée pour décrire les mises à jour logicielles de Microsoft

Auteur :, wcarroll ; jannaw
Writer : v-fismao
Réviseur technique :, wcarroll ; vinodmr ; chwilkin ; lvargas ; jannaw ; sqlprev
Éditeur : v-johnga

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la traduction ?
Qu’est-ce qui a affecté votre expérience ?

Nous vous remercions pour vos commentaires.

×