@Before public void setUpMocks() throws Exception { mockConnectionFactory = mock(QueueConnectionFactory.class); mockConnection = mock(QueueConnection.class); mockSession = mock(QueueSession.class); mockQueue = mock(Queue.class); given(mockConnectionFactory.createConnection()).willReturn(mockConnection); given(mockConnection.createSession(false, Session.AUTO_ACKNOWLEDGE)).willReturn(mockSession); }
Session session2 = con2.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE); session2.close(); session2 = con2.createSession(true, Session.AUTO_ACKNOWLEDGE); session2.getTransacted();
@Test public void testQueueSessionAckMode() throws Exception { QueueConnection queueConnection = qraConnectionFactory.createQueueConnection(); Session s = queueConnection.createSession(false, Session.SESSION_TRANSACTED); s.close(); }
@Test public void testSimpleMessageSendAndReceive() throws Exception { QueueConnection queueConnection = qraConnectionFactory.createQueueConnection(); Session s = queueConnection.createSession(false, Session.AUTO_ACKNOWLEDGE); 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.receive(1000); assertNotNull(textMessage); assertEquals(textMessage.getText(), "test"); }
@Test public void testSimpleMessageSendAndReceive() throws Exception { QueueConnection queueConnection = qraConnectionFactory.createQueueConnection(); Session s = queueConnection.createSession(false, Session.AUTO_ACKNOWLEDGE); 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.receive(1000); assertNotNull(textMessage); assertEquals(textMessage.getText(), "test"); }
@Test public void testMultipleSessionsThrowsException() throws Exception { resourceAdapter = newResourceAdapter(); MyBootstrapContext ctx = new MyBootstrapContext(); resourceAdapter.start(ctx); ActiveMQRAManagedConnectionFactory mcf = new ActiveMQRAManagedConnectionFactory(); mcf.setResourceAdapter(resourceAdapter); ActiveMQRAConnectionFactory qraConnectionFactory = new ActiveMQRAConnectionFactoryImpl(mcf, qraConnectionManager); QueueConnection queueConnection = qraConnectionFactory.createQueueConnection(); Session s = queueConnection.createSession(false, Session.AUTO_ACKNOWLEDGE); try { Session s2 = queueConnection.createSession(false, Session.AUTO_ACKNOWLEDGE); fail("should throw javax,jms.IllegalStateException: Only allowed one session per connection. See the J2EE spec, e.g. J2EE1.4 Section 6.6"); } catch (JMSException e) { } }
Session s = queueConnection.createSession(false, Session.AUTO_ACKNOWLEDGE); sessions.add(s); ActiveMQRAManagedConnection mc = (ActiveMQRAManagedConnection) ((ActiveMQRASession) s).getManagedConnection(); s = queueConnection.createSession(false, Session.AUTO_ACKNOWLEDGE); sessions.add(s); mc = (ActiveMQRAManagedConnection) ((ActiveMQRASession) s).getManagedConnection();
Session s = queueConnection.createSession(false, Session.AUTO_ACKNOWLEDGE); if (inTx) { assertEquals(Session.SESSION_TRANSACTED, s.getAcknowledgeMode()); s = queueConnection.createSession(false, Session.DUPS_OK_ACKNOWLEDGE); if (inTx) { assertEquals(Session.SESSION_TRANSACTED, s.getAcknowledgeMode()); s = queueConnection.createSession(false, Session.SESSION_TRANSACTED); if (inTx) { assertEquals(s.getAcknowledgeMode(), Session.SESSION_TRANSACTED); s = queueConnection.createSession(false, Session.CLIENT_ACKNOWLEDGE); if (inTx) { assertEquals(s.getAcknowledgeMode(), Session.SESSION_TRANSACTED);
@Test public void testSimpleMessageSendAndReceiveTransacted() throws Exception { setDummyTX(); setupDLQ(10); resourceAdapter = newResourceAdapter(); MyBootstrapContext ctx = new MyBootstrapContext(); resourceAdapter.start(ctx); ActiveMQRAManagedConnectionFactory mcf = new ActiveMQRAManagedConnectionFactory(); mcf.setResourceAdapter(resourceAdapter); ActiveMQRAConnectionFactory qraConnectionFactory = new ActiveMQRAConnectionFactoryImpl(mcf, qraConnectionManager); QueueConnection queueConnection = qraConnectionFactory.createQueueConnection(); Session s = queueConnection.createSession(true, Session.AUTO_ACKNOWLEDGE); Queue q = ActiveMQJMSClient.createQueue(MDBQUEUE); MessageProducer mp = s.createProducer(q); MessageConsumer consumer = s.createConsumer(q); Message message = s.createTextMessage("test"); mp.send(message); s.commit(); queueConnection.start(); TextMessage textMessage = (TextMessage) consumer.receive(1000); assertNotNull(textMessage); assertEquals(textMessage.getText(), "test"); s.rollback(); textMessage = (TextMessage) consumer.receive(1000); assertNotNull(textMessage); assertEquals(textMessage.getText(), "test"); s.commit(); }
private void testSendAndReceive(Boolean ignoreJTA) throws Exception { setDummyTX(); setupDLQ(10); resourceAdapter = newResourceAdapter(); if (ignoreJTA != null) { resourceAdapter.setIgnoreJTA(ignoreJTA); } MyBootstrapContext ctx = new MyBootstrapContext(); resourceAdapter.start(ctx); ActiveMQRAManagedConnectionFactory mcf = new ActiveMQRAManagedConnectionFactory(); mcf.setResourceAdapter(resourceAdapter); ActiveMQRAConnectionFactory qraConnectionFactory = new ActiveMQRAConnectionFactoryImpl(mcf, qraConnectionManager); QueueConnection queueConnection = qraConnectionFactory.createQueueConnection(); Session s = queueConnection.createSession(true, Session.AUTO_ACKNOWLEDGE); Queue q = ActiveMQJMSClient.createQueue(MDBQUEUE); MessageProducer mp = s.createProducer(q); MessageConsumer consumer = s.createConsumer(q); Message message = s.createTextMessage("test"); mp.send(message); s.commit(); queueConnection.start(); TextMessage textMessage = (TextMessage) consumer.receive(1000); assertNotNull(textMessage); assertEquals(textMessage.getText(), "test"); s.rollback(); textMessage = (TextMessage) consumer.receive(1000); assertNotNull(textMessage); assertEquals(textMessage.getText(), "test"); s.commit(); }
s = queueConnection.createSession(false, Session.AUTO_ACKNOWLEDGE); mc = (ActiveMQRAManagedConnection) ((ActiveMQRASession) s).getManagedConnection(); s2 = queueConnection2.createSession(false, Session.AUTO_ACKNOWLEDGE); mc2 = (ActiveMQRAManagedConnection) ((ActiveMQRASession) s2).getManagedConnection();
@Test public void testSimpleMessageSendAndReceiveNotTransacted() throws Exception { setupDLQ(10); resourceAdapter = newResourceAdapter(); MyBootstrapContext ctx = new MyBootstrapContext(); resourceAdapter.start(ctx); ActiveMQRAManagedConnectionFactory mcf = new ActiveMQRAManagedConnectionFactory(); mcf.setAllowLocalTransactions(true); mcf.setResourceAdapter(resourceAdapter); ActiveMQRAConnectionFactory qraConnectionFactory = new ActiveMQRAConnectionFactoryImpl(mcf, qraConnectionManager); QueueConnection queueConnection = qraConnectionFactory.createQueueConnection(); Session s = queueConnection.createSession(false, Session.SESSION_TRANSACTED); Queue q = ActiveMQJMSClient.createQueue(MDBQUEUE); MessageProducer mp = s.createProducer(q); MessageConsumer consumer = s.createConsumer(q); Message message = s.createTextMessage("test"); mp.send(message); s.commit(); queueConnection.start(); TextMessage textMessage = (TextMessage) consumer.receive(1000); assertNotNull(textMessage); assertEquals(textMessage.getText(), "test"); s.rollback(); textMessage = (TextMessage) consumer.receive(1000); assertNotNull(textMessage); assertEquals(textMessage.getText(), "test"); s.commit(); textMessage = (TextMessage) consumer.receiveNoWait(); assertNull(textMessage); }
@Test public void testSimpleMessageSendAndReceiveSessionTransacted2() throws Exception { setupDLQ(10); resourceAdapter = newResourceAdapter(); MyBootstrapContext ctx = new MyBootstrapContext(); resourceAdapter.start(ctx); ActiveMQRAManagedConnectionFactory mcf = new ActiveMQRAManagedConnectionFactory(); mcf.setAllowLocalTransactions(true); mcf.setResourceAdapter(resourceAdapter); ActiveMQRAConnectionFactory qraConnectionFactory = new ActiveMQRAConnectionFactoryImpl(mcf, qraConnectionManager); QueueConnection queueConnection = qraConnectionFactory.createQueueConnection(); Session s = queueConnection.createSession(Session.SESSION_TRANSACTED); Queue q = ActiveMQJMSClient.createQueue(MDBQUEUE); MessageProducer mp = s.createProducer(q); MessageConsumer consumer = s.createConsumer(q); Message message = s.createTextMessage("test"); mp.send(message); s.commit(); queueConnection.start(); TextMessage textMessage = (TextMessage) consumer.receive(1000); assertNotNull(textMessage); assertEquals(textMessage.getText(), "test"); s.rollback(); textMessage = (TextMessage) consumer.receive(1000); assertNotNull(textMessage); assertEquals(textMessage.getText(), "test"); s.commit(); textMessage = (TextMessage) consumer.receiveNoWait(); assertNull(textMessage); }
@Test public void testSimpleMessageSendAndReceiveSessionTransacted() throws Exception { setupDLQ(10); resourceAdapter = newResourceAdapter(); MyBootstrapContext ctx = new MyBootstrapContext(); resourceAdapter.start(ctx); ActiveMQRAManagedConnectionFactory mcf = new ActiveMQRAManagedConnectionFactory(); mcf.setAllowLocalTransactions(true); mcf.setResourceAdapter(resourceAdapter); ActiveMQRAConnectionFactory qraConnectionFactory = new ActiveMQRAConnectionFactoryImpl(mcf, qraConnectionManager); QueueConnection queueConnection = qraConnectionFactory.createQueueConnection(); Session s = queueConnection.createSession(true, Session.SESSION_TRANSACTED); Queue q = ActiveMQJMSClient.createQueue(MDBQUEUE); MessageProducer mp = s.createProducer(q); MessageConsumer consumer = s.createConsumer(q); Message message = s.createTextMessage("test"); mp.send(message); s.commit(); queueConnection.start(); TextMessage textMessage = (TextMessage) consumer.receive(1000); assertNotNull(textMessage); assertEquals(textMessage.getText(), "test"); s.rollback(); textMessage = (TextMessage) consumer.receive(1000); assertNotNull(textMessage); assertEquals(textMessage.getText(), "test"); s.commit(); textMessage = (TextMessage) consumer.receiveNoWait(); assertNull(textMessage); }
s = queueConnection.createSession(false, Session.AUTO_ACKNOWLEDGE); mc = (ActiveMQRAManagedConnection) ((ActiveMQRASession) s).getManagedConnection(); ActiveMQConnectionFactory cf1 = mc.getConnectionFactory(); s2 = queueConnection2.createSession(false, Session.AUTO_ACKNOWLEDGE); mc2 = (ActiveMQRAManagedConnection) ((ActiveMQRASession) s2).getManagedConnection(); ActiveMQConnectionFactory cf2 = mc2.getConnectionFactory();