設定ファイルは、
${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>
${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.
通常別サーバの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?でやるって事みたいですね。
この記事は
現在のアクセス:16143