現象
Microsoft SQL Server の Always On 可用性グループ (AGs) の一部として展開された SQL Service Broker (SSB) アプリケーションがあることを前提として、AG リスナーを使って接続します。 AG フェールオーバーの後、元のプライマリレプリカの SSB の送信接続は開いたままになります。 これにより、データベースが読み取り専用であるか、アクセスできないことが原因で、SSB 受信メッセージが削除されます。
そのため、SSB メッセージが転送キューに滞留し、複数の Service Broker 接続が AG に存在することを示します。
解決方法
SQL Server の累積更新プログラムの情報:
この問題は、SQL Server の次の累積的な更新プログラムで修正されています。
SQL Server 2016 RTM 用の累積更新プログラム6
SQL Server 2016 SP1 の累積更新プログラム3
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
注:この修正プログラムを適用すると、SQL Server は、フェイルオーバー中に、以前のプライマリ可用性グループのレプリカへの受信と送信の両方の SSB 接続を終了します。これにより、この修正前に削除されたメッセージが新しいプライマリレプリカで確立されると、すぐに新しいプライマリレプリカにリダイレクトされます。
SQL Server の Service Pack 情報:
この問題は、SQL Server 用の次の service pack で修正されています。
Service Pack 4 for SQL Server 2012
Service Pack 2 for SQL Server 2016
最新の service pack の入手方法の詳細については、「 SQL Server 2012 の最新の service pack の入手方法」を参照してください。
SQL Server の Service pack について
サービスパックは累積されます。 Service Pack は累積的であり、 最新の Service Pack には新しい修正プログラムと共に、それ以前の Service Pack に含まれていたすべての修正プログラムが含まれています。 このサービスパックの最新の service pack と最新の累積的な更新プログラムを適用することをお勧めします。 最新の service pack をインストールする前に、以前のサービスパックをインストールする必要はありません。 最新の service pack と最新の累積的な更新プログラムの詳細については、次の記事の表1を参照してください。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
ソフトウェアの更新を説明するために Microsoft が使用する 用語について説明します。