ワイヤーされていない Java™ Message Service (JMS) データ・バインディング・インポートを使用し、SMO によってエンドポイントの動的起動を有効にする方法について説明します。この情報は、MQ JMS バインディングおよび汎用 JMS バインディングにも適用されます。
概要
インポートで指定されたものと異なるエンドポイントを使用してサービスを起動できます。
JMS バインディングの場合、JMS URI 標準に準拠した URI を使用して動的エンドポイントを指定することができます。
図 1. ワイヤーされていないインポートを使用した SMO による動的起動でのエンドポイント・オーバーライドの図
WebSphere® Integration Developer でタスクを実行して、動的エンドポイントが設定されたメディエーション・モジュールを作成します。
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 エンドポイントを使用した動的起動の作成
動的エンドポイントが設定されたメディエーション・モジュールを作成するには、以下のタスクを実行します。
- メディエーション・モジュールを作成し、エクスポート、メディエーション・フロー・コンポーネント、ワイヤーされていない JMS インポートを格納します。
エクスポートはどのタイプでもかまいません。
- メディエーション・モジュールのインポートを静的 SvcProvider 1 に接続します。
- SvcProvider 2 を作成します。
- SvcProvider 1 と SvcProvider 2 のポート・タイプが同じであることを確認します。
- インポートがメッセージを SvcProvider 1 に送信するように構成されていることを確認します。
- コールアウト・ノードで動的エンドポイント起動のオーバーライドが有効になっていることを確認します。
- モジュールをサーバーにデプロイします。
動的起動の使用
ターゲット・インポートと、SvcProvider 2 に解決されるルーティング基準が含まれているメッセージでエクスポートを起動すると、動的起動が実行されます。
メディエーション・フロー・コンポーネントは、メッセージ・エレメント設定プリミティブを使用してメッセージからエンドポイントを抽出し、SMO に格納します。
メディエーション・フロー・コンポーネントは、メッセージ・エレメント設定プリミティブを使用してメッセージからターゲット・インポートを抽出し、SMO に格納します。
コールアウトは、この SMO から取得した情報を使用して SvcProvider 2 を起動します。
応答フローからエクスポートの呼び出し元に応答が返されます。
片方向の起動メッセージは、両方向の起動メッセージと同じように機能しますが、応答メッセージは返しません。
以下の 3 つの条件のいずれかに該当する場合は、実行時例外が発生します。
- URI の構文が無効な場合。
- 指定のターゲット・インポートが存在しない場合。
- SvcProvider 2 が使用できない場合。
いずれかに該当する場合はインポートによって実行時例外がスローされ、応答フローに返されます。