Delivery Mode


Type:
Enumerated value of C type T_IPC_DELIVERY_MODE
Default Value:
The message type delivery mode is used. The message type delivery mode default is T_IPC_DELIVERY_BEST_EFFORT.
Valid Values:
  • T_IPC_DELIVERY_BEST_EFFORT
  • T_IPC_DELIVERY_ORDERED
  • T_IPC_DELIVERY_SOME
  • T_IPC_DELIVERY_ALL

The delivery mode property identifies the level of guarantee when a message is sent through a connection. The possible delivery modes are:

T_IPC_DELIVERY_BEST_EFFORT
No special action, such as acknowledgement, is taken to ensure delivery. If a network or process failure occurs, messages can be lost, and messages might be delivered out of order.
T_IPC_DELIVERY_ORDERED
No special action, such as acknowledgement, is taken to ensure delivery. If a network or process failure occurs, messages can be lost. However, messages are delivered in the order in which they were published.
T_IPC_DELIVERY_SOME
Acknowledgements are used to verify successful delivery. Delivery is treated as successful when at least one receiver acknowledges delivery.
T_IPC_DELIVERY_ALL
Acknowledgements are used to verify successful delivery. Delivery is treated as successful when all receivers acknowledge delivery.

The two modes T_IPC_DELIVERY_SOME and T_IPC_DELIVERY_ALL are called guaranteed message delivery (GMD), where the sender saves a copy of the message until delivery is successful. For a detailed discussion of GMD, see Chapter 4, Guaranteed Message Delivery.

For applications where the order in which messages are published is critical, or where certain types of clients cannot handle out-of-order messages, use the delivery mode T_IPC_DELIVERY_ORDERED. For example, if you have C-based clients sending messages to Java Message Service (JMS) clients, set your delivery mode to T_IPC_DELIVERY_ORDERED. GMD delivery modes also ensure that messages are received in the order in which they were published, even during recovery from network failures. However, GMD uses more system resources, because a copy of every message is kept (in memory or on disk) until the acknowledgements are received. T_IPC_DELIVERY_ORDERED does not guarantee message delivery, but results in faster performance than T_IPC_DELIVERY_SOME and T_IPC_DELIVERY_ALL.

In documentation involving delivery modes, the T_IPC_DELIVERY_ prefix is sometimes dropped outside of code examples (for example, T_IPC_DELIVERY_ALL is discussed as ALL) for the purpose of brevity.

Function to set value:

TipcMsgSetDeliveryMode. For example:

if (!TipcMsgSetDeliveryMode(msg, T_IPC_DELIVERY_ALL)) { 
  /* error */ 
} 
Function to get value:

TipcMsgGetDeliveryMode. For example:

if (!TipcMsgGetDeliveryMode(msg, &delivery_mode)) { 
  /* error */ 
} 

TIBCO SmartSockets™ User’s Guide
Software Release 6.8, July 2006
Copyright © TIBCO Software Inc. All rights reserved
www.tibco.com