Share via


転送の管理 (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 には、転送対象として格納されているメッセージが表示されます。