狀況
請考慮下列情況:
-
您必須設定為 MQSC 介面卡用於從 IBM WebSphere MQ 接收訊息的接收位置。
-
MQSC 介面卡被設定為使用字元集的ucs-2 及 utf-16或utf-8設定。
-
MQSC 介面卡會嘗試從在 Microsoft BizTalk 伺服器 2010 IBM WebSphere MQ 接收訊息。
-
郵件大於 1 百萬位元組 (MB)。
在這個案例中,您可能會記錄下列的錯誤,應用程式日誌中︰
事件識別碼︰ 5740
來源︰ BizTalk Server 描述: "MQSC"的配接器會產生錯誤訊息。詳細資料 」 嘗試從佇列取得訊息時發生失敗。佇列 = 預設值,queueManager = queuemanager,reasonCode = 2010"。
原因
MQSC 介面卡指定的字元集會影響已收到的訊息的總長度,就會發生這個問題。例如,當的字元集用utf-8時,實際的訊息需要五次大於郵件大小的緩衝區大小。因此,1 MB 的郵件會需要 5 MB 的緩衝區。超過 4 MB MQSC 介面卡所使用的預設最大的訊息長度設定。如果所收到的訊息需要大於 MQSC 介面卡的最大的訊息長度值的緩衝區空間,則會記錄 < 徵狀=""> 一節所述的錯誤。
解決方案
累積更新資訊
8 的累積更新套件所包含的修正程式可解決這個問題的主機整合伺服器 2010年。如需有關如何取得累積更新套件,請參閱更新套件主機整合伺服器 2010年為 8 的累計。
因應措施
要解決這個問題,請增加 [最大的訊息長度設定 MQSC 配接器組態中,以符合根據所需的字元集所使用的額外的緩衝區空間已接收的郵件大小。
狀態
Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。
更多的資訊
在套用此更新程式,系統會從佇列擷取訊息之後,MQSC 介面卡指定的選項,可讓 IBM WebSphere MQ 處理自動調整大小的緩衝區。
最大的訊息長度設定基本上是一種建議的設定,根據訊息長度的編碼和 (或字元集) 的訊息。因此,最大的訊息長度設定應該加以調整,以符合特定的訊息大小需求,以協助確保成功接收所有的訊息。在 MQSC 的介面卡參數和 IBM WebSphere MQ 設定中,您可以指定最大的訊息長度設定。因此,您應該確定設定的同意。 下列清單說明可供從訊息佇列接收訊息的字元集為基礎的緩衝區大小需求︰-
字元集 utf-16:當您使用字元集的utf-16設定時,所需的緩衝區空間等於所收到的郵件大小兩倍。
-
字元集 ucs-2 及 utf-8:當您使用字元集的ucs-2 及 utf-8設定時,所需的緩衝區空間就會是郵件的所收到大小五次。
我們建議您不只套用此更新程式,但也升級至 IBM WebSphere MQ 版本 7.5 Fixpack 1 MQSC 介面卡使用時。IBM WebSphere MQ 版本 7.5 Fixpack 1 包括 utf-16 DBCS 資料轉換與相關的問題的修正程式。 如果 7.5 Fixpack 1,您無法升級到 IBM WebSphere MQ 版本中,我們建議您先使用與此更新一起 IBM WebSphere MQ 版本 7.0.1.8 (或更新版本)。 本文將所述之產品製造協力廠商均與 Microsoft 無關。Microsoft 不對這些產品之其他相關效能或可靠性作出任何擔保或默示。