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サーバーが起動したら、管理コンソールにログインし、 タブを選択します。 メニューを展開した後、 メニューを展開し、 をクリックします。JMS Messaging Provider テーブルの Default の横にある をクリックし、 をクリックして 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.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.xsdDTD を確認します。