是否有jms消息到期的事件监听器?

时间:2012-07-09 08:55:29

标签: glassfish jms

我正在使用glassfish的默认代理处理jms消息。示例我有一个queueA。

queueA,将收到2种类型的响应:

1。)正常回复 - 意味着服务立即回复,没有任何问题,

2。)过期响应 - 服务回复2天后。

在队列A上,我有一个jms接收器,在5分钟后超时,所以在此之后没有人会接收消息,它会在30秒后超时。问题是,当这个事件发生时,我可以抛出一个事件,以便我可以处理延迟响应吗?

谢谢,
czetsuya

1 个答案:

答案 0 :(得分:0)

不幸的是,我发现当事件发生时,glassfish不会抛出任何消息到期操作。我的工作是使用同步和异步的2个队列,如果消息已经消失则将同步读取,然后写入异步队列。

SenderA写入AsynchronousQueueA SenderA开始读取SynchronousQueueResponseS(持续n秒) ReceiverA从SenderA接收消息到AsynchronousQueueA ReceiverA将回复写入SynchronousQueueResponseS   如果失败,则写回复AsynchronousQueueResponseA。

请注意,侦听SynchronousQueueResponseS的线程将在n秒后过期,如果是,则回复将写入AsynchronousQueueResponseA。这是队列到期事件侦听器的解决方案。