8. 分散ESB

8.1. 分散ESB環境の構築

分散ESB環境の構築方法を説明します。分散ESBの機能概要は [ 製品構成と提供機能 > 4. ESB > 4.1. JBIコンテナと共通機能 > 4.1.5. 分散ESB ] を参照してください。

[8.1.1.ESBインスタンスの設定]と[8.1.2. 通信用リソースの作成]では、分散ESB環境を構築するための各設定項目について説明します。

[8.1.3.分散管理サーバを用いた分散ESB環境の構築]はWebOTX Application Serverの分散管理サーバ機能と連携する場合の構築方法の説明です。 分散管理サーバ機能を使用しない場合はこの節を参照する必要はありません。

8.1.1. ESBインスタンスの設定

分散ESBは複数の分散対象サーバ「ESBインスタンス」により構成します。統合運用管理ツールでESBインスタンスに接続し、分散対象サーバの構築を行います。

【図8.1.1a】2インスタンスでの分散ESB構築例

8.1.1.1. ESBインスタンスの作成と削除

各ESB環境に分散対象となるESBインスタンスの情報を設定します。分散ESBを有効にするには、分散対象となる相手だけでなく自分自身のESBインスタンスも作成する必要があります。自分自身を作成していない場合は非分散環境として動作し、SAに設定されたESBインスタンス名は無視されます。

【図8.1.1b】ESBインスタンスの追加/削除 操作画面

ESBインスタンスの作成と削除を行うには、[ESB]-[分散対象サーバ]ノードを右クリックして表示される操作の一覧から操作を選択します。


ESBインスタンスの追加
otxadmin> invoke server.jbi.distributed-servers.addServer [instanceName]
ESBインスタンスの削除
otxadmin> invoke server.jbi.distributed-servers.deleteServer [instanceName]

8.1.1.2. ESBインスタンスの設定

ESBインスタンスのノードを選択し、右側の「設定情報」タブで設定項目を編集します。

【図8.1.1c】ESBインスタンスの設定

以下で各設定項目の詳細について説明します。

【表8.1.1a】ESBインスタンスの設定

タイトル 説明
ホスト名 ESBインスタンスのホスト名を指定します。 マシン名またはIPアドレスが可能です。例: localhost または 192.168.0.1
ドメイン名 ESBインスタンスのドメイン名を指定します。 WebOTX ドメイン名の命名規則に従います。例: domain1
アプリケーショングループ名とプロセスグループ名 ESBインスタンスのアプリケーショングループ名とプロセスグループ名を指定します。 ExpressおよびStandard/Enterpriseのスタンダードモードでは「server」と設定します。Standard/Enterpriseのアドバンスドモードでは「アプリケーショングループ名-プロセスグループ名」の形式で設定します。 例: server または apg-pg
送信用プロトコル 他のESBインスタンスへメッセージを送信する時に使うプロトコルを指定します。デフォルトではSOAPです。 JMS、SOAP、SOAP(WS-R)から選択、デフォルト値はSOAPです。
※SOAP(WS-R)は選択可能ですが動作をサポートしていません。
SOAP受信用エンドポイントURL ESBインスタンス受信用SOAPエンドポイントを指定します。 URLの命名規則に従います。例:http://[host]:[port]/proxybc-soap
「送信用プロトコル」にSOAPを設定した時には必ず設定する必要があります。
SOAP(WS-R) 受信用エンドポイントURL ESBインスタンス受信用SOAP(WS-R)エンドポイントを指定します。 URLの命名規則に従います。例:http://[host]:[port]/proxybc-wsr
「送信用プロトコル」にSOAP(WS-R)を設定した時には必ず設定する必要があります。
JMS受信用コネクションファクトリのJNDI登録パス ESBインスタンス受信用JMSコネクションファクトリのJNDI登録パスを指定します。 WebOTX JMSリソースの命名規則に従います。例:jms/esbConnectionFactory
「送信用プロトコル」にJMSを設定した時には必ず設定する必要があります。
JMS受信用キューのJNDI登録パス ESBインスタンス受信用JMSキューのJNDI登録パスを指定します。 WebOTX JMSリソースの命名規則に従います。例:jms/esb1Queue
「送信用プロトコル」にJMSを設定した時には必ず設定する必要があります。
トランザクション連携 JMSとSOAP(WS-R)を使う時にトランザクション連携するかどうかを指定します。送受信両方で有効です True、Falseから選択します。デフォルト値はFalseです。
通信タイムアウト メッセージ送信後の応答待ちタイムアウト時間を指定します。送信側のみ有効です。(単位:秒) 「0-2147483647」の整数値。デフォルト値は150です。


