Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.net4j.jms.api/src/javax/jms/XASession.java')
-rw-r--r--plugins/org.eclipse.net4j.jms.api/src/javax/jms/XASession.java123
1 files changed, 123 insertions, 0 deletions
diff --git a/plugins/org.eclipse.net4j.jms.api/src/javax/jms/XASession.java b/plugins/org.eclipse.net4j.jms.api/src/javax/jms/XASession.java
new file mode 100644
index 0000000000..31689cf49c
--- /dev/null
+++ b/plugins/org.eclipse.net4j.jms.api/src/javax/jms/XASession.java
@@ -0,0 +1,123 @@
+/*
+ * The contents of this file are subject to the terms
+ * of the Common Development and Distribution License
+ * (the License). You may not use this file except in
+ * compliance with the License.
+ *
+ * You can obtain a copy of the license at
+ * https://glassfish.dev.java.net/public/CDDLv1.0.html or
+ * glassfish/bootstrap/legal/CDDLv1.0.txt.
+ * See the License for the specific language governing
+ * permissions and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL
+ * Header Notice in each file and include the License file
+ * at glassfish/bootstrap/legal/CDDLv1.0.txt.
+ * If applicable, add the following below the CDDL Header,
+ * with the fields enclosed by brackets [] replaced by
+ * you own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ */
+
+package javax.jms;
+
+import javax.transaction.xa.XAResource;
+
+/** The <CODE>XASession</CODE> interface extends the capability of
+ * <CODE>Session</CODE> 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</CODE> object. The functionality of
+ * this object closely resembles that defined by the standard X/Open XA
+ * Resource interface.
+ *
+ * <P>An application server controls the transactional assignment of an
+ * <CODE>XASession</CODE> by obtaining its <CODE>XAResource</CODE>. It uses
+ * the <CODE>XAResource</CODE> to assign the session to a transaction, prepare
+ * and commit work on the transaction, and so on.
+ *
+ * <P>An <CODE>XAResource</CODE> 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.
+ *
+ * <P>A client of the application server is given what it thinks is a
+ * regular JMS <CODE>Session</CODE>. Behind the scenes, the application server
+ * controls the transaction management of the underlying
+ * <CODE>XASession</CODE>.
+ *
+ * <P>The <CODE>XASession</CODE> 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.
+ *
+ * @version 1.1 February 2, 2002
+ * @author Mark Hapner
+ * @author Rich Burridge
+ * @author Kate Stout
+ *
+ * @see javax.jms.Session
+ */
+
+public interface XASession extends Session {
+
+ /** Gets the session associated with this <CODE>XASession</CODE>.
+ *
+ * @return the session object
+ *
+ * @exception JMSException if an internal error occurs.
+ *
+ * @since 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</CODE>, since it should
+ * not be called for an <CODE>XASession</CODE> object.
+ *
+ * @exception TransactionInProgressException if the method is called on
+ * an <CODE>XASession</CODE>.
+ *
+ */
+
+ void
+ commit() throws JMSException;
+
+
+ /** Throws a <CODE>TransactionInProgressException</CODE>, since it should
+ * not be called for an <CODE>XASession</CODE> object.
+ *
+ * @exception TransactionInProgressException if the method is called on
+ * an <CODE>XASession</CODE>.
+ *
+ */
+
+ void
+ rollback() throws JMSException;
+}

Back to the top