2009年4月22日水曜日

Atomikos

FOSSのJTA実装の1つ。他にJOTMがある。AppServerなしで2PCが実行できる。

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定義
・依存するライブラリ

0 件のコメント: