当将邮件发送到 SQL Server 2012年中的远程服务器和 SQL Server 2014年时,更新可提高服务中介程序

模板︰ 通用修补程序

错误 #: 185563 (内容维护) VSTS: 1240830

作为一个可下载文件发布 Microsoft SQL Server 2012 Service Pack 1 (SP1) 修补程序。修补程序是累积性的因为每个新版本包含的所有修补程序和已包含了以前 SQL Server 2012 SP1 的所有安全修补程序的修补都程序版本。

简介

此更新引入了在 SQL Server 2012年和 2014 SQL Server 服务中介程序改进。应用此更新之前,最大的服务中介程序用来将消息发送到远程服务器的线程数是运行服务中介程序的 Cpu 的数量加倍。许多远程服务器已关闭,将消息发送到远程服务器的线程等待 Winsock 超时。因此,延迟邮件传递到远程服务器的联机时达到最大的正在等待的线程数。

解决方案

应用此更新后,您还需要联系 Microsoft 技术支持,以使某些特定的设置。
前此更新时,SQL Server 才创建两个线程,每个物理 CPU 处理服务中介程序任务。下列三个跟踪标记添加到 SQL Server 2012年累积更新 SQL Server 2012 SP1 4。只有最后一次跟踪标志 8428 支持 SQL Server 2014年:

  • 跟踪标志 8426 -最大线程数将乘以 8 物理 CPU 的数目。

  • 跟踪标志 8427 -最大线程数将乘以 16 物理 CPU 的数目。

  • 跟踪标志 8428 -最大线程数将乘以 32 物理 CPU 的数目。

注意:这些跟踪标志需要配置为启动参数要求重新启动 SQL Server 以使其生效。

累积更新信息

在 SQL Server 中的以下累积更新首先修复问题︰

SQL Server 的每个新累积更新包含以前的累积更新所包含的所有修补程序和所有安全修补程序。我们建议你下载并安装 SQL Server 的最新累积更新:


详细信息

客户情形 1
客户具有长时间运行的 SQL Server 服务中介程序 (SSB) 应用程序具有一个启动器和目标 1100年 +。客户正在南非,电力公司几乎每个星期做滚动的封锁。因此总是有一些已关闭并且无法通信的目标。大约在 30 到 40 下在任何时候。当封锁变得广泛和地方大约 100 + 目标向下走,所有 SSB 消息停止流动到任何目标。
问题解决本身就足够目标返回到联机状态。但是,这可能是几天以后。
一些初始数据显示现在 SSB 探查器事件的发生除了中介︰ 连接长时间。

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

客户情形 2

客户已在莫斯科发起方。他们有在莫斯科的 500 目标和 3000 多位俄罗斯各地的目标。晚上 9 点到 7 点之间他们将关闭电力、 路由器和 3000 + 目标计算机。发起人仍试图向某些处于离线状态的 3000 目标发送到启动 500 目标消息和消息。

每一分钟的服务中介程序会尝试从 sys.transmission_queue 发送消息,因为我们没有收到 ACK 从离线的目标。当我们调用 WSPConnect 时,我们转到预防,20 秒后占用工作线程。在此客户计算机时,它限制了这 32 个线程对因为他们有更多比您的内核。在 sys.sysprocesses 中,您可以看到 waittype 与这些会话为 PREMPTIVE_WSASETLASTERROR。我们命中 32 个限制时这还会延迟到启动 500 目标发送消息。

示例堆栈转储

在这两种情况下,按照堆栈可以观察到所有 SSB 任务处理程序上。
在此同一堆栈中有 16 线程︰
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)

状态

Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

参考资料

对于 SQL Server 的增量服务模式的详细信息,请单击下面的文章编号,以转到 Microsoft 知识库中相应的文章︰

935897的增量服务模式是可以从 SQL Server 团队提供报告的问题的修补程序有关命名 SQL Server 更新架构的详细信息,请单击下面的文章编号,以转到 Microsoft 知识库中相应的文章︰

822499命名架构为 Microsoft SQL Server 软件更新程序包有关软件更新术语的详细信息,请单击下面的文章编号,以转到 Microsoft 知识库中相应的文章︰

用于描述 Microsoft 软件更新的标准术语的824684说明

作者︰ wcarroll;jannaw
作者︰ v-fismao
技术审阅︰ wcarroll;vinodmr;chwilkin;lvargas;jannaw;sqlprev
编辑器︰ v-johnga

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×