8.1.2. 通信用リソースの作成

[8.1.1.ESBインスタンスの設定]で、送信用プロトコルに設定した値(SOAP、JMS、SOAP(WS-R))に応じて、 ドメインごとに以下の設定を行います。送信用プロトコルに指定していないプロトコルの設定は必要ありません。

8.1.2.1. JMSの設定

【図8.1.2a】「JMSリソースの構成」の表示画面

(1) JMSコネクションファクトリソースの作成

「JMS受信用コネクションファクトリのJNDI登録パス」でJNDI名を指定したコネクションファクトリソースを作成します。 コネクションファクトリソースを作成するには、統合運用管理ツールの[(ドメイン名)]-[リソース]-[JMSリソース]を右クリック、[コネクションファクトリソースの作成]を選択します。 「JNDI名」、「リソースタイプ」、「JMSサーバのホスト名」、「JMSサーバのホストのポート番号」を構築する環境に合わせて調整してください。 複数のJMSサーバを使用する場合は、ここでJMSサーバ毎のコネクションファクトリソースを作成します。

(2) JMSキューリソースの作成

ESBインスタンス毎に1つのキューを作成します。 コネクションファクトリソースを作成するには、統合運用管理ツールの[(ドメイン名)]-[リソース]-[JMSリソース]を右クリック、[送信先リソースの作成]を選択します。 このとき「JNDI名」には「JMS受信用キューのJNDI登録パス」で設定したJNDI名を指定します。

8.1.2.2. SOAPの設定

SOAPでのメッセージを受信するために proxy_soap_inbound_servlet.war を配備します。proxy_soap_inbound_servlet.warは以下に格納されています。

    <AS_INSTALL>/jbi/components/proxy/proxy_soap_inbound_servlet.war

WAR配備時に「SOAP受信用エンドポイントURL」で指定したコンテキストルートに配備オプションで調整します。 例えば、「SOAP受信用エンドポイントURL」に http://localhost:8080/proxybc-soap と指定した場合のコンテキストルートは "proxybc-soap" です。 otxadminコマンドを使用する場合は以下のようになります。

    otxadmin> login --user {ユーザ名} --password {パスワード}
    otxadmin> deploy --contextroot {コンテキストルート} {proxy_soap_inbound_servlet.warへのパス}


8.1.2.3. SOAP(WS-R)の設定

SOAP(WS-R)の場合にもSOAPの場合と同様にして proxy_wsr_inbound_servlet.war を配備します。proxy_wsr_inbound_servlet.warは以下に格納されています。

    <AS_INSTALL>/jbi/components/proxy/proxy_wsr_inbound_servlet.war


SOAP(WS-R)の場合は、さらに「SOAP(WS-R)受信用エンドポイントURL」用のWS-R受信キューと送信キューを作成します。手順は以下の通りです。

(1) WS-Rのインストール

[ アプリケーション開発ガイド(Java EE) > 1. Webサービスアプリケーションの開発 > 1.2. プログラミング・開発ガイド > 1.2.14. 高信頼メッセージング ] を参照してください。

(2) 受信キューを作成

ESBインスタンス自身の「SOAP(WS-R)受信用エンドポイントURL」に対し受信キューを登録します。
[アプリケーションサーバ]-[rm-service]を右クリックし、[受信キューの生成]を選択して受信キューを作成します。 「エンドポイントURI」の値は「SOAP(WS-R)受信用エンドポイントURL」に合わせます。

(3) 送信キューを作成

他の全てのESBインスタンスの「SOAP(WS-R)受信用エンドポイントURL」に対して送信キューを登録します。
[アプリケーションサーバ]-[rm-service]を右クリックし、[送信キューの生成]を選択して送信キューを作成します。 「エンドポイントURI」の値は「SOAP(WS-R)受信用エンドポイントURL」に合わせます。

 例:3つのESBインスタンスから成る分散ESB環境
 ESBインスタンス esb1, esb2, esb3 にそれぞれ以下のように設定されている場合。
  esb1の「SOAP(WS-R)受信用エンドポイントURL」に http://esb1/proxy-wsr
  esb2の「SOAP(WS-R)受信用エンドポイントURL」に http://esb2/proxy-wsr
  esb3の「SOAP(WS-R)受信用エンドポイントURL」に http://esb3/proxy-wsr
 esb1のサーバには下記のWS-R キューを作成します。
  受信キュー:http://esb1/proxy-wsr
  送信キュー:http://esb2/proxy-wsr
  送信キュー:http://esb3/proxy-wsr
 同様にして esb2, esb3 にもWS-Rキューを作成します。

