javax.jms

## Interface XAConnectionFactory

- All Known Subinterfaces:
    XAQueueConnectionFactory, XATopicConnectionFactory

      public interface XAConnectionFactory

  The `XAConnectionFactory` interface is a base interface for the `XAQueueConnectionFactory` and `XATopicConnectionFactory` interfaces.

  Some application servers provide support for grouping JTA capable resource use into a distributed transaction (optional). To include JMS API transactions in a JTA transaction, an application server requires a JTA aware JMS provider. A JMS provider exposes its JTA support using an `XAConnectionFactory` object, which an application server uses to create `XAConnection` objects.

  `XAConnectionFactory` objects are JMS administered objects, just like `ConnectionFactory` objects. It is expected that application servers will find them using the Java Naming and Directory Interface (JNDI) API.

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

  Since:
    JMS 1.0

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `XAConnection` | `createXAConnection()` Creates an `XAConnection` with the default user identity.
    `XAConnection` | `createXAConnection(java.lang.String userName, java.lang.String password)` Creates an `XAConnection` with the specified user identity.
    `XAJMSContext` | `createXAContext()` Creates a `XAJMSContext` with the default user identity
    `XAJMSContext` | `createXAContext(java.lang.String userName, java.lang.String password)` Creates a JMSContext with the specified user identity

- - ### Method Detail

    - #### createXAConnection

          XAConnection createXAConnection()
                                   throws JMSException

      Creates an `XAConnection` with the default user identity. The connection is created in stopped mode. No messages will be delivered until the `Connection.start` method is explicitly called.
      Returns:
        a newly created `XAConnection`
      Throws:
        `JMSException` - if the JMS provider fails to create an XA connection due to some internal error.
        `JMSSecurityException` - if client authentication fails due to an invalid user name or password.
      Since:
        JMS 1.1

    - #### createXAConnection

          XAConnection createXAConnection(java.lang.String userName,
                                          java.lang.String password)
                                   throws JMSException

      Creates an `XAConnection` with the specified user identity. The connection is created in stopped mode. No messages will be delivered until the `Connection.start` method is explicitly called.
      Parameters:
        `userName` - the caller's user name
        `password` - the caller's password
      Returns:
        a newly created `XAConnection`
      Throws:
        `JMSException` - if the JMS provider fails to create an XA connection due to some internal error.
        `JMSSecurityException` - if client authentication fails due to an invalid user name or password.
      Since:
        JMS 1.1

    - #### createXAContext

          XAJMSContext createXAContext()

      Creates a `XAJMSContext` with the default user identity

      A connection and session are created for use by the new `XAJMSContext`. The connection is created in stopped mode but will be automatically started when a `JMSConsumer` is created.

      Returns:
        a newly created `XAJMSContext`
      Throws:
        `JMSRuntimeException` - if the JMS provider fails to create the `XAJMSContext` due to some internal error.
        `JMSSecurityRuntimeException` - if client authentication fails due to an invalid user name or password.
      Since:
        JMS 2.0

    - #### createXAContext

          XAJMSContext createXAContext(java.lang.String userName,
                                       java.lang.String password)

      Creates a JMSContext with the specified user identity

      A connection and session are created for use by the new `XAJMSContext`. The connection is created in stopped mode but will be automatically started when a `JMSConsumer` is created.

      Parameters:
        `userName` - the caller's user name
        `password` - the caller's password
      Returns:
        a newly created JMSContext
      Throws:
        `JMSRuntimeException` - if the JMS provider fails to create the JMSContext due to some internal error.
        `JMSSecurityRuntimeException` - if client authentication fails due to an invalid user name or password.
      Since:
        JMS 2.0