@Override public void run() { for (int i = 0; i < 5000; i++) { try { producer.send(session.createMessage(true).putIntProperty("myid", i)); } catch (Exception e) { e.printStackTrace(); break; } } } };
@Override public void run() { try { ClientSession session = sf.createSession(true, true); ClientProducer producer = session.createProducer(ADDRESS); ClientMessage message = session.createMessage(true).putIntProperty("i", code); alignedOnSend.countDown(); System.out.println("blocking!!"); producer.send(message); codesSent.add(code); System.out.println("Sent!"); } catch (Exception e) { // that's ok; e.printStackTrace(); // logging just for debug & reference } } };
@Test public void testBrowseWithZeroConsumerWindowSize() throws Exception { locator.setConsumerWindowSize(0); ClientSessionFactory sf = createSessionFactory(locator); ClientSession session = sf.createSession(false, true, true); session.createQueue(QUEUE, QUEUE, null, false); ClientProducer producer = session.createProducer(QUEUE); final int numMessages = 100; byte[] bytes = new byte[240]; for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(false); message.getBodyBuffer().writeBytes(bytes); message.putIntProperty("foo", i); producer.send(message); } //Create a normal non browsing consumer session.createConsumer(QUEUE); session.start(); ClientConsumer browser = session.createConsumer(QUEUE, true); for (int i = 0; i < numMessages; i++) { ClientMessage message2 = browser.receive(1000); assertEquals(i, message2.getIntProperty("foo").intValue()); } session.close(); }
@Test public void testManyMessagesSameTime() throws Exception { ClientSessionFactory sessionFactory = createSessionFactory(locator); ClientSession session = sessionFactory.createSession(false, false, false); session.createQueue(atestq, atestq, null, true); ClientProducer producer = session.createProducer(atestq); long time = System.currentTimeMillis(); time += 1000; for (int i = 0; i < 10; i++) { ClientMessage message = session.createMessage(true); message.putIntProperty("value", i); message.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, time); producer.send(message); } session.commit(); session.start(); ClientConsumer consumer = session.createConsumer(atestq); for (int i = 0; i < 10; i++) { ClientMessage message = consumer.receive(15000); assertNotNull(message); message.acknowledge(); assertEquals(i, message.getIntProperty("value").intValue()); } session.commit(); Assert.assertNull(consumer.receiveImmediate()); session.close(); }
public List<String> sendMessageBatch(int batchSize, ClientSession session, SimpleString queueAddr) throws ActiveMQException { List<String> messageIds = new ArrayList<>(); ClientProducer producer = session.createProducer(queueAddr); for (int i = 0; i < batchSize; i++) { ClientMessage message = session.createMessage(true); message.getBodyBuffer().writeBytes(new byte[1024]); String id = UUID.randomUUID().toString(); message.putStringProperty("id", id); message.putIntProperty("seq", i); // this is to make the print-data easier to debug messageIds.add(id); producer.send(message); } session.commit(); return messageIds; }
private void sendMessages(final ClientSession sessSend, final ClientProducer producer, final int numMessages, final int threadNum) throws Exception { for (int i = 0; i < numMessages; i++) { ClientMessage message = sessSend.createMessage(ActiveMQBytesMessage.TYPE, false, 0, System.currentTimeMillis(), (byte) 1); message.putIntProperty(new SimpleString("threadnum"), threadNum); message.putIntProperty(new SimpleString("count"), i); setBody(message); producer.send(message); } }
protected void doTestE(final ClientSessionFactory sf) throws Exception { long start = System.currentTimeMillis(); ClientSession s = sf.createSession(false, false, false); SimpleString subName = new SimpleString("sub" + i); ClientSession sessConsume = sf.createSession(false, true, true); sessConsume.start(); ClientConsumer consumer = sessConsume.createConsumer(subName); ClientSession sessSend = sf.createSession(false, true, true); ClientProducer producer = sessSend.createProducer(RandomReattachTest.ADDRESS); ClientMessage message = sessSend.createMessage(ActiveMQTextMessage.TYPE, false, 0, System.currentTimeMillis(), (byte) 1); message.putIntProperty(new SimpleString("count"), i); producer.send(message);
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(); }
@Override public void run() { for (int i = 0; i < 500; i++) { ClientMessage message = session.createMessage(true); message.putIntProperty("counter", i); try { System.out.println("Sent " + i); producer.send(message); if (i < 10) { latch.countDown(); if (latch.getCount() == 0) { latchFailed.await(10, TimeUnit.SECONDS); } } } catch (Exception e) { // this is our retry try { if (!producer.isClosed()) producer.send(message); } catch (ActiveMQException e1) { e1.printStackTrace(); } } } } };
/** * see http://jira.jboss.org/browse/HORNETQ-522 * * @throws Exception */ @Test(timeout = 120000) public void testNonTransactedWithZeroConsumerWindowSize() throws Exception { locator.setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setAckBatchSize(0).setReconnectAttempts(300).setRetryInterval(100); createClientSessionFactory(); ClientSession session = createSession(sf, true, true); session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true); ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS); for (int i = 0; i < NUM_MESSAGES; i++) { ClientMessage message = session.createMessage(true); setBody(i, message); message.putIntProperty("counter", i); producer.send(message); } ClientConsumer consumer = session.createConsumer(FailoverTestBase.ADDRESS); final CountDownLatch latch = new CountDownLatch(NUM_MESSAGES); consumer.setMessageHandler(new MessageHandler() { @Override public void onMessage(ClientMessage message) { latch.countDown(); } }); session.start(); crash(session); Assert.assertTrue(latch.await(10, TimeUnit.SECONDS)); }
/** * @throws ActiveMQException */ private void sendMessages(int msgs) throws ActiveMQException { ClientProducer producer = prodSession.createProducer(ADDRESS); for (int i = 0; i < msgs; i++) { ClientMessage message = prodSession.createMessage(true); message.putIntProperty("prodNR", i % nThreads); producer.send(message); if (i % 100 == 0) { prodSession.commit(); } } prodSession.commit(); producer.close(); } }
@Override public void run() { try { int commit = 0; for (int i = 0; i < TOTAL_MESSAGES; i++) { ClientMessage msg = sessionProducer.createMessage(true); msg.getBodyBuffer().writeBytes(new byte[1024]); msg.putIntProperty("count", i); producer.send(msg); if (i % 100 == 0 && i > 0) { sessionProducer.commit(); if (commit++ > 2) { ready.countDown(); } } } sessionProducer.commit(); } catch (Exception e) { e.printStackTrace(); errors.incrementAndGet(); } } };
private ClientSession sendAndConsume(final ClientSessionFactory sf, final boolean createQueue) throws Exception { ClientSession session = sf.createSession(false, true, true); if (createQueue) { session.createQueue(ADDRESS, ADDRESS, null, false); } ClientProducer producer = session.createProducer(ADDRESS); final int numMessages = 1000; for (int i = 0; i < numMessages; i++) { ClientMessage message = session.createMessage(ActiveMQTextMessage.TYPE, false, 0, System.currentTimeMillis(), (byte) 1); message.putIntProperty(new SimpleString("count"), i); message.getBodyBuffer().writeString("aardvarks"); producer.send(message); } ClientConsumer consumer = session.createConsumer(ADDRESS); session.start(); for (int i = 0; i < numMessages; i++) { ClientMessage message2 = consumer.receive(); assertEquals("aardvarks", message2.getBodyBuffer().readString()); assertEquals(i, message2.getObjectProperty(new SimpleString("count"))); message2.acknowledge(); } ClientMessage message3 = consumer.receiveImmediate(); assertNull(message3); return session; }
ClientSession sessionProducer = null; try { sessionProducer = sf.createSession(false, false); ClientProducer producer = sessionProducer.createProducer(ADDRESS); ClientMessage msg = sessionProducer.createMessage(true); msg.getBodyBuffer().writeBytes(body); msg.putIntProperty("count", i); producer.send(msg);
waitForComponent(manager); ClientSessionFactory sf = createSessionFactory(locator); final ClientSession session = sf.createSession(); final ClientSession session2 = sf.createSession(); session.createQueue(ADDRESS, ADDRESS, null, true); final ClientProducer producer = session.createProducer(ADDRESS); session.start(); session2.start(); try { final ClientConsumer consumer = session2.createConsumer(ADDRESS); for (int i = 0; i < nMsg; i++) { ClientMessage message = session.createMessage(true); setBody(i, message); message.putIntProperty("counter", i); producer.send(message); if (i == stop) {
public void sendMessages(final int start, final int end) throws Exception { try (ClientSession session = factory.createSession(false, false)) { try { session.createQueue(QUEUE, QUEUE, true); } catch (Exception ignored) { } ClientProducer prod = session.createProducer(QUEUE); for (int i = start; i < end; i++) { ClientMessage msg = session.createMessage(true); msg.putIntProperty(new SimpleString("key"), i); msg.getBodyBuffer().writeUTF("message " + i); prod.send(msg); } session.commit(); session.close(); // server.stop(); -- this test was not supposed to stop the server, it should crash } }
protected void doTestF(final ClientSessionFactory sf) throws Exception { long start = System.currentTimeMillis(); ClientSession s = sf.createSession(false, false, false); SimpleString subName = new SimpleString("sub" + i); ClientSession sessConsume = sf.createSession(false, true, true); ClientConsumer consumer = sessConsume.createConsumer(subName); ClientSession sessSend = sf.createSession(false, true, true); ClientProducer producer = sessSend.createProducer(RandomReattachTest.ADDRESS); ClientMessage message = sessSend.createMessage(ActiveMQTextMessage.TYPE, false, 0, System.currentTimeMillis(), (byte) 1); message.putIntProperty(new SimpleString("count"), i); producer.send(message); session.start();
protected void sendInRange(final int node, final String address, final int msgStart, final int msgEnd, final boolean durable, final SimpleString key, final SimpleString val) throws Exception { ClientSessionFactory sf = sfs[node]; if (sf == null) { throw new IllegalArgumentException("No sf at " + node); } ClientSession session = sf.createSession(false, true, true); try { ClientProducer producer = session.createProducer(address); for (int i = msgStart; i < msgEnd; i++) { ClientMessage message = session.createMessage(durable); if (isLargeMessage()) { message.setBodyInputStream(createFakeLargeStream(getLargeMessageSize())); } message.putStringProperty(key, val); message.putIntProperty(ClusterTestBase.COUNT_PROP, i); producer.send(message); } } finally { session.close(); } }
ClientProducer producer = session.createProducer(address); ClientMessage msg = session.createMessage(durable); msg.putIntProperty("count", i); producer.send(msg); ClientConsumer cons = session.createConsumer(queue); session.start(); LinkedList<ClientMessage> msgs = new LinkedList<>(); for (int i = 0; i < 50; i++) {
@Test public void testListScheduledMessages() throws Exception { long delay = 2000; SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); int intValue = RandomUtil.randomInt(); session.createQueue(address, RoutingType.MULTICAST, queue, null, durable); QueueControl queueControl = createManagementControl(address, queue); ClientProducer producer = session.createProducer(address); ClientMessage message = session.createMessage(durable); message.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, System.currentTimeMillis() + delay); message.putIntProperty(new SimpleString("key"), intValue); producer.send(message); // unscheduled message producer.send(session.createMessage(durable)); Map<String, Object>[] messages = queueControl.listScheduledMessages(); Assert.assertEquals(1, messages.length); assertScheduledMetrics(queueControl, 1, durable); Assert.assertEquals(intValue, Integer.parseInt((messages[0].get("key")).toString())); Thread.sleep(delay + 500); messages = queueControl.listScheduledMessages(); Assert.assertEquals(0, messages.length); consumeMessages(2, session, queue); session.deleteQueue(queue); }