Java 类javax.jms.XAQueueConnection 实例源码

项目:ats-framework    文件:ManagedConnection.java   
public static ManagedConnection create(
                                        final Connection connection ) {

    if ( (connection instanceof XAQueueConnection) && (connection instanceof XATopicConnection)) {
        return new ManagedXAQueueTopicConnection(connection);
    } else if (connection instanceof XAQueueConnection) {
        return new ManagedXAQueueConnection((XAQueueConnection) connection);
    } else if (connection instanceof XATopicConnection) {
        return new ManagedXATopicConnection((XATopicConnection) connection);
    } else if ( (connection instanceof QueueConnection) && (connection instanceof TopicConnection)) {
        return new ManagedQueueTopicConnection(connection);
    } else if (connection instanceof QueueConnection) {
        return new ManagedQueueConnection((QueueConnection) connection);
    } else if (connection instanceof TopicConnection) {
        return new ManagedTopicConnection((TopicConnection) connection);
    } else {
        return new ManagedConnection(connection);
    }
}
项目: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    文件: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  queue connection
 *
 * @param userName The user name
 * @param password The password
 * @return The connection
 * @throws JMSException Thrown if the operation fails
 */
@Override
public XAQueueConnection createXAQueueConnection(final String userName, final String password) throws JMSException {
   if (ActiveMQRAConnectionFactoryImpl.trace) {
      ActiveMQRALogger.LOGGER.trace("createXAQueueConnection(" + userName + ", ****)");
   }

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

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

   return s;
}
项目:activemq-artemis    文件:OutgoingConnectionTest.java   
@Test
public void testSimpleMessageSendAndReceiveXA() throws Exception {
   Xid xid = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());
   XAQueueConnection queueConnection = qraConnectionFactory.createXAQueueConnection();
   XASession s = queueConnection.createXASession();

   XAResource resource = s.getXAResource();
   resource.start(xid, XAResource.TMNOFLAGS);
   Queue q = ActiveMQJMSClient.createQueue(MDBQUEUE);
   MessageProducer mp = s.createProducer(q);
   MessageConsumer consumer = s.createConsumer(q);
   Message message = s.createTextMessage("test");
   mp.send(message);
   queueConnection.start();
   TextMessage textMessage = (TextMessage) consumer.receiveNoWait();
   assertNull(textMessage);
   resource.end(xid, XAResource.TMSUCCESS);
   resource.commit(xid, true);
   resource.start(xid, XAResource.TMNOFLAGS);
   textMessage = (TextMessage) consumer.receiveNoWait();
   resource.end(xid, XAResource.TMSUCCESS);
   resource.commit(xid, true);
   assertNotNull(textMessage);
   assertEquals(textMessage.getText(), "test");

   // When I wrote this call, this method was doing an infinite loop.
   // this is just to avoid such thing again
   textMessage.getJMSDeliveryTime();

}
项目:activemq-artemis    文件:OutgoingConnectionTest.java   
@Test
public void testOutgoingXAResourceWrapper() throws Exception {
   XAQueueConnection queueConnection = qraConnectionFactory.createXAQueueConnection();
   XASession s = queueConnection.createXASession();

   XAResource resource = s.getXAResource();
   assertTrue(resource instanceof ActiveMQXAResourceWrapper);

   ActiveMQXAResourceWrapperImpl xaResourceWrapper = (ActiveMQXAResourceWrapperImpl) resource;
   assertTrue(xaResourceWrapper.getJndiName().equals("java://jmsXA NodeId:" + server.getNodeID()));
   assertTrue(xaResourceWrapper.getProductVersion().equals(VersionLoader.getVersion().getFullVersion()));
   assertTrue(xaResourceWrapper.getProductName().equals(ActiveMQResourceAdapter.PRODUCT_NAME));
}
项目:activemq-artemis    文件:ActiveMQRAConnectionFactoryImpl.java   
/**
 * Create a XA queue connection
 *
 * @return The connection
 * @throws JMSException Thrown if the operation fails
 */
@Override
public XAQueueConnection createXAQueueConnection() throws JMSException {
   if (ActiveMQRAConnectionFactoryImpl.trace) {
      ActiveMQRALogger.LOGGER.trace("createXAQueueConnection()");
   }

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

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

   return s;
}
项目:ats-framework    文件:ManagedXAQueueConnection.java   
public ManagedXAQueueConnection( XAQueueConnection connection ) {

        super(connection);
        this.xaConnection = connection;
    }
