第7章 JBoss Messaging XA 復元の設定
このセクションでは JBoss Enterprise Application Platform の JBoss Messaging リソースに対して XA 復元を処理するための JBoss Transactions の設定方法について説明しています。
JBoss Transactions Recovery Manager は継続的に JBoss Messaging XA リソースをポーリングして復元するように設定できます。これにより、トランザクションで高い耐久性が実現します。
JBoss Transactions Recovery Manager を有効にするには、
$JBOSS_HOME/server/$PROFILE/conf/jbossts-properties.xml に 1 行追加します。次のコードの断片に必要な行が含まれています。
<properties depends="arjuna" name="jta">
<!--
Support subtransactions in the JTA layer?
Default is NO.
-->
<property name="com.arjuna.ats.jta.supportSubtransactions" value="NO"/>
<property name="com.arjuna.ats.jta.jtaTMImplementation"
value="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple"/>
<property name="com.arjuna.ats.jta.jtaUTImplementation"
value="com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple"/>
<!--
*** Add this line to enable recovery for JMS resources using DefaultJMSProvider ***
-->
<property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING1"
value="org.jboss.jms.server.recovery.MessagingXAResourceRecovery;java:/DefaultJMSProvider"/>
</properties>
上記の例では、Recovery Manager は JMS プロバイダローダーの
DefaultJMSProvider を使用して JMS リソースの復元を試行しています。
DefaultJMSProvider には JBoss Enterprise Application Platform が同梱しています。これは $JBOSS_HOME/server/$PROFILE/conf/jms-ds.xml (または、クラスタ環境 hajndi-jms-ds.xml) で定義されています。異なる JMS プロバイダローダー(リモート JMS プロバイダに対応するものなど)で復元を実行するには、プロパティファイルにもう 1 行追加し、DefaultJMSProvider の代わりにご使用のリモートプロバイダを指定します。ご使用のプロバイダ名は、その管理 Bean 設定ファイルに一覧表示されているはずです。
プロバイダにはそれぞれ固有の名前が必要です。例えば、
com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING1、com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING2 などです。
復元は復元可能な XAResources を実装する JMS プロバイダならいずれでも動作するはずです (つまり
XAResource.recover() を正しく実装しているということです)。
クラスタのノードから復元を行う Recovery Manager の場合、クラスタ内のすべてのノードの
hajndi-jms-ds.xml でそれぞれ 1 行追加する必要があります。