Top / JBoss / TIPS集

Topicを設定

設定ファイルは、

${install_root}/server/default/deploy/jms/jbossmq-destinations-service.xml

記述内容は、serverタグの直下に

<mbean code="org.jboss.mq.server.jmx.Topic"
        name="jboss.mq.destination:service=Topic,name=MyTopic">
   <depends optional-attribute-name="DestinationManager">
        jboss.mq:service=DestinationManager</depends>
 </mbean>

Queueの設定

${install_root}/server/default/deploy/jms/jbossmq-destinations-service.xml に

<mbean code="org.jboss.mq.server.jmx.Queue"
   name="jboss.mq.destination:service=Queue,name=JMSSampleQ">
   <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>

を追加。これで、キュー名(実JNDI名という?)はqueue/JMSSampleQとなる。

ENC(Environment Naming Context:環境ネーミング・コンテキスト)ではなく、直接Lookupするには

(QueueConnectionFactory) con.lookup("queue/JMSSampleQ");

でOK.

リモートのJMSサーバに接続する。

通常別サーバのEJBをlookupするときはjndi.propertiesなどで

java.naming.provider.url=jnp://[別のサーバ名]:1099

として他のサーバのJNDIに問い合わせるのですが、JMSをlookupしたらエラーになってました。jboss-web.xmlの設定をいろいろ変えてみたところ、

  <resource-ref>
     <res-ref-name>jms/JMSSampleCF</res-ref-name>
     <jndi-name>ConnectionFactory</jndi-name>
  </resource-ref>

ConnectionFactory?だとOKで、RMIConnectionFactory?はNG、QueueConnectionFactory?などもNGみたいです。ようするに別サーバの場合はがConnectionFactory?でやるって事みたいですね。


この記事は

選択肢 投票
おもしろかった 1  
そうでもない 0  

Top / JBoss / TIPS集

現在のアクセス:16143


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS