gpt4 book ai didi

java - 将 JMS 消息转换为 IBM PCF

转载 作者:行者123 更新时间:2023-11-30 06:14:11 25 4
gpt4 key购买 nike

我有点手足无措。我正在尝试通过jms读取WMQ的消息,然后将其转换为pcf消息进行处理。我只能找到一个关于此的资源,而且它不是很有帮助 [http://www-01.ibm.com/support/docview.wss?uid=swg21395682 的底部| ]

我已经尝试在上面的文档中实现该技术,但每次我都排队

PCFMessage response = new PCFMessage(dataInput);

我抛出 MQRC 3013 - MQRCCF_STRUCTURE_TYPE_ERROR

这是我的代码的样子,也许你能看到我看不到的东西。

BytesMessage message = null;
do {
// The consumer will wait 10 seconds (10,000 milliseconds)
message = (BytesMessage) myConsumer.receive(10000);

// get the size of the bytes message & read into an array
int bodySize = (int) message.getBodyLength();
byte[] data = new byte[bodySize];
message.readBytes(data, bodySize);

// Read into Stream and DataInput Stream
ByteArrayInputStream bais = new ByteArrayInputStream(data);
DataInput dataInput = new DataInputStream(bais);

// Pass to PCF Message to process
//MQException.logExclude(new Integer(2079));
PCFMessage qStatsPcf = new PCFMessage(dataInput);

session.commit();
if (message != null) {
processMessage(qStatsPcf);
}
} while (message != null);
myConsumer.close();

针对 T.Rob 的回答进行了一些更新。我目前正在运行 MQ 7.0。这是一个什么类型的东西,我目前无法升级。

至于我正在尝试做什么,我正在从 SYSTEM.ADMIN.STATISTICS.QUEUE 中提取消息,并且我想解析该信息以用于审计目的。转换为 PCF 消息背后的原因是我希望从这些消息中提取一些 PCF 参数 - 例如 .getParameter(PCFConstants.MQIAMO_PUTS)

无论如何,我并没有尝试向 MQ 发送消息,只是拉出消息并处理它们。

最佳答案

这个问题有几个问题:

  • 没有提到正在使用的MQ jms客户端的版本。由于 IBM 已多次重新打包 Java/JMS 类,因此有必要提及您正在使用的版本以获得更好的答案。
  • 不清楚您要做什么。 MQ PCF 消息由 MQ 命令服务器处理。消息是二进制格式,由名称/类型/值元组的链接列表组成。如果您的消息正文尚未采用 PCF 名称/类型/值格式,则将其转换为 PCF 消息预计会失败。

由于不可能用解决方案来回答问题,我将根据您可能尝试做的事情的大胆猜测提供一些建议。

  1. 使用现代 MQ 客户端。您链接到的技术说明适用于不受支持的 MQ 客户端版本。您需要至少是 MQ v7.1,但最好是 v8.0。由于任何版本的 MQ 客户端都适用于任何版本的 MQ,因此请使用最新版本。请记住,您获得的功能基于客户端或服务器上使用的最旧版本的 MQ。 v8.0 客户端无法在 v7.0 QMgr 上使用 v8.0 功能。转到 SupportPacs页面并查找名称类似于 MQC** 的条目。 MQ v8.0 客户端是最新的,它是 SupportPac MQC8。
  2. 如果您真的想将 PCF 消息提交给 MQ 的命令处理器,请实例化一个 PCF Agent去做吧。然后使用 PCF message constructors 之一构造 PCF 消息可让您指定选择器及其值。
  3. 当您尝试使用 PCF Java 示例时发生了什么?他们也失败了吗?他们工作了吗?如果是这样,您的代码有何不同?您确实看过 IBM 的 PCF 样本,对吧?请看Installation directories for samples示例程序(包括 PCF 示例)的位置。
  4. 如果您尝试向 MQ 命令处理器发送消息,请更新问题,让我们知道您正在尝试做什么以及您认为需要 PCF 消息的原因

关于java - 将 JMS 消息转换为 IBM PCF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30668273/

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