Hi, We have a single class to track all messages delivered by MB. This becomes a bottleneck when number of queues, topics, subscribers grow.
Thus proposing to delegate lifecycle of a message to AndesMessageMetadata object itself rather than keeping an external single class to keep all the tracking. Steps: Attach life cycle to andesMessageMetadata. Extend andesMessageMetadata and create deliverableAndesMessageMetadta Slot reference is in andesMessage itself. What ever slot object will be garbage collected when all deliverableAndesMessageMetadta are cleaned from memory. We will need to re-do some stuff AMQChannel does for us (internal Qpid). We need to correlate message delivery and acks CHANNELWISE 1. to which channels messages were delivered. 2. How many times delivered 3. handle reject (re-queue), use *same* deliverableAndesMessageMetadta object 4. subscriber flow control handling for each channel. 5. ack timeout handling 6. decide when to delete the message 7. decide when to route to DLC 8. SPECIAL - decide if to put message to a different relevant channel or route to another node (involves cut from slot and modifying message id) 9. etc etc We cannot use AMQChannel for that as we convert back and forth, not using same deliverableAndesMessageMetadta object. Please share the ideas on $Subject. Thanks -- *Hasitha Abeykoon* Senior Software Engineer; WSO2, Inc.; http://wso2.com *cell:* *+94 719363063* *blog: **abeykoon.blogspot.com* <http://abeykoon.blogspot.com>
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
