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 Message Queuing 接收位置時,就會發生此問題。
此外,系統記錄檔中也可能會記錄如下的錯誤訊息:
事件類型:錯誤
事件來源:服務控制管理員
事件類別目錄:無
事件識別碼:7011
描述
等候來自 BTSSvc$BizTalkServerApplication 服務的交易回應時發生逾時 (30000 毫秒)。
解決方案
Microsoft 已提供支援的 Hotfix。 但此 Hotfix 僅適用於更正本文所說明的問題。 只將此 Hotfix 套用在發生此特定問題的系統。 此 Hotfix 可能還會接受其他測試。 因此,如果此問題對您的影響不大,建議您靜待內含此 Hotfix 的下一個 Service Pack 推出。
若要解決此問題,請提交要求至 Microsoft Online Customer Services 以取得此 Hotfix。
注意
若有其他問題發生,或需要其他方面的疑難排解,您可以建立個別的服務要求。 其他不是此 Hotfix 要解決的支援問題,將酌收適當的支援費用。