17.6. 設定

17.6.1. JMS サーバーの設定

HornetQ 向けに JMS サーバーを設定するには、サーバー設定ファイルを編集します。サーバー設定は、ドメインサーバーの EAP_HOME/domain/configuration/domain.xml ファイル、またはスタンドアロンの EAP_HOME/standalone/configuration/standalone.xml ファイルに含まれています。
<subsystem xmlns="urn:jboss:domain:messaging:1.3"> 要素には、すべての JMS 設定が含まれています。JNDI に必要な JMS の ConnectionFactoryQueue、または Topic インスタンスを追加します。
  1. JBoss EAP 6 で JMS サブシステムを有効にします。

    <extensions> 要素に、以下の行が存在し、コメントアウトされていないことを確認します。
    <extension module="org.jboss.as.messaging"/>
  2. 基本の JMS サブシステムを追加します。

    メッセージングサブシステムが設定ファイルに存在しない場合は、追加します。
    1. 使用するプロファイルに該当する <profile> を探し、<subsystems> タグを見つけます。
    2. <subsystems> タグのすぐ下に新しい行を追加します。以下をその行に貼り付けます。
      <subsystem xmlns="urn:jboss:domain:messaging:1.3">
      
      </subsystem>
      その他の設定はすべて、その上の空いている行に追加します。
  3. JMS の基本設定を追加します。

    <journal-file-size>102400</journal-file-size>
    <journal-min-files>2</journal-min-files>
    <journal-type>NIO</journal-type>
    <!-- disable messaging persistence -->
    <persistence-enabled>false</persistence-enabled>
    要件に合わせて上記の値をカスタマイズします。

    警告

    journal-file-size の値が、サーバーへ送信されたメッセージのサイズよりも大きくないと、サーバーはメッセージを格納できません。
  4. HornetQ に接続ファクトリインスタンスを追加します。

    クライアントは、JMS ConnectionFactory オブジェクトを使い、サーバーへの接続を確立します。JMS 接続ファクトリーオブジェクトを HornetQ に追加するには、次のように接続ファクトリごとに、単一の <jms-connection-factories> タグと <connection-factory> 要素が含まれるようにします。
    <subsystem xmlns="urn:jboss:domain:messaging:1.3">
      ...
      <jms-connection-factories>
        <connection-factory name="myConnectionFactory">
          <connectors>
            <connector-ref connector-name="netty"/>
          </connectors>
          <entries>
            <entry name="/ConnectionFactory"/>           
          </entries>
        </connection-factory>
      </jms-connection-factories>
      ...
    </subsystem>
  5. netty コネクターを設定します。

    この JMS 接続ファクトリは、netty コネクターを使用します。これは、サーバー設定ファイルにデプロイされたコネクターオブジェクトへの参照です。コネクターオブジェクトは、実際にサーバーへ接続するため使用する、トランスポートとパラメーターを定義します。
    netty コネクターを設定するには、以下の設定が含まれるようにします。
    <subsystem xmlns="urn:jboss:domain:messaging:1.3">
      ...
      <connectors>
        <netty-connector name="netty" socket-binding="messaging"/>
        <netty-connector name="netty-throughput" socket-binding="messaging-throughput">
          <param key="batch-delay" value="50"/>
        </netty-connector>
        <in-vm-connector name="in-vm" server-id="0"/>
      </connectors>
      ...
    </subsystem>
    コネクターは、messaging および messaging-throughput ソケットバインディングを参照します。messaging ソケットバインディングは、ポート 5445 を使用し、messaging-throughput ソケットバインディングはポート 5455 を使用します。 以下のソケットバインディングが <socket-binding-groups> 要素に存在するようにしてください。
    <socket-binding-groups>
      ...
      <socket-binding-group ... >
        <socket-binding name="messaging" port="5445"/>
        <socket-binding name="messaging-throughput" port="5455"/>
        ...
      </socket-binding-group>
      ...
    </socket-binding-groups>
  6. キューインスタンスを HornetQ への追加します。

    HornetQ 向けにキューインスタンス (または JMS 宛先) を設定する方法は 4 つあります。
    • 管理コンソールの使用
      管理コンソールを使用するには、サーバーを Message-Enabled モードで起動する必要があります。これには、-c オプションを使用し、standalone-full.xml (スタンドアロンサーバー向け) 設定ファイルの使用を強制します。たとえば、スタンドアロンモードでは以下を使用するとサーバーをメッセージ有効モードで起動できます。
      ./standalone.sh -c standalone-full.xml
      サーバーが起動したら、管理コンソールにログインし、Profile → Messaging → Destinations → default → View の順で選択します。Add ボタンをクリックし、JMS 宛先の詳細を入力します。
    • 管理 CLI の使用:
      最初に、管理 CLI へ接続します。
       bin/jboss-cli.sh --connect
      次に、メッセージングサブシステムに移動します。
      cd /subsystem=messaging/hornetq-server=default
      最後に、add 操作を実行します。以下の例の値は独自の値の置き換えてください。
      ./jms-queue=testQueue:add(durable=false,entries=["java:jboss/exported/jms/queue/test"])
    • JMS 設定ファイルの作成および deployments フォルダーへの追加
      最初に、JMS 設定ファイル example-jms.xml を作成します。以下のエントリーを追加し、値は独自の値に置き換えます。
      <?xml version="1.0" encoding="UTF-8"?>				  	  <messaging-deployment xmlns="urn:jboss:messaging-deployment:1.0">
          <hornetq-server>
              <jms-destinations>
                  <jms-queue name="testQueue">
                      <entry name="queue/test"/>
                      <entry name="java:jboss/exported/jms/queue/test"/>
                  </jms-queue>
                  <jms-topic name="testTopic">
                      <entry name="topic/test"/>
                      <entry name="java:jboss/exported/jms/topic/test"/>
                  </jms-topic>
              </jms-destinations>
          </hornetq-server>
      </messaging-deployment>
      このファイルを deployments フォルダーに保存し、デプロイメントを実行します。
    • JBoss EAP 6 の設定ファイルにエントリーを追加します。
      standalone-full.xml を例として使用し、このファイルでメッセージングサブシステムを見つけます。
      <subsystem xmlns="urn:jboss:domain:messaging:1.3">
      再度、以下のエントリーを追加し、例の値は独自の値に置き換えます。これらのエントリーは </jms-connection-factories> 終了タグと </hornetq-server> 要素の間に追加する必要があります。
      <jms-destinations>
              <jms-queue name="testQueue">
                  <entry name="queue/test"/>
                  <entry name="java:jboss/exported/jms/queue/test"/>
              </jms-queue>
              <jms-topic name="testTopic">
                  <entry name="topic/test"/>
                  <entry name="java:jboss/exported/jms/topic/test"/>
              </jms-topic>
          </jms-destinations>
  7. 追加設定

    追加設定が必要な場合は EAP_HOME/docs/schema/jboss-messaging_1_3.xsd の DTD を確認します。