项目:ats-framework    文件:ManagedXAQueueTopicConnection.java   
@Override
public XAQueueSession createXAQueueSession() throws JMSException {

    return addSession( ((XAQueueConnection) connection).createXAQueueSession());
}
项目:daq-eclipse    文件:ActiveMQXAConnectionFactory.java   
public XAQueueConnection createXAQueueConnection() throws JMSException {
    return (XAQueueConnection) createActiveMQConnection();
}
项目:daq-eclipse    文件:ActiveMQXAConnectionFactory.java   
public XAQueueConnection createXAQueueConnection(String userName, String password) throws JMSException {
    return (XAQueueConnection) createActiveMQConnection(userName, password);
}
项目:activemq-artemis    文件:ActiveMQXAConnectionFactoryTest.java   
private void assertXAConnection(Connection connection) {
   assertTrue("Should be an XAConnection", connection instanceof XAConnection);
   assertTrue("Should be an XATopicConnection", connection instanceof XATopicConnection);
   assertTrue("Should be an XAQueueConnection", connection instanceof XAQueueConnection);
}
项目:activemq-artemis    文件:ConnectionFactoryTest.java   
@Test
public void testConnectionTypes() throws Exception {
   deployConnectionFactory(0, JMSFactoryType.CF, "ConnectionFactory", "/ConnectionFactory");
   deployConnectionFactory(0, JMSFactoryType.QUEUE_XA_CF, "CF_QUEUE_XA_TRUE", "/CF_QUEUE_XA_TRUE");
   deployConnectionFactory(0, JMSFactoryType.XA_CF, "CF_XA_TRUE", "/CF_XA_TRUE");
   deployConnectionFactory(0, JMSFactoryType.QUEUE_CF, "CF_QUEUE", "/CF_QUEUE");
   deployConnectionFactory(0, JMSFactoryType.TOPIC_CF, "CF_TOPIC", "/CF_TOPIC");
   deployConnectionFactory(0, JMSFactoryType.TOPIC_XA_CF, "CF_TOPIC_XA_TRUE", "/CF_TOPIC_XA_TRUE");

   Connection genericConnection = null;
   XAConnection xaConnection = null;
   QueueConnection queueConnection = null;
   TopicConnection topicConnection = null;
   XAQueueConnection xaQueueConnection = null;
   XATopicConnection xaTopicConnection = null;

   ConnectionFactory genericFactory = (ConnectionFactory) ic.lookup("/ConnectionFactory");
   genericConnection = genericFactory.createConnection();
   assertConnectionType(genericConnection, "generic");

   XAConnectionFactory xaFactory = (XAConnectionFactory) ic.lookup("/CF_XA_TRUE");
   xaConnection = xaFactory.createXAConnection();
   assertConnectionType(xaConnection, "xa");

   QueueConnectionFactory queueCF = (QueueConnectionFactory) ic.lookup("/CF_QUEUE");
   queueConnection = queueCF.createQueueConnection();
   assertConnectionType(queueConnection, "queue");

   TopicConnectionFactory topicCF = (TopicConnectionFactory) ic.lookup("/CF_TOPIC");
   topicConnection = topicCF.createTopicConnection();
   assertConnectionType(topicConnection, "topic");

   XAQueueConnectionFactory xaQueueCF = (XAQueueConnectionFactory) ic.lookup("/CF_QUEUE_XA_TRUE");
   xaQueueConnection = xaQueueCF.createXAQueueConnection();
   assertConnectionType(xaQueueConnection, "xa-queue");

   XATopicConnectionFactory xaTopicCF = (XATopicConnectionFactory) ic.lookup("/CF_TOPIC_XA_TRUE");
   xaTopicConnection = xaTopicCF.createXATopicConnection();
   assertConnectionType(xaTopicConnection, "xa-topic");

   genericConnection.close();
   xaConnection.close();
   queueConnection.close();
   topicConnection.close();
   xaQueueConnection.close();
   xaTopicConnection.close();

   undeployConnectionFactory("ConnectionFactory");
   undeployConnectionFactory("CF_QUEUE_XA_TRUE");
   undeployConnectionFactory("CF_XA_TRUE");
   undeployConnectionFactory("CF_QUEUE");
   undeployConnectionFactory("CF_TOPIC");
   undeployConnectionFactory("CF_TOPIC_XA_TRUE");
}
项目:activemq-artemis    文件:ActiveMQConnectionFactory.java   
public XAQueueConnection createXAQueueConnection() throws JMSException {
   return createXAQueueConnection(user, password);
}
项目:activemq-artemis    文件:ActiveMQConnectionFactory.java   
public XAQueueConnection createXAQueueConnection(final String username, final String password) throws JMSException {
   return (XAQueueConnection) createConnectionInternal(username, password, true, ActiveMQConnection.TYPE_QUEUE_CONNECTION);
}
项目:andes    文件:AMQXAConnectionFactory.java   
/**
 * Creates a XAQueueConnection with the default user identity.
 * <p> The XAQueueConnection is created in stopped mode. No messages
 * will be delivered until the <code>Connection.start</code> method
 * is explicitly called.
 *
 * @return A newly created XAQueueConnection
 * @throws JMSException         If creating the XAQueueConnection fails due to some internal error.
 * @throws JMSSecurityException If client authentication fails due to an invalid user name or password.
 */
public XAQueueConnection createXAQueueConnection() throws JMSException
{
    return (XAQueueConnection) createXAConnection();
}
项目:andes    文件:AMQXAConnectionFactory.java   
/**
 * Creates a XAQueueConnection with the specified user identity.
 * <p> The XAQueueConnection 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 XAQueueConnection.
 * @throws JMSException         If creating the XAQueueConnection fails due to some internal error.
 * @throws JMSSecurityException If client authentication fails due to an invalid user name or password.
 */
public XAQueueConnection createXAQueueConnection(String username, String password) throws JMSException
{
    return (XAQueueConnection) createXAConnection(username, password);
}