@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(); }
public void start() throws Exception { consumerLocator = createNettyNonHALocator(); factoryLocator = createSessionFactory(consumerLocator); session = factoryLocator.createTransactedSession(); consumer = session.createConsumer(inQueue); producer = session.createProducer(outQueue); consumer.setMessageHandler(this); session.start(); }
private void commonTestCode() throws Exception { waitForBindings(3, "test.SomeAddress", 1, 1, true); waitForBindings(1, "test.SomeAddress", 1, 1, false); producer = sessionOne.createProducer(ReplicatedDistributionTest.ADDRESS); for (int i = 0; i < 100; i++) { ClientMessage msg = sessionOne.createMessage(true); msg.putIntProperty(new SimpleString("key"), i); producer.send(msg); } sessionOne.commit(); }
@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(); } }
@Test public void testSendReceiveMany() 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(); sendMessages(session, prod, N); receiveMessages(cons, 0, N, true); }
private void createClients(final boolean createQueue, final boolean commitACKs) throws Exception { locator = createInVMNonHALocator(); sessionFactory = createSessionFactory(locator); clientSession = sessionFactory.createSession(true, false, commitACKs); if (createQueue) { clientSession.createQueue(atestq, atestq, null, true); } clientProducer = clientSession.createProducer(atestq); clientConsumer = clientSession.createConsumer(atestq); }
@Test public void testSendWithoutXID() throws Exception { // Since both resources have same RM, TM will probably use 1PC optimization ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory factory = createSessionFactory(locator); ClientSession session = addClientSession(factory.createSession(true, false, false)); session.createQueue("Test", RoutingType.ANYCAST, "Test"); ClientProducer prod = session.createProducer("Test"); prod.send(session.createMessage(true)); session.start(); ClientConsumer cons = session.createConsumer("Test"); assertNotNull("Send went through an invalid XA Session", cons.receiveImmediate()); }
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(); }
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(); } }
@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(); }
@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 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(); }
@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 testDurableMessageOnDurableQueue() throws Exception { boolean durable = true; SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); session.createQueue(address, queue, durable); ClientProducer producer = session.createProducer(address); producer.send(session.createMessage(durable)); restart(); session.start(); ClientConsumer consumer = session.createConsumer(queue); Assert.assertNotNull(consumer.receive(500)); consumer.close(); session.deleteQueue(queue); }
@Test public void testConsumeFromDurableQueue() throws Exception { SimpleString queue = RandomUtil.randomSimpleString(); SimpleString address = RandomUtil.randomSimpleString(); session.createQueue(address, queue, true); ClientProducer producer = session.createProducer(address); producer.send(session.createMessage(false)); session.start(); ClientConsumer consumer = session.createConsumer(queue); ClientMessage message = consumer.receive(500); Assert.assertNotNull(message); message.acknowledge(); consumer.close(); session.deleteQueue(queue); }
@Test public void testMessageExpiredWithoutExpiryAddress() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); session.createQueue(address, queue, false); ClientProducer producer = session.createProducer(address); ClientMessage message = session.createMessage(false); message.setExpiration(System.currentTimeMillis() + MessageExpirationTest.EXPIRATION); producer.send(message); Thread.sleep(MessageExpirationTest.EXPIRATION * 2); session.start(); ClientConsumer consumer = session.createConsumer(queue); ClientMessage message2 = consumer.receiveImmediate(); Assert.assertNull(message2); consumer.close(); session.deleteQueue(queue); }
@Test public void testConsumeRate() throws Exception { ActiveMQServer server = createServer(false); server.start(); locator.setConsumerMaxRate(10); 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); 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(); }
@Test public void testNonDurableMessageOnDurableQueue() throws Exception { boolean durable = true; SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); session.createQueue(address, queue, durable); ClientProducer producer = session.createProducer(address); producer.send(session.createMessage(!durable)); restart(); session.start(); ClientConsumer consumer = session.createConsumer(queue); Assert.assertNull(consumer.receiveImmediate()); consumer.close(); session.deleteQueue(queue); }
@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(); }