4.21. File バインディングと User Processor エンジンの利用4(EDIトランスレータ)

4.21.1. 概要

入力ディレクトリからファイルを取得し、EDIトランスレータでメッセージ変換を行います。
変換した内容を出力ディレクトリに保存します。
このサンプルはWindowsの場合、修正なしで実行できますが、Unixの場合はサービスアセンブリ、*.propertiesファイルを適切に修正する必要があります。


図4.21.1-1



  1. File BC(Inbound)が入力ディレクトリからファイルを取得します。
  2. File BCは取得したファイルをUserProcessor SEへ転送します。
  3. UserProcessor SEはEDIトランスレータを呼び出します。
  4. UserProcessor SEがFile BCへ変換されたメッセージを返信します。
  5. File BCは応答を出力ディレクトリにファイル出力します。

4.21.2. 構成

ファイル名 説明
21_FileInbound_UserProcessorOutbound.zip WindowsでFile BCが入力ディレクトリからファイルを受け取り処理するサービスアセンブリです。
21_FileInbound_UserProcessorOutbound_unix.zip UnixでFile BCが入力ディレクトリからファイルを受け取り処理するサービスアセンブリです。
21_TestData.xml クライアントが送信するテストデータです。
21_TestData.csv クライアントが送信するテストデータです。
21_xml_project.properties WindowsでXMLフォーマットの場合のEDIプロパティファイルです。
21_xml_project_unix.properties UnixでXMLフォーマットの場合のEDIプロパティファイルです。
xml_21.xsd XMLフォーマットの場合のEDI設定ファイルです。
xml_21.xsl XMLフォーマットの場合のEDI設定ファイルです。
21_csv_project.properties Windowsでテキスト(固定長)の場合のEDIプロパティファイルです。
21_csv_project_unix.properties Unixでテキスト(固定長)の場合のEDIプロパティファイルです。
sv_21.xsd テキスト(固定長)の場合のEDI設定ファイルです。
sv_21.xsl テキスト(固定長)の場合のEDI設定ファイルです。
proj_21_FileInbound_UserProcessorOutbound.zip メッセージ変換のサービスアセンブリのプロジェクトファイルです。

4.21.3. 実行手順

実行環境の構築を行い、サンプルを実行します。実行後には環境のクリアを行います。

環境構築
実行環境の構築を行います。

EDIトランスレータのインストールと設定
  1. EDIトランスレータをインストールしてください。
    このサンプルのサービスアセンブリの設定に合わせて、EDIトランスレータのインストールパスはWindowsの場合C:\EDITranslatorに、Unixの場合/opt/EDITranslatorにしてください。
  2. コマンドプロンプトからotxadminを起動します。
    C:\>otxadmin
    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. EDIトランスレータの下記のJARファイルをClasspathへ追加します。%N_TRANS_PATH% はEDIトランスレータのインストールパスです。
    設定方法は、マニュアル [Application Server > ドメイン構築・基本設定ガイド > 3.8. Java VMオプションの設定] を参照してください。有効にするにはドメインの再起動が必要です。

    コマンドの実行例です。
    Windows:
    otxadmin> set server.java-config.classpath-suffix="C:\EDITranslator\lib\nTrans.jar;C:\EDITranslator\lib\ExtendFuncs.jar;C:\EDITranslator\lib\CommonFuncs.jar;C:\EDITranslator\lib\log4j-1.2.16.jar"
    Unix:
    otxadmin> set server.java-config.classpath-suffix="/opt/EDITranslator/lib/nTrans.jar:/opt/EDITranslator/lib/ExtendFuncs.jar:/opt/EDITranslator/lib/CommonFuncs.jar:/opt/EDITranslator/lib/log4j-1.2.16.jar"
  5. ドメインを停止します。
    otxadmin> stop-domain domain1
  6. 以下に示すEDIトランスレータのJARファイルを ${INSTANCE_ROOT}/lib/ext/ へコピーします
  7. <domain1ルートディレクトリ>\config\server.policy の末尾に以下の設定を追加します。
    Windows:
       grant codeBase "file:C:/EDITranslator/-" {
          permission java.lang.RuntimePermission "createClassLoader";
          permission java.io.FilePermission "${N_TRANS_TMP_PATH}/-", "delete";
          permission java.lang.RuntimePermission "getenv.N_TRANS_PATH";
       };
    Unix:
       grant codeBase "file:/opt/EDITranslator/-" {
          permission java.lang.RuntimePermission "createClassLoader";
          permission java.io.FilePermission "${N_TRANS_TMP_PATH}/-", "delete";
          permission java.lang.RuntimePermission "getenv.N_TRANS_PATH";
       };
  8. ドメインを起動します。
    otxadmin> start-domain domain1
