われわれが知っているように、分離と不可分性は2つの異なるプロパティです。 Atomicityは、トランザクションが正常に完了したか、完全に失敗したかを示す「すべてかどうか」のプロパティです。 Atomicityは、JTAとJTAが基づいているX/Open XA Two Phase Commit Standardによって確実にサポートされています。JTAを使用した分散(グローバル)トランザクションにおける分離
私の質問です:JTAは分離をサポートしていますか?私は、EJBとJDBC、JTA以外のフレームワーク(Springなど)やトランザクションマネージャを使用しない場合にのみ言及します。
つまり、複数のスレッドがある場合を考えてみましょう。そのうちの1つが、複数のデータベースに対してアクセスと変更を行うグローバルトランザクションを実行するとしましょう。他のスレッドはデータベースに対して変更を実行しますが、各スレッドは1つのデータベースに対してのみ変更を実行し、トランザクション内でそれを行います。
グローバルトランザクション内でdirty/repeatable/phantomのような並行性の問題が生じるでしょうか?
AFAIK JTAで分離レベルを指定する方法はありません。
[OK]を、私はとても愚かなことができ、単純なJTAグローバル・トランザクションの実装のすべての詳細を学習するプロセスでは、実際によ質問。 JDBCを使用して2つの異なるデータベースにアクセスするJTAトランザクションがあるとします。実際にはそれぞれ異なることがあり、アトミック性の問題を解決する目的の分離レベルでConnection.setTransactionIsolationを呼び出すことはできません。私が少しの研究から理解しているように、トランザクションのすべてのリソースに共通の分離レベルを「伝播」することはできませんが、各リソースごとに個別に設定することはできません。右? – Bat0u89
また、すべてのトランザクションリソースで分離レベルを "TRANSACTION_SERIALIZABLE"に設定した場合、同時アクセス権の可能性があるため、分離(データ整合性)の問題は発生しません。 – Bat0u89