使用消息属性
可使用消息属性影响后续处理。
开始之前
关于此任务
有两种不同类型的消息属性:
- 系统属性(包括 JMS 头、JMSX 属性和 JMS_IBM_properties)
- 用户属性。
可以使用消息属性来影响后续调解应该处理的消息,或者影响下游应用程序或调解执行的处理。配置调解期间在选择器字段中设置的规则将对消息属性中的值进行测试。
可以使用 SIMessage 接口来访问、修改和清除属性(请参阅 SIMessage)。有三个不同的方法集:
- 下列属性作用于系统属性,并且,如果使用前缀 user. 对名称进行限定,那么还作用于用户属性:
- getMessageProperty
- setMessageProperty
- deleteMessageProperty
- clearMessageProperties
- 下列属性仅作用于用户属性,而且不需要前缀 user.:
- getUserProperty
- setUserProperty
- deletUserProperty
- clearUserProperties
- getUserPropertyNames 返回消息中的用户属性名列表。
过程
示例
用于使用消息属性的调解函数代码可能与以下示例中的代码段类似:
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();
}
}