Java 类javax.jms.XAConnection 实例源码

项目:carbon-transports    文件:JMSConnectionResourceFactory.java   
/**
 * Create JMS {@link XASession} instance on top of the provided {@link Connection} instance.
 *
 * @param xAConnection JMS Connection.
 * @return Session instance.
 * @throws JMSConnectorException Error when creating the XASession.
 */
public XASession createXASession(XAConnection xAConnection) throws JMSConnectorException {
    try {
        if (logger.isDebugEnabled()) {
            logger.debug("Creating a new JMS XASession on: " + this.connectionFactoryString);
        }

        if (JMSConstants.JMS_SPEC_VERSION_1_1.equals(jmsSpec) || JMSConstants.JMS_SPEC_VERSION_2_0
                .equals(jmsSpec)) {
            return xAConnection.createXASession();
        } else if (JMSConstants.JMSDestinationType.QUEUE.equals(this.destinationType)) {
            return ((XAQueueConnection) (xAConnection)).createXAQueueSession();
        } else {
            return ((XATopicConnection) (xAConnection)).createXATopicSession();
        }
    } catch (JMSException e) {
        throw new JMSConnectorException(
                "JMS Exception while obtaining session for factory " + connectionFactoryString, e);
    }
}
项目:activemq-artemis    文件:SimpleOpenWireTest.java   
@Test
public void testXAPrepare() throws Exception {
   try {

      XAConnection connection = xaFactory.createXAConnection();

      XASession xasession = connection.createXASession();

      Xid xid = newXID();
      xasession.getXAResource().start(xid, XAResource.TMNOFLAGS);
      Queue queue = xasession.createQueue(queueName);
      MessageProducer producer = xasession.createProducer(queue);
      producer.send(xasession.createTextMessage("hello"));
      producer.send(xasession.createTextMessage("hello"));
      xasession.getXAResource().end(xid, XAResource.TMSUCCESS);

      xasession.getXAResource().prepare(xid);

      connection.close();

      System.err.println("Done!!!");
   } catch (Exception e) {
      e.printStackTrace();
   }
}
项目:activemq-artemis    文件:SimpleOpenWireTest.java   
@Test
public void testXAResourceCommittedRemoved() throws Exception {
   Queue queue = null;

   Xid xid = newXID();
   try (XAConnection xaconnection = xaFactory.createXAConnection()) {
      XASession session = xaconnection.createXASession();
      queue = session.createQueue(queueName);
      session.getXAResource().start(xid, XAResource.TMNOFLAGS);
      MessageProducer producer = session.createProducer(queue);
      producer.send(session.createTextMessage("xa message"));
      session.getXAResource().end(xid, XAResource.TMSUCCESS);
      session.getXAResource().commit(xid, true);
   }
   XidImpl xid1 = new XidImpl(xid);
   Transaction transaction = server.getResourceManager().getTransaction(xid1);
   assertNull(transaction);
}
项目:activemq-artemis    文件:SimpleOpenWireTest.java   
@Test
public void testXAResourceRolledBackRemoved() throws Exception {
   Queue queue = null;

   Xid xid = newXID();
   try (XAConnection xaconnection = xaFactory.createXAConnection()) {
      XASession session = xaconnection.createXASession();
      queue = session.createQueue(queueName);
      session.getXAResource().start(xid, XAResource.TMNOFLAGS);
      MessageProducer producer = session.createProducer(queue);
      producer.send(session.createTextMessage("xa message"));
      session.getXAResource().end(xid, XAResource.TMSUCCESS);
      session.getXAResource().rollback(xid);
   }
   XidImpl xid1 = new XidImpl(xid);
   Transaction transaction = server.getResourceManager().getTransaction(xid1);
   assertNull(transaction);
}
项目:activemq-artemis    文件:XATest.java   
@Test
public void testIsSamRM() throws Exception {
   XAConnection conn = null;

   conn = xacf.createXAConnection();

   // Create a session
   XASession sess1 = conn.createXASession();
   XAResource res1 = sess1.getXAResource();

   // Create a session
   XASession sess2 = conn.createXASession();
   XAResource res2 = sess2.getXAResource();

   Assert.assertTrue(res1.isSameRM(res2));
}
项目:activemq-artemis    文件:ActiveMQXAConnectionFactoryTest.java   
public void testRollbackXaErrorCode() throws Exception {
   String brokerName = "rollbackErrorCode";
   BrokerService broker = BrokerFactory.createBroker(new URI("broker:(tcp://localhost:0)/" + brokerName));
   broker.start();
   broker.waitUntilStarted();
   ActiveMQXAConnectionFactory cf = new ActiveMQXAConnectionFactory(broker.getTransportConnectors().get(0).getConnectUri());
   XAConnection connection = (XAConnection) cf.createConnection();
   connection.start();
   XASession session = connection.createXASession();
   XAResource resource = session.getXAResource();

   Xid tid = createXid();
   try {
      resource.rollback(tid);
      fail("Expected xa exception on no tx");
   } catch (XAException expected) {
      LOG.info("got expected xa", expected);
      assertEquals("no tx", XAException.XAER_NOTA, expected.errorCode);
   }
   connection.close();
   broker.stop();
}
项目:activemq-artemis    文件:ConnectionFactoryTest.java   
private void assertConnectionType(Connection conn, String type) {
   if ("generic".equals(type) || "queue".equals(type) || "topic".equals(type)) {
      //generic
      Assert.assertFalse(conn instanceof XAConnection);
      Assert.assertTrue(conn instanceof QueueConnection);
      Assert.assertFalse(conn instanceof XAQueueConnection);
      Assert.assertTrue(conn instanceof TopicConnection);
      Assert.assertFalse(conn instanceof XATopicConnection);
   } else if ("xa".equals(type) || "xa-queue".equals(type) || "xa-topic".equals(type)) {
      Assert.assertTrue(conn instanceof XAConnection);
      Assert.assertTrue(conn instanceof QueueConnection);
      Assert.assertTrue(conn instanceof XAQueueConnection);
      Assert.assertTrue(conn instanceof TopicConnection);
      Assert.assertTrue(conn instanceof XATopicConnection);
   } else {
      Assert.fail("Unknown connection type: " + type);
   }
}
项目:activemq-artemis    文件:ActiveMQRAConnectionFactoryImpl.java   
/**
 * Create a XA connection
 *
 * @param userName The user name
 * @param password The password
 * @return The connection
 * @throws JMSException Thrown if the operation fails
 */
