We have CM transport established and a CM listener listening for it, and yet our messages are delivered completely out of order.When can delivery out or order happen?

We have CM transport established and a CM listener listening for it, and yet our messages are delivered completely out of order.When can delivery out or order happen?

book

Article ID: KB0086651

calendar_today

Updated On:

Products Versions
TIBCO Rendezvous -
Not Applicable -

Description

Resolution:
Please find here below some information on RV/RVCM delivery order:

Delivery Order
--------------------

(a). Reliable Protocol

The RV reliable protocol delivers all multicast messages from each sending transport in the order they are sent. It also delivers all point-to-point messages from each sending transport in the order they are sent.  However, if a sending program interleaves multicast and point-to-point messages, TIBCO Rendezvous software does not necessarily preserve the sending order between the two types of messages.  TIBCO Rendezvous software does not preserve the absolute chronological order of messages sent by two or more different transports.

(b). RVCM Protocol

The RVCM protocol also delivers messages from each transport in the order they are sent.

However for both Reliable and RVCM the subscriber has to be single threaded to guarantee processing the messages in order.

For the above, if you're using multiple dispatchers (each dispatcher in a new thread), the message will still be received in sequence in the event queue and then dispatched in sequence from the event queue.  However, depending on the time slice given by the OS for processing the message within the dispatcher thread, you could see the out-of-order sequencing.

Although certified messages always enter the queue in order of sequence number, it is still possible that a program might process them out of order.  For example, if a program dispatches the queue from several threads, the thread processing number 43 might return from its callback function before the thread processing number 42.

All messages are dispatched from the queue in sequence, but there is no way of guaranteeing how long a particular dispatcher thread will take and therefore, could result in out-of-order messages.  Hence, RV will not guarantee message sequence with multiple dispatchers.

Issue/Introduction

We have CM transport established and a CM listener listening for it, and yet our messages are delivered completely out of order.When can delivery out or order happen?