JBoss 6 stops receiving messages from HornetQ 2.2.5 topic
florian.kunz Jan 16, 2012 4:26 AMHi,
I've got a single standalone HornetQ 2.2.5 server delivering messages to a single JBoss 6 host. Messages come in at a rate of about 5/s. Messages are consumed in an MDB. Everything works fine at first. After a while messages are not received anymore and start piling up on the HornetQ host. It seems that restarting the consumer solvers the problem. So maybe the problem lies on the JBoss side, but still it's the HornetQ client libraries that's involved here, so I hope that's the right forum ^^
Anyway here's my config. I just included the lines that I think are important. If anything else is needed, I'm happy to provide.
The name of the topic is "updatenotification".
HornetQ side:
hornetq-configuration.xml
<address-settings>
<address-setting match="jms.topic.updatenotification">
<dead-letter-address>jms.queue.DLQ</dead-letter-address>
<expiry-address>jms.queue.ExpiryQueue</expiry-address>
<max-size-bytes>10485760</max-size-bytes>
<page-size-bytes>512000</page-size-bytes>
<message-counter-history-day-limit>10</message-counter-history-day-limit>
<address-full-policy>PAGE</address-full-policy>
</address-setting>
<address-setting match="#">
<dead-letter-address>jms.queue.DLQ</dead-letter-address>
<expiry-address>jms.queue.ExpiryQueue</expiry-address>
<max-delivery-attempts>5</max-delivery-attempts>
<redelivery-delay>0</redelivery-delay>
<max-size-bytes>10485760</max-size-bytes>
<message-counter-history-day-limit>10</message-counter-history-day-limit>
<address-full-policy>DROP</address-full-policy>
</address-setting>
JBoss side:
MDB config
@MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/updatenotification"),
@ActivationConfigProperty(propertyName = "subscriptionDurability", propertyValue ="Durable"),
@ActivationConfigProperty(propertyName = "clientID", propertyValue = "MyClientId"),
@ActivationConfigProperty(propertyName = "subscriptionName", propertyValue = "MySubscritionName"),
@ActivationConfigProperty(propertyName = "user", propertyValue = "---"),
@ActivationConfigProperty(propertyName = "password", propertyValue = "---"),
@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "1") })
@Pool(value=PoolDefaults.POOL_IMPLEMENTATION_STRICTMAX, maxSize=1, timeout=PLayerMessageConsumer.JMS_POOL_TIMEOUT)
One note to the pool size: As the order of messages is important, we restricted the pool size to 1, to make sure that messages that are sent from one client, are processed in that order.
I would really apprecaite any help here.
Thank you.