4.2. JMS バインディング の利用

4.2.1. 概要

単純な2つのJMSクライアント間でメッセージ送信を行います。


図4.2.1-1



  1. JMSクライアントはInbound用送信先にメッセージを送信します。
  2. JMS BC(Inbound)はInbound用送信先からメッセージを受信します。
  3. JMS BC(Inbound)はJMS BC(Outbound)にメッセージを送信します。
  4. JMS BC(Outbound)は受信したメッセージをOutbound用送信先に転送します。
  5. JMSクライアントはOutbound用送信先からメッセージを受信します。

4.2.2. 構成

ファイル名 説明
02_JMS_SA.zip 送信先間でメッセージを処理するサービスアセンブリです。
02_JMS_AP.jar クライアントアプリケーションです。
run_Receiver.bat メッセージを送信するクライアントのバッチファイルです。(Windows用)
run_Sender.bat メッセージを受信するクライアントのバッチファイルです。(Windows用)
run_Receiver.sh メッセージを送信するクライアントのシェルスクリプトです。(Unix用)
run_Sender.sh メッセージを受信するクライアントのシェルスクリプトです。(Unix用)
makeenv.bat 送信先およびコネクションファクトリを作成するバッチファイルです。(Windows用)
clearenv.bat 使用した送信先およびコネクションファクトリを削除するバッチファイルです。(Windows用)
makeenv.sh 送信先およびコネクションファクトリを作成するシェルスクリプトです。(Unix用)
clearenv.sh 使用した送信先およびコネクションファクトリを削除するシェルスクリプトです。(Unix用)
proj_02_JMS_SA.zip サービスアセンブリのプロジェクトファイルです。
proj_02_JMS_AP.zip クライアントアプリケーションのプロジェクトファイルです。

4.2.3. 実行手順

実行環境の構築を行い、サンプルを実行します。実行後には環境のクリアを行います。
環境構築
実行環境の構築を行います。
バッチファイル・シェルスクリプトの実行には、環境変数にJavaのパス([Javaのインストールディレクトリ]/bin)を設定する必要があります。
JDK1.7.0のパスを設定する例: 設定するパスは環境によって異なりますのでご注意ください。

起動状況確認
otxadminでドメインとコンポーネントの起動状況を確認します。
  1. コマンドプロンプトからotxadminを起動します。
    C:\>otxadmin
  2. list-domainsコマンドを実行しドメインの起動状況を確認します。
    otxadmin> list-domains
    domain1 running
    WebOTXAdmin running
    
    domain1がrunningとなっていればドメインは起動しています。
    もしdomain1がnot runningの場合は、start-domainコマンドでdomain1を起動します。
    otxadmin> start-domain domain1
  3. ドメインの起動を確認できたら、loginコマンドでログインを行います。
    otxadmin> login --user <ユーザ名> --password <パスワード>
    domain1を6212ポート以外で運用している場合は、portオプションでポート番号を指定してください。
  4. ログイン後、list-jbi-binding-componentsコマンドで各コンポーネントの起動状況を確認します。
    otxadmin> list-jbi-binding-components
    
     ================================
     List of Binding Components
     ================================
     Name : CORBABinding
     State: Started
     --------------------------------
     Name : FTPBinding
     State: Started
     --------------------------------
     Name : FileBinding
     State: Started
     --------------------------------
     (中略)
     --------------------------------
     Name : JMSBinding
     State: Started
     --------------------------------
     (後略)
    
    JMSBindingがstartedになっていることを確認します。
    もしStoppedになっている場合は、start-jbi-componentコマンドで起動します。
    otxadmin> start-jbi-component JMSBinding

コネクションファクトリと送信先の作成
送信先の物理的送信先とそれに対応するJMSリソース、またコネクションファクトリのJMSリソースを作成します。
本サンプルのエンドポイントが利用する要求用送信先と応答用送信先は、以下になります。 本サンプルのエンドポイントが共通に利用するコネクションファクトリは、以下になります。
       jms/SampleQueueConnectionFactory

