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


Java ClientMessage.acknowledge方法代码示例

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


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

示例1: testConsumeFromDurableQueue

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@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);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:20,代码来源:DurableQueueTest.java

示例2: testRouteToSingleTemporaryQueue

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@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();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:22,代码来源:RoutingTest.java

示例3: testExpireWithWildcardAddressSettings

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@Test
public void testExpireWithWildcardAddressSettings() throws Exception {
   SimpleString ea = new SimpleString("EA");
   SimpleString qName = new SimpleString("q1");
   SimpleString eq = new SimpleString("EA1");
   AddressSettings addressSettings = new AddressSettings().setExpiryAddress(ea);
   server.getAddressSettingsRepository().addMatch("*", addressSettings);
   clientSession.createQueue(ea, eq, null, false);
   clientSession.createQueue(qName, qName, null, false);

   ClientProducer producer = clientSession.createProducer(qName);
   ClientMessage clientMessage = createTextMessage(clientSession, "heyho!");
   clientMessage.setExpiration(System.currentTimeMillis());
   producer.send(clientMessage);

   clientSession.start();
   ClientConsumer clientConsumer = clientSession.createConsumer(qName);
   ClientMessage m = clientConsumer.receiveImmediate();
   Assert.assertNull(m);
   clientConsumer.close();

   clientConsumer = clientSession.createConsumer(eq);
   m = clientConsumer.receive(500);
   Assert.assertNotNull(m);
   Assert.assertEquals(m.getBodyBuffer().readString(), "heyho!");
   m.acknowledge();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:28,代码来源:ExpiryAddressTest.java

示例4: testConsumerAckImmediateCloseSession

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@Test
public void testConsumerAckImmediateCloseSession() throws Exception {

   ClientSessionFactory sf = createSessionFactory(locator);

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

   ClientProducer producer = session.createProducer(QUEUE);

   final int numMessages = 100;

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

   ClientConsumer consumer = session.createConsumer(QUEUE);
   session.start();
   for (int i = 0; i < numMessages; i++) {
      ClientMessage message2 = consumer.receive(1000);

      Assert.assertEquals("m" + i, message2.getBodyBuffer().readString());
      if (i < 50) {
         message2.acknowledge();
      }
   }
   // assert that all the messages are there and none have been acked
   Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
   Assert.assertEquals(0, getMessageCount(((Queue) server.getPostOffice().getBinding(QUEUE).getBindable())));

   session.close();

   Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
   Assert.assertEquals(0, getMessageCount(((Queue) server.getPostOffice().getBinding(QUEUE).getBindable())));
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:36,代码来源:ConsumerTest.java

示例5: testMultipleMessagesPersistedCorrectly

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@Test
public void testMultipleMessagesPersistedCorrectly() 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);
   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);
   producer.send(m1);
   producer.send(m2);
   producer.send(m3);
   producer.send(m4);
   producer.send(m5);
   producer.send(m6);
   clientSession.start();
   ClientMessage 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,代码行数:38,代码来源:LVQTest.java

示例6: checkUserSendAndReceive

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
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();
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:16,代码来源:SecurityTest.java

