java ActiveMQ 5.9.0、Glassfish 3.1.2和MDB用于长时间的消息处理
我有一条消息,在Glassfish 3.1.2
中运行,正在听一个ActiveMQ 5.9.0 Queue
。
当一条消息被处理并且需要很长时间时,其他消息等待处理
测试场景:发送一条大消息(处理大约需要30分钟)和250条小消息,而第一条消息仍在进行中。然后62条小消息等待大消息处理
MessageDrivenBean的bean池大小为4,在这个测试中,我没有使用预取限制。使用各种设置(例如?jms.prefetchPolicy.queuePrefetch=20
或...=2
,线程池最大队列大小2)进行的附加测试并没有解决问题,总是有小消息等待大消息
我的问题是:有人知道如何配置MDB
、ActiveMQ
和/或glassfish
来避免这个问题吗?或者这是一种典型的轮询场景,例如通过TimerBean
进行轮询?我知道,或者我可以使用两个队列和两个MDB(一个用于大消息,一个用于小消息),但这意味着需要更改其他一些JMS通信方
提前向您表示感谢并致以最良好的问候, 马克
共 (0) 个答案