8.1.3. 分散管理サーバを用いた分散ESB環境の構築

 WebOTX Application Serverの分散管理サーバを利用することで分散ESB環境の運用が容易になります。
分散管理サーバは複数のESBインスタンスに対する分散ESB環境の構築と管理を一度に行うことを可能にします。

この後の説明は事前に分散管理サーバの構築が必要となります。構築方法は次の箇所を参照してください。
[ Application Server > ドメイン構築・基本設定ガイド > 7. WebOTXの内部サービス > 7.7. 分散管理サーバ ]

8.1.3.1. ドメイングループの構築

分散ESBを構成する各ESBインスタンスを管理するため、ESBインスタンスが存在するドメインを同じドメイングループに登録する必要があります。本節はドメイングループの作成と制御対象ドメインの登録について説明します。  

(1) ドメイングループの作成

統合運用管理ツールの「Proxy」-「ドメイングループ」を右クリックして表示される操作の一覧から「グループの作成」を選択します。ドメイングループの作成について詳細は次の箇所を参照してください。
[ Application Server > ドメイン構築・基本設定ガイド > 7. WebOTXの内部サービス > 7.7. 分散管理サーバ > 7.7.2. ドメイングループの運用操作 > 7.7.2.1. ドメイングループの登録・削除 ]

【図8.1.3a】「グループの作成」の選択画面

ドメイングループの情報を入力し、実行を押下します。

【図8.1.3b】「グループの作成」の実行画面

(2) 制御対象サーバの登録

作成したドメイングループ下の「制御対象サーバ」を右クリックして表示される操作の一覧から「制御対象サーバの登録」を選択します。制御対象サーバの登録について詳細は次の箇所を参照してください。
[ Application Server > ドメイン構築・基本設定ガイド > 7. WebOTXの内部サービス > 7.7. 分散管理サーバ > 7.7.2. ドメイングループの運用操作 > 7.7.2.2. 制御対象サーバの登録・削除 ]

【図8.1.3c】「制御対象サーバの登録」の選択画面

制御対象サーバの情報を入力し、実行を押下します。

【図8.1.3d】「制御対象サーバの登録」の実行

(3) 制御対象ドメインの登録

「制御対象サーバ」-「登録した制御対象サーバ」-「制御対象ドメイン」を右クリックして表示される操作の一覧から「制御対象ドメインの登録」を選択します。制御対象ドメインの登録について詳細は次の箇所を参照してください。
[ Application Server > ドメイン構築・基本設定ガイド > 7. WebOTXの内部サービス > 7.7. 分散管理サーバ > 7.7.2. ドメイングループの運用操作 > 7.7.2.3. 制御対象ドメインの登録・削除 ]

【図8.1.3e】「制御対象ドメインの登録」の選択画面

制御対象ドメインの情報を入力し、実行を押下します。

【図8.1.3f】「制御対象ドメインの登録」の実行

制御対象ドメインをドメイングループへ登録します。 登録先ドメイングループを右クリックして表示される操作の一覧から「ドメインの登録」を選択します。

【図8.1.3g】「制御対象ドメインの登録」の選択画面

制御対象ドメインの情報を入力し、実行を押下します。

【図8.1.3h】「制御対象ドメインの登録」の実行

(4) ドメイングループ情報の更新

ドメイングループを右クリックして表示される操作の一覧から「管理対象一覧の更新」を選択します。更新後、ドメイングループの下に「アプリケーション」ノード、「リソース」ノード、「アプリケーションサーバ」ノードを生成します。「アプリケーションサーバ」ノードを展開すると「ESB」ノードが表示されます。

【図8.1.3i】「管理対象一覧の更新」の実行

【図8.1.3j】「管理対象一覧の更新」の実行結果

8.1.3.2. ESBインスタンスの設定

分散管理サーバ機能を使用しない場合は「8.1.1. ESBインスタンスの設定」で説明した通り、分散ESBを構成する全てのドメインに対してESBインスタンスの環境構築を行う必要がありますが、 分散管理サーバ機能を使用すれば、ドメイングループに対してESBインスタンスの設定を行うことで、一括でESBインスタンスの設定を行うことができます。 これにより運用管理のコストの低減と、運用ミスによるリスクを低減することができます。

【図8.1.3k】のように、ドメイングループで、「ESBインスタンス」を追加します。ESBインスタンスを追加した後で、ドメイングループの「管理対象一覧の更新」操作を実行するとESBインスタンスのノードが表示されます。

【図8.1.3k】「ProxyドメインでESBインスタンスの作成」の画面

ESBインスタンスのノードをクリックし、「設定情報」の画面からESBインスタンスの設定を行います。 設定方法は[8.1.1.ESBインスタンスの設定]を参照してください。

