gpt4 book ai didi

jms - 没有看到我明确设置的消息属性 (Spring/JMS/MQ)

转载 作者:行者123 更新时间:2023-12-01 04:28:03 24 4
gpt4 key购买 nike

两个独立的进程通过基于 MQ 的 JMS 进行通信。

作者设置了一个字符串属性:

new MessageAction() {
public void actOn(Message message) throws JMSException {
logger.debug("Setting message property (GmmThreadId, CASHFLOW-1234)");
message.setStringProperty("GmmThreadId", "CASHFLOW-1234");
}
});

MessageAction 已执行,如日志中所示:

设置消息属性(GmmThreadId,CASHFLOW-1234)


阅读器使用消息选择器来获取此消息。 (使用 Spring 的 JmsTemplate v1 - 我知道这是一个旧版本,但它已融入我们供应商的框架中,我们不得不使用它。)

template.receiveSelected(queue, "GmmThreadId = 'CASHFLOW-1234' or GmmThreadId IS NULL");

队列中唯一的消息是日志显示作者设置了消息属性的消息。在读者的日志中,我列举了属性并尝试记录 GmmThreadId 的值。它还显示属性 GmmThreadId 不存在。

message property JMS_IBM_PutDate = 20111003
message property JMSXAppID = WebSphere MQ Client for Java
message property JMS_IBM_Format = MQSTR
message property JMS_IBM_PutApplType = 28
message property JMS_IBM_MsgType = 8
message property JMSXUserID = MUSR_MQADMIN
message property JMS_IBM_PutTime = 23551798
message property JMSXDeliveryCount = 2
message had GmmThreadId property of null

注意,如果我的消息选择器只有 "GmmThreadId = 'CASHFLOW-1234'" 那么什么都不会出队。

使用 WebSphere MQ Explorer 查看消息,我找不到任何地方可以查看应用程序设置的消息属性。消息类型是 MQSTR,如果这有任何区别的话。

读取器和写入器应用程序都在 WebSphere v6 中运行。

我哪里错了?

最佳答案

this thread 所示如果目标类型是“MQ”,消息属性将被抑制。对我来说,这是在 WebSphere App Server 控制台中配置的。我将队列类型更改为“JMS”,并保留了消息属性。

关于jms - 没有看到我明确设置的消息属性 (Spring/JMS/MQ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7642206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com