リモートのHornetQに対して2PCするためのadapter設定
先にrecovery設定して満足していた。本末転倒なり。
アプリからjava:/JmsXAをlookupするには、hornetq-ra.rarとアダプタ設定ファイルを接続元にデプロイする。Nettyコネクタを使うので、いくつかhornetq-ra.rarにjarを追加する必要がある。
hornetq-ra.rar/ |-- META-INF | |-- MANIFEST.MF | `-- ra.xml |-- hornetq-core-client.jar |-- hornetq-jms.jar |-- hornetq-ra.jar |-- hornetq-transports.jar `-- netty.jar
- hornetq-ds.xml
<tx-connection-factory> <jndi-name>JmsXA</jndi-name> <xa-transaction/> <rar-name>jms-ra.rar</rar-name> <connection-definition>org.hornetq.ra.HornetQRAConnectionFactory </connection-definition> <config-property name="SessionDefaultType" type="String">javax.jms.Topic </config-property> <config-property name="ConnectorClassName" type="String"> org.hornetq.integration.transports.netty.NettyConnectorFactory </config-property> <config-property name="ConnectionParameters" type="String"> host=rm-v2;port=5445;</config-property> <max-pool-size>20</max-pool-size> </tx-connection-factory>
本当は以上で動作するはず・・・なのだが、なぜかhornetq-ds.xmlのconfig-propertyが反映されない。仕方がないので、ra.xmlを直接編集してしまった。
- hornetq-ra.rar/META-INF/ra.xml
--- ra.xml.orig 2010-06-24 16:47:43.000000000 +0900 +++ ra.xml 2010-06-24 10:51:13.000000000 +0900 @@ -37,13 +37,19 @@ <description>The transport type</description> <config-property-name>ConnectorClassName</config-property-name> <config-property-type>java.lang.String</config-property-type> - <config-property-value>org.hornetq.core.remoting.impl.invm.InVMConnectorFactory</config-property-value> + <config-property-value>org.hornetq.integration.transports.netty.NettyConnectorFactory</config-property-value> </config-property> <config-property> <description>The transport configuration. These values must be in the form of key=val;key=val;</description> <config-property-name>ConnectionParameters</config-property-name> <config-property-type>java.lang.String</config-property-type> - <config-property-value>server-id=0</config-property-value> + <config-property-value>host=rm-v2;port=5445</config-property-value> + </config-property> + <config-property> + <description>The reconnect attempts</description> + <config-property-name>reconnectAttempts</config-property-name> + <config-property-type>java.lang.Integer</config-property-type> + <config-property-value>5</config-property-value> </config-property> <config-property> <description>Use XA?</description>
これでなんとか動作している模様。