当前位置: 首页>>代码示例>>Java>>正文


Java ClientConsumer.receiveImmediate方法代码示例

本文整理汇总了Java中org.apache.activemq.artemis.api.core.client.ClientConsumer.receiveImmediate方法的典型用法代码示例。如果您正苦于以下问题:Java ClientConsumer.receiveImmediate方法的具体用法?Java ClientConsumer.receiveImmediate怎么用?Java ClientConsumer.receiveImmediate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.activemq.artemis.api.core.client.ClientConsumer的用法示例。


在下文中一共展示了ClientConsumer.receiveImmediate方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testWildcardRoutingStarInMiddle

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testWildcardRoutingStarInMiddle() throws Exception {
   SimpleString addressAB = new SimpleString("a.b.c");
   SimpleString addressAC = new SimpleString("a.c");
   SimpleString address = new SimpleString("*.b.*");
   SimpleString queueName1 = new SimpleString("Q1");
   SimpleString queueName2 = new SimpleString("Q2");
   SimpleString queueName = new SimpleString("Q");
   clientSession.createQueue(addressAB, queueName1, null, false);
   clientSession.createQueue(addressAC, queueName2, null, false);
   clientSession.createQueue(address, queueName, null, false);
   ClientProducer producer = clientSession.createProducer(addressAB);
   ClientProducer producer2 = clientSession.createProducer(addressAC);
   ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
   clientSession.start();
   producer.send(createTextMessage(clientSession, "m1"));
   producer2.send(createTextMessage(clientSession, "m2"));
   ClientMessage m = clientConsumer.receive(500);
   Assert.assertNotNull(m);
   Assert.assertEquals("m1", m.getBodyBuffer().readString());
   m.acknowledge();
   m = clientConsumer.receiveImmediate();
   Assert.assertNull(m);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:25,代码来源:WildCardRoutingTest.java

示例2: testXAInterleaveResourceSuspendWorkCommit

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testXAInterleaveResourceSuspendWorkCommit() throws Exception {
   Xid xid = newXID();
   Xid xid2 = newXID();
   ClientProducer clientProducer = clientSession.createProducer(atestq);
   ClientSession recSession = sessionFactory.createSession();
   recSession.start();
   ClientConsumer clientConsumer = recSession.createConsumer(atestq);
   ClientMessage m1 = createTextMessage(clientSession, "m1");
   ClientMessage m2 = createTextMessage(clientSession, "m2");
   clientSession.start(xid, XAResource.TMNOFLAGS);
   clientProducer.send(m1);
   clientSession.end(xid, XAResource.TMSUSPEND);
   clientSession.start(xid2, XAResource.TMNOFLAGS);
   clientProducer.send(m2);
   clientSession.end(xid, XAResource.TMSUCCESS);
   clientSession.commit(xid, true);
   ClientMessage message = clientConsumer.receiveImmediate();
   assertNotNull(message);
   message = clientConsumer.receiveImmediate();
   assertNull(message);
   clientSession.end(xid2, XAResource.TMSUCCESS);
   clientSession.commit(xid2, true);
   message = clientConsumer.receiveImmediate();
   assertNotNull(message);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:27,代码来源:BasicXaTest.java

示例3: testBasicWildcardRoutingWithHash

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testBasicWildcardRoutingWithHash() throws Exception {
   SimpleString addressAB = new SimpleString("a.b");
   SimpleString addressAC = new SimpleString("a.c");
   SimpleString address = new SimpleString("a.#");
   SimpleString queueName1 = new SimpleString("Q1");
   SimpleString queueName2 = new SimpleString("Q2");
   SimpleString queueName = new SimpleString("Q");
   clientSession.createQueue(addressAB, queueName1, null, false);
   clientSession.createQueue(addressAC, queueName2, null, false);
   clientSession.createQueue(address, queueName, null, false);
   ClientProducer producer = clientSession.createProducer(addressAB);
   ClientProducer producer2 = clientSession.createProducer(addressAC);
   ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
   clientSession.start();
   producer.send(createTextMessage(clientSession, "m1"));
   producer2.send(createTextMessage(clientSession, "m2"));
   ClientMessage m = clientConsumer.receive(500);
   Assert.assertNotNull(m);
   Assert.assertEquals("m1", m.getBodyBuffer().readString());
   m.acknowledge();
   m = clientConsumer.receive(500);
   Assert.assertNotNull(m);
   Assert.assertEquals("m2", m.getBodyBuffer().readString());
   m.acknowledge();
   m = clientConsumer.receiveImmediate();
   Assert.assertNull(m);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:29,代码来源:WildCardRoutingTest.java

示例4: testSlowConsumerKilled

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testSlowConsumerKilled() throws Exception {
   ClientSessionFactory sf = createSessionFactory(locator);

   ClientSession session = addClientSession(sf.createSession(false, true, true, false));

   ClientProducer producer = addClientProducer(session.createProducer(QUEUE));

   assertPaging();

   final int numMessages = 25;

   for (int i = 0; i < numMessages; i++) {
      producer.send(createTextMessage(session, "m" + i));
   }

   ClientConsumer consumer = addClientConsumer(session.createConsumer(QUEUE));
   session.start();

   Thread.sleep(3000);

   try {
      consumer.receiveImmediate();
      fail();
   } catch (ActiveMQObjectClosedException e) {
      assertEquals(e.getType(), ActiveMQExceptionType.OBJECT_CLOSED);
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:29,代码来源:SlowConsumerTest.java

示例5: testLargeWildcardRouting

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testLargeWildcardRouting() throws Exception {
   SimpleString addressAB = new SimpleString("a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z");
   SimpleString addressAC = new SimpleString("a.c");
   SimpleString address = new SimpleString("a.#");
   SimpleString queueName1 = new SimpleString("Q1");
   SimpleString queueName2 = new SimpleString("Q2");
   SimpleString queueName = new SimpleString("Q");
   clientSession.createQueue(addressAB, queueName1, null, false);
   clientSession.createQueue(addressAC, queueName2, null, false);
   clientSession.createQueue(address, queueName, null, false);
   Assert.assertEquals(2, server.getPostOffice().getBindingsForAddress(addressAB).getBindings().size());
   Assert.assertEquals(2, server.getPostOffice().getBindingsForAddress(addressAC).getBindings().size());
   Assert.assertEquals(1, server.getPostOffice().getBindingsForAddress(address).getBindings().size());
   ClientProducer producer = clientSession.createProducer(addressAB);
   ClientProducer producer2 = clientSession.createProducer(addressAC);
   ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
   clientSession.start();
   producer.send(createTextMessage(clientSession, "m1"));
   producer2.send(createTextMessage(clientSession, "m2"));
   ClientMessage m = clientConsumer.receive(500);
   Assert.assertNotNull(m);
   Assert.assertEquals("m1", m.getBodyBuffer().readString());
   m.acknowledge();
   m = clientConsumer.receive(500);
   Assert.assertNotNull(m);
   Assert.assertEquals("m2", m.getBodyBuffer().readString());
   m.acknowledge();
   m = clientConsumer.receiveImmediate();
   Assert.assertNull(m);
   clientConsumer.close();
   clientSession.deleteQueue(queueName);
   Assert.assertEquals(1, server.getPostOffice().getBindingsForAddress(addressAB).getBindings().size());
   Assert.assertEquals(1, server.getPostOffice().getBindingsForAddress(addressAC).getBindings().size());
   Assert.assertEquals(0, server.getPostOffice().getBindingsForAddress(address).getBindings().size());
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:37,代码来源:WildCardRoutingTest.java

示例6: testReceiveImmediate

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testReceiveImmediate() throws Exception {
   // forces perfect round robin
   locator.setConsumerWindowSize(0);
   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, RoutingType.ANYCAST, queueA, false);
   ClientConsumer cc = session.createConsumer(queueA);
   ClientConsumer cc2 = session.createConsumer(queueA);
   session.start();
   cp.send(sendSession.createMessage(false));
   cp.send(sendSession.createMessage(false));
   cp.send(sendSession.createMessage(false));
   sendSession.commit();

   final Queue queue = server.locateQueue(queueA);

   Wait.waitFor(() -> queue.getMessageCount() == 3, 500, 100);

   Assert.assertNotNull(cc2.receiveImmediate());
   Assert.assertNotNull(cc.receiveImmediate());
   if (cc.receiveImmediate() == null) {
      Assert.assertNotNull(cc2.receiveImmediate());
   }
   session.close();
   sendSession.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:30,代码来源:ReceiveTest.java

示例7: testWildcardRoutingWithHashMultiLengthAddresses

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testWildcardRoutingWithHashMultiLengthAddresses() throws Exception {
   SimpleString addressAB = new SimpleString("a.b.c.f");
   SimpleString addressAC = new SimpleString("a.c.f");
   SimpleString address = new SimpleString("a.#.f");
   SimpleString queueName1 = new SimpleString("Q1");
   SimpleString queueName2 = new SimpleString("Q2");
   SimpleString queueName = new SimpleString("Q");
   clientSession.createQueue(addressAB, queueName1, null, false);
   clientSession.createQueue(addressAC, queueName2, null, false);
   clientSession.createQueue(address, queueName, null, false);
   ClientProducer producer = clientSession.createProducer(addressAB);
   ClientProducer producer2 = clientSession.createProducer(addressAC);
   ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
   clientSession.start();
   producer.send(createTextMessage(clientSession, "m1"));
   producer2.send(createTextMessage(clientSession, "m2"));
   ClientMessage m = clientConsumer.receive(500);
   Assert.assertNotNull(m);
   Assert.assertEquals("m1", m.getBodyBuffer().readString());
   m.acknowledge();
   m = clientConsumer.receive(500);
   Assert.assertNotNull(m);
   Assert.assertEquals("m2", m.getBodyBuffer().readString());
   m.acknowledge();
   m = clientConsumer.receiveImmediate();
   Assert.assertNull(m);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:29,代码来源:WildCardRoutingTest.java

示例8: testWildcardRoutingWithHash

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testWildcardRoutingWithHash() throws Exception {
   SimpleString addressAB = new SimpleString("a.b.f");
   SimpleString addressAC = new SimpleString("a.c.f");
   SimpleString address = new SimpleString("a.#.f");
   SimpleString queueName1 = new SimpleString("Q1");
   SimpleString queueName2 = new SimpleString("Q2");
   SimpleString queueName = new SimpleString("Q");
   clientSession.createQueue(addressAB, queueName1, null, false);
   clientSession.createQueue(addressAC, queueName2, null, false);
   clientSession.createQueue(address, queueName, null, false);
   ClientProducer producer = clientSession.createProducer(addressAB);
   ClientProducer producer2 = clientSession.createProducer(addressAC);
   ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
   clientSession.start();
   producer.send(createTextMessage(clientSession, "m1"));
   producer2.send(createTextMessage(clientSession, "m2"));
   ClientMessage m = clientConsumer.receive(500);
   Assert.assertNotNull(m);
   Assert.assertEquals("m1", m.getBodyBuffer().readString());
   m.acknowledge();
   m = clientConsumer.receive(500);
   Assert.assertNotNull(m);
   Assert.assertEquals("m2", m.getBodyBuffer().readString());
   m.acknowledge();
   m = clientConsumer.receiveImmediate();
   Assert.assertNull(m);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:29,代码来源:WildCardRoutingTest.java

示例9: testWildcardRoutingWithSingleHash

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testWildcardRoutingWithSingleHash() throws Exception {
   SimpleString addressAB = new SimpleString("a.b");
   SimpleString addressAC = new SimpleString("a.c");
   SimpleString address = new SimpleString("#");
   SimpleString queueName1 = new SimpleString("Q1");
   SimpleString queueName2 = new SimpleString("Q2");
   SimpleString queueName = new SimpleString("Q");
   clientSession.createQueue(addressAB, queueName1, null, false);
   clientSession.createQueue(addressAC, queueName2, null, false);
   clientSession.createQueue(address, queueName, null, false);
   ClientProducer producer = clientSession.createProducer(addressAB);
   ClientProducer producer2 = clientSession.createProducer(addressAC);
   ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
   clientSession.start();
   producer.send(createTextMessage(clientSession, "m1"));
   producer2.send(createTextMessage(clientSession, "m2"));
   ClientMessage m = clientConsumer.receive(500);
   Assert.assertNotNull(m);
   Assert.assertEquals("m1", m.getBodyBuffer().readString());
   m.acknowledge();
   m = clientConsumer.receive(500);
   Assert.assertNotNull(m);
   Assert.assertEquals("m2", m.getBodyBuffer().readString());
   m.acknowledge();
   m = clientConsumer.receiveImmediate();
   Assert.assertNull(m);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:29,代码来源:WildCardRoutingTest.java

示例10: testLargeMessageFileLeak

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testLargeMessageFileLeak() throws Exception {
   OperatingSystemMXBean os = ManagementFactory.getOperatingSystemMXBean();

   // only run this on *nix systems which will have the com.sun.management.UnixOperatingSystemMXBean (needed to check open file count)
   Assume.assumeTrue(os instanceof UnixOperatingSystemMXBean);

   long fdBaseline = ((UnixOperatingSystemMXBean) os).getOpenFileDescriptorCount();
   final int SIZE = 2 * 1024;
   SimpleString dla = new SimpleString("DLA");
   SimpleString qName = new SimpleString("q1");
   SimpleString adName = new SimpleString("ad1");

   AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(1).setDeadLetterAddress(dla);
   server.getAddressSettingsRepository().addMatch(adName.toString(), addressSettings);
   SimpleString dlq = new SimpleString("DLQ1");
   clientSession.createQueue(dla, dlq, null, false);
   clientSession.createQueue(adName, qName, null, false);
   for (int i = 0; i < 10; i++) {
      ClientProducer producer = clientSession.createProducer(adName);
      ClientMessage clientFile = clientSession.createMessage(true);
      clientFile.setBodyInputStream(ActiveMQTestBase.createFakeLargeStream(SIZE));
      producer.send(clientFile);
      clientSession.start();
      ClientConsumer clientConsumer = clientSession.createConsumer(qName);
      ClientMessage m = clientConsumer.receive(500);
      m.acknowledge();
      Assert.assertNotNull(m);

      // force a cancel
      clientSession.rollback();
      m = clientConsumer.receiveImmediate();
      Assert.assertNull(m);
      clientConsumer.close();
   }
   assertTrue("File descriptors are leaking", ((UnixOperatingSystemMXBean) os).getOpenFileDescriptorCount() - fdBaseline <= 0);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:38,代码来源:DeadLetterAddressTest.java

示例11: assertNoMoreMessages

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
/**
 * @param consumer
 * @throws ActiveMQException
 */
private void assertNoMoreMessages(ClientConsumer consumer) throws ActiveMQException {
   ClientMessage msg = consumer.receiveImmediate();
   Assert.assertNull("there should be no more messages to receive! " + msg, msg);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:9,代码来源:FailoverTest.java

示例12: testTransactedDuplicateDetection3

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testTransactedDuplicateDetection3() throws Exception {
   ClientSession session = sf.createSession(false, false, false);

   session.start();

   final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");

   session.createQueue(queueName, queueName, null, false);

   ClientProducer producer = session.createProducer(queueName);

   ClientConsumer consumer = session.createConsumer(queueName);

   ClientMessage message = createMessage(session, 0);
   SimpleString dupID1 = new SimpleString("abcdefg");
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID1.getData());
   producer.send(message);

   message = createMessage(session, 1);
   SimpleString dupID2 = new SimpleString("hijklmno");
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID2.getData());
   producer.send(message);

   session.commit();

   // These next two should get rejected

   message = createMessage(session, 2);
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID1.getData());
   producer.send(message);

   message = createMessage(session, 3);
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID2.getData());
   producer.send(message);

   try {
      session.commit();
   } catch (Exception e) {
      session.rollback();
   }

   message = consumer.receive(250);
   Assert.assertEquals(0, message.getObjectProperty(propKey));

   message = consumer.receive(250);
   Assert.assertEquals(1, message.getObjectProperty(propKey));

   message = consumer.receiveImmediate();
   Assert.assertNull(message);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:52,代码来源:DuplicateDetectionTest.java

示例13: testLoad

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testLoad() throws Throwable {
   ActiveMQServer server2 = createServer(true, false);

   server2.getConfiguration().setJournalFileSize(10 * 1024 * 1024);
   server2.getConfiguration().setJournalMinFiles(10);
   server2.getConfiguration().setJournalCompactMinFiles(3);
   server2.getConfiguration().setJournalCompactPercentage(50);

   for (int i = 0; i < 10; i++) {
      server2.start();

      ServerLocator locator = createInVMNonHALocator().setMinLargeMessageSize(1024 * 1024).setBlockOnDurableSend(false);

      ClientSessionFactory sf = createSessionFactory(locator);

      ClientSession session = sf.createSession(true, true);

      try {
         session.createQueue("slow-queue", RoutingType.MULTICAST, "slow-queue");
      } catch (Exception ignored) {
      }

      session.start();
      ClientConsumer consumer = session.createConsumer("slow-queue");

      while (true) {
         System.out.println("Received message from previous");
         ClientMessage msg = consumer.receiveImmediate();
         if (msg == null) {
            break;
         }
         msg.acknowledge();
      }

      session.close();

      produceMessages(sf, 30000);

      server2.stop();
   }

}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:44,代码来源:JournalRestartStressTest.java

示例14: testManyMessagesReceivedWithRollback

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testManyMessagesReceivedWithRollback() throws Exception {
   Xid xid = new XidImpl("bq1".getBytes(), 4, "gtid1".getBytes());
   ClientProducer producer = clientSession.createProducer(address);
   ClientConsumer consumer = clientSessionXa.createConsumer(qName1);

   SimpleString rh = new SimpleString("SMID1");
   ClientMessage m1 = createTextMessage(clientSession, "m1");
   m1.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
   m1.setDurable(true);
   ClientMessage m2 = createTextMessage(clientSession, "m2");
   m2.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
   m2.setDurable(true);
   ClientMessage m3 = createTextMessage(clientSession, "m3");
   m3.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
   m3.setDurable(true);
   ClientMessage m4 = createTextMessage(clientSession, "m4");
   m4.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
   m4.setDurable(true);
   ClientMessage m5 = createTextMessage(clientSession, "m5");
   m5.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
   m5.setDurable(true);
   ClientMessage m6 = createTextMessage(clientSession, "m6");
   m6.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
   m6.setDurable(true);
   clientSessionXa.start(xid, XAResource.TMNOFLAGS);
   clientSessionXa.start();
   producer.send(m1);
   ClientMessage m = consumer.receive(1000);
   Assert.assertNotNull(m);
   Assert.assertEquals(m.getBodyBuffer().readString(), "m1");
   producer.send(m2);
   m = consumer.receive(1000);
   Assert.assertNotNull(m);
   Assert.assertEquals(m.getBodyBuffer().readString(), "m2");
   producer.send(m3);
   m = consumer.receive(1000);
   Assert.assertNotNull(m);
   Assert.assertEquals(m.getBodyBuffer().readString(), "m3");
   producer.send(m4);
   m = consumer.receive(1000);
   Assert.assertNotNull(m);
   Assert.assertEquals(m.getBodyBuffer().readString(), "m4");
   producer.send(m5);
   m = consumer.receive(1000);
   Assert.assertNotNull(m);
   Assert.assertEquals(m.getBodyBuffer().readString(), "m5");
   producer.send(m6);
   m = consumer.receive(1000);
   Assert.assertNotNull(m);
   Assert.assertEquals(m.getBodyBuffer().readString(), "m6");
   clientSessionXa.end(xid, XAResource.TMSUCCESS);
   clientSessionXa.prepare(xid);

   clientSession.close();
   clientSessionXa.close();
   restartServer();

   clientSessionXa.rollback(xid);
   consumer = clientSession.createConsumer(qName1);
   clientSession.start();
   m = consumer.receive(1000);
   Assert.assertNotNull(m);
   m.acknowledge();
   Assert.assertEquals(m.getBodyBuffer().readString(), "m6");
   m = consumer.receiveImmediate();
   Assert.assertNull(m);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:69,代码来源:LVQRecoveryTest.java

示例15: testManyMessagesReceivedAndCancelled

import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testManyMessagesReceivedAndCancelled() throws Exception {
   ClientProducer producer = clientSession.createProducer(address);
   ClientConsumer consumer = clientSession.createConsumer(qName1);

   SimpleString rh = new SimpleString("SMID1");
   ClientMessage m1 = createTextMessage(clientSession, "m1");
   m1.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
   ClientMessage m2 = createTextMessage(clientSession, "m2");
   m2.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
   ClientMessage m3 = createTextMessage(clientSession, "m3");
   m3.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
   ClientMessage m4 = createTextMessage(clientSession, "m4");
   m4.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
   ClientMessage m5 = createTextMessage(clientSession, "m5");
   m5.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
   ClientMessage m6 = createTextMessage(clientSession, "m6");
   m6.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
   clientSession.start();
   producer.send(m1);
   ClientMessage m = consumer.receive(1000);
   Assert.assertNotNull(m);
   Assert.assertEquals(m.getBodyBuffer().readString(), "m1");
   producer.send(m2);
   m = consumer.receive(1000);
   Assert.assertNotNull(m);
   Assert.assertEquals(m.getBodyBuffer().readString(), "m2");
   producer.send(m3);
   m = consumer.receive(1000);
   Assert.assertNotNull(m);
   Assert.assertEquals(m.getBodyBuffer().readString(), "m3");
   producer.send(m4);
   m = consumer.receive(1000);
   Assert.assertNotNull(m);
   Assert.assertEquals(m.getBodyBuffer().readString(), "m4");
   producer.send(m5);
   m = consumer.receive(1000);
   Assert.assertNotNull(m);
   Assert.assertEquals(m.getBodyBuffer().readString(), "m5");
   producer.send(m6);
   m = consumer.receive(1000);
   Assert.assertNotNull(m);
   Assert.assertEquals(m.getBodyBuffer().readString(), "m6");
   consumer.close();
   consumer = clientSession.createConsumer(qName1);
   m = consumer.receive(1000);
   Assert.assertNotNull(m);
   m.acknowledge();
   Assert.assertEquals(m.getBodyBuffer().readString(), "m6");
   m = consumer.receiveImmediate();
   Assert.assertNull(m);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:53,代码来源:LVQTest.java


注:本文中的org.apache.activemq.artemis.api.core.client.ClientConsumer.receiveImmediate方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。