ユーザー・プロパティー
ユーザー・プロパティーのサポートは、SIMessage インターフェースとメディエーション構成セレクターによって提供されます。 JMS API は、プリミティブ・ラッパーまたはストリング・タイプのプロパティーをサポートします。プロパティー名には任意の有効な Java™ ID を指定できます。ただし、プレフィックス JMS は付けません。また、SIMessage API はプリミティブ・ラッパーまたはストリング・タイプのプロパティーもサポートし、加えて byte[] および順序付け可能なタイプもサポートします。任意の順序付け可能オブジェクトが、バイト配列として保管され、バイト配列としてのみ (等号のみを使用して) 選択されます。
SIMessage API でサポートされるユーザー・プロパティーは、プレフィックス user によってサポートされます。これらのプロパティーは、getMessageProperty、setMessageProperty および deleteMessageProperty を使用して設定およびアクセスすることができます。
JMS との相互作用
上記の方法の他、 xxxUserProperty メソッドを使用してユーザー・プロパテ ィーを突き合わせ、これにアクセスすることができます。この場合は、プレフィックス user を省略する必要があります。 プレフィックス user を除くプロパティー名は、JMS ユーザー・プロパティーと同じ名前空間に存在します。
例えば、JMS アプリケーションは次のようにプロパティーを呼び出します。
setStringProperty("color", "green");
メディエーションは、次の呼び出しのいずれかを行ってプロパティーにアクセスすることができます。getMessageProperty("user.color");
getUserProperty("color");
注: メディエーション・メッセージ・セレクターには、user プレフィックスが含まれていなければなりません。
JMS プロパティー・メソッドは、JMS API でサポートされるタイプを持つユーザー・プロパティーのみに影響します。- clearProperties() は、JMS でサポートされるプロパティーのみを消去します。
- propertyExists() は、プロパティー・タイプが JMS でサポートされる場合にだけ true を戻します。
- getPropertyNames() には、JMS でサポートされるタイプを持つプロパティーのみが含まれます。
- setObjectProperty("xxxx", null); は、JMS でサポートされる場合にだけプロパティーを消去します。