我有一个关于MQ和Java应用程序的概念性问题。
我有一个批处理应用程序(java),它将从MQ读取消息(设置为持久消息),我有两个选项,让它同步或同步......
关键是我很困惑发送异步消息时发生的情况,并且应用程序在那一刻无法处理。消息丢失了吗?保存在任何类型的队列中(在应用程序内部)还是应该在应用程序可用时处理异常以重新生成请求?
MQ>有资源可以处理吗? (例如,没有线程)>否>申请>拒绝> ?
是否足够清楚?
答案 0 :(得分:0)
您的持久消息由MQ保留在队列中,直到您的getter可以获取它。
但请注意这一点。如果您的应用程序正在获取持久性消息,请确保它使用同步点(允许您提交或回滚)。然后,如果应用程序无法正确处理消息,则应用程序可以回滚其获取,并且该消息将在队列中再次用于下一个MQGET。