2


0

複数のJVMにわたるトランザクション制御

私は標準的なJavaの問題であると思われるものを持っています:Oracleでは、複数のデータベーストランザクションはすべてコミットする必要があるか、まったくコミットする必要がありません。 これは、各プロセスが別々のJVMにあるという事実によって複雑になります。

モジュールは、パイプライン構成のJMSキューによって接続されます。 アイデアは、一連のメッセージをパイプラインに渡すことができ、すべての処理が完了すると、調整モジュールからメッセージを送信して、すべてのトランザクションをコミットできるようにすることです。

賢明なレベルの堅牢性で、複数のJVM間でコミットを同期することは可能ですか?

2 Answer


2


トランザクションに複数の参加者がいる場合、http://en.wikipedia.org/wiki/X/Open_XA [XA]のような2フェーズコミットプロトコルが必要です。

JMSを使用する場合、http://www.javaworld.com/javaworld/jw-02-2002/jw-0315-jms.html [JMSトランザクション]を使用するオプションがあります。

また、http://activemq.apache.org/should-i-use-xa.html [こちら]は、2つのオプションの比較です。


1


http://betathoughts.blogspot.com/2007/06/brief-history-of-consensus-2pc-and.html [コンセンサス、2PC、トランザクションコミットの簡単な歴史]を読むことに興味があるかもしれません。