Websphere MQRFH2.usr进入主消息体

Websphere MQRFH2.usr进入主消息体,websphere,ibm-mq,websphere-6.1,Websphere,Ibm Mq,Websphere 6.1,将WMQ7.0与WMB 6.1一起使用 我有一个流,在其中转换消息并使用MQRFH2.usr保存一些数据 但是,我面临的问题是,MQRFH2.usr将出现在主消息体中 我在不同的环境中部署了相同的代码,但我只在一个环境中遇到了这个问题 因此,这似乎不是一个代码问题。它与配置有关。 请说明可能的原因。检查队列设置。如果设置为NONE,则行为如下: 如果应用程序未创建消息句柄,则所有消息 属性将从MQRFH2中删除。MQRFH2中的名称/值对 邮件中保留了标题 请务必通读几遍,并可能使用不同的设置进

将WMQ7.0与WMB 6.1一起使用

我有一个流,在其中转换消息并使用MQRFH2.usr保存一些数据

但是,我面临的问题是,MQRFH2.usr将出现在主消息体中

我在不同的环境中部署了相同的代码,但我只在一个环境中遇到了这个问题

因此,这似乎不是一个代码问题。它与配置有关。

请说明可能的原因。

检查队列设置。如果设置为
NONE
,则行为如下:

如果应用程序未创建消息句柄,则所有消息 属性将从MQRFH2中删除。MQRFH2中的名称/值对 邮件中保留了标题

请务必通读几遍,并可能使用不同的设置进行测试,以完全了解
PROPCTL
如何修改应用程序接收的消息内容。

检查队列的设置。如果设置为
NONE
,则行为如下:

如果应用程序未创建消息句柄,则所有消息 属性将从MQRFH2中删除。MQRFH2中的名称/值对 邮件中保留了标题


请务必通读几遍,并可能使用不同的设置进行测试,以完全了解
PROPCTL
如何修改应用程序接收的消息内容。

MQRFH2头(如果存在)始终位于消息的有效负载部分(这是webpshere组织消息的方式)。您可以接收一个或多个MQRFH2头(结构)

也许你只期待一个,却收到两个?这可以解释为什么您的消息数据被留下了乱七八糟的内容

我使用以下代码在收到消息时处理这些herd

MQRFH2 header = null;

// Find and store message length
int msglen = replyMessage.getMessageLength();

MQHeaderList list = new MQHeaderList(replyMessage);
int indexOf = list.indexOf("MQRFH2");
if (indexOf >= 0) {
    header = (MQRFH2) list.get(indexOf);
    msglen = msglen - header.size();
}

String msgText = replyMessage.readStringOfCharLength(msglen);
希望能有帮助


Martins

MQRFH2头(如果存在)始终位于消息的有效负载部分(这是webpshere组织消息的方式)。您可以接收一个或多个MQRFH2头(结构)

也许你只期待一个,却收到两个?这可以解释为什么您的消息数据被留下了乱七八糟的内容

我使用以下代码在收到消息时处理这些herd

MQRFH2 header = null;

// Find and store message length
int msglen = replyMessage.getMessageLength();

MQHeaderList list = new MQHeaderList(replyMessage);
int indexOf = list.indexOf("MQRFH2");
if (indexOf >= 0) {
    header = (MQRFH2) list.get(indexOf);
    msglen = msglen - header.size();
}

String msgText = replyMessage.readStringOfCharLength(msglen);
希望能有帮助


马丁斯

我想这是我的又一批风滚草d正在使用哪个版本的WMQ QMgrs?@T.Rob所有队列管理器都在WMQ 7.0上,我想这对我来说是又一批风滚草…:d正在使用哪个版本的WMQ QMgrs?@T.Rob所有队列管理器都在WMQ 7.0上,以获取信息。实际上,在我的例子中,问题是MQMD.FORMAT,它应该是“MQRFH2”,但它是“MQSTR”。但是,仍然不知道它在WMB 8和WMQ 7.0组合中如何工作良好。它只在WMB6.1和WMQ 7.0组合中失败。运行跟踪。我希望您会发现WMB 6没有设置
MQGMO_属性
,但WMB 8将其设置为所描述的值之一。感谢您提供的信息。实际上,在我的例子中,问题是MQMD.FORMAT,它应该是“MQRFH2”,但它是“MQSTR”。但是,仍然不知道它在WMB 8和WMQ 7.0组合中如何工作良好。它只在WMB6.1和WMQ 7.0组合中失败。运行跟踪。我希望您会发现WMB 6没有设置
MQGMO_属性
,但WMB 8将其设置为所描述的值之一。