如果应用程序无法在当前时刻处理它,那么保留从MQ获取ASYNCHRONOUSLY的消息会被保留吗?

时间:2018-05-11 17:01:17

标签: java ibm-mq

我有一个关于MQ和Java应用程序的概念性问题。

我有一个批处理应用程序(java),它将从MQ读取消息(设置为持久消息),我有两个选项,让它同步或同步......

关键是我很困惑发送异步消息时发生的情况,并且应用程序在那一刻无法处理。消息丢失了吗?保存在任何类型的队列中(在应用程序内部)还是应该在应用程序可用时处理异常以重新生成请求?

MQ>有资源可以处理吗? (例如,没有线程)>否>申请>拒绝> ?

是否足够清楚?

1 个答案:

答案 0 :(得分:0)

您的持久消息由MQ保留在队列中,直到您的getter可以获取它。

但请注意这一点。如果您的应用程序正在获取持久性消息,请确保它使用同步点(允许您提交或回滚)。然后,如果应用程序无法正确处理消息,则应用程序可以回滚其获取,并且该消息将在队列中再次用于下一个MQGET。