有关JMS, 如何重发DLQ中的message ?

09-08-29 scf37
刚刚开始接触JMS,就遇到这个问题。

现在使用中的JBOSS4.2的jms是基于默认的jbossMQ,似乎是比较老了。可选择的替换方案包括ActiveMQ或JBOSS Messaging

最繁琐的方法自然是自己实现个MDB去接受DLQ中的内容,再持久化到外置的数据库里,然后再手写个从数据库取数据出来重发的东西。这样既浪费时间,也很难做到通用性。。。

最主要我认为这是做框架的人都应该想到的问题。

我看到WebSphere就有Dead letter queue administration,控制台上点一下就能重发所有DLQ里的信息。不知道jbossMQ里是不是提供了这种方法?

强烈求助。

banq
2009-08-30 08:02
应该有DLQ的重试发生次数设置。

wjkiss000
2009-08-31 11:26
是可以设置的,但为什么要重发?程序错误?数据库连接错误?

也就是可自动恢复还是需要人工处理的错误。

可自动恢复的话,可以配置重发次数不断重试就可以了,异常要抛出不要捕获,不然dlq会正常结束,消息也就没了。

需要人工处理的错误,只能靠自己写程序实现消息重发了。

猜你喜欢