たまには日記の一つでも。

28にしてはじめたバイオリンの記録と、ときどき日曜ハッキング

リモートの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>

これでなんとか動作している模様。