我在写入MQ之前调用Date()对象。这是我捕获MQ的时间。如何计算MQ的时间?如何在java中计算IBM MQ的进出时间
0
A
回答
1
最简单的解决方案是获取MQ消息跟踪解决方案。有许多可用的,你可以在这里找到一个列表:http://www.capitalware.com/mq_tools_comm.html#mqtrk
- COA是到达的确认 - 当消息放入目标队列
- COD是交货的确认 - 当接收应用程序执行的MQGET
为您的问题创建COA/COD解决方案并不困难或复杂。当我是使用MQ的COA/COD的顾问时,我为客户创建了许多SLA解决方案。
如果消息保留在同一个队列管理器中,那么生活是非常容易的。如果不是,那么您需要知道COD消息(不是COA)是使用原始消息的UserId返回的。因此,您需要计划获得正确的安全许可或COD信息将落入DLQ(死信队列)中。
发现自己要使用的数据库 - 它可以是你公司的一个或一个简单的像SQLite的,H2等
第一个提问人的追问是如何配合一切融合在一起。即什么关键。很简单,使用MQMD MessageId。当应用程序执行MQPUT时,将填充MQMD MessageId。
其次,请确保原始邮件已完成以下MQMD字段:replyToQueueName,replyToQueueManagerName和report。
第三,COA和COD消息将在其MQMD CorrelId字段中具有原始消息的MessageId。
您可以使用3或4个时间戳。额外的时间戳可以是您执行MQPUT之前的时间。比方说,你想4个时间戳则:
时间戳权之前MQPUT
时间戳在MQMD的putDateTime返回从MQPUT
- COA时间戳在MQMD的putDateTime返回 - 匹配的MessageId是CorrelId中
- COD时间戳在MQMD的putDateTime返回 - 匹配的MessageId是CorrelId中
简单。现在,您数据库中的每行都有该消息历史记录的完整SLA记录。您可以编写简单的SQL来确定:
- 多久了MQ提供即时间戳#消息4负 时间戳#1(或#2)
- 多长时间留在队列中接收前应用程序捡起它即时间戳#4减去时间戳#3 - 当有指点时,这是一个重要的数字!
- 当有人说:“我们从来没有收到您的来信” - 时间戳#4是你的证明
最后,如果你期待的回应(回复)消息返回(假设原来的MessageId在CorrelId中),那么您可以将该时间戳添加到数据库作为第5个时间戳。即时间戳#5减去时间戳#1(或#2)会给你往返时间(请求 - 响应)。
相关问题
- 1. 如何从IBM MQ
- 2. IBM MQ Java错误:: java.lang.ClassNotFoundException:com.ibm.mq.internal.MQCommonServices
- 3. 如何在IBM MQ中重置队列?
- 4. BASH:如何进行时间码计算
- 5. 如何进行时间码计算?
- 6. 如何在Java中启动IBM MQ通道?
- 7. Java如何计算时间差异
- 8. 如何设置IBM MQ GET预读Java中的MaximumSize
- 9. IBM MQ - 唤醒MQ通道
- 10. 如何计算在Java中
- 11. python:计算时间进度
- 12. 如何在mysql中计算时间
- 13. IBM Websphere MQ Monitoring
- 14. 如何验证池的IBM MQ连接
- 15. 计算出席时间戳
- 16. 如何计算java中的服务所花费的总时间?
- 17. 如何计算hr:min:sec中的时间
- 18. 如何计算jquery中的时间?
- 19. 如何计算SSRS中的时间差
- 20. 如何计算Android中的时间
- 21. 如何计算R中的时间差?
- 22. 如何计算时间?
- 23. Android - 如何长时间计算时间
- 24. PHP/MYSQL时间表计算从进出的小时
- 25. 如何计算Java提供的小时内的缩短时间
- 26. 如何计算java中网站的响应时间
- 27. 在Excel中计算时间
- 28. 在pygame中计算时间
- 29. 如何在Java中计算时间,并能够获得迄今为止计算出的所有结果,即使时间预算结束(超时)?
- 30. 计算IBM MQ系列队列中每个优先级的项目
“out time”是什么意思?您指的是您的PUT何时完成,并且MQ没有返回异常,或者您指的是将读取消息的应用程序收到消息的时间? – JoshMc
@JoshMc我指的是应用程序收到消息的时间,例如Flume – Saumya
接收应用程序在接收到消息时是否可以通过调用Date()来记录类似的“out time”?如果你正在寻找发送应用程序有这个时间,那么从接收应用程序返回给发送应用程序的返回ACK消息是很好的,我建议远离COD消息,但这也是另一种选择。 – JoshMc