Atmikosには2つのEditionがあり、違いは以下にまとめる。
TransactionsEssentials Freeだが、サポートなし、機能が限定的:Apache License 2
ExtremeTransactions Close、有料、サポートあり、フル機能
基本としては、JTAに必要な諸機能(Recoveryあり)とJDBC/JMSのPOOLがあるようだ。
また、実装がSpringベースらしいが、他のF/Wとの混在も問題ないようだ。
ただし、JNDIサーバは含まれていないため、必要はオブジェクトは直接的に生成・取得が必要だ。
■初期設定
Rootのクラスパスにある、「jta.properties」ファイルから設定を読み込む。
-Dcom.atomikos.icatch.file=
指定できるプロパティ類は、「com.atomikos.icatch.config.TSInitInfo」に定義してあるもの。
必須定義は:以下のもので、右辺はノーマル設定の推奨値
com.atomikos.icatch.service=com.atomikos.icatch.standalone.UserTransactionServiceFactory
■必要なライブラリ
ダウンロードして確認した範囲では、以下のもの。
jca.jar;jms.jar;jmx.jar;jta.jar;servlet-2.3.jar;slf4j-api-1.4.3.jar;slf4j-noop-1.4.3.jar
ということは、Springには依存しないようだ。
■使用方法
Pool用のオブジェクトを生成して使用する、UserTransactionなども同様。JNDIに登録してもよい。
JDBC:
AtomikosDataSourceBean ds = new AtomikosDataSourceBean();
ds.setUniqueResourceName("oracle");
.....
MQ:mqXaFactoryが定義済みの場合のSpringのBean定義
<bean id="atomikosConnectionFactory" class="com.atomikos.jms.QueueConnectionFactoryBean">
<property name="xaQueueConnectionFactory"><ref bean="mqXaFactory"/></property>
<!-- IMPORTANT: the resourceName MUST contain MQSeries_XA_RMI -->
<property name="resourceName" value="My_MQSeries_XA_RMI"/>
</bean>
TransactionMgr系:Atomikosのものを生成して使用する
■TODO
・Stand-AloneでのJNDIへの登録と使用
・S2から使用する場合のDicon定義
・依存するライブラリ