ルーティング・メディエーションの書き込み

このトピックは、メッセージに対して特定の転送経路を選択するメディエーションを作成する場合に使用します。

始める前に

サービス統合バスでのメディエーションの使用の概要については、 メディエーションの学習を参照してください。メディエーションを WebSphere Application Server にインストールしてバス宛先に関連付ける方法について詳しくは、メディエーションの使用を参照してください。

このトピックでは、アセンブリー・ツールIBM® Rational® Application Developer などの Java Platform Enterprise Edition (Java EE) セッション Bean 開発環境の使用について十分理解していることが前提となります。

このタスクについて

ルーティング・メディエーションは、ルーティング・ハンドラーを含むメディエーション・アプリケーションです。 ルーティング・メディエーションをサービス統合バスの宛先に関連付け、そのメディエーションを使用して、使用可能な経路の範囲から特定の経路を選択します。例えば、新規アウトバウンド・サービス構成の作成、または既存のアウトバウンド・サービス構成の変更を行うとき、 ポート選択 Mediation を適用すると、アウトバウンド・サービスで使用可能なポートの範囲から特定のアウトバウンド・ポートを選択することができます。

ルーティング・メディエーションを作成するには、Java Platform Enterprise Edition (Java EE) セッション Bean 開発環境を使用して、以下のステップを実行します。

手順

  1. 空のメディエーション・ハンドラー・プロジェクトを作成します。 これにより、 プロジェクトが作成され、ハンドラー・インターフェースを実装するハンドラー・クラスが作成されます。 この方法の詳細については、メディエーション・ハンドラーの書き込みを参照してください。
  2. EJB 記述子のメディエーション・ペインを使用して、メディエーション・ハンドラーとしてハンドラー・クラスを定義します。
    注: このとき、 既知のメディエーション・ハンドラー・リストの名前を指定します。後でバスにメディエーションを作成するときの参照用に、 この名前を控えておいてください。
  3. ハンドラーにルーティング機能を追加します。 始める前に、メディエーション機能のハンドラー・コードへの追加の、特にそのサブトピック、メッセージ・コンテキストの使用を確認しておいてください。 ハンドラー・クラスにインポート・ステートメントを追加し、ルーティングのコードを追加してハンドル・メソッドを変更します。 転送ルーティング・パス・リストの先頭にルーティングの宛先を追加することによって、宛先を指定します。 転送ルーティング・パス・リストは、メッセージ・コンテキストから取得できます。以下に例を示します。
    import javax.xml.rpc.handler.MessageContext;
    import com.ibm.websphere.sib.mediation.handler.MediationHandler;
    import com.ibm.websphere.sib.mediation.handler.MessageContextException;
    import com.ibm.websphere.sib.mediation.messagecontext.SIMessageContext;
    import com.ibm.websphere.sib.SIMessage;
    import com.ibm.websphere.sib.SIDestinationAddress;
    import com.ibm.websphere.sib.SIDestinationAddressFactory;
    import java.util.List;
    public class RouteMediationHandler implements MediationHandler {
    
    		public boolean handle(MessageContext ctx) throws MessageContextException {
    				SIMessageContext siCtx = (SIMessageContext) ctx;
    				SIMessage msg = siCtx.getSIMessage();
    				List frp = msg.getForwardRoutingPath();
    		try {
    						SIDestinationAddress destination =
    				SIDestinationAddressFactory
    					.getInstance()
    					.createSIDestinationAddress(
    										"RoutingDestination", //this is the name of the target destination
    										false);
    						frp.add(0, destination);
    		} catch (Exception e) {
    			return false;
    		}
    				msg.setForwardRoutingPath(frp);
    		return true;
    	}
    
    }
    メディエーション・ハンドラー・クラスやメッセージ・コンテキスト・クラスなど、サービス統合テクノロジー・クラスについて 詳しくは、生成 API ドキュメンテーション - アプリケーション・プログラミング・インターフェースを参照してください。
  4. ルーティング・メディエーション・エンタープライズ・アプリケーションをエクスポートします。

次のタスク

これで、メディエーションの使用で説明されているように、WebSphere Application Server にメディエーションをインストールし、バス宛先にそれを関連付ける準備ができました。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjw_mediation_routing
ファイル名:tjw_mediation_routing.html