
Service Broker を使用して SQL Server から通知を受信するアプリケーションがあります。SQL Always On が有効になっていない場合や、単一の DB とやり取りしている場合、アプリケーションは正常に動作します。
最近、SQL Always On を導入しました。SQL Node1 から別の SQL Node2 にフェイルオーバーすると、SQL Node2 からの通知が届かなくなります。フェイルオーバーを実行する前は、SQL Always On が使用されている場合でも通知を受け取っています。通知を再度取得するには、サービス ブローカー コントラクト メッセージ、特定のサービスおよびキューの待機および受信コマンドなどを再度送信する必要があります。これは、サービスを再起動するのと同じです。
インターネットで調べてみたらSQL Always On の Service Broker に関する MSDN の記事私は上記の記事のこのセクション、特にセクションに記載されている手順を実行しました可用性グループ内のサービスがリモート メッセージを受信するための要件。
上記の記事で言及されている 4 番目のステップ:msdb に AutoCreatedLocal ルートまたは特定のサービスへのルートのいずれかが含まれていることを確認します。しかし、AutoCreatedLocal はデフォルトで存在していたため、4 番目の手順では何もしませんでした。
しかし、フェイルオーバー後も通知が届きません。
欠けている手順や正しく実行されていない手順、または対処する必要がある追加項目についてご提案いただけますか。