4.18. TCP/IP BCの利用

4.18.1. 概要

クライアントアプリケーションからソケット通信によりTCP/IP BCのInboundでメッセージを受信し、 TCP/IP BCのOutboundからサーバアプリケーションにメッセージを送信します。


図4.18.1-1


  1. TCP/IP BCのInboundはクライアントアプリケーションから接続を受け付け、メッセージを受信します。
  2. メッセージをTCP/IPハンドラのreceiveメソッドにより処理し、処理結果をOutboundに渡します。
  3. TCP/IP BCのOutboundはサーバアプリケーションとコネクションを確立し、 TCP/IPハンドラのsendメソッドによりサーバアプリケーションにメッセージを送信します。
  4. サーバアプリケーションはメッセージを処理して返信します。
  5. メッセージをTCP/IP BCハンドラのreceiveメソッドにより処理し、処理結果をInboundに渡します。
  6. TCP/IP BCハンドラのsendメソッドによりクライアントアプリケーションにメッセージを返信します。

4.18.2. 構成

ファイル名 説明
18_TCPIP_Delimiter.zip 区切り文字によりメッセージを送受信するサービスアセンブリです。
18_TCPIP_FixedLength.zip 固定長によりメッセージを送受信するサービスアセンブリです。
18_TCPIP_FlexLength.zip 可変長によりメッセージを送受信するサービスアセンブリです。
18_tcpip_app.zip ソケットで通信するクライアントアプリケーションおよびサーバアプリケーションです。
proj_18_TCPIP_Delimiter.zip 区切り文字のサービスアセンブリのプロジェクトファイルです。
proj_18_TCPIP_FixedLength.zip 固定長のサービスアセンブリのプロジェクトファイルです。
proj_18_TCPIP_FlexLength.zip 可変長のサービスアセンブリのプロジェクトファイルです。
proj_18_TCPIPHandler.zip 区切り文字、固定長、可変長のTCP/IPハンドラのプロジェクトファイルです。

4.18.3. 実行手順

実行環境の構築を行い、サンプルを実行します。実行後には環境のクリアを行います。
区切り文字、固定長、可変長で手順は同じなので、ここでは区切り文字での手順を述べます。
固定長を実行する場合はファイル名などの "Delimiter" を "FixedLength" に、可変長の場合は "FlexLength" に 読み換えてください。

環境構築

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

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

サービスアセンブリ 18_TCPIP_Delimiter.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_18_TCPIP_Delimiter.zipをクリックすることでプロジェクトをインポートします。
  4. サーバアプリケーションをlocalhost以外で動作させる場合、およびポートを18888以外で動作させる場合はプロバイダエンドポイントの 設定を変更する必要があります。
    パッケージ・エクスプローラからTCPIPSUをダブルクリックしてSUエディタを開き、エンドポイントを選択します。
    接続先ホストポートを適切に修正してください。


    図4.18.3-1



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

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


    図4.18.3-2



次へ

(3)otxadminによる配備
  1. 18_TCPIP_Delimiter.zipを適当なディレクトリに保存します。
  2. otxadminを起動し、ログインします。
  3. deploy-jbi-service-assemblyコマンドで18_TCPIP_Delimiter.zipを配備します。
    WebOTX AS Express、もしくはWebOTX AS Standard/Enterpriseのスタンダードモードの場合は以下を実行します。
    otxadmin> deploy-jbi-service-assembly <18_TCPIP_Delimiter.zipへのパス>
    WebOTX AS Standard/Enterpriseのアドバンスドモードの場合は以下を実行します。
    otxadmin> deploy-jbi-service-assembly --apgroup <アプリケーショングループ名> --pgroup <プロセスグループ名> <18_TCPIP_Delimiter.zipへのパス>
    ただしサーバアプリケーションをlocalhost以外で動作させる場合、およびポートを18888で動作させる場合は--modify=trueオプションを指定し、 TCPIPSUのエンドポイントの hostport を変更してください。
サービスアセンブリの起動
統合運用管理ツールもしくはotxadminから、配備したサービスアセンブリを起動します。

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

実行
ソケットで入出力するクライアントアプリケーションとサーバアプリケーションを実行して動作を確認します。
  1. 18_tcpip_app.zip を任意のフォルダに保存し解凍します。
  2. run_server_delimiter.bat を実行して、サーバアプリケーションを起動します。サーバアプリケーションはポート18888で待ち受けます。
  3. run_client_delimiter.bat を実行して、メッセージを送信します。連続して10回メッセージを送信されます。 次のように出力されていれば正常に実行されています。
ready.
c0: <msg>Sending Message 0</msg>
<msg>Sending Message 0</msg>

c0: <msg>Sending Message 1</msg>
<msg>Sending Message 1</msg>

c0: <msg>Sending Message 2</msg>
<msg>Sending Message 2</msg>

...

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

環境クリア

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

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

4.18.4. 注意事項

特になし。