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

javax.jms.XASession Maven / Gradle / Ivy

The newest version!
/**
 * Copyright 2013 ScalAgent Distributed Technologies
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *  ---------------------------------------------------------------------
 *  $Id: BytesMessage.java 6347 2013-03-13 08:52:02Z tachker $
 *  ---------------------------------------------------------------------
 */

package javax.jms;

import javax.transaction.xa.XAResource;

/**
 * The {@code XASession} interface extends the capability of {@code Session} by
 * adding access to a JMS provider's support for the Java Transaction API (JTA)
 * (optional). This support takes the form of a
 * {@code javax.transaction.xa.XAResource} object. The functionality of this
 * object closely resembles that defined by the standard X/Open XA Resource
 * interface.
 * 
 * 

* An application server controls the transactional assignment of an * {@code XASession} by obtaining its {@code XAResource}. It uses the * {@code XAResource} to assign the session to a transaction, prepare and commit * work on the transaction, and so on. * *

* An {@code XAResource} provides some fairly sophisticated facilities for * interleaving work on multiple transactions, recovering a list of transactions * in progress, and so on. A JTA aware JMS provider must fully implement this * functionality. This could be done by using the services of a database that * supports XA, or a JMS provider may choose to implement this functionality * from scratch. * *

* A client of the application server is given what it thinks is a regular JMS * {@code Session}. Behind the scenes, the application server controls the * transaction management of the underlying {@code XASession}. * *

* The {@code XASession} interface is optional. JMS providers are not required to * support this interface. This interface is for use by JMS providers to support * transactional environments. Client programs are strongly encouraged to use * the transactional support available in their environment, rather than use * these XA interfaces directly. * * @see javax.jms.Session * * @version JMS 2.0 * @since JMS 1.0 * */ public interface XASession extends Session { /** * Gets the session associated with this {@code XASession}. * * @return the session object * * @exception JMSException * if an internal error occurs. * * @since JMS 1.1 */ Session getSession() throws JMSException; /** * Returns an XA resource to the caller. * * @return an XA resource to the caller */ XAResource getXAResource(); /** * Indicates whether the session is in transacted mode. * * @return true * * @exception JMSException * if the JMS provider fails to return the transaction mode due * to some internal error. */ boolean getTransacted() throws JMSException; /** * Throws a {@code TransactionInProgressException}, since it should not be * called for an {@code XASession} object. * * @exception TransactionInProgressException * if the method is called on an {@code XASession}. * */ void commit() throws JMSException; /** * Throws a {@code TransactionInProgressException}, since it should not be * called for an {@code XASession} object. * * @exception TransactionInProgressException * if the method is called on an {@code XASession}. * */ void rollback() throws JMSException; }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy