Tuesday, 15 May 2012

java - How to guarantee JMS reliable delivery -



java - How to guarantee JMS reliable delivery -

i think plenty of (spring in case) applications using jms may follow workflow:

database ===> producer ===> jms queue ===> consumer ===> database b

then reliability concern. let's if when info record in database a should marked delivered, when message contains info record truely consumed , persist info in database b. there questions:

from knowledge, jms protocol not define functions send acknowledgement consumer producer, mom, actual consumer-to-producer acknowledgement methods vary jms provider. mean there no way develop mechanism such acknowledgement can work jms products(activemq, websphere mq , jboss mq)?

consider scenario of blackout, create messages in queue evaporate need resend? or different jms products can pick left, messages serialized, missing message can caused transaction management or async/sync configuration not because of application server down?

1) experience queue managers (mq series, activemq , hornetq) never needed kind of acknowledgement between producer/consumer. environment used deal with, traffic 50/60 1000000 per day of objects on several queues. , queues persisted well.

2) in case, using persistence mechanism on queue manager totally sufficient handle blackout scenario. used disk persistence on mq series , hornetq.

however, ack amount of messages, developed mechanisms compare database database b, sure messages consumed well. don't know if jms architecture should provide kind of mechanism, because such task decrease performance.

it's - in point of view - have measure on scheme architecture how of import match information, because it's not easy keep.

regards.

java spring java-ee jms

No comments:

Post a Comment