MSMQ 适配器的已知问题

本部分包含有助于避免错误的信息。

已知问题

MSMQ 适配器接收位置不处理文档

问题

MSMQ 适配器接收位置不会处理文档。

原因

如果与运行 MSMQ 适配器接收处理程序的 BizTalk 主机实例关联的 .NET 线程池中没有足够的线程,则 MSMQ 适配器接收位置由于线程不足而无法处理文档。

决议

若要增加主机实例的 .NET 线程池中的可用线程数,请按照主题“影响适配器性能的配置参数”的主机部分的 CLR 托管线程值中的步骤作。

由于绑定到 MSMQ 接收处理程序的每个 MSMQ 接收位置都需要 .NET 线程池中的线程,因此请将 MinIOThreadsMinWorkerThreads 设置为大于或等于绑定到接收处理程序的 MSMQ 接收位置数的值。 因此,将 MaxIOThreadsMaxWorkerThreads 的值设置为等于绑定到接收处理程序 * 2 的 MSMQ 接收位置数的值,以允许留出空间:

DWORD 条目 建议的值
MaxIOThreads 绑定到 MSMQ 适配器接收处理程序 * 2 的 MSMQ 接收位置数。
MaxWorkerThreads 绑定到 MSMQ 适配器接收处理程序 * 2 的 MSMQ 接收位置数。
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

说明:

超时(30000 毫秒)等待 BTSSvc$BizTalkServerApplication 服务的事务响应。

决议

现在可从Microsoft获取受支持的修补程序。 然而,此热修复程序旨在仅修正本文中描述的问题。 将此修补程序仅应用于遇到此特定问题的系统。 此补丁可能会接受额外的测试。 因此,如果不受到此问题的严重影响,建议等待包含此修补程序的下一个 Service Pack。

若要解决此问题,请向 Microsoft Online Customer Services 提交请求以获取修补程序。

注释

如果出现其他问题或需要进行任何故障排除,可能需要创建单独的服务请求。 对于不符合此特定修复程序的额外支持问题和问题,将适用通常的支持费用。

另请参阅

MSMQ 适配器疑难解答