This discussion is archived
1 Reply Latest reply: Jul 31, 2012 6:55 PM by asahide RSS

UnixC と Javaの双方でトランザクション処理を共有する方法について

952920 Newbie
Currently Being Moderated
こんにちは!

過去の資産の関係上、UnixCとJavaの双方でトランザクション処理を共有したいのですが、
コネクションを共有する方法があれば教えてください。

DB : Oracle 10 or 11
OS : RHEL 4 or 5
C compiler : gcc
Java compiler : JDK 6
ブリッジ:JNI,JNA,CNIなど 未定

ex)処理イメージ
①Javaメインを起動
②Java側でDB コネクションを取得
③Java側でInsert処理
④Jata to C ブリッジ接続
⑤C側で更新処理
⑥Java側でコミット or ロールバック
⑦コネクション切断(返却)

※C Javaで別々のコネクションを取得すると可能可能ですが、トランザクションが分かれてしまいます。

C Java の双方でOCIを使用すると可能かも知れませんが、いかがでしょうか?

よろしくお願いします。
  • 1. Re: UnixC と Javaの双方でトランザクション処理を共有する方法について
    asahide Expert
    Currently Being Moderated
    一つのグローバルトランザクション内で複数のトランザクションブランチを実行させたいという内容だと理解してます。


    詳しい実装方法は良く分かってませんが、OCIを使えばできるのではと考えてます。
    <<http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/appdev.111/E05677-02/oci08sca.htm#i450228>>

    ただ、JavaとCなので両方をマネージして同一のグローバルトランザクションだよ、と指定してあげる必要はあるので、なんらかの開発は必要になると思います。


    ちなみに11gからはRAC環境でもロック共有ができるようになってます。
    <<http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/appdev.111/E05687-02/adfns_xa.htm#BGBEECIE>>

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points