@Override
public XAConnection createXAConnection(final String userName, final String password) throws JMSException {
   if (ActiveMQRAConnectionFactoryImpl.trace) {
      ActiveMQRALogger.LOGGER.trace("createXAConnection(" + userName + ", ****)");
   }

   ActiveMQRASessionFactoryImpl s = new ActiveMQRASessionFactoryImpl(mcf, cm, getResourceAdapter().getTM(), ActiveMQRAConnectionFactory.XA_CONNECTION);
   s.setUserName(userName);
   s.setPassword(password);
   validateUser(s);

   if (ActiveMQRAConnectionFactoryImpl.trace) {
      ActiveMQRALogger.LOGGER.trace("Created connection: " + s);
   }

   return s;
}
项目:activemq-artemis    文件:ActiveMQJMSContext.java   
/**
 *
 */
private void checkSession() {
   if (session == null) {
      synchronized (this) {
         if (closed)
            throw new IllegalStateRuntimeException("Context is closed");
         if (session == null) {
            try {
               if (xa) {
                  session = ((XAConnection) connection).createXASession();
               } else {
                  session = connection.createSession(sessionMode);
               }
            } catch (JMSException e) {
               throw JmsExceptionUtils.convertToRuntimeException(e);
            }
         }
      }
   }
}
项目:activemq-xa-cli    文件:Main.java   
@Override
protected void run(XAConnection connection, XASession xaSession, XAResource xaResource) throws Exception {
    verbose("Starting XA transaction");
    Xid xid = createXid();
    xaResource.start(xid, 0);

    verbose("Sending message");
    MessageProducer producer = xaSession.createProducer(xaSession.createQueue(queue));
    producer.send(xaSession.createTextMessage("TEST"));

    verbose("Ending XA transaction");
    xaResource.end(xid, XAResource.TMSUCCESS);

    verbose("Preparing XA transaction");
    xaResource.prepare(xid);

    println("Created: "+toString(xid));
}
项目:wunderboss    文件:JMSMessagingSkeleton.java   
protected JMSSpecificContext createXAContext(final XAConnectionFactory cf, final Options<CreateContextOption> options) {

        if (TransactionUtil.tm == null) {
            throw new NullPointerException("TransactionManager not found; is transactions module on the classpath?");
        }

        XAConnection connection = (XAConnection) DestinationUtil.mightThrow(new Callable() {
            @Override
            public Object call() throws Exception {
                if (options.has(CreateContextOption.USERNAME)) {
                    return cf.createXAConnection(options.getString(CreateContextOption.USERNAME),
                                                 options.getString(CreateContextOption.PASSWORD));
                } else {
                    return cf.createXAConnection();
                }
            }
        });

        return new JMSXAContext(connection, this,
                                (Context.Mode)options.get(CreateContextOption.MODE),
                                options.has(CreateContextOption.HOST));
    }
