WebSphere/JMS/WAS6.xでJMS環境を構築する
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キューなどを構築していきます。
サービス統合 >> バスにアクセス。新規作成を押下し
バス名: WS_test_Busでバスを作成。
次にそのバス名をクリックし、
トポロジー >> バスメンバー
を開き、追加を押下。サーバやクラスタ、WebSphere MQ サーバーから選べるみたいだけど、とりあえず「サーバ」を選択。次に「メッセージ・ストアのタイプ」を選択する画面になるので、とりあえずファイル・ストアを選択。*1
次にそのバスの設定画面で
宛先リソース >> 宛先
を選択し、宛先画面の新規作成を押下。宛先タイプは「キュー」とし
ID:ws_test_queueJms
とします。バスメンバはデフォルトで終了すると宛先の作成は完了です。
リソース >> JMSプロバイダ
の画面で、スコープを「サーバ」にし Default messaging provider を選択します。
追加プロパティー >> キュー
で新規作成し、
名前:ws_test_queueJms JNDI:jms/ws_test_queue バス名:WS_test_Bus キュー名:ws_test_queueJms
とします。
リソース >> JMSプロバイダ
の画面で、スコープを「サーバ」にし Default messaging provider を選択します。
追加プロパティー >> キュー接続ファクトリー
で新規作成し、
名前:WebServicesInput_QCF JNDI:jms/ws_test_qcf バス名:WS_test_Bus
とします。
引き続き、新規作成で
名前:WebServicesReply_QCF JNDI:jms/WebServicesReplyQCF バス名:WS_test_Bus
とします。
引き続き Default messaging providerの
追加プロパティー >> アクティベーション・スペック
で新規作成し、
名前:ws_test_JMSRouter JNDI:eis/ws_test_JMSRouter 宛先タイプ:キュー 宛先 JNDI 名:jms/ws_test_queue バス名:WS_test_Bus
全て保存します。以上で設定は完了です。最後にWASを再起動しましょう。
MDBの設定はRAD7.0の
デプロイメントディスクリプタ>JCAアダプタ
で
Activation Spec JNDI名:eis/ws_test_JMSRouter <-上のJNDI名 宛先 JNDI 名:jms/ws_test_queue <-上のJNDI名
とします。ちなみにこの指定は ibm-ejb-jar-bnd.xmi に書かれるのでJ2EEの仕様で定められたモノではないみたいですね。
WAS5.x用に作成していたMDB(EJB2.0版)ではListenerPort?を指定してMDBを登録していたのだけど、その方法は6.x(EJB2.1)からはサポートされていないようで、Activation Specという方式を使わなくてはいけないようです。 WAS6.1のJMSにはEJB2.0のMDBはデプロイできない!
RAD7.0でEAR,EJBプロジェクト,WARプロジェクトのクラスパスの解決方法
この記事は
現在のアクセス:17789