ネイティブのメッセージ キューは、本文が 4MB を超えるメッセージを処理できません。 ただし、Microsoft BizTalk Server には、4 MB を超えるメッセージの処理を許可するネイティブ メッセージ キュー用のアドオンが含まれています。 このアドオンは、Mqrtlarge.dll ファイルとして提供され、 MQSendLargeMessage および MQReceiveLargeMessage アプリケーション プログラミング インターフェイス (API) と類似の COM モデルを公開します。 これらの関数は、それぞれ標準メッセージ キュー API、 MQSendMessage 、 MQReceiveMessage として実装されます。
サイズの大きいメッセージの交換に参加するには、メッセージ キュー コンピューターに Mqrtlarge.dll ファイルをインストールし、メッセージ キュー アプリケーションでアドオン API を使用する必要があります。 それ以外の場合、完全なメッセージは断片化されます。
SDK でのパス
< インストール パス>\SDK\ Mqrtlarge.dll
ファイル インベントリ
次の表は、このユーティリティで使用するファイルとその目的を示しています。
ファイル | 説明 |
---|---|
Mqrtlarge.dll |
MQSendLargeMessage と MQReceiveLargeMessage を公開する Win32 ダイナミック リンク ライブラリ。 ヘッダー ファイルは、インストール パス>\SDK\Include ディレクトリにあります<。 メモ:64 ビット バージョンの Mqrtlarge.dll にアクセスするには、BizTalk Serverを 64 ビット バージョンの Windows にインストールする必要があります。 |
このユーティリティの使用
Mqrtlarge.dll ファイルを実行するには、次の操作を行います。
Mqrtlarge.dll ファイルを使用するには
-
Note
BizTalk Serverを使用しない MSMQ ソリューションの場合、MQRTLarge.dll は引き続き正しく機能する可能性があります。 ただし、これは Microsoft がサポートする推奨される構成ではなく、BizTalk Server環境の外部で使用すると予期しない結果が発生する可能性があります。
ファイル Mqrtlarge.dll を BizTalk Server がインストールされていないコンピューターに追加します。 メッセージ キューで Mqrtlarge.dll を使用して、BizTalk Server との間でメッセージを送受信します。
Mqrtlarge.dll ファイルの API にアクセスするには、他のコンピューターへのメッセージの送信や他のコンピューターから BizTalk メッセージ キューのエンドポイントへのメッセージの受信を行うアプリケーションに、Mqrtlarge.dll ファイルへの参照を追加します。
備考
サイズの大きいメッセージは、標準メッセージ キュー (MSMQ とも呼ばれます) のキューに送信されます。 サイズの大きいメッセージ API はこれらのキューでのみ使用することをお勧めしますが、強制されるわけではありません。
MQSendMessage を使用して、大きなメッセージを送信したキューにメッセージを送信することもできます。 同様に、 MQReceiveMessage を 使用してそのようなキューからメッセージを受信することもできますが、 MQReceiveLargeMessage API のパフォーマンスに影響を与える可能性があるため、推奨されません。
回復の目的で、ジャーナリング DEAD_LETTER 使用することをお勧めします。
断片化
通常、サイズの大きいメッセージは、それぞれのサイズが 4 MB 未満の多数のメッセージにフラグメント化されます。 フラグメント化されるのは本文だけであることを理解することが重要です。 残りのプロパティは各フラグメントと共に送信されます。
フラグメントの数は、メッセージのサイズとフラグメントのサイズによって定義されます。 フラグメント サイズは、ファイル Mqrtlarge.dll または BizTalk メッセージ キューの適切な部分によって自動的に決まることもあります。 アプリケーションでフラグメント サイズを明示的に指定することもできます。
サイズの大きいメッセージ用拡張機能では、一定サイズの追加内部データを追加することでメッセージを拡張する必要があることに注意してください。
PROPID_M_EXTENSION
PROPID_M_EXTENSION/PROPID_M_EXTENSION_LEN プロパティを使用してメッセージに署名できます。 署名は 40 バイトで構成されます。 次の表に、署名のフラグメントを示します。
説明 | サイズ |
---|---|
このメッセージが MQSendLargeMessage を使用して送信されたことを示すグローバル一意識別子 (GUID) | 16 B |
メッセージの GUID: メッセージのすべての部分に共通する一意の大きいメッセージ ID | 16 B |
サイズの大きいメッセージの合計サイズ | 4 B |
Part number | 2 B |
メッセージ部分の数 | 2 B |
PROPID_M_EXTENSIONを使用する決定には、追加の影響があります。 Microsoft Host Integration Server の MSMQ-MQSeries ブリッジでは、このプロパティを使用して、MQSeries とメッセージ キューのメッセージの間では直接マップされないプロパティを含む構造体を渡します。 メッセージを MQSeries に、または MQSeries から送信するアプリケーションは、この構造体を明示的または暗黙的に使用します。 メッセージが受信側アプリケーションでキューから受信されたとき、メッセージ キューでは受信確認を生成することができます。 受信確認は、送信アプリケーションによって指定されたキューに送信されます。 サイズの大きいメッセージの場合は、サイズの大きいメッセージの最後の部分についてのみこの受信確認を送信します。