1

2 つのノードの可用性グループがあります。2 つのノードはSQL cluster1- node1SQL cluster 2- node2可用性グループ リスナーです。Java アプリケーションはこのリスナーに接続しており、最初はすべて正常に動作しています。つまり、フェイルオーバーを実行するまで、アプリケーションはデータベースで読み取り/書き込みの両方を実行できます。

コネクタ文字列はdriverURL=jdbc:jtds:sqlserver://[Listerner DNS Name]:[Port]/[Database]

最初は node1 がプライマリで、node2 がセカンダリだったとします。フェールオーバー後、node1 はセカンダリになり、node2 はプライマリになります。これで、アプリケーションは引き続きデータベースに接続できますが、データベースで読み取りしか実行できません。その DB に挿入しようとすると、アプリケーションは例外 (タイトルに記載されています) をスローします。

基本的に、どのノードがプライマリであるかに関係なく、アプリケーションが常に読み取り/書き込みを実行できるようにする必要があります。何か案は ?

4

1 に答える 1

-1

接続文字列がリスナーを指しているときに、読み取り専用データベースを取得する理由はありません。これが avail grp リスナーのポイントです。フローを読み取り/書き込み (プライマリ) データベースに向けます。DNS 名を ping し、それがリスナーに解決されることを確認します (AG フェイルオーバーの前後)。残念ながら、私は Java を使用していないため、これ以上お手伝いすることはできません。乾杯、マーク。

于 2016-04-11T06:12:35.107 に答える