タグ

txに関するhiyangのブックマーク (4)

  • 分散トランザクションに挑戦しよう!

    では、複数のデータベースに対してアクセスする場合、どのようにすれば原子性を保証できるのでしょうか。これを解決するのが、図 2 に示す 2 フェーズコミットと呼ばれる方法です。 2 フェーズコミットでは、図 2 のようにトランザクションのコミット処理を 2 段階のフェーズにわけることによって原子性を保証します。ちなみに図 2 の UML 表記は、厳密ではありません。どのようなメッセージが交換されるのかについてのみ注目してください。 第 1 フェーズでは、まず、各データベースに対してコミットできる状態であるかどうかを確認するための準備 ( 図 2 の prepare ) の指示を送ります。これを受けた各データベースは、コミットできる状態かどうかをアプリケーションに伝えます。この処理を「投票する」と呼びます。コミットができる状態であれば、コミット予定の内容を確定させた後、アプリケーションに対して

  • JDBC XAデータソース - nekop's blog

    JBoss Advent Calendar 2011の14日目のエントリです。今日はJDBC XAデータソースの説明。 XAってなによ? ツーフェーズコミット(2相コミット, 2PC)するためのインタフェースです。 XAとか2PCってどんなときに使うの? 一つのトランザクションで2つ以上のトランザクショナルリソース(JDBC JCAリソースアダプタ=データベースとか、JMS JCAリソースアダプタとか)を扱う場合に利用します。 XAとか2PCってなんで必要なの? 例えばデータベースが二つ、DB-AとDB-Bがあって、DB-AからDB-Bにデータを移す処理をするとします。このとき、DB-AからSELECTして削除してDB-Bにインサートする、というようなことをするわけですが、この処理が途中で落ちたら即データ消滅、データ重複などのデータ不整合という結果になってしまいます。XAを使うとこういった

    JDBC XAデータソース - nekop's blog
  • グローバルトランザクション/分散トランザクションについて - スティルハウスの書庫の書庫

    「グローバルトランザクション」という言葉の意味について、昨日の飲み会で議論になったので、まとめ。 グローバルトランザクションと分散トランザクション グローバルトランザクションは、分散トランザクションと同義です。グローバルトランザクションは複数のリソースマネージャを含むトランザクションを指します。一方、ローカルトランザクションは単一のリソースマネージャ(DB等)のみで構成されるトランザクションを指します。 http://download.oracle.com/docs/cd/B14117_01/java.101/b10979/xadistra.htm#i1066628 A distributed transaction, sometimes referred to as a global transaction, is a set of two or more related transac

    グローバルトランザクション/分散トランザクションについて - スティルハウスの書庫の書庫
    hiyang
    hiyang 2012/03/15
  • 1