项目:tomee    文件:JMSContextImpl.java   
protected Session session() {
    if (session == null) {
        synchronized (this) {
            if (closed) {
                throw new IllegalStateRuntimeException("Context is closed");
            }
            if (session == null) {
                try {
                    if (xa) {
                        session = XAConnection.class.cast(connection()).createXASession();
                    } else {
                        session = connection().createSession(sessionMode);
                    }
                } catch (final JMSException e) {
                    throw toRuntimeException(e);
                }
            }
        }
    }
    return session;
}
项目:eap-6.1-quickstarts    文件:XAService.java   
private void notifyUpdate(Queue queue, String msg) throws Exception {
    XAConnection connection = null;

    try {
        connection = xaConnectionFactory.createXAConnection();
        XASession session = connection.createXASession();
        MessageProducer messageProducer = session.createProducer(queue);

        connection.start();
        TextMessage message = session.createTextMessage();
        message.setText(msg);

        messageProducer.send(message);
        messageProducer.close();
    } finally {
        if (connection != null) {
            try {
                connection.close();
            } catch (JMSException e) {
                LOGGER.info("Error closing JMS connection: " + e.getMessage());
            }
        }
    }
}
项目:jboss-as-quickstart    文件:XAService.java   
private void notifyUpdate(Queue queue, String msg) throws Exception {
    XAConnection connection = null;

    try {
        connection = xaConnectionFactory.createXAConnection();
        XASession session = connection.createXASession();
        MessageProducer messageProducer = session.createProducer(queue);

        connection.start();
        TextMessage message = session.createTextMessage();
        message.setText(msg);

        messageProducer.send(message);
        messageProducer.close();
    } finally {
        if (connection != null) {
            try {
                connection.close();
            } catch (JMSException e) {
                LOGGER.info("Error closing JMS connection: " + e.getMessage());
            }
        }
    }
}
项目:btm    文件:PoolingConnectionFactory.java   
@Override
public JmsPooledConnection createPooledConnection(Object xaFactory, ResourceBean bean) throws Exception {
    if (!(xaFactory instanceof XAConnectionFactory))
        throw new IllegalArgumentException("class '" + xaFactory.getClass().getName() + "' does not implement " + XAConnectionFactory.class.getName());
    XAConnectionFactory xaConnectionFactory = (XAConnectionFactory) xaFactory;

    XAConnection xaConnection;
    if (user == null || password == null) {
        if (log.isDebugEnabled()) { log.debug("creating new JMS XAConnection with no credentials"); }
        xaConnection = xaConnectionFactory.createXAConnection();
    }
    else {
        if (log.isDebugEnabled()) { log.debug("creating new JMS XAConnection with user <" + user + "> and password <" + password + ">"); }
        xaConnection = xaConnectionFactory.createXAConnection(user, password);
    }

    JmsPooledConnection jmsPooledConnection = new JmsPooledConnection(this, xaConnection);
    xaStatefulHolders.add(jmsPooledConnection);
    return jmsPooledConnection;
}
项目:btm    文件:JmsPooledConnection.java   
protected JmsPooledConnection(PoolingConnectionFactory poolingConnectionFactory, XAConnection connection) {
    this.poolingConnectionFactory = poolingConnectionFactory;
    this.xaConnection = connection;
    this.lastReleaseDate = new Date(MonotonicClock.currentTimeMillis());
    addStateChangeEventListener(new JmsPooledConnectionStateChangeListener());

    if (LrcXAConnectionFactory.class.getName().equals(poolingConnectionFactory.getClassName())) {
        if (log.isDebugEnabled()) { log.debug("emulating XA for resource " + poolingConnectionFactory.getUniqueName() + " - changing twoPcOrderingPosition to ALWAYS_LAST_POSITION"); }
        poolingConnectionFactory.setTwoPcOrderingPosition(Scheduler.ALWAYS_LAST_POSITION);
        if (log.isDebugEnabled()) { log.debug("emulating XA for resource " + poolingConnectionFactory.getUniqueName() + " - changing deferConnectionRelease to true"); }
        poolingConnectionFactory.setDeferConnectionRelease(true);
        if (log.isDebugEnabled()) { log.debug("emulating XA for resource " + poolingConnectionFactory.getUniqueName() + " - changing useTmJoin to true"); }
        poolingConnectionFactory.setUseTmJoin(true);
    }

    this.jmxName = "bitronix.tm:type=JMS,UniqueName=" + ManagementRegistrar.makeValidName(poolingConnectionFactory.getUniqueName()) + ",Id=" + poolingConnectionFactory.incCreatedResourcesCounter();
    ManagementRegistrar.register(jmxName, this);
}
项目:pooled-jms    文件:JmsPoolXAConnectionFactory.java   
@Override
protected XAConnection createProviderConnection(PooledConnectionKey key) throws JMSException {
    if (connectionFactory instanceof XAConnectionFactory) {
        if (key.getUserName() == null && key.getPassword() == null) {
            return ((XAConnectionFactory) connectionFactory).createXAConnection();
        } else {
            return ((XAConnectionFactory) connectionFactory).createXAConnection(key.getUserName(), key.getPassword());
        }
    } else {
        throw new IllegalStateException("connectionFactory should implement javax.jms.XAConnectionFactory");
    }
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:JtaAutoConfigurationTests.java   
@Bean
public ConnectionFactory pooledConnectionFactory(
        XAConnectionFactoryWrapper wrapper) throws Exception {
    XAConnectionFactory connectionFactory = mock(XAConnectionFactory.class);
    XAConnection connection = mock(XAConnection.class);
    XASession session = mock(XASession.class);
    TemporaryQueue queue = mock(TemporaryQueue.class);
    XAResource resource = mock(XAResource.class);
    given(connectionFactory.createXAConnection()).willReturn(connection);
    given(connection.createXASession()).willReturn(session);
    given(session.createTemporaryQueue()).willReturn(queue);
    given(session.getXAResource()).willReturn(resource);
    return wrapper.wrapConnectionFactory(connectionFactory);
}
项目:spring-boot-concourse    文件:JtaAutoConfigurationTests.java   
@Bean
public ConnectionFactory pooledConnectionFactory(
        XAConnectionFactoryWrapper wrapper) throws Exception {
    XAConnectionFactory connectionFactory = mock(XAConnectionFactory.class);
    XAConnection connection = mock(XAConnection.class);
    XASession session = mock(XASession.class);
    TemporaryQueue queue = mock(TemporaryQueue.class);
    XAResource resource = mock(XAResource.class);
    given(connectionFactory.createXAConnection()).willReturn(connection);
    given(connection.createXASession()).willReturn(session);
    given(session.createTemporaryQueue()).willReturn(queue);
    given(session.getXAResource()).willReturn(resource);
    return wrapper.wrapConnectionFactory(connectionFactory);
}
项目:opencucina    文件:EncryptedCredentialsXAConnectionFactory.java   
/**
 * JAVADOC Method Level Comments
 *
 * @return JAVADOC.
 *
 * @throws JMSException JAVADOC.
 */
@Override
public XAConnection createXAConnection()
    throws JMSException {
    if (StringUtils.isNotEmpty(getUsername())) {
        return createXAConnection(getUsername(), getDecryptedPassword());
    }

    return targetConnectionFactory.createXAConnection();
}
项目:contestparser    文件:JtaAutoConfigurationTests.java   
@Bean
public ConnectionFactory pooledConnectionFactory(
        XAConnectionFactoryWrapper wrapper) throws Exception {
    XAConnectionFactory connectionFactory = mock(XAConnectionFactory.class);
    XAConnection connection = mock(XAConnection.class);
    XASession session = mock(XASession.class);
    TemporaryQueue queue = mock(TemporaryQueue.class);
    XAResource resource = mock(XAResource.class);
    given(connectionFactory.createXAConnection()).willReturn(connection);
    given(connection.createXASession()).willReturn(session);
    given(session.createTemporaryQueue()).willReturn(queue);
    given(session.getXAResource()).willReturn(resource);
    return wrapper.wrapConnectionFactory(connectionFactory);
}
项目:daq-eclipse    文件:ActiveMQConnection.java   
/**
 * Construct an <code>ActiveMQConnection</code>
 *
 * @param transport
 * @param factoryStats
 * @throws Exception
 */
protected ActiveMQConnection(final Transport transport, IdGenerator clientIdGenerator, IdGenerator connectionIdGenerator, JMSStatsImpl factoryStats) throws Exception {

    this.transport = transport;
    this.clientIdGenerator = clientIdGenerator;
    this.factoryStats = factoryStats;

    // Configure a single threaded executor who's core thread can timeout if
    // idle
    executor = new ThreadPoolExecutor(1, 1, 5, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new ThreadFactory() {
        @Override
        public Thread newThread(Runnable r) {
            Thread thread = new Thread(r, "ActiveMQ Connection Executor: " + transport);
            //Don't make these daemon threads - see https://issues.apache.org/jira/browse/AMQ-796
            //thread.setDaemon(true);
            return thread;
        }
    });
    // asyncConnectionThread.allowCoreThreadTimeOut(true);
    String uniqueId = connectionIdGenerator.generateId();
    this.info = new ConnectionInfo(new ConnectionId(uniqueId));
    this.info.setManageable(true);
    this.info.setFaultTolerant(transport.isFaultTolerant());
    this.connectionSessionId = new SessionId(info.getConnectionId(), -1);

    this.transport.setTransportListener(this);

    this.stats = new JMSConnectionStatsImpl(sessions, this instanceof XAConnection);
    this.factoryStats.addConnection(this);
    this.timeCreated = System.currentTimeMillis();
    this.connectionAudit.setCheckForDuplicates(transport.isFaultTolerant());
}
项目:carbon-transports    文件:SessionPoolFactory.java   
@Override
public synchronized SessionWrapper create() throws Exception {
    List<ConnectionWrapper> connectionWrappers;
    ConnectionWrapper connectionWrapper = null;
    SessionWrapper sessionWrapper = null;

    if (jmsConnectionFactory instanceof JMSClientConnectionFactory) {
        connectionWrappers = ((JMSClientConnectionFactory) jmsConnectionFactory).getConnections();

        // see if we can create more sessions on the final Connection created
        if (!connectionWrappers.isEmpty()
                && connectionWrappers.get(connectionWrappers.size() - 1).getSessionCount().get()
                < ((JMSClientConnectionFactory) jmsConnectionFactory).getMaxSessionsPerConnection()) {
            connectionWrapper = connectionWrappers.get(connectionWrappers.size() - 1);
        }

        // if it needs to create a new connectionWrapper
        if (connectionWrapper == null) {
            if (jmsConnectionFactory.isxATransacted()) {
                connectionWrapper = new ConnectionWrapper((jmsConnectionFactory.createXAConnection()));
            } else {
                connectionWrapper = new ConnectionWrapper(jmsConnectionFactory.createConnection());
            }
            connectionWrappers.add(connectionWrapper);
        }

        // Create new SessionWrapper (or XASessionWrapper) accordingly
        if (jmsConnectionFactory.isxATransacted()) {
            XASession xASession = jmsConnectionFactory
                    .createXASession((XAConnection) connectionWrapper.getConnection());
            sessionWrapper = new XASessionWrapper(xASession, xASession.getSession(),
                    jmsConnectionFactory.createMessageProducer(xASession.getSession()));
        } else {
            Session session = jmsConnectionFactory.createSession(connectionWrapper.getConnection());
            sessionWrapper = new SessionWrapper(session, jmsConnectionFactory.createMessageProducer(session));
        }
        connectionWrapper.incrementSessionCount();
    }
    return sessionWrapper;
}
项目:activemq-artemis    文件:ConnectionTest.java   
@Test
public void testXAInstanceof() throws Exception {
   conn = cf.createConnection();

   assertFalse(conn instanceof XAConnection);
   Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);

   assertFalse(sess instanceof XASession);
}
项目:activemq-artemis    文件:SimpleOpenWireTest.java   
@Test
public void testXASimple() throws Exception {
   XAConnection connection = xaFactory.createXAConnection();

   Collection<Session> sessions = new LinkedList<>();

   for (int i = 0; i < 10; i++) {
      XASession session = connection.createXASession();
      session.getXAResource().start(newXID(), XAResource.TMNOFLAGS);
      sessions.add(session);
   }

   connection.close();

}
项目:activemq-artemis    文件:FailureXATest.java   
private void doTestCrashServerAfterXACommit(boolean onePhase) throws Exception {
   ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
   XAConnection connection = connectionFactory.createXAConnection();

   try {
      Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
      Queue queue = session.createQueue("Queue1");
      final XASession xaSession = connection.createXASession();
      MessageConsumer consumer = xaSession.createConsumer(queue);

      MessageProducer producer = session.createProducer(queue);
      producer.send(session.createTextMessage("hello " + 1));
      session.commit();

      XAResource xaResource = xaSession.getXAResource();
      final Xid xid = newXID();
      xaResource.start(xid, XAResource.TMNOFLAGS);

      connection.start();
      Assert.assertNotNull(consumer.receive(5000));

      xaResource.end(xid, XAResource.TMSUCCESS);

      try {
         xaResource.commit(xid, onePhase);
         Assert.fail("didn't get expected exception!");
      } catch (XAException xae) {
         if (onePhase) {
            //expected error code is XAER_RMFAIL
            Assert.assertEquals(XAException.XAER_RMFAIL, xae.errorCode);
         } else {
            //expected error code is XA_RETRY
            Assert.assertEquals(XAException.XA_RETRY, xae.errorCode);
         }
      }
   } finally {
      connection.close();
   }
}
项目:activemq-artemis    文件:ActiveMQXAConnectionFactoryTest.java   
public void testCloseSendConnection() throws Exception {
   String brokerName = "closeSend";
   BrokerService broker = BrokerFactory.createBroker(new URI("broker:(tcp://localhost:0)/" + brokerName));
   broker.start();
   broker.waitUntilStarted();
   ActiveMQXAConnectionFactory cf = new ActiveMQXAConnectionFactory(broker.getTransportConnectors().get(0).getConnectUri());
   XAConnection connection = (XAConnection) cf.createConnection();
   connection.start();
   XASession session = connection.createXASession();
   XAResource resource = session.getXAResource();
   Destination dest = new ActiveMQQueue(getName());

   // publish a message
   Xid tid = createXid();
   resource.start(tid, XAResource.TMNOFLAGS);
   MessageProducer producer = session.createProducer(dest);
   ActiveMQTextMessage message = new ActiveMQTextMessage();
   message.setText(getName());
   producer.send(message);

   connection.close();

   //comment out this check as it doesn't apply to artemis
   //assertTransactionGoneFromBroker(tid);

   broker.stop();
}
项目:activemq-artemis    文件:SessionTest.java   
@Test
public void testGetSession2() throws Exception {
   deployConnectionFactory(0, JMSFactoryType.CF, "ConnectionFactory", "/ConnectionFactory");
   XAConnection conn = getXAConnectionFactory().createXAConnection();
   XASession sess = conn.createXASession();

   sess.getSession();
   conn.close();
}
项目:activemq-artemis    文件:SessionTest.java   
@Test
public void testGetXAResource2() throws Exception {
   XAConnection conn = getXAConnectionFactory().createXAConnection();
   XASession sess = conn.createXASession();

   sess.getXAResource();
   conn.close();
}
项目:activemq-artemis    文件:ActiveMQRAConnectionFactoryImpl.java   
/**
 * Create a XA connection
 *
 * @return The connection
 * @throws JMSException Thrown if the operation fails
 */
