Package jakarta.jms

Interface DeliveryMode


  • public interface DeliveryMode
    The delivery modes supported by the Jakarta Messaging API are PERSISTENT and NON_PERSISTENT.

    A client marks a message as persistent if it feels that the application will have problems if the message is lost in transit. A client marks a message as non-persistent if an occasional lost message is tolerable. Clients use delivery mode to tell a Jakarta Messaging provider how to balance message transport reliability with throughput.

    Delivery mode covers only the transport of the message to its destination. Retention of a message at the destination until its receipt is acknowledged is not guaranteed by a PERSISTENT delivery mode. Clients should assume that message retention policies are set administratively. Message retention policy governs the reliability of message delivery from destination to message consumer. For example, if a client's message storage space is exhausted, some messages may be dropped in accordance with a site-specific message retention policy.

    A message is guaranteed to be delivered once and only once by a Jakarta Messaging provider if the delivery mode of the message is PERSISTENT and if the destination has a sufficient message retention policy.

    Since:
    JMS 1.0
    Version:
    Jakarta Messaging 2.0
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int NON_PERSISTENT
      This is the lowest-overhead delivery mode because it does not require that the message be logged to stable storage.
      static int PERSISTENT
      This delivery mode instructs the Jakarta Messaging provider to log the message to stable storage as part of the client's send operation.
    • Field Detail

      • NON_PERSISTENT

        static final int NON_PERSISTENT
        This is the lowest-overhead delivery mode because it does not require that the message be logged to stable storage. The level of Jakarta Messaging provider failure that causes a NON_PERSISTENT message to be lost is not defined.

        A Jakarta Messaging provider must deliver a NON_PERSISTENT message with an at-most-once guarantee. This means that it may lose the message, but it must not deliver it twice.

        See Also:
        Constant Field Values
      • PERSISTENT

        static final int PERSISTENT
        This delivery mode instructs the Jakarta Messaging provider to log the message to stable storage as part of the client's send operation. Only a hard media failure should cause a PERSISTENT message to be lost.
        See Also:
        Constant Field Values