Oracle,DB2,ActiverDirectoryで分散トランザクション
先日来の業務アプリ。
oracle、DB2/400のテーブルとActiveDirectoryを更新するアプリケーションで
3テーブルをトランザクション管理する。
勉強不足でActiveDirectoryは管理外。更新順をDB2→oacle→ADとすることで
DB2、oracle、ADの更新処理でのexception発生時はrollback可能にした。
ただコミット時のエラーではADのみ更新されてしまう。
調査を継続せねばならない。
トランザクション管理の設定については、
こちらの12.2.7 トランザクション管理戦略を参考。
framework:struts1.2,spring(2.5.6)、ORM:Hibernate、Webコンテナ:tomcat6を利用。
(applicationContext.xml)
コンテナのJTAサブシステムに移譲するので、
tomcatのserver.xml,\conf\Catalina\localhost\(project名).xmlに設定。
勉強不足で、なぜかserver.xmlと\conf\Catalina\localhost\(project名).xmlの2つに分けて記述しないとエラー発生。
server.xml
\conf\Catalina\localhost\(project名).xml
最後にtomatでは、JTAの実装がないので、オープンソースのJOTMを利用してJTAを利用。
こちらを参考にして、JTAの実装をインストール。