以下のコマンドを実行します。 配備
サービスアセンブリの配備を行います。配備には環境に応じて以下の3種類の方法があります。
  1. WebOTX Developer's Studioが利用できる場合
  2. WebOTX Developer's Studioがなく、統合運用管理ツールが利用できる場合
  3. WebOTX Developer's Studio、統合運用管理ツールいずれも利用できない場合
(1)Developer's Studioによる配備
  1. Developer's Studioを起動します。
  2. ヘルプメニューからヘルプ目次をクリックします。
  3. 目次から、WebOTX Help > アプリケーション開発ガイド > サービスインテグレーション > ESBによるサービス統合 > サンプル集を開きます。
    表からproj_02_JMS_SAをクリックし、プロジェクトをインポートします。
  4. パッケージエクスプローラからプロジェクトを右クリックし、実行 > サーバーで実行 を選択します。
  5. 配備先のサーバーを選択し、配備を行います。
次へ

(2)統合運用管理ツールによる配備
  1. 02_JMS_SA.zipを適当なディレクトリに保存します。
  2. 統合運用管理ツールを起動します。
  3. domain1を右クリックし接続を選択します。ユーザ名、パスワードを入力し接続ボタンをクリックします。
  4. domain1配下のアプリケーションサーバ > ESB > サービスアセンブリを右クリックしサービスアセンブリの配備を選択します。
  5. 参照ボタンから02_JMS_SA.zipを選択し、配備ボタンを押すと配備が実行されます。
次へ

(3)otxadminによる配備
  1. 02_JMS_SA.zipを適当なディレクトリに保存します。
  2. otxadminを起動し、ログインします。
  3. deploy-jbi-service-assemblyコマンドで02_JMS_SA.zipの配備を行います。
    WebOTX AS Express、もしくはWebOTX AS Standard/Enterpriseのスタンダードモードの場合は以下を実行します。
    otxadmin> deploy-jbi-service-assembly <02_JMS_SA.zipへのパス>
    WebOTX AS Standard/Enterpriseのアドバンスドモードの場合は以下を実行します。
    otxadmin> deploy-jbi-service-assembly --apgroup <アプリケーショングループ名> --pgroup <プロセスグループ名> <02_JMS_SA.zipへのパス>
サービスアセンブリの起動
統合運用管理ツールもしくはotxadminから、配備したサービスアセンブリを起動します。
なお、サービスアセンブリをDeveloper's Studioから配備した場合は起動処理は不要です。

(1)統合運用管理ツールによる起動
  1. アプリケーションサーバ > ESB > サービスアセンブリ > 02_JMS_SAを右クリックし起動を選択します。
(2)otxadminによる起動
  1. start-jbi-service-assemblyコマンドを実行します。
    otxadmin> start-jbi-service-assembly 02_JMS_SA
実行
Developer's Studioもしくはコマンドから、クライアントを実行します。

(1)Developer's Studioによる実行
  1. Developer's Studioを起動します。
  2. ヘルプメニューからヘルプ目次をクリックします。
  3. 目次から、WebOTX ESB Help > サンプル集を開きます。
    表からproj_02_JMS_AP.zipをクリックし、プロジェクトをインポートします。
  4. ウィンドウメニューから、設定を選択して、Java>ビルド・パス>クラスパス変数をクリックします。
    新規ボタンをクリックして、名前にAS_INSTALL、パスにWebOTXインストールパスを指定します。
  5. 実行メニューから、実行構成を選択して、Javaアプリケーション配下のrun_Receiverを選択し、実行をクリックします。
  6. 続けて、実行メニューから、実行構成を選択して、Javaアプリケーション配下のrun_Senderを選択し、実行をクリックします。
