Java JMS队列已满
我的JavaEE应用程序不断地向队列发送JMS,但有时JMS使用者应用程序停止接收JMS。它会导致JMS队列非常大甚至满,从而导致服务器崩溃。 我的服务器是JBoss或Websphere。应用服务器是否提供了删除“超时”JMS消息的策略 处理大型JMS队列的策略是什么?谢谢 当然Java JMS队列已满,java,jboss,jms,Java,Jboss,Jms,我的JavaEE应用程序不断地向队列发送JMS,但有时JMS使用者应用程序停止接收JMS。它会导致JMS队列非常大甚至满,从而导致服务器崩溃。 我的服务器是JBoss或Websphere。应用服务器是否提供了删除“超时”JMS消息的策略 处理大型JMS队列的策略是什么?谢谢 当然 Message#setjmsexprivation(long)正是您想要的 对于任何异步消息,您必须处理“快速生产者/慢速消费者”问题。有很多方法可以解决这个问题 添加消费者。使用WebSphere MQ,您可以根据
Message#setjmsexprivation(long)
正是您想要的 对于任何异步消息,您必须处理“快速生产者/慢速消费者”问题。有很多方法可以解决这个问题
但不管你做什么,上面的选项4都是强制性的。无论您分配了多少磁盘,部署了多少使用者实例,或者消息过期的速度有多快,您的使用者始终有可能无法跟上消息生成的步伐。当这种情况发生时,你的制作人应用程序应该减速,或者发出警报并停止,或者做除挂起或挂断以外的任何事情。异步消息传递仅在消息队列空间不足时才是异步的。之后,你的应用程序是同步的,必须优雅地处理这种情况,即使这意味着(优雅地)关闭自己的应用程序。谢谢你,T.Rob!你的答案是全面而美丽的!很高兴能帮上忙!