0

ステートメント (基本的な挿入、更新、削除) を実行するときに、JDBC を使用して複数のデータベースをターゲットにする方法はありますか。

たとえば、サーバー [200.200.200.1] と [200.200.200.2] の両方に という名前MyDatabaseのデータベースがあり、データベースはまったく同じであるとします。"INSERT INTO TestTable VALUES(1, 2)"両方のデータベースで同時に実行したいと思います。

JTA/XAに関する注意:

同じトランザクションで複数のデータベースを対象とする JTA/XA アーキテクチャを開発していますが、しばらくは準備が整いません。可能であれば、標準の JDBC バッチ コマンドを使用して、今のところ複数のサーバーにヒットさせたいと考えています。トランザクションセーフではないことはわかっています。現時点では、基本的なテストのためにコマンドを両方のサーバーにヒットさせたくありません。

4

2 に答える 2

2

データベースごとに 1 つの接続が必要です。それらがあれば、標準の自動コミット/ロールバック呼び出しが機能します。

春を試すことができます。すでにトランザクションマネージャーが設定されています。

Spring を使用しない場合でも、CLASSPATH で JDBC ドライバー JAR の XA バージョンを取得するだけで済みます。それらがないと、2 フェーズ コミットは機能しません。

データベースを使用したレプリケーションは良い考えではないでしょうか。中間層がデータベースのクラスタリングに注意を払う必要があるのはなぜですか?

于 2012-11-28T14:18:13.377 に答える
1

開発のための最も手っ取り早い方法は、複数のデータベース接続を使用することです。それらは異なる接続にあるため、同じトランザクションにはなりません。これが単なるテスト用であれば、これはそれほど問題にはならないと思います。

JTA/XA アーキテクチャの準備ができたら、それを既に動作しているコードにプラグインするだけです。

于 2012-11-28T14:22:38.690 に答える