// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents

**WAS6.1でJMSを使用する [#d8ca0d53]

WebSphere 6.xから、JMSを使用するときの設定が色々難しくなりましたね。Enterprise Services Bus(ESB)とかようわからんモノの上に構築する必要があるみたいです。とりあえずまとめておきました。

一番わかりやすいチュートリアルはRational Application Developerのヘルプですね。ヘルプをJMSで検索すると出てくるCreating a JMS serverのCreate a server and service integration bus for SOAP over JMS using WebSphere Application Server v6.x を参考にしました。

RAD内にあるServerを使用し、そこにESBのバスはJMSキューなどを構築していきます。


**バスの作成、JMSキュー他の作成 [#q64340a5]
***バスの作成 [#zb2d279f]
-RAD内のサーバを起動します。
-管理コンソールにアクセスし、
 サービス統合 >> バス
にアクセス。新規作成を押下し
 バス名: WS_test_Bus
でバスを作成。

***バスにメンバーを追加 [#ic212aaf]
次にそのバス名をクリックし、
 トポロジー >> バスメンバー
を開き、追加を押下。サーバやクラスタ、WebSphere MQ サーバーから選べるみたいだけど、とりあえず「サーバ」を選択。次に「メッセージ・ストアのタイプ」を選択する画面になるので、とりあえずファイル・ストアを選択。((データ・ストアもある。この場合ストアするデータベースのJNDIなどを指定する))

ファイルストアを選択したとき、ファイルをストアする先などを指定しますが、デフォルトでは、バスメンバ名が
 hoge02.server1-WS_test_Bus
のとき

-ログ・ディレクトリー・パス
 ${USER_INSTALL_ROOT}/filestores/com.ibm.ws.sib/
   hoge02.server1-WS_test_Bus-49204B8DA13668D8/log

-永続ストア・ディレクトリー・パス 
 ${USER_INSTALL_ROOT}/filestores/com.ibm.ws.sib/
   hoge02.server1-WS_test_Bus-49204B8DA13668D8/store

-一時ストア・ディレクトリー・パス
 ${USER_INSTALL_ROOT}/filestores/com.ibm.ws.sib/
   hoge02.server1-WS_test_Bus-49204B8DA13668D8/store

となってました((ちなみに49204B8DA13668D8はメッセージングエンジンのUUIDとかなってましたね。))。






***バスに宛先を作成 [#k933c26e]
次にそのバスの設定画面で
 宛先リソース >> 宛先 
を選択し、宛先画面の新規作成を押下。宛先タイプは「キュー」とし
 ID:ws_test_queueJms
とします。バスメンバはデフォルトで終了すると宛先の作成は完了です。


***JMSのプロバイダにキューを作成 [#fbea7138]
 リソース >> JMSプロバイダ
の画面で、スコープを「サーバ」にし Default messaging provider を選択します。
 追加プロパティー >> キュー
で新規作成し、
 名前:ws_test_queueJms
 JNDI:jms/ws_test_queue
 バス名:WS_test_Bus
 キュー名:ws_test_queueJms
とします。

***JMSのプロバイダにinput queue用のJMS queue connection factoryを作成 [#q17d86eb]
 リソース >> JMSプロバイダ
の画面で、スコープを「サーバ」にし Default messaging provider を選択します。
 追加プロパティー >>  キュー接続ファクトリー
で新規作成し、
 名前:WebServicesInput_QCF
 JNDI:jms/ws_test_qcf
 バス名:WS_test_Bus
とします。


***JMSのプロバイダにreply queue:用のJMS queue connection factoryを作成 [#g796edb6]
引き続き、新規作成で
 名前:WebServicesReply_QCF
 JNDI:jms/WebServicesReplyQCF
 バス名:WS_test_Bus
とします。



***MDBがListenするためのアクティベーション・スペックを作成 [#e7993183]
引き続き Default messaging providerの
 追加プロパティー >>  アクティベーション・スペック
で新規作成し、
 名前:ws_test_JMSRouter
 JNDI:eis/ws_test_JMSRouter
 宛先タイプ:キュー
 宛先 JNDI 名:jms/ws_test_queue
 バス名:WS_test_Bus

全て保存します。以上で設定は完了です。最後にWASを再起動しましょう。



**MDBの設定 [#o87abcc5]
MDBの設定はRAD7.0の
 デプロイメントディスクリプタ>JCAアダプタ
で
 Activation Spec JNDI名:eis/ws_test_JMSRouter <-上のJNDI名 
 宛先 JNDI 名:jms/ws_test_queue <-上のJNDI名 
とします。ちなみにこの指定は ibm-ejb-jar-bnd.xmi に書かれるのでJ2EEの仕様で定められたモノではないみたいですね。







***関連リンク [#r6009525]

#ls2

-RAD7.0ヘルプCreating a JMS serverのCreate a server and service integration bus for SOAP over JMS using WebSphere Application Server v6.x
-[[デフォルト・メッセージング・プロバイダーが使用する MDB の JMS アクティベーション・スペックの構成>http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.pmc.doc/tasks/tjn0025_.html]]
-[[RAD 6: Listener Port vs. Activation Spec (Part 2)>http://www-03.ibm.com/developerworks/blogs/page/woolf?entry=rad_6_listener_port_vs]]
-[[How MDB listeners work with a listener port in WebSphere Application Server>http://www-128.ibm.com/developerworks/websphere/library/techarticles/0503_bhasin/0503_bhasin.html]]
-RAD7.0ヘルプ「Inserting Java code to send a message to a JMS queue listener」で検索
-[[データ・ストアについて>http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.pmc.nd.doc/tasks/tjm1000_.html]]
-[[メッセージング・エンジンの構成によるデータ・ストアの使用>http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.pmc.doc/tasks/tjm0005_.html]]




----
この記事は
#vote(おもしろかった[10],そうでもない[0])
#vote(おもしろかった[11],そうでもない[0])
- WAS5.x用に作成していたMDB(EJB2.0版)ではListenerPortを指定してMDBを登録していたのだけど、その方法は6.x(EJB2.1)からはサポートされていないようで、Activation Specという方式を使わなくてはいけないようです。 -- [[きの]] &new{2007-02-15 (木) 00:01:01};
- WAS6.1のJMSにはEJB2.0のMDBはデプロイできない! -- [[きの]] &new{2007-02-15 (木) 00:01:14};
- ストア先をファイルにした場合、バスがクラスタ単位にあって、ラウンドロビンしちゃったらどうなるんだろう。複数プロセスから書き込みにいっちゃうよね。大体、クラスタが別ノードにまたがる場合は??? -- [[きの]] &new{2007-02-21 (水) 09:35:36};
- [[ファイル・ストアの高可用性についての考慮事項>http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.pmc.doc/concepts/cjm1460_.html]]を見る限り、ファイルにストアした場合はNFSなどしてストア先のファイルを共有する必要があるみたい。セッション情報のレプリケーションみたいなのはやってくれないんですね。 -- [[きの]] &new{2007-02-21 (水) 10:12:47};

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS