4.25. File、Transportバインディングの利用

4.25.1. 概要

Amazon S3とファイルを送受信するサンプルです。Transport BCをOutbound/Inboundに利用した2つのパターンがあります。


図4.25.1-1


Outbound:
1. File BC(Inbound)がローカルのディレクトリからファイルを取得します。
2. File BC(Inbound)は取得したファイルをTransport BC(Outbound)へ転送します。
3. Transport BC(Outbound)はCamelコンポーネント(AWS-S3)を利用して、 Amazon S3にファイルを送信します。

Inbound:
4. Transport BC(Inbound)がCamelコンポーネント(AWS-S3)を利用して、Amazon S3からファイルを取得します。
5. Transport BC(Inbound)は取得したファイルをFile BC(Outbound)へ転送します。
6. File BC(Outbound)はローカルのディレクトリにファイルを出力します。

4.25.2. 構成

ファイル名 説明
25_FileInbound_TransportOutbound.zip Amazon S3にファイルを送信するサービスアセンブリです。
25_TransportInbound_FileOutbound.zip Amazon S3からファイルを取得するサービスアセンブリです。
25_TestData.xml クライアントが送信するテストデータです。
proj_25_FileInbound_TransportOutbound.zip Amazon S3にファイルを送信するサービスアセンブリのプロジェクトファイルです。
proj_25_TransportInbound_FileOutbound.zip Amazon S3からファイルを取得するサービスアセンブリのプロジェクトファイルです。
proj_25_MessageExchangeHandler.zip メッセージエクスチェンジハンドラのプロジェクトファイルです。
proj_25_CamelContextHandler.zip CamelContextハンドラのプロジェクトファイルです。

4.25.3. 実行手順 - Outbound

実行環境の構築を行い、サンプルを実行します。実行後には環境のクリアを行います。
ここではTransport BCのOutboundのサンプル(25_FileInbound_TransportOutbound.zip)を動作させる手順を説明します。

環境構築

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

  1. Amazon S3にサインインし、バケットを作成します。

  2. VeriSignからルート証明書を入手して、WebOTXに導入します。

    ルート証明書入手
    VeriSignのWebサイトからダウンロードします。

    domain1のconfigに下記のようなCommandを行います。
    C:\WebOTX\domains\domain1\config> keytool -importcert -alias <alias name> -file <入手した証明書(*.cer)> -keystore cacerts.jks -storepass changeit
    domain1を再起動します。
    C:\WebOTX\domains\domain1\config>otxadmin stop-domain domain1
    C:\WebOTX\domains\domain1\config>otxadmin start-domain domain1
起動状況確認

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 : TCPIPBinding
     State: Started
     --------------------------------
     Name : TransportBinding
     State: Started
     --------------------------------
    
    TransportBindingとFileBindingがStartedになっていることを確認します。
    もしStoppedになっている場合は、start-jbi-componentコマンドで起動します。
    otxadmin> start-jbi-component TransportBinding
配備

サービスアセンブリ 25_FileInbound_TransportOutbound.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_25_FileInbound_TransportOutbound.zipをクリックすることでプロジェクトをインポートします。
  4. UNIX環境で実行する場合は、File BCの設定を変更する必要があります。
    パッケージ・エクスプローラからFileSU_25_FileInbound_TransportOutbound_001.suをダブルクリックしてSUエディタを開き、エンドポイントを選択します。
    入力ファイル格納ディレクトリ、出力ファイル格納ディレクトリ、処理ディレクトリを適切に修正してください。


    図4.25.3-1



  5. パッケージ・エクスプローラからTransportSU_25_FileInbound_TransportOutbound_002.suをダブルクリックしてSUエディタを開き、エンドポイントを選択します。
    CamelエンドポイントURIの"bucket-name"を環境構築で作成したバケット名に修正してください。


    図4.25.3-2



  6. CamelContextハンドラの設定をクリックし、ハンドラ詳細設定画面でaccessKeyとsecretKeyの値にAmazon S3に接続可能なアクセスキー・シークレットキーを設定してください。


    図4.25.3-3



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

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


    図4.25.3-4



次へ

