用于捕获请求和发送响应的 MQJExplorer 工具的替代方案

时间:2021-05-15 14:06:45

标签: ibm-mq message-queue mq

我有一个应用程序,它使用 IBM MQ 将队列管理器中的请求发送到特定的 system B。 然后,应用程序在同步调用中从 system B 接收与该请求对应的响应,然后进行进一步的业务处理。

由于我们在近海区域工作,我们实际上并没有将请求发送到 system B,而是使用 MQJExplorer 工具自己捕获它并发送回响应,这种模拟模拟了产品。行为。

这里的问题是,或者我会说,开销是我们必须手动打开 mqjexplorer 工具,检查请求,从请求中获取特定属性(比如 ID),然后发回ID+1 以便应用程序识别响应是针对 ID-1 请求的。

我想知道这个特定的事情是否可以自动化,使用其他一些工具,我可以在那里定义,无论何时收到任何此类请求,例如:MQ001 队列管理器及其 {{1 }} 队列,只需提取 REQ 属性,执行 ID 并将响应发送回相同 qm 的 ID+1 队列。

2 个答案:

答案 0 :(得分:1)

IBM MQ 附带了一对 IBM 提供的示例:-

  • amqsreq0.c - 将请求消息放入消息队列并显示回复的示例 C 程序(使用 REPLY 队列的示例)
  • amqsecha.c - 示例 C 程序 - 回显消息以回复队列

提供它们是为了让您可以试用请求/回复应用程序。

您已经有等效的应用程序来完成 amqsreq0.c 所做的工作,您可以调整 amqsecha.c 来提取您的 ID 属性,增加它,然后示例已经具有发回回复的代码。

它也可以通过作为触发应用程序运行来实现自动化。

答案 1 :(得分:0)

如果您不喜欢“C”语言并且更喜欢 Java,那么请阅读我在 2017 年所做的blog posting。这是一个完整的请求/回复场景,包含 2 个应用程序:BEServer01.java 和 RQClient01.java

您可以根据自己的喜好修改 BEServer01.java(并删除 SQL 代码)。 BEServer01.java 包含获取请求消息和发送回复消息的所有代码。只需将变量 'replyText' 内容替换为您想要的回复消息。

如果您不是程序员,那么还有另一种选择,但它不会修改消息内容。 MQ Visual Edit 有一个组件叫做:SIM 服务器。其目的是模拟服务器端组件。您可以配置从哪个“请求”队列获取消息以及回复消息文本是什么。当消息到达请求队列时,SIM 服务器将检索它并将回复消息发送到 MQMD 的 ReplyToQueueName 和 ReplyToQueueManagerName 字段中指定的队列和队列管理器。

相关问题