起動状況確認
otxadminでドメインとコンポーネントの起動状況を確認します。
  1. otxadminでを実行しドメインの起動状況を確認します。
    domain1がrunningとなっていればドメインは起動しています。
    もしdomain1がnot runningの場合は、start-domainコマンドでdomain1を起動します。
  2. ドメインの起動を確認できたら、loginコマンドでログインを行います。
  3. ログイン後、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 : SOAPBinding
     State: Started
     --------------------------------
    
    FileBindingがstartedになっていることを確認します。
    もしStoppedになっている場合は、start-jbi-componentコマンドで起動します。
    otxadmin> start-jbi-component FileBinding
  4. list-jbi-service-enginesコマンドで各サービスエンジンの起動状況を確認します。
    otxadmin> list-jbi-service-engines
    
    ================================
    List of Service Engines
    ================================
    Name : CBREngine
    State: Started
    --------------------------------
    Name : SequencingEngine
    State: Started
    --------------------------------
    Name : UserProcessorEngine
    State: Started
    --------------------------------
    Name : XSLTEngine
    State: Started
    --------------------------------
    
    UserProcessorEngineがstartedになっていることを確認します。
    もしStoppedになっている場合は、start-jbi-componentコマンドで起動します。
    otxadmin> start-jbi-component UserProcessorEngine
配備
21_FileInbound_UserProcessorOutbound.zipの配備を行います。

配備には環境に応じて以下の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 Guide(Enterprise Service Bus) > サンプル集を開きます。
    表からproj_21_FileInbound_UserProcessorOutboundをクリックすることで、プロジェクトをインポートします。
  4. UNIX環境で実行する場合は、File BCとUserProcessor SEの設定を変更する必要があります。
    パッケージ・エクスプローラからFileSUをダブルクリックしてSUエディタを開き、エンドポイントを選択します。
    入力ファイル格納ディレクトリ、出力ファイル格納ディレクトリ、処理ディレクトリを/opt/esb_samples/...のように修正してください。


    図4.21.3-1



    図4.21.3-2


    パッケージ・エクスプローラからUserProSUをダブルクリックしてSUエディタを開き、エンドポイントを選択します。
    プロセッサのパラメーターの処理設定ファイルのパスを/opt/EDI_sample/21_***_project_unix.propertiesに、処理結果ログファイルの出力先を/opt/EDI_sample/...に、EDIトランスレータの実行時パスを/opt/EDITranslatorに修正してください。


    図4.21.3-3



    図4.21.3-4



  5. パッケージエクスプローラからプロジェクトを右クリックし、実行 > サーバーで実行 を選択します。
  6. 配備先のサーバーを選択し、配備を行います。
次へ

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

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

(1)統合運用管理ツールによる起動
  1. アプリケーションサーバ > ESB > サービスアセンブリ > 21_FileInbound_UserProcessorOutboundを右クリックし起動を選択します。
(2)otxadminによる起動
  1. start-jbi-service-assemblyコマンドを実行します。
    otxadmin> start-jbi-service-assembly 21_FileInbound_UserProcessorOutbound

実行
入力ディレクトリにファイルを投入し、応答の出力ファイルを確認します。
Windowsの場合C:の下に動作して、unixの場合/opt下に動作します。
  1. *.properties、*.xsd、*.xslファイルをC:\EDI_sampleにコピーします。
  2. XML フォーマットでは21_TestData.xmlC:\esb_samples\21_FileInbound_UserProcessorOutbound\in1にコピーします。
    C:\esb_samples\21_FileInbound_UserProcessorOutbound\in1ディレクトリにコピーしたファイルが削除されます。
    C:\esb_samples\21_FileInbound_UserProcessorOutbound\out1out_21_TestData_*****.txtが生成されていることを確認します。内容は下記の通りです。
    1  A社        8534      1050001             東京都港区芝10312340001     
    
  3. テキスト(固定長) フォーマットでは21_TestData.csvC:\esb_samples\21_FileInbound_UserProcessorOutbound\in2にコピーします。
    C:\esb_samples\21_FileInbound_UserProcessorOutbound\in2ディレクトリにコピーしたファイルが削除されます。
    C:\esb_samples\21_FileInbound_UserProcessorOutbound\out2out_21_TestData_*****.txtが生成されていることを確認します。内容は下記の通りです。
    1  A社        8534      1050001             東京都港区芝10312340001     
    2  A社        8535      1050001             東京都港区芝10312340002     
    3  A社        8536      1050001             東京都港区芝10312340003     
    

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

環境クリア
配備したサービスアセンブリを配備解除し、
入出力に使用したディレクトリの削除を行います。
配備解除には環境に応じて以下の3種類の方法があります。

(1)Developer's Studioによる配備解除
  1. ウィンドウ > ビューの表示 > サーバー を選択します。
  2. 表示されたサーバーのビューから配備したサービスアセンブリを右クリックし、除去を選択します。
(2)統合運用管理ツールによる配備解除
  1. アプリケーションサーバ > ESB > サービスアセンブリ > 21_FileInbound_UserProcessorOutboundを右クリックし、
    シャットダウンを選択します。
  2. シャットダウン完了後、再び21_FileInbound_UserProcessorOutboundを右クリックし配備解除を選択します。
(3)otxadminによる配備解除
  1. shut-down-jbi-service-assemblyコマンドで21_FileInbound_UserProcessorOutboundをシャットダウンします。
    otxadmin> shut-down-jbi-service-assembly 21_FileInbound_UserProcessorOutbound
  2. undeploy-jbi-service-assemblyコマンドで21_FileInbound_UserProcessorOutboundを配備解除します。
    otxadmin> undeploy-jbi-service-assembly 21_FileInbound_UserProcessorOutbound
入出力ディレクトリの削除
  1. C:\esb_samples\21_FileInbound_UserProcessorOutbound(unixの場合/opt/esb_samples/21_FileInbound_UserProcessorOutbound)ディレクトリを削除します。

4.21.4. 注意事項

特になし。