我想如果你想到达的所有消息写一个脚本文件将追加在日志file.Please帮助脚本文件从队列管理器检索MQ消息
3
A
回答
1
在队列管理器到达的MQ消息在频道上,您可以使用mrmq.dk的BlockIP2页面中的LogIP退出。诸如SupportPac MA0W之类的API出口可以记录所有放置的消息。 API出口可以捕获来自本地应用程序的消息以及通过通道到达的消息。
如果要编写脚本,可以使用Q(来自SupportPac MA01)等程序在队列到达时从队列中移除消息,并将它们附加到文件中。
例如,
#!/usr/bin/ksh
q -IMYQMGR/MY.QUEUE >> logfile.txt
通常,脚本被触发并且被配置为新消息附加到该文件。问题在于它破坏性地删除了消息。如果有需要使用这些消息的记录应用程序,它不是一个好的解决方案。您可以浏览队列,但不能保证在应用程序获取消息之前获取消息 - 并且浏览会定期在队列头部重新启动,以便您可以记录两次相同的消息。
另一个脚本选项是Perl MQSeries模块。该模块公开了WMQ API的所有选项以及面向对象的方法。如果你需要快速和肮脏的东西,Q程序作为可执行文件提供。如果你想要一些能够将所有API暴露给脚本的强大功能(并且不介意编译它),Perl MQSeries模块是一个很好的选择。这里有一个代码片段,从模块的样品拍摄,展示了如何获取消息:
while (1) {
$sync_flag = 0;
undef $outcome;
my $request_msg = MQSeries::Message::->new();
my $status = $request_queue->
Get('Message' => $request_msg,
'GetMsgOpts' =>
{
'WaitInterval' => 5000, # 5 seconds
'Options' => (MQSeries::MQGMO_WAIT |
MQSeries::MQGMO_SYNCPOINT_IF_PERSISTENT |
MQSeries::MQGMO_CONVERT |
MQSeries::MQGMO_FAIL_IF_QUIESCING),
},
);
unless ($status) { # Error
my $rc = $request_queue->Reason();
die "Error on 'Get' from queue $qmgr_name/$request_qname:\n" .
"\tReason: $rc (" . MQReasonToText($rc). ")\n";
}
next if ($status < 0); # No message available
一件事的人在过去所做的是队列在话题转换为一个别名。使用消息的应用程序将从新队列重定向到GET,而管理预订会将主题连接到新队列。在这一点上,真正的应用程序获取所有的消息,并且可以通过新的订阅记录消息通过主题。
相关问题
- 1. 从RabbitMQ队列中检索消息
- 2. 从消息队列中检索数据
- 3. Websphere MQ-如何查找通过队列管理器传递的消息总数
- 4. 使用hermesJMS或WebSphere MQ的shell脚本检索队列深度
- 5. MQ中队列管理器和队列之间的区别
- 6. 从队列中获取消息只检索单条消息
- 7. IBM MQ资源管理器 - 创建队列管理
- 8. WebSphere MQ回退队列中的消息输入队列
- 9. 从IBM MQ消息中检索原始目标信息
- 10. 如何通过TCL脚本将大量消息放入WebSphere MQ队列中?
- 11. MQException从MQ队列中获取消息时发生2046错误
- 12. 使用JMSMessageID从MQ队列中删除JMS消息
- 13. 的javax.jms.JMSException:MQJMS2002:无法从MQ队列得到消息
- 14. Hornetq:使用jmx管理将消息从队列移动到另一个队列
- 15. 检查MQ队列深度
- 16. 在Websphere MQ中创建新的队列管理器和队列(使用C#)
- 17. 如何跟踪队列管理器和对象在WebSphere MQ
- 18. 为什么MQ Websphere队列管理器开始监听TCP6
- 19. 无法连接Websphere MQ队列管理器
- 20. WebSphere MQ和IIB:活动可能填补队列管理器
- 21. 如何使用MassTransit从道岔队列中检索消息?
- 22. 没有本地消息队列服务器的远程消息队列
- 23. 从AMS检索消息使IBM的Web Sphere MQ
- 24. 从消息接收队列
- 25. Websphere MQ Cluster/HQ使用队列管理器实现同步消息的粘性会话
- 26. 将文件拖入消息队列
- 27. IBM MQ消息监听器
- 28. 异步队列管理器
- 29. 使用JMS将消息放入MQ队列并使用SPLUNK消息
- 30. MQ消息消失
我必须以某种方式使用mqget函数来检索消息并将内容追加到日志文件中 – Kullu 2012-04-25 18:20:39
我扩展了Q示例以在ksh中显示它并添加了一个Perl示例。标签和原始问题都没有提到平台,但Q和Perl模块都可以在* nix和Windows上找到。 – 2012-04-25 18:41:17