Package | Class | Tree | Deprecated | Index | Help
| JMS 1.1 - April 12, 2002
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.jms
Interface XASession

All Superinterfaces:
  java.lang.Runnable, Session

All Known Subinterfaces:
  XAQueueSession, XATopicSession

public interface XASession
extends Session

The `XASession` interface extends the capability of `Session` by adding access to a JMS provider's support for the Java Transaction API (JTA) (optional). This support takes the form of a `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 `XASession` by obtaining its `XAResource`. It uses the `XAResource` to assign the session to a transaction, prepare and commit work on the transaction, and so on.

An `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 `Session`. Behind the scenes, the application server controls the transaction management of the underlying `XASession`.

The `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.

Version:
  1.1 February 2, 2002
Author:
  Mark Hapner, Rich Burridge, Kate Stout
See Also:
  `Session`

Fields inherited from interface javax.jms.Session
`AUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE, SESSION_TRANSACTED`

Method Summary
`void` | `commit()` Throws a `TransactionInProgressException`, since it should not be called for an `XASession` object.
`Session` | `getSession()` Gets the session associated with this `XASession`.
`boolean` | `getTransacted()` Indicates whether the session is in transacted mode.
`javax.transaction.xa.XAResource` | `getXAResource()` Returns an XA resource to the caller.
`void` | `rollback()` Throws a `TransactionInProgressException`, since it should not be called for an `XASession` object.

Methods inherited from interface javax.jms.Session
`close, createBrowser, createBrowser, createBytesMessage, createConsumer, createConsumer, createConsumer, createDurableSubscriber, createDurableSubscriber, createMapMessage, createMessage, createObjectMessage, createObjectMessage, createProducer, createQueue, createStreamMessage, createTemporaryQueue, createTemporaryTopic, createTextMessage, createTextMessage, createTopic, getAcknowledgeMode, getMessageListener, recover, run, setMessageListener, unsubscribe`

Method Detail

### getSession

    public Session getSession()
                       throws JMSException

  Gets the session associated with this `XASession`.
  Returns:
    the session object
  Throws:
    `JMSException` - if an internal error occurs.
  Since:
    1.1

### getXAResource

    public javax.transaction.xa.XAResource getXAResource()

  Returns an XA resource to the caller.
  Returns:
    an XA resource to the caller

### getTransacted

    public boolean getTransacted()
                          throws JMSException

  Indicates whether the session is in transacted mode.
  Specified by:
    `getTransacted` in interface `Session`
  Returns:
    true
  Throws:
    `JMSException` - if the JMS provider fails to return the transaction mode due to some internal error.

### commit

    public void commit()
                throws JMSException

  Throws a `TransactionInProgressException`, since it should not be called for an `XASession` object.
  Specified by:
    `commit` in interface `Session`
  Throws:
    `TransactionInProgressException` - if the method is called on an `XASession`.

### rollback

    public void rollback()
                  throws JMSException

  Throws a `TransactionInProgressException`, since it should not be called for an `XASession` object.
  Specified by:
    `rollback` in interface `Session`
  Throws:
    `TransactionInProgressException` - if the method is called on an `XASession`.

Package | Class | Tree | Deprecated | Index | Help
| JMS 1.1 - April 12, 2002
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

JMS 1.1 - April 12, 2002