- 追加された行はこの色です。
- 削除された行はこの色です。
// 下階層用テンプレート
#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(おもしろかった[7],そうでもない[0])
#vote(おもしろかった[8],そうでもない[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;}