@Override
public XAConnection createXAConnection() throws JMSException {
   if (ActiveMQRAConnectionFactoryImpl.trace) {
      ActiveMQRALogger.LOGGER.trace("createXAConnection()");
   }

   ActiveMQRASessionFactoryImpl s = new ActiveMQRASessionFactoryImpl(mcf, cm, getResourceAdapter().getTM(), ActiveMQRAConnectionFactory.XA_CONNECTION);

   if (ActiveMQRAConnectionFactoryImpl.trace) {
      ActiveMQRALogger.LOGGER.trace("Created connection: " + s);
   }

   return s;
}
项目:activemq-xa-cli    文件:Main.java   
protected XAConnection createConnection() throws JMSException {
    ActiveMQXAConnectionFactory factory = new ActiveMQXAConnectionFactory(url);
    factory.setUserName(user);
    factory.setPassword(password);
    verbose("Connecting to: " + url);
    XAConnection xaConnection = factory.createXAConnection();
    xaConnection.start();
    verbose("Connected");
    return xaConnection;
}
项目:activemq-xa-cli    文件:Main.java   
@Override
protected void run(XAConnection connection, XASession xaSession, XAResource xaResource) throws Exception {
    verbose("Getting prepared transactions");
    Xid[] recover = xaResource.recover(0);

    println("Found " + recover.length + " prepared transactions");
    for (Xid xid : recover) {
        println(toString(xid));
    }
}
项目:andes    文件:AMQXAConnectionFactory.java   
/**
 * Creates a XAConnection with the default user identity.
 * <p> The XAConnection is created in stopped mode. No messages
 * will be delivered until the <code>Connection.start</code> method

 * is explicitly called.
 *
 * @return A newly created XAConnection
 * @throws JMSException         If creating the XAConnection fails due to some internal error.
 * @throws JMSSecurityException If client authentication fails due to an invalid user name or password.
 */
