当 JMSOutput 节点接收 JMS 消息时,它调用 JMSTransport 解析器来返回包含消息 JMSTransport 部分的 XML 位流。该节点抽取 Message_MetaData 并获取有效内容类型信息来识别要创建哪种 JMS 消息类型用于输出。如果 Message_MetaData 文件夹不存在,则在缺省情况下,输出节点创建 BytesMessage。
JMSOutput 节点从 XML 字符串抽取 JMS 头数据,并使用此数据填充消息中 JMS 头字段的值。
JMSOutput 节点从 XML 字符串抽取属性值。XML 元素包含标识要为每个属性值创建哪种 Java 对象类型的类型信息。
从 JMS 消息作为位流获取消息有效内容。对于 TextMessage 和 BytesMessage 有效内容,可以将位流直接传递到 JMS API 来创建相应的有效内容。
对于 MapMessage 和 StreamMessage 有效内容,必须从 XML 位流抽取单独的元素。输出节点调用相应的 JMS API 方法来创建消息中的映射字段或流字段。
对于 ObjectMessage 有效内容,JMSOutput 节点通过使用对象类对位流有效内容进行重新序列化。必须在代理的 Java 类路径中提供该对象类。在 mqsiprofile 批处理文件中定义类路径,该文件在可执行文件目录中;例如,在 Windows 上,mqsiprofile.cmd 在 install_dir/bin 目录中。
消息将被发布到已经指定为 JMSOutput 节点属性的 JMS 目标。然而,如果在 JMS 消息中设置 JMSReplyTo 头字段,则 JMSOutput 节点将把消息作为对先前请求的应答对待,并将消息发布到先前请求的 JMS 目标。