WebSphere Enterprise Service Bus バージョン 6.2.0 オペレーティング・システム: AIX、HP-UX、i5/OS、Linux、Solaris、Windows


ワイヤーされていない EIS インポートを使用した動的起動

ワイヤーされていない EIS データ・バインディング・インポートを使用し、エンドポイントと属性のオーバーライドによってエンドポイントの動的起動を有効にする方法について説明します。

概要

インポートで指定されたものと異なるエンドポイントで、EIS インポート・バインディングを使用してサービスを起動できます。インポートが JDBC アダプターに接続されている EIS バインディングの場合、接続ファクトリーの JNDI 名を表す URL を使用して動的エンドポイントを指定することができます。
図 1. ワイヤーされていないインポートを使用した動的起動によるエンドポイント・オーバーライドの図
メッセージは、モジュール内を通過し、インポート・バインディングを通過して Web サービスに到達します。メッセージ内の情報は、エンドポイントを動的にオーバーライドできます。

WebSphere® Integration Developer を使用して、動的エンドポイントが設定されたメディエーション・モジュールを作成します。

エンドポイント・アドレスのプログラム・オーバーライド

SCA パブリック API を使用してエンドポイント・アドレスをオーバーライドすることができます。 以下のコード例の uri 値は、JCA URI 標準に準拠している必要があります。
epr = EndpointReferenceFactory.INSTANCE.createEndpointReference();
epr.setAddress(uri);
epr.setBindingType(bindingType);
epr.setImport("Import1");
Service dynamicService = (Service) ServiceManager.INSTANCE.getService(refname, epr);
エンドポイント参照にバインディング・タイプ属性を追加して、正しいエンドポイント・タイプを指定します。

JCA エンドポイントの記述

動的エンドポイントを生成する接続ファクトリーの JNDI は、作成された SCA エンドポイント参照内に格納されます。 この SCA エンドポイント参照は、SCA メッセージのエンドポイント参照内に格納されます。 SCA メッセージを受信すると、EIS インポート・ハンドラーはメッセージのエンドポイント参照を識別し、その情報に基づいて、ターゲット・アドレスを生成する接続ファクトリーの JNDI を検出します。 EIS バインディングはこの接続ファクトリーを使用して、動的エンドポイントのターゲット・アドレスを取得します。 ターゲット・アドレスが見つかった場合、メッセージはそのアドレスに送信されます。 ターゲット・アドレスが見つからなかった場合、メッセージは元のエンドポイントに送信されます。

JCA URI は以下の形式になります。
構文図を読む構文図をスキップする
>>-scheme--:--jca-variant--:--jndiName-------------------------><

scheme
JCA URI のスキームは常に jca です。
jca-variant
jca-variant により、JCA 接続の追加情報を指定します。値は常に jndi になります。
jndiName
メッセージの動的ターゲット・アドレスを生成する接続ファクトリーを指定します。

有効な JCA URI の例を次に示します。

jca:jndi:dynamicTestJNDIUnwired

この URI を指定すると、EIS インポート・ハンドラーは、JNDI で dynamicTestJNDIUnwired として定義されている接続ファクトリーを探します。

EIS エンドポイントを使用した動的起動の作成

動的エンドポイントが設定されたメディエーション・モジュールを作成するには、以下のタスクを実行します。
  1. メディエーション・モジュール 1 を作成し、ワイヤーされていないインポートと POJO を格納します。
  2. メディエーション・モジュール 2 を作成し、POJO 2 にワイヤーされているエクスポート 2 を格納します。
  3. メディエーション・モジュール 3 を作成し、POJO 3 にワイヤーされているエクスポート 3 を格納します。
  4. インポートが SCA-JCA インポートであり、対話仕様と接続仕様によって静的に構成されていること (ただし、接続ファクトリーの設定がないこと) を確認します。
  5. インポートがメッセージをエクスポート 2 に送信するように構成されていることを確認します。
  6. エクスポート 2 とエクスポート 3 のポート・タイプが同じであることを確認します。
  7. 3 つのモジュールをサーバーにデプロイします。

動的起動の使用

接続ファクトリー、新しい対話仕様、新しい接続仕様のそれぞれの JNDI 名で POJO を起動すると、JDBC アダプターの動的起動が実行されます。 起動された POJO は、エンドポイント情報と接続属性をメッセージから抽出します。 さらに POJO は、インポートにワイヤーされている参照と SCA EPR API を使用してリモート・サービスを起動します。 対話仕様と接続仕様の情報が EPR プロパティー・テーブルに保存されます。この情報は、後から再利用することができます。 応答フローから POJO に応答が返されます。

JDBC の代わりに、CICS、IMS、SAP のアダプターも使用することができます。 インポートに接続する各アダプターは、同じ portType になっている必要があります。 例えば、メディエーション・モジュール 2 で JDBC を使用している場合にメディエーション・モジュール 3 で CICS を使用すると、エラーになります。

片方向の起動メッセージは、両方向の起動メッセージと同じように機能しますが、応答メッセージは返しません。

以下の 3 つの条件のいずれかに該当する場合は、実行時例外が発生します。
  • POJO が空の引数で起動された場合。
  • ターゲット・インポートが見つからないか、存在しない場合。
  • EPR 情報が見つからないか、正しくない場合。
この場合はインポートによって例外がスローされ、応答フローに返されます。

reference 参照トピック

ご利用条件 | フィードバック


タイム・スタンプ・アイコン 最終更新: 2010/07/09


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.doc/ref/rwesb_dynamicroutingwithUnwiredEISimport.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています (http://www.eclipse.org)。