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