消息中介的实用介绍——第 1 部分:消息中介基础
2009-10-21 00:00:00 来源:WEB开发网SIMessage 接口提供了许多您的中介需要的操作。API 消息 ID 可以被用户应用程序或组件设置。在 JMS 消息情况中,这个将是 JMS 消息 ID。当消息被创建或被入站服务定义接收到时,系统 ID 被消息系统指定。 相关 ID 被用于消息的相关请求和回复。
消息格式字符串表示了消息发送的原始类型。正如您将在文章后面所看到的,您可以获得与原始消息格式不同的消息有效载荷格式。关于支持格式的清单请参考 WebSphere Application Server Information Center 的 JMS 与 Web 服务格式的条目。
消息可以有许多用户属性设置,它们可以是任意序列化的 Java 类。消息也可以具有一个向前的和保留的路由通道。路由通道定义了一个连续的目的地列表,消息将通过其传递到目标地址。
从 SIMessage 摘录信息
例子从 SIMessage 获取信息并返回表示消息属性的字符串。
在中介处理程序中加入下列代码:
清单 5. private String getMessageInfo(SIMessage message)
{ StringBuffer data = new StringBuffer();
data.append("API message id = ");
data.append(message.getApiMessageId());
data.append(", System message id = ");
data.append(message.getSystemMessageId());
data.append(", Correlation id = ");
data.append(message.getCorrelationId());
data.append(", Message format =
\"");
data.append(message.getFormat());
data.append('\"');
data.append(", Message descriminator =
\"");
data.append(message.getDiscriminator());
data.append('\"'); List list =
message.getUserPropertyNames(); if (list != null
&& !list.isEmpty()) {
data.append(", User properties = ");
data.append(list.toString()); } list =
message.getForwardRoutingPath(); if (list !=
null && !list.isEmpty()) {
data.append(", Forward routing path =
"); data.append(list.toString()); } list =
message.getReverseRoutingPath(); if (list !=
null && !list.isEmpty()) {
data.append(", Reverse routing path =
"); data.append(list.toString()); }
data.append(", Reliability = ");
data.append(message.getReliability());
data.append(", Priority = ");
data.append(message.getPriority());
data.append(", Redelivered Count = ");
data.append(message.getRedeliveredCount());
data.append(", User id = ");
data.append(message.getUserId()); return
data.toString(); }
更多精彩
赞助商链接