38.2.3. 専用リモートサーバー

例38.5 リモート JCA サーバー

この例では、HornetQ ライブインスタンスがリモートサーバー EAP1 に保存されます。バックアップ HornetQ インスタンスは EAP1(B) に保存されます。JCA とアプリケーションは個別の EAP2 インスタンスに保存されます。
フェイルオーバーが発生した場合は、アプリケーション (JCA 経由) が独自の JBoss Enterprise Application Platform インスタンスの HornetQ サーバーにより処理されます。
両方の HornetQ インスタンスがリモートサーバーに存在するため、JCA 接続ファクトリーを EAP2 サーバーで設定して、アプリケーションをライブ HornetQ サーバーとバックアップ HornetQ サーバーに適切に提供する必要があります。

手順38.12 JCA 接続ファクトリーの設定

以下の手順に従い、さまざまな設定ファイルで Outbound および Inbound JCA コネクター要素を設定します。ステップタイトルで識別された主要なステップをコピーします。
  1. production サーバープロファイルをコピーして、EAP2 に名前を変更します。
  2. EAP2 インスタンスで、$JBOSS_HOME/server/EAP2/deploy/hornetq/jms-ds.xml に移動します。
  3. デフォルトの jms-ds.xml では、次の <config-property> 設定が <tx-connection-factory> に存在します。
    <?xml version="1.0" encoding="UTF-8"?>
    <connection-factories>
       <!-- JMS Stuff -->
    
       <mbean code="org.jboss.jms.jndi.JMSProviderLoader" 
        name="hornetq:service=JMSProviderLoader,name=JMSProvider">
          <attribute name="ProviderName">DefaultJMSProvider</attribute>
          <attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
          <attribute name="FactoryRef">java:/XAConnectionFactory</attribute>
          <attribute name="QueueFactoryRef">java:/XAConnectionFactory</attribute>
          <attribute name="TopicFactoryRef">java:/XAConnectionFactory</attribute>
       </mbean>
       
       <!-- JMS XA Resource adapter, use this to get transacted JMS in beans -->
    
       <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="java.lang.String">javax.jms.Topic</config-property>
          <config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/DefaultJMSProvider</config-property>
          <max-pool-size>20</max-pool-size>
          <security-domain-and-application>JmsXARealm</security-domain-and-application>
       </tx-connection-factory>
    </connection-factories>
    
  4. Outbound JCA コネクターの設定

    以下のコード例で示されたように <config-property> 要素を追加します。

    重要

    [live_server_IP_address] と [live_server_port_number] をライブサーバーのネットワークアドレスの場所と置き換えます。
    IP アドレス/ポートの組み合わせを設定するために検出を使用している場合は、設定されたブロードキャストグループに一致するように、<DiscoveryAddress><DiscoveryPort> に適切なパラメーターを設定します。
    <?xml version="1.0" encoding="UTF-8"?>
    <connection-factories>
       <!-- JMS Stuff -->
    
       <mbean code="org.jboss.jms.jndi.JMSProviderLoader" 
        name="hornetq:service=JMSProviderLoader,name=JMSProvider">
          <attribute name="ProviderName">DefaultJMSProvider</attribute>
          <attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
          <attribute name="FactoryRef">java:/XAConnectionFactory</attribute>
          <attribute name="QueueFactoryRef">java:/XAConnectionFactory</attribute>
          <attribute name="TopicFactoryRef">java:/XAConnectionFactory</attribute>
       </mbean>
       
       <!-- JMS XA Resource adapter, use this to get transacted JMS in beans -->
    
       <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="java.lang.String">javax.jms.Topic</config-property>
          <config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/DefaultJMSProvider</config-property>
          <config-property name="ConnectorClassName" type="java.lang.String">org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</config-property>
          <config-property name="ConnectionParameters" type="java.lang.String">host=[live_server_IP_address];port=[live_server_port_number]</config-property>
          <max-pool-size>20</max-pool-size>
          <security-domain-and-application>JmsXARealm</security-domain-and-application>
       </tx-connection-factory>
    </connection-factories>
    
  5. テキストエディターで $JBOSS_HOME/server/EAP2/deploy/jms-ra.rar/META-INF/ra.xml を開きます。
  6. ra.xml で、<resourceadapter> を検索します。
  7. Inbound コネクターの設定

    "The transport type" および "The transport configuration..." <config-property> 要素と、その子要素を以下の設定と置き換えます。

    重要

    [live_server_IP_address] と [live_server_port_number] をライブサーバーのネットワークアドレスの場所と置き換えます。
    IP アドレス/ポートの組み合わせを設定するために検出を使用している場合は、設定されたブロードキャストグループに一致するように、<DiscoveryAddress><DiscoveryPort> に適切なパラメーターを設定します。
    自動検出を使用している場合は、ConnectorClassName ディレクティブと ConnectionParameters ディレクティブをコメントアウトします。
    <?xml version="1.0" encoding="UTF-8"?>
    
    <!-- Preceeding parts of config file removed for readability -->
    
    <resourceadapter>
       <resourceadapter-class>org.hornetq.ra.HornetQResourceAdapter</resourceadapter-class>
       <config-property>
          <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.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>host=[live_server_IP_address];port=[live_server_port_number]</config-property-value>
       </config-property>
       <config-property>
          <description>Do we support HA</description>
          <config-property-name>HA</config-property-name>
          <config-property-type>java.lang.Boolean</config-property-type>
          <config-property-value>true</config-property-value>
       </config-property>
    
    <!-- Rest of config file removed for readability -->
    
    <resourceadapter>