IBM WebSphere MQ with Sun Generic Resource Adapter for JMS on GlassFish
Sun Generic Resource Adapter for JMSと IBM WebSphere MQ の組み合わせをGlassFish上で動かしてみます。
Sun Generic Resource Adapter for JMSのデプロイ
管理コンソールのアプリケーション > コネクタモジュールから配備します。ファイルを選択して「了解」ボタンをクリックするとリソースアダプタのプロパティー編集画面へ遷移します。ここでorg.seasar.jms.core.deploy.impl.WMQResourceAdapterDeployer#setupProperties()にてセットされている通りにプロパティをセットします。
コネクタ接続プールの作成
管理コンソールのリソース > コネクタ > コネクタ接続プールから作成します。リソースアダプタには先ほどデプロイしたものを指定します。次の画面で追加プロパティを設定しますが、ここにはorg.seasar.jms.core.deploy.impl.JMSManagedConnectionFactoryDeployer#setProperty()と同じものを設定します(名前:ConnectionFactoryProperties,値:QueueManager=Xxx,…)。
コネクタリソースの作成
管理コンソールのリソース > コネクタ > コネクタリソースから作成します。今回JNDI名は/jms/connectionとしました。
以上でGlassFish側の設定は終了です。次にS2JMSの設定です。
S2JMS側ではリソースアダプタの設定が不要になります。コネクションファクトリをlookupするだけになります。
jms.dicon
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/dtd/components24.dtd"> <components> <!-- コネクションファクトリ --> <component class="javax.jms.QueueConnectionFactory"> @org.seasar.extension.j2ee.JndiResourceLocator@lookup("jms/connection") </component> <!-- セッションファクトリ --> <component class="org.seasar.jms.core.session.impl.SessionFactoryImpl" /> <!-- メッセージ送信コンポーネント --> <component instance="prototype" class="org.seasar.jms.core.impl.MessageSenderImpl"> <property name="destinationFactory"> <!-- デスティネーション (キューまたはトピック) ファクトリ --> <component class="org.seasar.jms.core.destination.impl.QueueFactory"> <!-- キュー名を指定します --> <property name="name">"TEST_QUEUE"</property> </component> </property> </component> </components>
s2container.dicon
こちらの設定も忘れずに。。。これでJDBC,JMSともにGlassFishのJTAで動かすことができます。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/dtd/components24.dtd"> <components> <include condition="#ENV == 'ut'" path="warmdeploy.dicon" /> <include condition="#ENV == 'ct'" path="hotdeploy.dicon" /> <include condition="#ENV != 'ut' and #ENV != 'ct'" path="cooldeploy.dicon" /> <component class="org.seasar.framework.container.factory.SimplePathResolver"> <initMethod name="addRealPath"> <arg>"jta.dicon"</arg> <arg>"jta-sun9.dicon"</arg> </initMethod> </component> </components>