【図8.1.3l】「ProxyドメインでESBインスタンスの設定」の画面

8.1.3.3. 通信用リソースの作成

(1)JMSの設定

「ドメイングループ」の「リソース」ノードでJMSリソースを作成し、各制御対象ドメインへ一括反映します。設定方法は[ 8.1.2. 通信用リソースの作成 > 8.1.2.1. JMSの設定 ] を参照してください。

(2)SOAPの設定

メッセージを受信するためのWARファイルを配備する必要があります。設定方法は[ 8.1.2. 通信用リソースの作成 > 8.1.2.2. SOAPの設定 ] を参照してください。

(3)SOAP (WS-R)の設定

WS-Rの設定はESBインスタンスにより異なる点がありますのでProxyドメインの一括設定を利用できません。ESBインスタンス毎に[ 8.1.2. 通信用リソースの作成 > 8.1.2.3. SOAP(WS-R)の設定 ] を参照して構築してください。

8.1.3.4. サービスアセンブリの運用

ドメイングループで各ESBインスタンスに対してサービスアセンブリの「配備」、「起動」、「シャットダウン」、「配備解除」の一括操作を行うことができます。

(1)配備

a.配備の準備

サービスアセンブリを配備する前に、サービスアセンブリをProxyドメインの「コンポーネントリポジトリ」に登録する必要があります。 【図8.1.3m】のように、「Proxy」-「分散配備」-「コンポーネントリポジトリ」-「コンポーネントの登録」を右クリックして表示される操作の一覧から「コンポーネントの登録」を選択します。【図8.1.3n】の実行画面に、サービスアセンブリの情報を入力して、サービスアセンブリを配備します。各設定項目は以下の箇所を参照してください。
[ Application Server > リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.17. 分散管理サーバ > 1.17.13. ESBコンポーネントに関する設定 ]

【図8.1.3m】「コンポーネントの登録」の選択画面

コンポーネントの情報を入力し、実行を押下します。

【図8.1.3n】「コンポーネントの登録」の実行画面

b.配備の実行

 

 配備方法は、「コンポーネントリポジトリ」での配備と「配備構成」での配備があります。

配備方法 説明

「コンポーネントリポジトリ」で配備

配備先サーバ名を指定する必要があります。ExpressおよびStandard/Enterpriseのスタンダードモードでは「server」と指定します。Standard/Enterpriseのアドバンスモードでは「アプリケーショングループ名-プロセスグループ名」の形式で指定します。複数のサーバ名を指定することができないので、複数の配備先が同じサーバ名を持つ場合にはこの方法を利用してください。

「配備構成」で配備

複数の配備先が異なるサーバ名を持つ場合、この方法を利用してください。

また、コンポーネントの配備操作に関して詳しくは以下を参照してください。
[ Application Server > ドメイン構築・基本設定ガイド > 7. WebOTXの内部サービス > 7.7. 分散管理サーバ > 7.7.7. 配備操作 > 7.7.7.4. コンポーネントの配備操作 ]

■「コンポーネントリポジトリ」で配備

コンポーネントリポジトリから登録したサービスアセンブリを選択し、配備先の情報を指定し、分散配備を行います。

【図8.1.3o】「配備操作の実行」の選択画面

配備情報を入力し、実行を押下します。

【図8.1.3p】「配備操作の実行」の実行画面

 

■「配備構成」で配備 

・「配備構成」を選択し、右クリックして表示される操作から「配備構成の登録」を選択すると、以下の実行画面が表示されます。「配備構成名」を入力し、ドメイングループ名を選択して「実行」ボタンを押してください。

【図8.1.3q】「配備構成の登録」の実行画面

・作成した「配備構成」の「サーバの追加」メニューで複数のサーバを追加することができます。【図8.1.3r】は二つのサーバを含む配備構成を示します。

【図8.1.3r】「配備構成」の画面

・作成した「サーバ」の「コンポーネントの追加」メニューで配備するサービスアセンブリを追加します。サーバごとにサービスアセンブリを追加する必要があります。

【図8.1.3s】「コンポーネントの追加」の画面

 

・作成した「配備構成(図8.1.3tのtest1)」の「配備操作の実行」メニューを選択し、サービスアセンブリの一括配備を行います。

【図8.1.3t】「配備操作の実行」の画面

(2)起動、停止、シャットダウン、配備解除

ドメイングループのESBからサービスアセンブリを選択し、右クリックして表示される操作から該当サービスアセンブリの起動、停止、シャットダウン、配備解除を実行できます。

【図8.1.3u】「サービスアセンブリの操作」の選択画面