メッセージ・プロパティーの処理

以降の処理に影響を与えるメッセージ・プロパティーを使用することができます。

始める前に

このタスクを開始する前に、SIMessage インターフェースでサポートされるプロパティーについて、メッセージ・プロパティーはメディエーションをサポートするを確認する必要があります。

このタスクについて

メッセージ・プロパティーには、以下の 2 つのタイプがあります。
  • システム・プロパティー (JMS ヘッダー、JMSX プロパティー、および JMS_IBM_properties を含む)
  • ユーザー・プロパティー。

メッセージ・プロパティーを使用して、後のメディエーションが処理するメッセージに影響を与えたり、下流のアプリケーションまたはメディエーションによる処理に影響を与えることができます。メディエーション構成時の セレクター・フィールドのルール・セットが、メッセージ・プロパティーの値をテストします。

SIMessage インターフェースを 使用して、プロパティーにアクセス、変更、およびクリアすることができます (SIMessageを参照)。メソッドには以下の 3 つのセットがあります。

  • これらのプロパティーは、システム・プロパティーで機能し、さらに 名前がプレフィックス user. で修飾されている場合はユーザー・プロパティーで機能します。
    • getMessageProperty
    • setMessageProperty
    • deleteMessageProperty
    • clearMessageProperties
  • 以下のプロパティーは、ユーザー・プロパティーでのみ機能し、 プレフィックス user. は必要ありません。
    • getUserProperty
    • setUserProperty
    • deletUserProperty
    • clearUserProperties
  • getUserPropertyNames は、メッセージ内にあるユーザー・プロパティーの名前のリスト を返します。
一般的に、メディエーションをプログラミングするときには、 以下のようにメッセージ・プロパティーを使用できます。

手順

  1. メソッド handle (MessageContext context) 内で、ファンクション・メディエーション・コードを挿入するメディエーション・ハンドラー内のポイントを位置指定します。 インターフェースは MessageContext であり、MessageContext で提供されるメソッドに関与するのが自分のみでない限り、これを SIMessageContext にキャストする必要があります。
  2. SIMessage を MessageContext オブジェクトから取得します。例えば、SIMessage message = ((SIMessageContext)context).getSIMessage();
  3. これらの例と同様の方法で、メディエーション・ヘッダー機能をビルドします。メッセージ・プロパティーはメディエーションをサポートするの参照情報を参考にしてください。
    1. メッセージのユーザー・プロパティーを取得します。例えば、String task = (String)msg1.getUserProperty("task");。この場合、 task ストリングは、メディエーションが実行する操作を指します。
    2. ユーザー・プロパティーを設定します。メッセージ・プロ パティーは、名前と値のペアとして格納されます。setUserProperty メソッドは、ユーザー・プロパティーを設定する場合にのみ使用されるため、メソッドに渡される名前には、「user.」プレフィックスは含まれていません。例えば、msg1.setUserProperty("background","green");
    3. メッセージからユーザー・プロパティーを削除します。例えば、msg1.deleteUserProperty("task");

メッセージ・プロパティーを使用するメディエーション機能コードは、 以下のコード断片例のようになります。

    String task = (String)msg1.getUserProperty("task");
    if (task != null) {
      if (task.equals("addColor")) {
        msg1.setMessageProperty(SIProperties.JMS_IBM_Format, "colorful");
        msg1.setUserProperty("background","green");
        msg1.setUserProperty("foreground","purple");
        msg1.setUserProperty("depth",new Integer(3));
        msg1.deleteUserProperty("task");
      }
      else {
        msg1.clearUserProperties();
      }
    }     

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



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