WebSphere Enterprise Service Bus for z/OS バージョン 6.2.0 オペレーティング・システム: z/OS


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

ワイヤーされていない Java™ Message Service (JMS) のデータ・バインディング・インポートを使用してエンドポイントの動的起動を有効にする方法について説明します。この情報は、MQ JMS バインディングおよび汎用 JMS バインディングにも適用されます。

概要

インポートで指定されたものと異なるエンドポイントを使用してサービスを起動できます。 JMS バインディングの場合、JMS URI 標準に準拠した URI を使用して動的エンドポイントを指定することができます。
図 1. ワイヤーされていないインポートを使用した動的起動によるエンドポイント・オーバーライドの図
メッセージは、モジュール内を通過し、インポート・バインディングを通過して Web サービスに到達します。メッセージ内の情報は、エンドポイントを動的にオーバーライドできます。

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

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

すべてのエンドポイントで同じインポート・バインディング構成が使用されている必要があります。 POJO により、必要なインポートが EPR で識別され、SCA を使用して、互換性のあるインポートにワイヤーされます。

SCA パブリック API を使用してエンドポイント・アドレスをオーバーライドすることができます。 以下のコード例の uri 値は、JMS URI 標準に準拠している必要があります。
epr = EndpointReferenceFactory.INSTANCE.createEndpointReference();
epr.setAddress(uri);
epr.setImport(importName);
Service dynamicService = (Service) ServiceManager.INSTANCE.getService(refname, epr);
JMS URI には、Web サービスの SOAP/JMS エンドポイント・アドレスと同じ接頭部が設定されます。 エンドポイント参照にバインディング・タイプ属性を追加して、正しいエンドポイント・タイプを指定します。 JMS URI に対してバインディング・タイプ属性を指定しなかった場合は、エンドポイント参照が JMS インポートにワイヤーされていない限り、そのアドレスは SOAP/JMS エンドポイントとして解釈されます。

JMS エンドポイントの記述

動的起動で使用する JMS エンドポイントは、JMS URI 標準に準拠した構造になります。

したがって、JMS URI を以下の形式で指定する必要があります。
構文図を読む構文図をスキップする
>>-scheme--:--jms-variant--:--jms-dest--?--parameter-----------><

scheme
JMS URI のスキームは常に jms です。
jms-variant
jms-variant により、バリアント jndi などを使用して JMS 接続の追加情報を指定します。
jms-dest
この値により、JMS 宛先オブジェクトを指定します。これは、jms-variant に対応している必要があります。
parameter
パラメーターは「=」で区切られるキー値のペアです。サポートされるキーは「jndiConnectionFactoryName」のみです。このキーの値は、接続ファクトリーの JNDI 名である必要があります。このパラメーターの使用はオプションです。

セキュリティーの管理

JMS 接続ファクトリーでは、アプリケーション管理のセキュリティーが使用されます。 コンテナー管理のセキュリティーは使用されません。 したがって、コンポーネント管理の認証別名を設定する必要があります。

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

jms:jndi:MyTargetQueueName?jndiConnectionFactoryName=MyConnectionFactoryName

送信宛先の入力名と接続ファクトリーは、サーバーで既に定義されている必要があります。

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

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

動的起動の使用

ターゲット・インポートと、メッセージ内でエンドポイントとして指定されているエクスポート 3 を使用して POJO を起動すると、動的起動が実行されます。 起動された POJO は、SCA EPR API を使用してインポートを解決します。 さらに POJO は、メッセージからエンドポイントを抽出し、元のインポートで指定されているエクスポート 2 ではなくエクスポート 3 をエンドポイントとして識別します。 また、メッセージ内で指定されているターゲット・インポートを使用して、メッセージのエンドポイントで指定されているリモート・サービスを起動します。 サービスの起動後に、応答が POJO に返されます。

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

以下の 3 つの条件のいずれかに該当する場合は、実行時例外が発生します。
  • URI の構文が無効な場合。
  • 指定のターゲット・インポートが存在しない場合。
  • 指定のエンドポイントが存在しない場合。

reference 参照トピック

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


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


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