Search in sources :

Example 11 with QueueConnection

use of javax.jms.QueueConnection in project spring-framework by spring-projects.

the class SingleConnectionFactoryTests method testCachingConnectionFactoryWithQueueConnectionFactoryAndJms102Usage.

@Test
public void testCachingConnectionFactoryWithQueueConnectionFactoryAndJms102Usage() throws JMSException {
    QueueConnectionFactory cf = mock(QueueConnectionFactory.class);
    QueueConnection con = mock(QueueConnection.class);
    QueueSession txSession = mock(QueueSession.class);
    QueueSession nonTxSession = mock(QueueSession.class);
    given(cf.createQueueConnection()).willReturn(con);
    given(con.createQueueSession(true, Session.AUTO_ACKNOWLEDGE)).willReturn(txSession);
    given(txSession.getTransacted()).willReturn(true);
    given(con.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE)).willReturn(nonTxSession);
    CachingConnectionFactory scf = new CachingConnectionFactory(cf);
    scf.setReconnectOnException(false);
    Connection con1 = scf.createQueueConnection();
    Session session1 = con1.createSession(true, Session.AUTO_ACKNOWLEDGE);
    session1.rollback();
    session1.close();
    session1 = con1.createSession(false, Session.CLIENT_ACKNOWLEDGE);
    session1.close();
    con1.start();
    QueueConnection con2 = scf.createQueueConnection();
    Session session2 = con2.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE);
    session2.close();
    session2 = con2.createSession(true, Session.AUTO_ACKNOWLEDGE);
    session2.getTransacted();
    // should lead to rollback
    session2.close();
    con2.start();
    con1.close();
    con2.close();
    // should trigger actual close
    scf.destroy();
    verify(txSession).rollback();
    verify(txSession).close();
    verify(nonTxSession).close();
    verify(con).start();
    verify(con).stop();
    verify(con).close();
}
Also used : QueueConnection(javax.jms.QueueConnection) QueueConnectionFactory(javax.jms.QueueConnectionFactory) Connection(javax.jms.Connection) TopicConnection(javax.jms.TopicConnection) QueueConnection(javax.jms.QueueConnection) QueueSession(javax.jms.QueueSession) QueueSession(javax.jms.QueueSession) Session(javax.jms.Session) TopicSession(javax.jms.TopicSession) Test(org.junit.Test)

Example 12 with QueueConnection

use of javax.jms.QueueConnection in project spring-framework by spring-projects.

the class SingleConnectionFactoryTests method testWithQueueConnectionFactoryAndJms102Usage.

@Test
public void testWithQueueConnectionFactoryAndJms102Usage() throws JMSException {
    QueueConnectionFactory cf = mock(QueueConnectionFactory.class);
    QueueConnection con = mock(QueueConnection.class);
    given(cf.createQueueConnection()).willReturn(con);
    SingleConnectionFactory scf = new SingleConnectionFactory(cf);
    Connection con1 = scf.createQueueConnection();
    Connection con2 = scf.createQueueConnection();
    con1.start();
    con2.start();
    con1.close();
    con2.close();
    // should trigger actual close
    scf.destroy();
    verify(con).start();
    verify(con).stop();
    verify(con).close();
    verifyNoMoreInteractions(con);
}
Also used : QueueConnection(javax.jms.QueueConnection) QueueConnectionFactory(javax.jms.QueueConnectionFactory) Connection(javax.jms.Connection) TopicConnection(javax.jms.TopicConnection) QueueConnection(javax.jms.QueueConnection) Test(org.junit.Test)

Example 13 with QueueConnection

use of javax.jms.QueueConnection in project spring-framework by spring-projects.

the class SingleConnectionFactoryTests method testWithQueueConnection.

@Test
public void testWithQueueConnection() throws JMSException {
    Connection con = mock(QueueConnection.class);
    SingleConnectionFactory scf = new SingleConnectionFactory(con);
    QueueConnection con1 = scf.createQueueConnection();
    con1.start();
    con1.stop();
    con1.close();
    QueueConnection con2 = scf.createQueueConnection();
    con2.start();
    con2.stop();
    con2.close();
    // should trigger actual close
    scf.destroy();
    verify(con, times(2)).start();
    verify(con, times(2)).stop();
    verify(con).close();
    verifyNoMoreInteractions(con);
}
Also used : QueueConnection(javax.jms.QueueConnection) Connection(javax.jms.Connection) TopicConnection(javax.jms.TopicConnection) QueueConnection(javax.jms.QueueConnection) Test(org.junit.Test)

Example 14 with QueueConnection

use of javax.jms.QueueConnection in project spring-framework by spring-projects.

the class TransactionAwareConnectionFactoryProxy method createQueueConnection.

@Override
public QueueConnection createQueueConnection(String username, String password) throws JMSException {
    ConnectionFactory target = obtainTargetConnectionFactory();
    if (!(target instanceof QueueConnectionFactory)) {
        throw new javax.jms.IllegalStateException("'targetConnectionFactory' is no QueueConnectionFactory");
    }
    QueueConnection targetConnection = ((QueueConnectionFactory) target).createQueueConnection(username, password);
    return (QueueConnection) getTransactionAwareConnectionProxy(targetConnection);
}
Also used : QueueConnectionFactory(javax.jms.QueueConnectionFactory) TopicConnectionFactory(javax.jms.TopicConnectionFactory) ConnectionFactory(javax.jms.ConnectionFactory) QueueConnection(javax.jms.QueueConnection) QueueConnectionFactory(javax.jms.QueueConnectionFactory)

Example 15 with QueueConnection

use of javax.jms.QueueConnection in project wildfly by wildfly.

the class MessageDrivenTimeoutTestCase method receiveMessage.

static String receiveMessage(Queue replyQueue, InitialContext initCtx) throws Exception {
    QueueConnection connection = getConnection(initCtx);
    connection.start();
    try {
        final QueueSession session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
        final QueueReceiver receiver = session.createReceiver(replyQueue);
        final Message reply = receiver.receive(TimeoutUtil.adjust(5000));
        // waiting for synchro could be finished before checking
        Thread.sleep(TimeoutUtil.adjust(500));
        if (reply == null)
            return null;
        return ((TextMessage) reply).getText();
    } finally {
        connection.close();
    }
}
Also used : QueueConnection(javax.jms.QueueConnection) Message(javax.jms.Message) TextMessage(javax.jms.TextMessage) QueueReceiver(javax.jms.QueueReceiver) QueueSession(javax.jms.QueueSession) TextMessage(javax.jms.TextMessage)

Aggregations

QueueConnection (javax.jms.QueueConnection)21 QueueSession (javax.jms.QueueSession)15 TextMessage (javax.jms.TextMessage)12 QueueConnectionFactory (javax.jms.QueueConnectionFactory)10 Test (org.junit.Test)9 Message (javax.jms.Message)8 MessageProducer (javax.jms.MessageProducer)7 Queue (javax.jms.Queue)7 Connection (javax.jms.Connection)5 Destination (javax.jms.Destination)5 QueueReceiver (javax.jms.QueueReceiver)5 QueueSender (javax.jms.QueueSender)5 TopicConnection (javax.jms.TopicConnection)5 InitialContext (javax.naming.InitialContext)4 ObjectMessage (javax.jms.ObjectMessage)3 ConnectionFactory (javax.jms.ConnectionFactory)2 JMSException (javax.jms.JMSException)2 Session (javax.jms.Session)2 TopicConnectionFactory (javax.jms.TopicConnectionFactory)2 IOException (java.io.IOException)1