Hi All, We are planning to implement guaranteed message delivery capability to the MSMP. We can divided current implementation into two basic sections based on process.
1. *Message Store:* Message store mainly responsible for producing messages to the message broker using message store mediator. 2. *Message process*: Message processor picks the messages from the message store and send to the specified endpoint. When we implement a guaranteed message delivery mechanism to the MSMP, we need to think about both of above scenarios. JMS specification provided us to two mechanisms(Acknowledgement, Transaction), which can be used to achieve guaranteed delivery. In our case message processor(consumer) side guaranteed delivery was already implemented using acknowledgements. Message processor ACK to the message store only if message was successfully processed. Message store removes the message once ACK received by the processor else redeliver the message, but for the message storing(producer) part, we don’t have any mechanism implemented to achieve this feature. Main intention of this implementation is to provide a way to handle guaranteed delivery for the message storing(producer) part. *Problem.* We don’t have mechanism to handle guaranteed delivery in message storing(producer) section. This issue can be occurred for following use cases. 1. Message was sent to the MB, but didn’t received to the MB side due to communication failure. 2. Message broker not available when try to store the message. *Solution.* We can choose either acknowledgement or transaction as a solution of guaranteed delivery implementation but since JMS 1.1 doesn't support for the producer acknowledgement, we decided to enable transaction support for the message storing section to provide guaranteed delivery. Other than the transactions enable in the message storing process, we planned to add retry mechanism to avoid scenario like message store is not available when we try to produce messages. User can define retry count and retry delay in the configuration of the store mediator. Message retry process is executing If message broker connection not available or transaction has already rollbacked. In addition to that features we are planning to add batch process facility to store mediator to improve performance, while enabling transactions as the future improvement. Thanks -- *Prabath Ariyarathna* *Associate Technical Lead* *WSO2, Inc. * *lean . enterprise . middleware * *Email: [email protected] <[email protected]>* *Blog: http://prabu-lk.blogspot.com <http://prabu-lk.blogspot.com>* *Flicker : https://www.flickr.com/photos/47759189@N08 <https://www.flickr.com/photos/47759189@N08>* *Mobile: +94 77 699 4730 *
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