示例7: onMessage

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@Override
public void onMessage(final ClientMessage request) {
   try {
      ClientMessage reply = session.createMessage(false);
      SimpleString replyTo = (SimpleString) request.getObjectProperty(ClientMessageImpl.REPLYTO_HEADER_NAME);
      long value = (Long) request.getObjectProperty(key);
      reply.putLongProperty(key, value);
      ClientProducer replyProducer = session.createProducer(replyTo);
      replyProducer.send(reply);
      request.acknowledge();
   } catch (ActiveMQException e) {
      e.printStackTrace();
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:15,代码来源:RequestorTest.java

示例8: doReceiveMessage

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
private void doReceiveMessage(ClientMessage message) throws Exception {
   Assert.assertNotNull(message);
   message.acknowledge();
   Integer value = message.getIntProperty("i");
   AtomicInteger mapCount = new AtomicInteger(1);

   mapCount = mapCounter.putIfAbsent(value, mapCount);

   if (mapCount != null) {
      mapCount.incrementAndGet();
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:13,代码来源:MDBMultipleHandlersServerDisconnectTest.java

示例9: internalTest

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
private void internalTest(final boolean isCommit) throws Exception {
   Configuration configuration = createDefaultInVMConfig().setJMXManagementEnabled(true);

   ActiveMQServer server = createServer(false, configuration);
   server.setMBeanServer(mbeanServer);
   server.start();
   Xid xid = newXID();

   ClientSessionFactory sf = createSessionFactory(locator);

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

   session.createQueue(ADDRESS, ADDRESS, true);

   session.start(xid, XAResource.TMNOFLAGS);

   ClientProducer producer = session.createProducer(ADDRESS);

   ClientMessage msg = session.createMessage(true);

   msg.getBodyBuffer().writeString(body);

   producer.send(msg);

   session.end(xid, XAResource.TMSUCCESS);

   session.prepare(xid);

   session.close();

   ActiveMQServerControl jmxServer = ManagementControlHelper.createActiveMQServerControl(mbeanServer);

   String[] preparedTransactions = jmxServer.listPreparedTransactions();

   Assert.assertEquals(1, preparedTransactions.length);

   System.out.println(preparedTransactions[0]);

   Assert.assertEquals(0, jmxServer.listHeuristicCommittedTransactions().length);
   Assert.assertEquals(0, jmxServer.listHeuristicRolledBackTransactions().length);

   if (isCommit) {
      jmxServer.commitPreparedTransaction(XidImpl.toBase64String(xid));
   } else {
      jmxServer.rollbackPreparedTransaction(XidImpl.toBase64String(xid));
   }

   Assert.assertEquals(0, jmxServer.listPreparedTransactions().length);
   if (isCommit) {
      Assert.assertEquals(1, jmxServer.listHeuristicCommittedTransactions().length);
      Assert.assertEquals(0, jmxServer.listHeuristicRolledBackTransactions().length);
   } else {
      Assert.assertEquals(0, jmxServer.listHeuristicCommittedTransactions().length);
      Assert.assertEquals(1, jmxServer.listHeuristicRolledBackTransactions().length);
   }

   if (isCommit) {
      Assert.assertEquals(1, getMessageCount(((Queue) server.getPostOffice().getBinding(ADDRESS).getBindable())));

      session = sf.createSession(false, false, false);

      session.start();
      ClientConsumer consumer = session.createConsumer(ADDRESS);
      msg = consumer.receive(1000);
      Assert.assertNotNull(msg);
      msg.acknowledge();
      Assert.assertEquals(body, msg.getBodyBuffer().readString());

      session.commit();
      session.close();
   }

   Assert.assertEquals(0, getMessageCount(((Queue) server.getPostOffice().getBinding(ADDRESS).getBindable())));
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:75,代码来源:HeuristicXATest.java

示例10: testExpireMessagesWithFilter

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@Test
public void testExpireMessagesWithFilter() throws Exception {
   SimpleString key = new SimpleString("key");
   long matchingValue = RandomUtil.randomLong();
   long unmatchingValue = matchingValue + 1;

   SimpleString address = RandomUtil.randomSimpleString();
   SimpleString queue = RandomUtil.randomSimpleString();

   session.createQueue(address, queue, null, false);
   ClientProducer producer = session.createProducer(address);

   // send on queue
   ClientMessage matchingMessage = session.createMessage(false);
   matchingMessage.putLongProperty(key, matchingValue);
   producer.send(matchingMessage);
   ClientMessage unmatchingMessage = session.createMessage(false);
   unmatchingMessage.putLongProperty(key, unmatchingValue);
   producer.send(unmatchingMessage);

   QueueControl queueControl = createManagementControl(address, queue);
   Assert.assertEquals(2, getMessageCount(queueControl));

   int expiredMessagesCount = queueControl.expireMessages(key + " =" + matchingValue);
   Assert.assertEquals(1, expiredMessagesCount);
   Assert.assertEquals(1, getMessageCount(queueControl));

   // consume the unmatched message from queue
   ClientConsumer consumer = session.createConsumer(queue);
   ClientMessage m = consumer.receive(500);
   Assert.assertNotNull(m);
   Assert.assertEquals(unmatchingValue, m.getObjectProperty(key));

   m.acknowledge();

   // check there is no other message to consume:
   m = consumer.receiveImmediate();
   Assert.assertNull(m);

   consumer.close();
   session.deleteQueue(queue);
   session.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:44,代码来源:QueueControlTest.java

示例11: internalTest

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
private void internalTest(int MAX_MESSAGES,
                          String MY_ADDRESS,
                          String MY_QUEUE,
                          ActiveMQServer server) throws Exception {
   ServerLocator locator = createInVMNonHALocator().setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setBlockOnAcknowledge(true);

   ClientSessionFactory factory = createSessionFactory(locator);
   ClientSession session = factory.createSession(false, true, true);

   session.createQueue(MY_ADDRESS, MY_QUEUE, true);

   final ClientProducer producer = session.createProducer(MY_ADDRESS);

   final ClientMessage message = session.createMessage(false);
   message.getBodyBuffer().writeBytes(new byte[1024]);

   ExecutorService executor = Executors.newFixedThreadPool(1, ActiveMQThreadFactory.defaultThreadFactory());
   Callable<Object> sendMessageTask = new Callable<Object>() {
      @Override
      public Object call() throws ActiveMQException {
         producer.send(message);
         return null;
      }
   };

   int sendCount = 0;

   for (int i = 0; i < MAX_MESSAGES; i++) {
      Future<Object> future = executor.submit(sendMessageTask);
      try {
         future.get(3, TimeUnit.SECONDS);
         sendCount++;
      } catch (TimeoutException ex) {
         // message sending has been blocked
         break;
      } finally {
         future.cancel(true); // may or may not desire this
      }
   }

   executor.shutdown();
   session.close();

   session = factory.createSession(false, true, true);
   session.start();
   ClientConsumer consumer = session.createConsumer(MY_QUEUE);
   for (int i = 0; i < sendCount; i++) {
      ClientMessage msg = consumer.receive(250);
      if (msg == null)
         break;
      msg.acknowledge();
   }

   session.close();
   locator.close();
   server.stop();

   // Using the code only so the test doesn't fail just because someone edits the log text
   Assert.assertTrue("Expected to find AMQ222183", AssertionLoggerHandler.findText("AMQ222183", "myAddress"));
   Assert.assertTrue("Expected to find AMQ221046", AssertionLoggerHandler.findText("AMQ221046", "myAddress"));
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:62,代码来源:AddressFullLoggingTest.java

示例12: readMessage

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
/**
 * @param session
 * @param queueToRead
 * @param numberOfBytes
 * @throws ActiveMQException
 * @throws IOException
 */
protected void readMessage(final ClientSession session,
                           final SimpleString queueToRead,
                           final int numberOfBytes) throws ActiveMQException, IOException {
   session.start();

   ClientConsumer consumer = session.createConsumer(queueToRead);

   ClientMessage clientMessage = consumer.receive(5000);

   Assert.assertNotNull(clientMessage);

   clientMessage.acknowledge();

   session.commit();

   consumer.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:25,代码来源:LargeMessageTestBase.java

示例13: testSimpleConnectOnMultipleNodes

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@Test
public void testSimpleConnectOnMultipleNodes() throws Exception {
   BridgeConfiguration bridgeConfiguration = new BridgeConfiguration();

   String ORIGINAL_QUEUE = "noCluster.originalQueue";
   String TARGET_QUEUE = "noCluster.targetQueue";

   bridgeConfiguration.setHA(true);
   List<String> connectors = new ArrayList<>();
   connectors.add("target-4");
   connectors.add("backup-4");
   bridgeConfiguration.setName("Bridge-for-test");
   bridgeConfiguration.setStaticConnectors(connectors);
   bridgeConfiguration.setQueueName(ORIGINAL_QUEUE);
   bridgeConfiguration.setForwardingAddress(TARGET_QUEUE);
   bridgeConfiguration.setRetryInterval(100);
   bridgeConfiguration.setConfirmationWindowSize(1);
   bridgeConfiguration.setReconnectAttempts(-1);
   servers[2].getConfiguration().getBridgeConfigurations().add(bridgeConfiguration);

   for (ActiveMQServer server : servers) {
      server.getConfiguration().getQueueConfigurations().add(new CoreQueueConfiguration().setAddress(ORIGINAL_QUEUE).setName(ORIGINAL_QUEUE));
      server.getConfiguration().getQueueConfigurations().add(new CoreQueueConfiguration().setAddress(TARGET_QUEUE).setName(TARGET_QUEUE));
   }

   startServers();

   // The server where the bridge source is configured at
   ServerLocator locator = createLocator(false, 2);

   ClientSessionFactory factory = addSessionFactory(locator.createSessionFactory());
   ClientSession session = addClientSession(factory.createSession(false, false));
   ClientProducer producer = addClientProducer(session.createProducer(ORIGINAL_QUEUE));

   for (int i = 0; i < 100; i++) {
      ClientMessage msg = session.createMessage(true);
      msg.putIntProperty("i", i);
      producer.send(msg);
   }
   session.commit();

   ServerLocator locatorConsumer = createLocator(false, 4);
   ClientSessionFactory factoryConsumer = addSessionFactory(locatorConsumer.createSessionFactory());
   ClientSession sessionConsumer = addClientSession(factoryConsumer.createSession(false, false));
   ClientConsumer consumer = sessionConsumer.createConsumer(TARGET_QUEUE);

   sessionConsumer.start();

   for (int i = 0; i < 100; i++) {
      ClientMessage message = consumer.receive(10000);
      assertNotNull(message);
      message.acknowledge();
   }

   sessionConsumer.commit();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:57,代码来源:BridgeFailoverTest.java

示例14: testConsumeAfterRestart

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@Test
public void testConsumeAfterRestart() throws Exception {
   ClientSession session = null;

   LargeMessageTestInterceptorIgnoreLastPacket.clearInterrupt();

   ActiveMQServer server = createServer(true, isNetty());
   server.start();

   QueueFactory original = server.getQueueFactory();

   locator.setBlockOnNonDurableSend(true).setBlockOnDurableSend(true);

   ClientSessionFactory sf = createSessionFactory(locator);

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

   session.createQueue(ADDRESS, ADDRESS, true);

   ClientProducer producer = session.createProducer(ADDRESS);

   for (int i = 0; i < 10; i++) {
      Message clientFile = createLargeClientMessageStreaming(session, LARGE_MESSAGE_SIZE, true);

      producer.send(clientFile);
   }
   session.commit();

   session.close();
   sf.close();

   server.stop();
   server.start();

   sf = createSessionFactory(locator);

   session = sf.createSession(false, false);

   ClientConsumer cons = session.createConsumer(ADDRESS);

   session.start();

   for (int i = 0; i < 10; i++) {
      ClientMessage msg = cons.receive(5000);
      Assert.assertNotNull(msg);
      msg.saveToOutputStream(new java.io.OutputStream() {
         @Override
         public void write(int b) throws IOException {
         }
      });
      msg.acknowledge();
      session.commit();
   }

   ((ActiveMQServerImpl) server).replaceQueueFactory(original);
   server.fail(false);
   server.start();

   server.stop();

   validateNoFilesOnLargeDir();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:63,代码来源:InterruptedLargeMessageTest.java

示例15: testRouteToMultipleQueueWithFilters

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@Test
public void testRouteToMultipleQueueWithFilters() throws Exception {
   ClientSession sendSession = cf.createSession(false, true, true);
   sendSession.createQueue(addressA, queueA, new SimpleString("foo = 'bar'"), false);
   sendSession.createQueue(addressA, queueB, new SimpleString("x = 1"), false);
   sendSession.createQueue(addressA, queueC, new SimpleString("b = false"), false);
   int numMessages = 300;
   ClientProducer p = sendSession.createProducer(addressA);
   for (int i = 0; i < numMessages; i++) {
      ClientMessage clientMessage = sendSession.createMessage(false);
      if (i % 3 == 0) {
         clientMessage.putStringProperty(new SimpleString("foo"), new SimpleString("bar"));
      } else if (i % 3 == 1) {
         clientMessage.putIntProperty(new SimpleString("x"), 1);
      } else {
         clientMessage.putBooleanProperty(new SimpleString("b"), false);
      }
      p.send(clientMessage);
   }
   ClientSession session = cf.createSession(false, true, true);
   ClientConsumer c1 = session.createConsumer(queueA);
   ClientConsumer c2 = session.createConsumer(queueB);
   ClientConsumer c3 = session.createConsumer(queueC);
   session.start();
   for (int i = 0; i < numMessages / 3; i++) {
      ClientMessage m = c1.receive(5000);
      Assert.assertNotNull(m);
      m.acknowledge();
      m = c2.receive(5000);
      Assert.assertNotNull(m);
      m.acknowledge();
      m = c3.receive(5000);
      Assert.assertNotNull(m);
      m.acknowledge();
   }
   Assert.assertNull(c1.receiveImmediate());
   Assert.assertNull(c2.receiveImmediate());
   Assert.assertNull(c3.receiveImmediate());
   sendSession.close();
   session.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:42,代码来源:RoutingTest.java


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