適用対象:SQL Server
Azure SQL Managed Instance
Service Broker は、ルートを使用してメッセージの配信先を決定します。 ここでは、ルーティングの管理を行う際の注意事項について説明します。
AutoCreatedLocal の管理
既定では、 msdbを含む各ユーザー データベースには、 ルート AutoCreatedLocal が含まれます。 このルートは、どのサービス名および任意のブローカー インスタンスにも適用でき、現在のインスタンス内でメッセージを配信するように指定します。
AutoCreatedLocal の優先度は、サービス名またはブローカー インスタンスを明示的に指定したルートよりも低くなります。
AutoCreatedLocal は既定でmsdbに存在するため、Service Broker は現在のインスタンス内のインスタンスの外部からすべてのメッセージを配信しようとします。 多くの場合、データベース管理者は、 を削除することで、インスタンスの外部からサービスへのアクセスを制限します。 次にデータベース管理者は、リモート インスタンスと通信する各サービスについて、ルートを作成します。
ルートの有効期限を管理する
ほとんどの場合、ルートの有効期限が切れる必要はありません。 ルートは、ルート オブジェクトが存在する間、アクティブ状態を維持します。 ルートの接続先アドレスが変更された場合、管理者は、ルートを変更してアドレスを更新するか、またはルートを削除します。
ただし、動的ルーティングを使用するアプリケーションでは、ルートの有効期限を使用して、ルーティング情報を最新の状態に保つことができます。 Service Broker は、期限切れのルートをデータベースから削除しません。 ルートの有効期限を使用するアプリケーションでは、SQL Server エージェント ジョブを作成して、有効期限の切れたルート オブジェクトを定期的に削除する必要があります。