@Test public void testReceiveTimesoutCorrectly() throws Exception { ClientSessionFactory cf = createSessionFactory(locator); ClientSession session = cf.createSession(false, true, true); session.createQueue(addressA, queueA, false); ClientConsumer cc = session.createConsumer(queueA); session.start(); long time = System.currentTimeMillis(); cc.receive(1000); Assert.assertTrue(System.currentTimeMillis() - time >= 1000); session.close(); }
@Test public void testBasicReceive() throws Exception { ClientSessionFactory cf = createSessionFactory(locator); ClientSession sendSession = cf.createSession(false, true, true); ClientProducer cp = sendSession.createProducer(addressA); ClientSession session = cf.createSession(false, true, true); session.createQueue(addressA, queueA, false); ClientConsumer cc = session.createConsumer(queueA); session.start(); cp.send(sendSession.createMessage(false)); Assert.assertNotNull(cc.receive()); session.close(); sendSession.close(); }
@Test public void testSendReceiveOne() throws Exception { ClientSessionFactory sf = createSessionFactory(); ClientSession session = sf.createSession(); final String foo = "foo"; session.createQueue(foo, RoutingType.ANYCAST, foo); ClientProducer prod = session.createProducer(foo); ClientConsumer cons = session.createConsumer(foo); session.start(); ClientMessage msg = session.createMessage(false); prod.send(msg); msg = cons.receive(10000); Assert.assertNotNull(msg); msg.acknowledge(); } }
private void receiveOnBothNodes(int NUMBER_OF_MESSAGES) throws ActiveMQException { for (int x = 0; x <= 1; x++) { ClientSession sessionX = sfs[x].createSession(); ClientConsumer consumerX = sessionX.createConsumer("queues.0"); sessionX.start(); for (int i = 0; i < NUMBER_OF_MESSAGES / 2; i++) { ClientMessage msg = consumerX.receive(5000); Assert.assertNotNull(msg); msg.acknowledge(); } Assert.assertNull(consumerX.receiveImmediate()); sessionX.commit(); sessionX.close(); } }
private void checkUserSendAndReceive(final String genericQueueName, final ClientSession connection) throws Exception { connection.start(); try { ClientProducer prod = connection.createProducer(genericQueueName); ClientConsumer con = connection.createConsumer(genericQueueName); ClientMessage m = connection.createMessage(false); prod.send(m); ClientMessage rec = con.receive(1000); Assert.assertNotNull(rec); rec.acknowledge(); } finally { connection.stop(); } }
private void receiveAllMessages() throws Exception { final ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(null, null, false, true, true, false, 0); session.start(); ClientConsumer consumer = session.createConsumer(ADDRESS); for (int i = 0; i < numMsgs; i++) { ClientMessage message = consumer.receive(2000); assertNotNull(message); message.acknowledge(); } session.commit(); session.close(); }
@Test public void testRouteToSingleNonDurableQueue() throws Exception { ClientSession sendSession = cf.createSession(false, true, true); sendSession.createQueue(addressA, queueA, false); int numMessages = 300; ClientProducer p = sendSession.createProducer(addressA); for (int i = 0; i < numMessages; i++) { p.send(sendSession.createMessage(false)); } ClientSession session = cf.createSession(false, true, true); ClientConsumer c1 = session.createConsumer(queueA); session.start(); for (int i = 0; i < numMessages; i++) { ClientMessage m = c1.receive(5000); Assert.assertNotNull(m); m.acknowledge(); } Assert.assertNull(c1.receiveImmediate()); sendSession.close(); session.close(); }
private ClientMessage receiveMessage() throws Exception { final ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(null, null, false, true, true, false, 0); session.start(); ClientConsumer consumer = session.createConsumer(ADDRESS); ClientMessage message = consumer.receive(1000); session.commit(); if (message != null) { message.acknowledge(); } consumer.close(); session.close(); return message; }
@Test public void testRouteToSingleTemporaryQueue() throws Exception { ClientSession sendSession = cf.createSession(false, true, true); sendSession.createTemporaryQueue(addressA, queueA); int numMessages = 300; ClientProducer p = sendSession.createProducer(addressA); for (int i = 0; i < numMessages; i++) { p.send(sendSession.createMessage(false)); } ClientSession session = cf.createSession(false, true, true); ClientConsumer c1 = session.createConsumer(queueA); session.start(); for (int i = 0; i < numMessages; i++) { ClientMessage m = c1.receive(5000); Assert.assertNotNull(m); m.acknowledge(); } Assert.assertNull(c1.receiveImmediate()); sendSession.close(); session.close(); }
@Test public void testReceiveOnClosedException() throws Exception { ClientSessionFactory cf = createSessionFactory(locator); ClientSession session = cf.createSession(false, true, true); session.createQueue(addressA, queueA, false); ClientConsumer cc = session.createConsumer(queueA); session.start(); session.close(); try { cc.receive(); Assert.fail("should throw exception"); } catch (ActiveMQObjectClosedException oce) { //ok } catch (ActiveMQException e) { Assert.fail("Invalid Exception type:" + e.getType()); } session.close(); }
@Test public void testRouteToSingleDurableQueue() throws Exception { ClientSession sendSession = cf.createSession(false, true, true); sendSession.createQueue(addressA, queueA, true); int numMessages = 300; ClientProducer p = sendSession.createProducer(addressA); for (int i = 0; i < numMessages; i++) { p.send(sendSession.createMessage(false)); } ClientSession session = cf.createSession(false, true, true); ClientConsumer c1 = session.createConsumer(queueA); session.start(); for (int i = 0; i < numMessages; i++) { ClientMessage m = c1.receive(5000); Assert.assertNotNull(m); m.acknowledge(); } Assert.assertNull(c1.receiveImmediate()); sendSession.close(); session.close(); }
@Test public void testConsumeFromFormat() throws Exception { ActiveMQServer server = createServer(true); DecodeJournal.importJournal(server.getConfiguration().getJournalLocation().getAbsolutePath(), "activemq-data", "amq", 2, 102400, new StringReader(journalFile)); DecodeJournal.importJournal(server.getConfiguration().getBindingsLocation().getAbsolutePath(), "activemq-bindings", "bindings", 2, 1048576, new StringReader(bindingsFile)); server.start(); ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory factory = createSessionFactory(locator); ClientSession session = factory.createSession(); session.start(); ClientConsumer consumer = session.createConsumer("A1"); for (int i = 0; i < 10; i++) { ClientMessage msg = consumer.receive(5000); assertNotNull(msg); msg.acknowledge(); assertEquals(i, msg.getIntProperty("key").intValue()); } session.commit(); }
@Test public void testReceivedImmediateFollowedByReceive() throws Exception { locator.setBlockOnNonDurableSend(true); sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); session.createQueue(ADDRESS, QUEUE, null, false); ClientProducer producer = session.createProducer(ADDRESS); ClientMessage message = session.createMessage(false); producer.send(message); ClientConsumer consumer = session.createConsumer(QUEUE, null, false); session.start(); ClientMessage received = consumer.receiveImmediate(); assertNotNull(received); received.acknowledge(); received = consumer.receive(1); assertNull(received); session.close(); }
@Test public void testSimpleSendNoXAJMSContext() throws Exception { Queue q = ActiveMQJMSClient.createQueue(MDBQUEUE); try (ClientSessionFactory sf = locator.createSessionFactory(); ClientSession session = sf.createSession(); ClientConsumer consVerify = session.createConsumer(MDBQUEUE); JMSContext jmsctx = qraConnectionFactory.createContext(); ) { session.start(); // These next 4 lines could be written in a single line however it makes difficult for debugging JMSProducer producer = jmsctx.createProducer(); producer.setProperty("strvalue", "hello"); TextMessage msgsend = jmsctx.createTextMessage("hello"); producer.send(q, msgsend); ClientMessage msg = consVerify.receive(1000); assertNotNull(msg); assertEquals("hello", msg.getStringProperty("strvalue")); } }
@Test public void testConsumeFromTemporaryQueueCreatedByOtherSession() throws Exception { SimpleString queue = RandomUtil.randomSimpleString(); SimpleString address = RandomUtil.randomSimpleString(); session.createTemporaryQueue(address, queue); ClientProducer producer = session.createProducer(address); producer.send(session.createMessage(false)); ClientSession session2 = sf.createSession(false, true, true); session2.start(); ClientConsumer consumer = session2.createConsumer(queue); ClientMessage message = consumer.receive(500); assertNotNull(message); session2.close(); session.close(); }
private void assertMessageInQueueThenReceiveAndCheckContent(ActiveMQServer server, ClientSessionFactory sf) throws Exception { Wait.assertEquals(1, () -> getMessageCount(((Queue) server.getPostOffice().getBinding(ADDRESS).getBindable())), 5 * 1000, 100); ClientSession session = sf.createSession(false, false, false); session.start(); ClientConsumer consumer = session.createConsumer(ADDRESS); ClientMessage msg = consumer.receive(1000); Assert.assertNotNull(msg); msg.acknowledge(); Assert.assertEquals(body, msg.getBodyBuffer().readString()); session.commit(); session.close(); }
@Test public void testSlowConsumerSpared() throws Exception { ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = addClientSession(sf.createSession(true, true)); ClientProducer producer = addClientProducer(session.createProducer(QUEUE)); final int numMessages = 5; for (int i = 0; i < numMessages; i++) { producer.send(createTextMessage(session, "m" + i)); } assertPaging(); ClientConsumer consumer = addClientConsumer(session.createConsumer(QUEUE)); session.start(); Thread.sleep(3000); for (int i = 0; i < numMessages; i++) { assertNotNull(consumer.receive(500)); } }
protected void doTestJ(final ClientSessionFactory sf) throws Exception { ClientSession sessCreate = sf.createSession(false, true, true); sessCreate.createQueue(RandomReattachTest.ADDRESS, RandomReattachTest.ADDRESS, null, false); ClientSession sess = sf.createSession(false, true, true); sess.start(); ClientConsumer consumer = sess.createConsumer(RandomReattachTest.ADDRESS); ClientProducer producer = sess.createProducer(RandomReattachTest.ADDRESS); ClientMessage message = sess.createMessage(ActiveMQTextMessage.TYPE, false, 0, System.currentTimeMillis(), (byte) 1); producer.send(message); ClientMessage message2 = consumer.receive(RandomReattachTest.RECEIVE_TIMEOUT); Assert.assertNotNull(message2); message2.acknowledge(); sess.close(); sessCreate.deleteQueue(RandomReattachTest.ADDRESS); sessCreate.close(); }
protected void doTestI(final ClientSessionFactory sf) throws Exception { ClientSession sessCreate = sf.createSession(false, true, true); sessCreate.createQueue(RandomReattachTest.ADDRESS, RandomReattachTest.ADDRESS, null, false); ClientSession sess = sf.createSession(false, true, true); sess.start(); ClientConsumer consumer = sess.createConsumer(RandomReattachTest.ADDRESS); ClientProducer producer = sess.createProducer(RandomReattachTest.ADDRESS); ClientMessage message = sess.createMessage(ActiveMQTextMessage.TYPE, false, 0, System.currentTimeMillis(), (byte) 1); producer.send(message); ClientMessage message2 = consumer.receive(RandomReattachTest.RECEIVE_TIMEOUT); Assert.assertNotNull(message2); message2.acknowledge(); sess.close(); sessCreate.deleteQueue(RandomReattachTest.ADDRESS); sessCreate.close(); }
@Test public void testConsumeRate2() throws Exception { ActiveMQServer server = createServer(false); server.start(); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); session.createQueue(ADDRESS, ADDRESS, true); ClientProducer producer = session.createProducer(ADDRESS); for (int i = 0; i < 12; i++) { producer.send(session.createMessage(false)); } session.start(); ClientConsumer consumer = session.createConsumer(ADDRESS, null, 1024 * 1024, 10, false); long start = System.currentTimeMillis(); for (int i = 0; i < 12; i++) { consumer.receive(1000); } long end = System.currentTimeMillis(); Assert.assertTrue("TotalTime = " + (end - start), end - start >= 1000); session.close(); }