public XAConnection createXAConnection() throws JMSException
{
    try
    {
        return new XAConnectionImpl(_connectionDetails, _sslConfig, scheduledExecutor);
    }
    catch (Exception e)
    {
        JMSException jmse = new JMSException("Error creating connection: " + e.getMessage());
        jmse.setLinkedException(e);
        jmse.initCause(e);
        throw jmse;
    }
}
项目:andes    文件:AMQXAConnectionFactory.java   
/**
 * Creates a XAConnection with the specified user identity.
 * <p> The XAConnection is created in stopped mode. No messages
 * will be delivered until the <code>Connection.start</code> method
 * is explicitly called.
 *
 * @param username the caller's user name
 * @param password the caller's password
 * @return A newly created XAConnection.
 * @throws JMSException         If creating the XAConnection fails due to some internal error.
 * @throws JMSSecurityException If client authentication fails due to an invalid user name or password.
 */
public XAConnection createXAConnection(String username, String password) throws JMSException
{
    if (_connectionDetails != null)
    {
        _connectionDetails.setUsername(username);
        _connectionDetails.setPassword(password);
    }
    else
    {
        throw new JMSException("A URL must be specified to access XA connections");
    }
    return createXAConnection();
}
项目:tomee    文件:JMSContextImpl.java   
protected Connection connection() {
    if (connection == null) {
        try {
            connection = username != null ? factory.createConnection(username, password) : factory.createConnection();
            xa = XAConnection.class.isInstance(connection);
        } catch (final JMSException e) {
            throw toRuntimeException(e);
        }
    }
    return connection;
}
项目:tomee    文件:AMQXASupportTest.java   
@Test
public void xaCode() throws Exception {
    assertNotNull(xacf);

    final Connection connection = xacf.createXAConnection();
    assertThat(connection, instanceOf(XAConnection.class));
    testConnection(connection);
}
项目:generic-jms-ra    文件:JmsServerSession.java   
/**
 * Setup the session
 */
