転送の管理 (Service Broker)

メッセージ転送により、SQL Server インスタンスが SQL Server の他の複数のインスタンス間で Service Broker メッセージを転送できます。メッセージ転送を実行する SQL Server インスタンスの管理については、いくつかの注意点があります。

Service Broker は、転送されるメッセージと着信メッセージの両方に、msdb データベース内のルートを使用します。転送のルーティング構成を変更した場合は、msdb をバックアップする必要があります。

SQL Server は、転送されるメッセージをメモリ内の送信キューと呼ばれるデータ構造に格納します。SQL Server で転送されるメッセージの格納に使用されるメモリの最大量 (メガバイト単位) は、エンドポイント オプション MESSAGE_FORWARDING_SIZE で設定します。SQL Server は、転送されるメモリを保持するために必要なメモリを、この上限値まで割り当てます。メッセージの到着によって送信キューのサイズがこの上限を超過する場合は、SQL Server によってそのメッセージが削除されます。ただし、大きなメッセージがフラグメント化されている場合、転送を行うインスタンスはメッセージのフラグメントを再構築せずに宛先に転送します。この方法では、転送を行うインスタンスが、そのインスタンスで設定されている MESSAGE_FORWARDING_SIZE オプションより大きなメッセージを正常に転送できます。

メッセージ転送を実行するインスタンスは、2 つのネットワーク間のブリッジとして機能することが少なくありません。この構成では、2 つのネットワーク間のすべてのトラフィックがこのインスタンスを通過するため、Service Broker エンドポイントの MESSAGE_FORWARDING_SIZE オプションを比較的大きめに設定する必要があります。

動的な管理ビュー sys.dm_broker_forwarded_messages には、転送対象として格納されているメッセージが表示されます。