(2)コマンドによる実行
  1. Receiverを実行します。
  2. Receiverを実行すると、以下の内容が出力された状態で、メッセージの受信を待ち続けます。
    AS_INSTALL=C:\WebOTX\
    looking up jms/SampleQueueConnectionFactory ...done!!
    creating QueueConnection ...done!!
    creating QueueSession ...done!!
    looking up jms/InOnlyOutboundRequestQueue ...done!!
    InOnly(Outbound) Sample Start.
    creating Receiver ...done!!
    Receiver ready!!
    
    Memo
    Windowsで「指定されたレジストリキーまたは値が見つかりませんでした」と表示されバッチファイルの実行に失敗した場合は、注意事項1を参照してください。

  3. Senderを実行します。
  4. ReceiverおよびSenderを実行した画面に、下記の内容が出力されることを確認します。
    <Receiver>
    Received request message : <?xml version="1.0" encoding="UTF-8"?><jbi:message xm
    lns:msgns="http://www.nec.com/WebOTX/ns/jmssample" type="msgns:transformInput" v
    ersion="1.0" xmlns:jbi="http://www.nec.com/WebOTX/ns/jmssample/jbi/wsdl-11-wrapp
    er"><jbi:part><request>sample request</request></jbi:part></jbi:message>
    InOnly(Outbound) Sample done.
    
    <Sender>
    get WebOTX install directory from registry.
    AS_INSTALL=C:\WebOTX\
    looking up jms/SampleQueueConnectionFactory ...done!!
    creating QueueConnection ...done!!
    creating QueueSession ...done!!
    looking up jms/InOnlyInboundRequestQueue ...done!!
    InOnly(Inbound) Sample Start.
    creating Sender ...done!!
    Sending request message : <?xml version="1.0" encoding="UTF-8"?><jbi:message xml
    ns:msgns="http://www.nec.com/WebOTX/ns/jmssample" type="msgns:transformInput" ve
    rsion="1.0" xmlns:jbi="http://www.nec.com/WebOTX/ns/jmssample/jbi/wsdl-11-wrappe
    r"><jbi:part><request>sample request</request></jbi:part></jbi:message>
    InOnly(Inbound) Sample done.
    

メッセージログの確認
メッセージログを確認し、送信されたメッセージを確認します。
メッセージログ機能については2.16. メッセージログ機能の利用を参照してください。

環境クリア
配備したサービスアセンブリを配備解除します。
配備解除には環境に応じて以下の3種類の方法があります。

(1)Developer's Studioによる配備解除
  1. ウィンドウ > ビューの表示 > サーバー を選択します。
  2. 表示されたサーバーのビューから配備したサービスアセンブリを右クリックし、除去を選択します。
(2)統合運用管理ツールによる配備解除
  1. アプリケーションサーバ > ESB > サービスアセンブリ > 02_JMS_SAを右クリックし、シャットダウンを選択します。
  2. シャットダウン完了後、再び02_JMS_SAを右クリックし配備解除を選択します。
(3)otxadminによる配備解除
  1. shut-down-jbi-service-assemblyコマンドで02_JMS_SAをシャットダウンします。
    otxadmin> shut-down-jbi-service-assembly 02_JMS_SA
  2. undeploy-jbi-service-assemblyコマンドで02_JMS_SAを配備解除します。
    otxadmin> undeploy-jbi-service-assembly 02_JMS_SA
コネクションファクトリと送信先の削除
利用した送信先とコネクションファクトリを削除します。

4.2.4. 注意事項

  1. WebOTXインストールパス取得のエラー
    run_Receiver.batおよびrun_Sender.batを実行した際に、レジストリからWebOTXインストールパスを取得できなかった場合、
    以下のように表示されます。
    「指定されたレジストリキーまたは値が見つかりませんでした」
    その際には、双方のバッチファイル内の、以下の2行の先頭に@remを追加し、
    echo get WebOTX install directory from registry.
    for /f "skip=2 tokens=2*" %%A in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\NEC\WebOTX\Installer /v PathName') do set AS_INSTALL=%%B
    
    以下の行の先頭の@remを削除し、AS_INSTALLにWebOTXインストールパスを手動で設定した後、バッチファイルを再度実行してください。
    @rem set AS_INSTALL=C:\WebOTX