public void setup() throws Exception {
    JmsActivation activation = pool.getActivation();
    JmsActivationSpec spec = activation.getActivationSpec();
    Connection connection = activation.getConnection();
    XAResource xaResource = null;
    tm = activation.getTransactionManager();

    // Get the endpoint
    MessageEndpointFactory endpointFactory = activation.getMessageEndpointFactory();

    // Create the session
    if (activation.isDeliveryTransacted) {
        if (connection instanceof XAConnection) {
            log.debug("Delivery is transacted, and client JMS implementation properly implements javax.jms.XAConnection.");
            xaSession = ((XAConnection) connection).createXASession();
            session = xaSession.getSession();
            xaResource = xaSession.getXAResource();
        } else {
            throw new Exception("Delivery is transacted, but client JMS implementation does not properly implement the necessary interfaces as described in section 8 of the JMS 1.1 specification.");
        }
    } else {
        session = connection.createSession(false, spec.getAcknowledgeModeInt());
    }

    endpoint = endpointFactory.createEndpoint(xaResource);

    // Set the message listener
    session.setMessageListener(this);
}
项目:btm    文件:LrcXAConnectionFactory.java   
@Override
public XAConnection createXAConnection() throws JMSException {
    try {
        Class<?> clazz = ClassLoaderUtils.loadClass(connectionFactoryClassName);
        ConnectionFactory nonXaConnectionFactory = (ConnectionFactory) clazz.newInstance();
        PropertyUtils.setProperties(nonXaConnectionFactory, properties);

        return new LrcXAConnection(nonXaConnectionFactory.createConnection());
    } catch (Exception ex) {
        throw (JMSException) new JMSException("unable to connect to non-XA resource " + connectionFactoryClassName).initCause(ex);
    }
}
项目:btm    文件:LrcXAConnectionFactory.java   
@Override
public XAConnection createXAConnection(String user, String password) throws JMSException {
    try {
        Class<?> clazz = ClassLoaderUtils.loadClass(connectionFactoryClassName);
        ConnectionFactory nonXaConnectionFactory = (ConnectionFactory) clazz.newInstance();
        PropertyUtils.setProperties(nonXaConnectionFactory, properties);

        return new LrcXAConnection(nonXaConnectionFactory.createConnection(user, password));
    } catch (Exception ex) {
        throw (JMSException) new JMSException("unable to connect to non-XA resource " + connectionFactoryClassName).initCause(ex);
    }
}
项目:btm    文件:JndiXAConnectionFactory.java   
@Override
public XAConnection createXAConnection() throws JMSException {
    try {
        init();
        return wrappedFactory.createXAConnection();
    } catch (NamingException ex) {
        throw (JMSException) new JMSException("error looking up wrapped XAConnectionFactory at " + name).initCause(ex);
    }
}