All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jakarta.jms.DeliveryMode Maven / Gradle / Ivy

There is a newer version: 2.38.0
Show newest version
/*
 * Copyright (c) 1997, 2020 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0, which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception, which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 */

package jakarta.jms;

/**
 * The delivery modes supported by the Jakarta Messaging API are {@code PERSISTENT} and {@code 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 {@code 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 * {@code PERSISTENT} and if the destination has a sufficient message retention policy. * * @version Jakarta Messaging 2.0 * @since JMS 1.0 */ public interface DeliveryMode { /** * 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 {@code NON_PERSISTENT} message to be lost is not defined. * *

* A Jakarta Messaging provider must deliver a {@code NON_PERSISTENT} message with an at-most-once guarantee. This means that it may * lose the message, but it must not deliver it twice. */ int NON_PERSISTENT = 1; /** * 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 {@code PERSISTENT} message to be lost. */ int PERSISTENT = 2; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy