MSMQ アダプターの最適化は、送信側と受信側で異なります。 受信場所にプロパティを設定して、受信側で最適化を制御します。 送信側では、オーケストレーションを使用して最適化を制御できます。
受信の最適化
受信側では、アダプターに 1 つの実行スレッドを使用させることができます。 アダプターが 1 つのスレッドを使用するか、複数のスレッドを使用するかは、次のように、受信場所の 順序付け処理 プロパティの設定によって異なります。
プロパティが True の場合、アダプターは 1 つのスレッドで動作します。 これにより、アダプターが一度に 1 つのメッセージに制限され、メモリが節約されます。 これにより、プロパティ シートに割り当てられた値に関係なく、 バッチ サイズ が 1 に効果的に設定されます。
順序付け処理が False の場合、アダプターは複数のスレッドを実行し、一度に複数のメッセージを処理できるため、パフォーマンスが向上します。
サーバー リソースの管理にプレミアムを設定する場合、またはメッセージの数またはサイズが使用可能なメモリを使い果たす可能性がある場合は、 順序付け処理 を True に 設定する必要があります。
受信場所の バッチ サイズ の値を減らすことで、メモリの使用を制御することもできます。 バッチ サイズを小さくすると、メモリ内のメッセージが少なくなるため、使用するメモリが少なくなります。
送信ポートと受信場所を別のコンピューターに配置すると、メモリ使用量を削減することもできます。
送信の最適化
送信側では、サンプル オーケストレーションを使用して同等の単一メッセージ処理を実現できます。 このサンプルでは、1 つのメッセージを送信し、受信確認を受信するまで次のメッセージの送信を待機します。 詳細については、「 MSMQ 受信場所を作成し、コードからポートを送信する方法」を参照してください。
リモート トランザクション読み取り操作
BizTalk Server を使用すると、MSMQ アダプターはトランザクション MSMQ キューからリモート読み取り操作を実行できます。 これは、MSMQ 4.0 以降のバージョンがリモート トランザクション読み取り操作をサポートしているためです。 ただし、トランザクション読み取り操作は通常、低速な操作です。 パフォーマンスを最適化するには、他のオプションがない場合にのみ使用する必要があります。