20.8. 設定
20.8.1. JMS サーバーの設定
HornetQ 向けに JMS サーバーを設定するには、サーバー設定ファイルを編集します。サーバー設定は、ドメインサーバーの
EAP_HOME/domain/configuration/domain.xml
ファイル、またはスタンドアロンの EAP_HOME/standalone/configuration/standalone-full.xml
ファイルに含まれています。
サーバー設定ファイルの
<subsystem xmlns="urn:jboss:domain:messaging:1.4">
要素には、すべての JMS 設定が含まれています。JNDI に必要な JMS の ConnectionFactory
、Queue
、または Topic
インスタンスを追加します。
JBoss EAP 6 で JMS サブシステムを有効にします。
<extensions>
要素内に以下の行が存在し、コメントアウトされていないことを確認します。<extension module="org.jboss.as.messaging"/>
基本の JMS サブシステムを追加します。
メッセージングサブシステムが設定ファイルに存在しない場合は、追加します。- 使用するプロファイルに該当する
<profile>
を探し、<subsystems>
タグを見つけます。 <profile>
タグのすぐ後に以下の XML を追加します。<subsystem xmlns="urn:jboss:domain:messaging:1.4"> <hornetq-server> <!-- ALL XML CONFIGURATION IS ADDED HERE --> </hornetq-server> </subsystem>
その他の設定はすべて、その上の空いている行に追加します。
JMS の基本設定を追加します。
<subsystem xmlns="urn:jboss:domain:messaging:1.4">
<hornetq-server>
タグの後の空行に以下の XML を追加します。<journal-min-files>2</journal-min-files> <journal-type>NIO</journal-type> <persistence-enabled>true</persistence-enabled>
ニーズに合わせて上記の値を変更します。警告
journal-file-size
の値がmin-large-message-size
の値 (デフォルトでは 100KiB) 以上でないと、サーバーはメッセージを保存できません。HornetQ に接続ファクトリーインスタンスを追加します。
クライアントは、JMSConnectionFactory
オブジェクトを使い、サーバーへの接続を確立します。JMS 接続ファクトリーオブジェクトを HornetQ に追加するには、次のように接続ファクトリごとに、単一の<jms-connection-factories>
タグと<connection-factory>
要素が含まれるようにします。<jms-connection-factories> <connection-factory name="InVmConnectionFactory"> <connectors> <connector-ref connector-name="in-vm"/> </connectors> <entries> <entry name="java:/ConnectionFactory"/> </entries> </connection-factory> <connection-factory name="RemoteConnectionFactory"> <connectors> <connector-ref connector-name="netty"/> </connectors> <entries> <entry name="java:jboss/exported/jms/RemoteConnectionFactory"/> </entries> </connection-factory> <pooled-connection-factory name="hornetq-ra"> <transaction mode="xa"/> <connectors> <connector-ref connector-name="in-vm"/> </connectors> <entries> <entry name="java:/JmsXA"/> </entries> </pooled-connection-factory> </jms-connection-factories>
netty
コネクターおよびアクセプターを設定します。この JMS 接続ファクトリーはnetty
アクセプターおよびコネクターを使用します。これらは、サーバー設定ファイルにデプロイされたコネクターおよびアクセプターオブジェクトへの参照です。コネクターオブジェクトは、HornetQ サーバーへ接続するために使用されるトランスポートとパラメーターを定義します。アクセプターオブジェクトは HornetQ サーバーによって許可される接続のタイプを識別します。netty
コネクターを設定するには、以下の設定が含まれるようにします。<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>
netty
アクセプターを設定するには、以下の設定が含まれるようにします。<acceptors> <netty-acceptor name="netty" socket-binding="messaging"/> <netty-acceptor name="netty-throughput" socket-binding="messaging-throughput"> <param key="batch-delay" value="50"/> <param key="direct-deliver" value="false"/> </netty-acceptor> <in-vm-acceptor name="in-vm" server-id="0"/> </acceptors>
設定を確認します。
これまでの手順に従った場合、メッセージサブシステムは以下のようになるはずです。<subsystem xmlns="urn:jboss:domain:messaging:1.4"> <hornetq-server> <journal-min-files>2</journal-min-files> <journal-type>NIO</journal-type> <persistence-enabled>true</persistence-enabled> <jms-connection-factories> <connection-factory name="InVmConnectionFactory"> <connectors> <connector-ref connector-name="in-vm"/> </connectors> <entries> <entry name="java:/ConnectionFactory"/> </entries> </connection-factory> <connection-factory name="RemoteConnectionFactory"> <connectors> <connector-ref connector-name="netty"/> </connectors> <entries> <entry name="java:jboss/exported/jms/RemoteConnectionFactory"/> </entries> </connection-factory> <pooled-connection-factory name="hornetq-ra"> <transaction mode="xa"/> <connectors> <connector-ref connector-name="in-vm"/> </connectors> <entries> <entry name="java:/JmsXA"/> </entries> </pooled-connection-factory> </jms-connection-factories> <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> <acceptors> <netty-acceptor name="netty" socket-binding="messaging"/> <netty-acceptor name="netty-throughput" socket-binding="messaging-throughput"> <param key="batch-delay" value="50"/> <param key="direct-deliver" value="false"/> </netty-acceptor> <in-vm-acceptor name="in-vm" server-id="0"/> </acceptors> </hornetq-server> </subsystem>
ソケットバインディンググループを設定します。
Netty コネクターは、messaging
およびmessaging-throughput
ソケットバインディングを参照します。messaging
ソケットバインディングは、ポート 5445 を使用し、messaging-throughput
ソケットバインディングはポート 5455 を使用します。<socket-binding-group>
タグはサーバー設定ファイルの別のセクションにあります。以下のソケットバインディングが<socket-binding-groups>
要素に存在するようにしてください。<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> ... <socket-binding name="messaging" port="5445"/> <socket-binding name="messaging-throughput" port="5455"/> ... </socket-binding-group>
キューインスタンスを HornetQ への追加します。
HornetQ 向けにキューインスタンス (または JMS 宛先) を設定する方法は 4 つあります。- 管理コンソールの使用管理コンソールを使用するには、サーバーを
Message-Enabled
モードで起動する必要があります。これには、-c
オプションを使用し、standalone-full.xml
(スタンドアロンサーバー向け) 設定ファイルの使用を強制します。たとえば、スタンドアロンモードでは以下を使用するとサーバーをメッセージ有効モードで起動できます。./standalone.sh -c standalone-full.xml
サーバーが起動したら、管理コンソールにログインし、Default の横にある をクリックし、 をクリックして JMS 宛先の詳細を入力します。タブを選択します。 メニューを展開した後、 メニューを展開し、 をクリックします。JMS Messaging Provider テーブルの - 管理 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.4">
再度、以下のエントリーを追加し、例の値は独自の値に置き換えます。これらのエントリーは </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>
追加の設定を実行します。
追加の設定が必要な場合はEAP_HOME/docs/schema/jboss-as-messaging_1_4.xsd
DTD を確認します。