protected void createSession() throws ActiveMQException { session = factory.createSession(true, true, 0); ActiveMQRestLogger.LOGGER.debug("Created session: " + session); if (selector == null) { consumer = session.createConsumer(destination); } else { consumer = session.createConsumer(destination, SelectorTranslator.convertToActiveMQFilterString(selector)); } ActiveMQRestLogger.LOGGER.debug("Created consumer: " + consumer); session.start(); }
SomeConsumer(int nr) throws Exception { locator = createNonHALocator(isNetty); factory = locator.createSessionFactory(); consumerSession = factory.createSession(false, false); consumerSession.createQueue(ADDRESS, "Q" + nr, "prodNR=" + nr, true); consumer = consumerSession.createConsumer("Q" + nr); consumerSession.start(); this.nr = nr; }
@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 testUnlimitedMaxConsumers() throws Exception { int noConsumers = 50; SimpleString address = new SimpleString("test.address"); SimpleString queueName = SimpleString.toSimpleString(UUID.randomUUID().toString()); // For each address, create 2 Queues with the same address, assert both queues receive message boolean purgeOnNoConsumers = false; Queue q1 = server.createQueue(address, RoutingType.MULTICAST, queueName, null, true, false, Queue.MAX_CONSUMERS_UNLIMITED, purgeOnNoConsumers, true); ClientSession session = sessionFactory.createSession(); session.start(); for (int i = 0; i < noConsumers; i++) { session.createConsumer(q1.getName()); } }
@Test public void testPurgeOnNoConsumersFalse() throws Exception { SimpleString address = new SimpleString("test.address"); SimpleString queueName = SimpleString.toSimpleString(UUID.randomUUID().toString()); server.createQueue(address, RoutingType.ANYCAST, queueName, null, null, true, false, false, false, false, 1, false, true); assertNotNull(server.locateQueue(queueName)); ClientSession session = sessionFactory.createSession(); ClientProducer producer = session.createProducer(address); producer.send(session.createMessage(true)); session.createConsumer(queueName).close(); assertNotNull(server.locateQueue(queueName)); assertEquals(1, server.locateQueue(queueName).getMessageCount()); }
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(); }
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(); }
@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); }
@Test public void testSimpleTransientQueue() throws Exception { SimpleString queue = RandomUtil.randomSimpleString(); SimpleString address = RandomUtil.randomSimpleString(); session.createSharedQueue(address, queue, false); assertEquals(1, server.getConnectionCount()); // we create a second session. the temp queue must be present // even after we closed the session which created it ClientSession session2 = sf.createSession(false, true, true); session.close(); session2.start(); session2.createConsumer(queue); session2.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; }
protected void createSession() throws ActiveMQException { session = factory.createSession(true, true, 0); ActiveMQRestLogger.LOGGER.debug("Created session: " + session); if (selector == null) { consumer = session.createConsumer(destination); } else { consumer = session.createConsumer(destination, SelectorTranslator.convertToActiveMQFilterString(selector)); } ActiveMQRestLogger.LOGGER.debug("Created consumer: " + consumer); session.start(); }
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); }
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 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(); } }
@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(); }