(3)otxadminによる配備
  1. 25_FileInbound_TransportOutbound.zipを適当なディレクトリに保存します。
  2. otxadminを起動し、ログインします。
  3. deploy-jbi-service-assemblyコマンドで25_FileInbound_TransportOutbound.zipを配備します。
    WebOTX AS Express、もしくはWebOTX AS Standard/Enterpriseのスタンダードモードの場合は以下を実行します。
    otxadmin> deploy-jbi-service-assembly <25_FileInbound_TransportOutbound.zipへのパス>
    WebOTX AS Standard/Enterpriseのアドバンスドモードの場合は以下を実行します。
    otxadmin> deploy-jbi-service-assembly --apgroup <アプリケーショングループ名> --pgroup <プロセスグループ名> <25_FileInbound_TransportOutbound.zipへのパス>
    ただしUNIX環境で実行する場合はmodifyオプションをtrueにし、ep_25_FileInbound_TransportOutbound_002の各ディレクトリパスを修正してください。
エンドポイントの設定変更

統合運用管理ツールもしくはotxadminから、エンドポイントの設定を変更します。
Developer's Studioによる配備でTransportSU_25_FileInbound_TransportOutbound_002.suの設定を修正済みの場合は、この手順は不要です。

(1)統合運用管理ツールによる設定変更
  1. アプリケーションサーバ > ESB > コンポーネント > Transportバインディング > サービスユニット > TransportSU_25_FileInbound_TransportOutbound_002 > エンドポイント > ep_25_FileInbound_TransportOutbound002#Provider をクリックし、右画面のTransport BCタブを選択します。
    CamelコンポーネントのURIの"bucket-name"を環境構築で作成したバケット名に修正してください。
    暗号化するCamelContextハンドラプロパティのaccessKeyとsecretKeyの値にAmazon S3に接続可能なアクセスキー・シークレットキーを設定してください。


    図4.25.3-5


(2)otxadminによる設定変更
  1. setコマンドを実行して、CamelURIの"bucket-name"を環境構築で作成したバケット名に修正し、CamelEncryptedOptionsのaccessKeyとsecretKeyの値にAmazon S3に接続可能なアクセスキー・シークレットキーを設定してください。
    otxadmin> set server.jbi.components.TransportBinding.service-units.SERVICE_UNIT.endpoints.ENDPOINT.CamelURI=[CamelエンドポイントURI]
    otxadmin> set server.jbi.components.TransportBinding.service-units.TransportSU_25_FileInbound_TransportOutbound_002.endpoints.ep_25_FileInbound_TransportOutbound_002#Provider.EncryptedHandlerProperties={{secretKey,[シークレットキー]},{accessKey,[アクセスキー]}
    }
サービスアセンブリの起動

統合運用管理ツールもしくはotxadminから、配備したサービスアセンブリを起動します。

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

入力ディレクトリにファイルを投入し、ファイル転送を確認します。

  1. 25_TestData.xmlC:\esb_samples\25_FileInbound_TransportOutbound\inにコピーします。
  2. C:\esb_samples\25_FileInbound_TransportOutbound\outout***.doneが生成されていることを確認します。
  3. Amazon S3の指定したバケットに25_TestData.xmlが転送されていることを確認します。
メッセージログの確認

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

環境クリア

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

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

4.25.4. 実行手順 - Inbound

実行環境の構築を行い、サンプルを実行します。実行後には環境のクリアを行います。
ここではTransport BCのInboundのサンプル(25_TransportInbound_FileOutbound.zip)を動作させる手順を説明します。

環境構築

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

起動状況確認

Outboundの場合と同様です。

配備

Outboundの場合と同様に、サービスアセンブリ 25_TransportInbound_FileOutbound.zip の配備を行います。

エンドポイントの設定変更

Outboundの場合と同様に、統合運用管理ツールもしくはotxadminから、エンドポイントの設定を変更します。
Developer's Studioによる配備でTransportSU_25_TransportInbound_FileOutbound_001.suの設定を修正済みの場合は、この手順は不要です。

サービスアセンブリの起動

Outboundの場合と同様に、統合運用管理ツールもしくはotxadminから、配備したサービスアセンブリを起動します。

実行

Amazon S3のバケットにファイルをアップロードし、ファイル転送を確認します。

  1. 25_TestData.xmlをAmazon S3のバケットにアップロードします。
  2. ファイル転送が完了するまで数秒待ちます。(デフォルトの設定では、5秒に1回ファイル取得を行います。)
  3. C:\esb_samples\25_TransportInbound_FileOutbound\outout***.xmlが生成されていることを確認します。
メッセージログの確認

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

環境クリア

Outboundの場合と同様です。

4.25.5. 注意事項

特になし。