The delivery mode of a message type is used as the default delivery mode for messages of this type. When a message is created, its delivery mode is initialized to the message type delivery mode.
The default message type delivery mode is DELIVERY_BEST_EFFORT. In this mode, no special actions are taken to ensure delivery of sent messages. The message is delivered unless network failures or process failures occur. If the message is not delivered, there is no way for the sender to know that the delivery failed.
In the case of a network or process failure, a more useful delivery mode is DELIVERY_ORDERED. Messages can still be lost in the event of a failure, but all delivered messages are received in the order in which they were published.
Another delivery mode is DELIVERY_SOME. In this mode, the sending process saves a copy of the message until the message is successfully delivered, and the sender can also resend the message if necessary. Delivery is considered successful if the sent message is acknowledged by at least one receiving process.
The most robust delivery mode is DELIVERY_ALL. In this mode, the sending process saves a copy of the message until the message is successfully delivered, and the sender can also resend the message if necessary. Delivery is not considered successful until all receiving processes acknowledge the sent message.
The delivery mode of an outgoing message can always be set on a per-message basis, but using the message type delivery modes makes it easier to change the default delivery mode mode for all outgoing messages of a specific type. The standard Smartsockets message type by default all have a delivery mode of DELIVERY_BEST_EFFORT, but these can be changed if desired. User-defined message types can also use whatever delivery mode is appropriate.
Exception Type | Condition |
---|---|
TipcBadArgumentException | Invalid Delivery Mode specified. |
TipcMt Class | TipcMt Members | TIBCO.SMARTSOCKETS Namespace | DeliveryMode | DeliveryTimeout