MSMQ 适配器已知问题
本部分包含可帮助你避免出现错误的信息。
已知问题
MSMQ 适配器接收位置不处理文档
问题
MSMQ 适配器接收位置不处理文档。
原因
如果与运行 MSMQ 适配器接收处理程序的 BizTalk 主机实例相关联的 .NET 线程池中没有足够的线程,则 MSMQ 适配器接收位置将由于线程不足而无法处理文档。
解决方法
若要增加主机实例的 .NET 线程池中的可用线程数,请按照影响适配器性能的配置参数主题的主机的 CLR 托管线程值部分中的步骤操作。
由于绑定到 MSMQ 接收处理程序的每个 MSMQ 接收位置都需要 .NET 线程池中的线程,因此请将 MinIOThreads 和 MinWorkerThreads 设置为大于或等于绑定到接收处理程序的 MSMQ 接收位置数的值。 相应地,将 MaxIOThreads 和 MaxWorkerThreads 的值设置为等于绑定到接收处理程序 * 2 的 MSMQ 接收位置数的值,以允许留出空间:
DWORD 条目 | 建议的值 |
---|---|
MaxIOThreads | 绑定到 MSMQ 适配器接收处理程序的 MSMQ 接收位置数量 * 2。 |
最大工作线程数 | 绑定到 MSMQ 适配器接收处理程序的 MSMQ 接收位置数量 * 2。 |
MinIOThreads | 绑定到 MSMQ 适配器接收处理程序的 MSMQ 接收位置数量。 |
MinWorkerThreads | 绑定到 MSMQ 适配器接收处理程序的 MSMQ 接收位置数量。 |
由于这些建议值并不包括主机实例中运行的其他适配器处理程序或业务流程所使用的线程,因此应相应增大这些值。
MSMQ 适配器接收位置在启用后立即关闭
问题
MSMQ 接收位置在启用后立即关闭。
原因
如果消息队列服务的本地非群集实例没有在 MSMQ 接收处理程序的主机实例所运行的同一台计算机上运行,则可能发生此问题。
解决方法
在 MSMQ 接收处理程序的主机实例所运行的计算机上启动消息队列服务。 MSMQ 适配器接收处理程序要求消息队列服务的本地实例处于运行状态,即使消息队列服务的群集实例在同一台计算机上运行也是如此。
尝试停止主机实例的服务时,SC 工具导致了错误。
问题
尝试使用 SC 工具 (Sc.exe) 关闭 BizTalk 主机实例的服务时,您可能会收到类似于以下内容的错误消息:
ControlService FAILED 1053:
该服务未及时响应启动请求或控制请求 。
您收到该错误消息之后,将停止 BizTalk 主机实例的服务。 但是,SC 工具可能需要两分钟或更多时间才能关闭此服务。
在 BizTalk Server 中启用 Microsoft 消息队列接收位置时,会出现此问题。
此外,可能会在系统日志中记录类似于以下内容的错误消息:
事件类型:错误
事件源:服务控制管理器
事件类别: 无
事件 ID:7011
说明:
等待来自 BTSSvc$BizTalkServerApplication 服务的事务响应时超时(30000 毫秒)。
解决方法
现在可以从 Microsoft 获得受支持的修补程序。 但是,本修补程序仅用于解决本文章中介绍的问题。 仅将此修补程序应用于正经历此特定问题的系统。 此修补程序可能会接收其他测试。 因此,如果您没有严重受到本问题的影响,我们建议您等待包含本修补程序的下一 Service Pack。
若要解决此问题,请提交请求到 Microsoft 联机客户服务,以获取修补程序。
注意
如果发生其他问题或需要任何疑难解答,您可能必须创建一个单独的服务请求。 对于不符合本特定修补程序的其他支持问题,需要支付常规支持费用。