ルーティングの管理

Service Broker は、ルートを使用してメッセージの配信先を決定します。ここでは、ルーティングの管理を行う際の注意事項について説明します。

AutoCreatedLocal の管理

msdb を含む各ユーザー データベースには、既定で AutoCreatedLocal というルートが含まれています。このルートは、どのサービス名および任意のブローカ インスタンスにも適用でき、現在のインスタンス内でメッセージを配信するように指定します。AutoCreatedLocal の優先度は、サービス名またはブローカ インスタンスを明示的に指定したルートよりも低くなります。

AutoCreatedLocal は、既定では msdb 内に置かれているため、Service Broker は、現在のインスタンス内にあるインスタンスの外部からすべてのメッセージの配信を試行します。データベース管理者は、多くの場合、msdbAutoCreatedLocal を削除して、インスタンスの外部からサービスにアクセスすることを制限します。次にデータベース管理者は、リモート インスタンスと通信する各サービスについて、ルートを作成します。

ルートの有効期限の管理

ほとんどの場合、ルートに有効期限を設定する必要はありません。ルートは、ルート オブジェクトが存在する間、アクティブ状態を維持します。ルートの接続先アドレスが変更された場合、管理者は、ルートを変更してアドレスを更新するか、またはルートを削除します。

ただし、動的ルーティングを使用するアプリケーションでは、ルーティング情報を常に最新に保つために、ルートの有効期限を使用する場合があります。Service Broker は、有効期限の切れたルートをデータベースから削除しません。ルートの有効期限を使用するアプリケーションでは、SQL Server エージェント ジョブを作成して、有効期限の切れたルート オブジェクトを定期的に削除する必要があります。