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


Java ClientProducer.close方法代码示例

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


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

示例1: testCanNotUseAClosedProducer

import org.apache.activemq.artemis.api.core.client.ClientProducer; //导入方法依赖的package包/类
@Test
public void testCanNotUseAClosedProducer() throws Exception {
   final ClientProducer producer = session.createProducer(RandomUtil.randomSimpleString());

   Assert.assertFalse(producer.isClosed());

   producer.close();

   Assert.assertTrue(producer.isClosed());

   ActiveMQTestBase.expectActiveMQException(ActiveMQExceptionType.OBJECT_CLOSED, new ActiveMQAction() {
      @Override
      public void run() throws ActiveMQException {
         producer.send(session.createMessage(false));
      }
   });
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:18,代码来源:ProducerCloseTest.java

示例2: sendMessages

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

示例3: testPagedMessageDeliveredCorrectly

import org.apache.activemq.artemis.api.core.client.ClientProducer; //导入方法依赖的package包/类
@Test
public void testPagedMessageDeliveredCorrectly() throws Exception {
   // then we create a client as normal
   ClientSessionFactory sessionFactory = createSessionFactory(locator);
   ClientSession session = sessionFactory.createSession(false, true, false);
   session.createQueue(atestq, atestq, null, true);
   ClientProducer producer = session.createProducer(atestq);
   ClientMessage message = createDurableMessage(session, "m1");
   long time = System.currentTimeMillis();
   time += 10000;
   message.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, time);
   producer.send(message);

   producer.close();

   ClientConsumer consumer = session.createConsumer(atestq);

   session.start();

   ClientMessage message2 = consumer.receive(10250);
   Assert.assertTrue(System.currentTimeMillis() >= time);
   Assert.assertEquals("m1", message2.getBodyBuffer().readString());

   message2.acknowledge();

   // Make sure no more messages
   consumer.close();
   consumer = session.createConsumer(atestq);
   Assert.assertNull(consumer.receiveImmediate());

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

示例4: simpleTest

import org.apache.activemq.artemis.api.core.client.ClientProducer; //导入方法依赖的package包/类
@Test
public void simpleTest() throws Exception {
   final String data = "Simple Text " + UUID.randomUUID().toString();
   final String queueName = "simpleQueue";
   final String addressName = "simpleAddress";

   session.createQueue(addressName, RoutingType.ANYCAST, queueName);
   ClientProducer producer = session.createProducer(addressName);

   ClientMessageImpl message = (ClientMessageImpl) session.createMessage(true);
   message.getBodyBuffer().writeString(data);

   for (int i = 0; i < 100; i++) {
      message.putStringProperty("key", "int" + i);
      // JMS layer will always call this before sending
      message.getBodyBuffer().resetReaderIndex();
      producer.send(message);
      session.commit();
      Assert.assertTrue("Message body growing indefinitely and unexpectedly", message.getBodySize() < 1000);

   }

   producer.send(message);
   producer.close();
   ClientConsumer consumer = session.createConsumer(queueName);
   session.start();

   assertNotNull(message);
   message.acknowledge();
   assertEquals(data, message.getBodyBuffer().readString());
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:32,代码来源:MessageBufferTest.java

示例5: simpleTest

import org.apache.activemq.artemis.api.core.client.ClientProducer; //导入方法依赖的package包/类
/**
 * Because this class extends org.apache.activemq.artemis.tests.util.SingleServerTestBase and only uses a single
 * instance of ActiveMQServer then no explicit setUp is required. The class simply needs tests which will use
 * the server.
 */

@Test
public void simpleTest() throws Exception {
   final String data = "Simple Text " + UUID.randomUUID().toString();
   final String queueName = "simpleQueue";
   final String addressName = "simpleAddress";

   // Create a queue bound to a particular address where the test will send to & consume from.
   session.createQueue(addressName, RoutingType.ANYCAST, queueName);

   // Create a producer to send a message to the previously created address.
   ClientProducer producer = session.createProducer(addressName);

   // Create a non-durable message.
   ClientMessage message = session.createMessage(false);

   // Put some data into the message.
   message.getBodyBuffer().writeString(data);

   // Send the message. This send will be auto-committed based on the way the session was created in setUp()
   producer.send(message);

   // Close the producer.
   producer.close();

   // Create a consumer on the queue bound to the address where the message was sent.
   ClientConsumer consumer = session.createConsumer(queueName);

   // Start the session to allow messages to be consumed.
   session.start();

   // Receive the message we sent previously.
   message = consumer.receive(1000);

   // Ensure the message was received.
   assertNotNull(message);

   // Acknowledge the message.
   message.acknowledge();

   // Ensure the data in the message received matches the data in the message sent.
   assertEquals(data, message.getBodyBuffer().readString());
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:49,代码来源:SingleServerSimpleTest.java

示例6: testPagedMessageDeliveredMultipleConsumersCorrectly

import org.apache.activemq.artemis.api.core.client.ClientProducer; //导入方法依赖的package包/类
@Test
public void testPagedMessageDeliveredMultipleConsumersCorrectly() throws Exception {
   AddressSettings qs = new AddressSettings().setRedeliveryDelay(5000L);
   server.getAddressSettingsRepository().addMatch(atestq.toString(), qs);
   // then we create a client as normal
   ClientSessionFactory sessionFactory = createSessionFactory(locator);
   ClientSession session = sessionFactory.createSession(false, true, false);
   session.createQueue(atestq, atestq, null, true);
   session.createQueue(atestq, atestq2, null, true);
   ClientProducer producer = session.createProducer(atestq);
   ClientMessage message = createDurableMessage(session, "m1");
   producer.send(message);

   producer.close();

   ClientConsumer consumer = session.createConsumer(atestq);
   ClientConsumer consumer2 = session.createConsumer(atestq2);

   session.start();
   ClientMessage message3 = consumer.receive(1000);
   message3.acknowledge();
   ClientMessage message2 = consumer2.receive(1000);
   message2.acknowledge();
   Assert.assertEquals("m1", message3.getBodyBuffer().readString());
   Assert.assertEquals("m1", message2.getBodyBuffer().readString());
   long time = System.currentTimeMillis();
   // force redelivery
   consumer.close();
   consumer2.close();
   // this will make it redelivery-delay
   session.rollback();
   consumer = session.createConsumer(atestq);
   consumer2 = session.createConsumer(atestq2);
   message3 = consumer.receive(5250);
   message2 = consumer2.receive(1000);
   time += 5000;
   Assert.assertTrue(System.currentTimeMillis() >= time);
   Assert.assertEquals("m1", message3.getBodyBuffer().readString());
   Assert.assertEquals("m1", message2.getBodyBuffer().readString());
   message2.acknowledge();
   message3.acknowledge();

   // Make sure no more messages
   consumer.close();
   consumer2.close();
   consumer = session.createConsumer(atestq);
   Assert.assertNull(consumer.receiveImmediate());

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

示例7: testPagedMessageDeliveredMultipleConsumersAfterRecoverCorrectly

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

   AddressSettings qs = new AddressSettings().setRedeliveryDelay(5000L);
   server.getAddressSettingsRepository().addMatch(atestq.toString(), qs);
   // then we create a client as normal
   ClientSessionFactory sessionFactory = createSessionFactory(locator);
   ClientSession session = sessionFactory.createSession(false, true, false);
   session.createQueue(atestq, atestq, null, true);
   session.createQueue(atestq, atestq2, null, true);
   ClientProducer producer = session.createProducer(atestq);
   ClientMessage message = createDurableMessage(session, "m1");
   producer.send(message);

   producer.close();

   ClientConsumer consumer = session.createConsumer(atestq);
   ClientConsumer consumer2 = session.createConsumer(atestq2);

   session.start();
   ClientMessage message3 = consumer.receive(1000);
   Assert.assertNotNull(message3);
   message3.acknowledge();
   ClientMessage message2 = consumer2.receive(1000);
   Assert.assertNotNull(message2);
   message2.acknowledge();
   Assert.assertEquals("m1", message3.getBodyBuffer().readString());
   Assert.assertEquals("m1", message2.getBodyBuffer().readString());
   long time = System.currentTimeMillis();
   // force redelivery
   consumer.close();
   consumer2.close();
   session.rollback();
   producer.close();
   session.close();
   server.stop();
   server = null;
   server = createServer(true, configuration);
   server.start();
   sessionFactory = createSessionFactory(locator);
   session = sessionFactory.createSession(false, true, true);
   consumer = session.createConsumer(atestq);
   consumer2 = session.createConsumer(atestq2);
   session.start();
   message3 = consumer.receive(5250);
   Assert.assertNotNull(message3);
   message2 = consumer2.receive(1000);
   Assert.assertNotNull(message2);
   time += 5000;
   Assert.assertTrue(System.currentTimeMillis() >= time);
   Assert.assertEquals("m1", message3.getBodyBuffer().readString());
   Assert.assertEquals("m1", message2.getBodyBuffer().readString());
   message2.acknowledge();
   message3.acknowledge();

   // Make sure no more messages
   consumer.close();
   consumer2.close();
   consumer = session.createConsumer(atestq);
   Assert.assertNull(consumer.receiveImmediate());

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

示例8: testMessageDeliveredCorrectly

import org.apache.activemq.artemis.api.core.client.ClientProducer; //导入方法依赖的package包/类
public void testMessageDeliveredCorrectly(final boolean recover) throws Exception {

      // then we create a client as normal
      ClientSessionFactory sessionFactory = createSessionFactory(locator);
      ClientSession session = sessionFactory.createSession(false, true, false);
      session.createQueue(atestq, atestq, null, true);
      ClientProducer producer = session.createProducer(atestq);
      ClientMessage message = session.createMessage(ActiveMQTextMessage.TYPE, false, 0, System.currentTimeMillis(), (byte) 1);
      message.getBodyBuffer().writeString("testINVMCoreClient");
      message.setDurable(true);
      long time = System.currentTimeMillis();
      time += 10000;
      message.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, time);
      producer.send(message);

      ScheduledMessageTest.log.info("Recover is " + recover);
      if (recover) {
         producer.close();
         session.close();
         server.stop();
         server = null;
         server = createServer(true, configuration);
         server.start();
         sessionFactory = createSessionFactory(locator);
         session = sessionFactory.createSession(false, true, true);
      }
      ClientConsumer consumer = session.createConsumer(atestq);

      session.start();

      ClientMessage message2 = consumer.receive(11000);
      Assert.assertTrue(System.currentTimeMillis() >= time);
      Assert.assertEquals("testINVMCoreClient", message2.getBodyBuffer().readString());

      message2.acknowledge();

      // Make sure no more messages
      consumer.close();
      consumer = session.createConsumer(atestq);
      Assert.assertNull(consumer.receiveImmediate());

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

示例9: testScheduledMessagesDeliveredCorrectly

import org.apache.activemq.artemis.api.core.client.ClientProducer; //导入方法依赖的package包/类
public void testScheduledMessagesDeliveredCorrectly(final boolean recover) throws Exception {

      ClientSessionFactory sessionFactory = createSessionFactory(locator);
      ClientSession session = sessionFactory.createSession(false, true, false);
      session.createQueue(atestq, atestq, null, true);
      ClientProducer producer = session.createProducer(atestq);
      ClientMessage m1 = createDurableMessage(session, "m1");
      ClientMessage m2 = createDurableMessage(session, "m2");
      ClientMessage m3 = createDurableMessage(session, "m3");
      ClientMessage m4 = createDurableMessage(session, "m4");
      ClientMessage m5 = createDurableMessage(session, "m5");
      long time = System.currentTimeMillis();
      time += 10000;
      m1.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, time);
      producer.send(m1);
      time += 1000;
      m2.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, time);
      producer.send(m2);
      time += 1000;
      m3.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, time);
      producer.send(m3);
      time += 1000;
      m4.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, time);
      producer.send(m4);
      time += 1000;
      m5.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, time);
      producer.send(m5);
      time -= 4000;
      if (recover) {
         producer.close();
         session.close();
         server.stop();
         server = null;
         server = createServer(true, configuration);
         server.start();

         sessionFactory = createSessionFactory(locator);

         session = sessionFactory.createSession(false, true, true);
      }

      ClientConsumer consumer = session.createConsumer(atestq);

      session.start();

      ClientMessage message = consumer.receive(11000);
      Assert.assertTrue(System.currentTimeMillis() >= time);
      Assert.assertEquals("m1", message.getBodyBuffer().readString());
      message.acknowledge();
      time += 1000;
      message = consumer.receive(1250);
      Assert.assertTrue(System.currentTimeMillis() >= time);
      Assert.assertEquals("m2", message.getBodyBuffer().readString());
      message.acknowledge();
      time += 1000;
      message = consumer.receive(1250);
      Assert.assertTrue(System.currentTimeMillis() >= time);
      Assert.assertEquals("m3", message.getBodyBuffer().readString());
      message.acknowledge();
      time += 1000;
      message = consumer.receive(1250);
      Assert.assertTrue(System.currentTimeMillis() >= time);
      Assert.assertEquals("m4", message.getBodyBuffer().readString());
      message.acknowledge();
      time += 1000;
      message = consumer.receive(1250);
      Assert.assertTrue(System.currentTimeMillis() >= time);
      Assert.assertEquals("m5", message.getBodyBuffer().readString());
      message.acknowledge();

      // Make sure no more messages
      consumer.close();
      consumer = session.createConsumer(atestq);
      Assert.assertNull(consumer.receiveImmediate());

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

示例10: testScheduledMessagesDeliveredCorrectlyDifferentOrder

import org.apache.activemq.artemis.api.core.client.ClientProducer; //导入方法依赖的package包/类
public void testScheduledMessagesDeliveredCorrectlyDifferentOrder(final boolean recover) throws Exception {

      ClientSessionFactory sessionFactory = createSessionFactory(locator);
      ClientSession session = sessionFactory.createSession(false, true, false);
      session.createQueue(atestq, atestq, null, true);
      ClientProducer producer = session.createProducer(atestq);
      ClientMessage m1 = createDurableMessage(session, "m1");
      ClientMessage m2 = createDurableMessage(session, "m2");
      ClientMessage m3 = createDurableMessage(session, "m3");
      ClientMessage m4 = createDurableMessage(session, "m4");
      ClientMessage m5 = createDurableMessage(session, "m5");
      long time = System.currentTimeMillis();
      time += 10000;
      m1.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, time);
      producer.send(m1);
      time += 3000;
      m2.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, time);
      producer.send(m2);
      time -= 2000;
      m3.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, time);
      producer.send(m3);
      time += 3000;
      m4.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, time);
      producer.send(m4);
      time -= 2000;
      m5.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, time);
      producer.send(m5);
      time -= 2000;
      ClientConsumer consumer = null;
      if (recover) {
         producer.close();
         session.close();
         server.stop();
         server = null;
         server = createServer(true, configuration);
         server.start();

         sessionFactory = createSessionFactory(locator);

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

      }
      consumer = session.createConsumer(atestq);

      session.start();

      ClientMessage message = consumer.receive(10250);
      Assert.assertTrue(System.currentTimeMillis() >= time);
      Assert.assertEquals("m1", message.getBodyBuffer().readString());
      message.acknowledge();
      time += 1000;
      message = consumer.receive(1250);
      Assert.assertTrue(System.currentTimeMillis() >= time);
      Assert.assertEquals("m3", message.getBodyBuffer().readString());
      message.acknowledge();
      time += 1000;
      message = consumer.receive(1250);
      Assert.assertTrue(System.currentTimeMillis() >= time);
      Assert.assertEquals("m5", message.getBodyBuffer().readString());
      message.acknowledge();
      time += 1000;
      message = consumer.receive(1250);
      Assert.assertTrue(System.currentTimeMillis() >= time);
      Assert.assertEquals("m2", message.getBodyBuffer().readString());
      message.acknowledge();
      time += 1000;
      message = consumer.receive(1250);
      Assert.assertTrue(System.currentTimeMillis() >= time);
      Assert.assertEquals("m4", message.getBodyBuffer().readString());
      message.acknowledge();

      // Make sure no more messages
      consumer.close();
      consumer = session.createConsumer(atestq);
      Assert.assertNull(consumer.receiveImmediate());

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

示例11: testWithoutUsingTheBackup

import org.apache.activemq.artemis.api.core.client.ClientProducer; //导入方法依赖的package包/类
@Test(timeout = 120000)
public void testWithoutUsingTheBackup() throws Exception {
   locator.setFailoverOnInitialConnection(true);
   createSessionFactory();
   ClientSession session = createSessionAndQueue();

   ClientProducer producer = addClientProducer(session.createProducer(FailoverTestBase.ADDRESS));

   sendMessages(session, producer, NUM_MESSAGES);
   producer.close();
   session.commit();

   backupServer.stop(); // Backup stops!
   backupServer.start();

   waitForRemoteBackupSynchronization(backupServer.getServer());

   session.start();
   ClientConsumer consumer = addClientConsumer(session.createConsumer(FailoverTestBase.ADDRESS));
   receiveMessages(consumer);
   assertNoMoreMessages(consumer);
   consumer.close();
   session.commit();

   session.start();
   producer = addClientProducer(session.createProducer(FailoverTestBase.ADDRESS));
   sendMessages(session, producer, NUM_MESSAGES);
   producer.close();
   session.commit();
   backupServer.stop(); // Backup stops!
   beforeRestart(backupServer);
   backupServer.start();
   waitForRemoteBackupSynchronization(backupServer.getServer());
   backupServer.stop(); // Backup stops!

   liveServer.stop();
   beforeRestart(liveServer);
   liveServer.start();
   liveServer.getServer().waitForActivation(10, TimeUnit.SECONDS);

   ClientSession session2 = createSession(sf, false, false);
   session2.start();
   ClientConsumer consumer2 = session2.createConsumer(FailoverTestBase.ADDRESS);
   receiveMessages(consumer2, 0, NUM_MESSAGES, true);
   assertNoMoreMessages(consumer2);
   session2.commit();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:48,代码来源:FailoverTest.java

示例12: simpleFailover

import org.apache.activemq.artemis.api.core.client.ClientProducer; //导入方法依赖的package包/类
/**
 * @param doFailBack
 * @throws Exception
 */
private void simpleFailover(boolean isReplicated, boolean doFailBack) throws Exception {
   locator.setFailoverOnInitialConnection(true);
   createSessionFactory();
   ClientSession session = createSessionAndQueue();

   ClientProducer producer = addClientProducer(session.createProducer(FailoverTestBase.ADDRESS));

   sendMessages(session, producer, NUM_MESSAGES);
   producer.close();
   session.commit();
   SimpleString liveId = liveServer.getServer().getNodeID();
   crash(session);

   session.start();
   ClientConsumer consumer = addClientConsumer(session.createConsumer(FailoverTestBase.ADDRESS));
   receiveMessages(consumer);
   assertNoMoreMessages(consumer);
   consumer.close();

   producer = addClientProducer(session.createProducer(FailoverTestBase.ADDRESS));
   sendMessages(session, producer, NUM_MESSAGES);
   producer.close();
   session.commit();

   Assert.assertEquals("backup must be running with the same nodeID", liveId, backupServer.getServer().getNodeID());
   if (doFailBack) {
      Assert.assertFalse("must NOT be a backup", liveServer.getServer().getHAPolicy().isBackup());
      adaptLiveConfigForReplicatedFailBack(liveServer);
      beforeRestart(liveServer);
      liveServer.start();
      Assert.assertTrue("live initialized...", liveServer.getServer().waitForActivation(40, TimeUnit.SECONDS));
      int i = 0;
      while (!backupServer.isStarted() && i++ < 100) {
         Thread.sleep(100);
      }
      liveServer.getServer().waitForActivation(5, TimeUnit.SECONDS);
      Assert.assertTrue(backupServer.isStarted());

      if (isReplicated) {
         FileMoveManager moveManager = new FileMoveManager(backupServer.getServer().getConfiguration().getJournalLocation(), 0);
         Assert.assertEquals(1, moveManager.getNumberOfFolders());
      }
   } else {
      backupServer.stop();
      beforeRestart(backupServer);
      backupServer.start();
      Assert.assertTrue(backupServer.getServer().waitForActivation(10, TimeUnit.SECONDS));
   }

   ClientSession session2 = createSession(sf, false, false);
   session2.start();
   ClientConsumer consumer2 = session2.createConsumer(FailoverTestBase.ADDRESS);
   receiveMessages(consumer2, 0, NUM_MESSAGES, true);
   assertNoMoreMessages(consumer2);
   session2.commit();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:61,代码来源:FailoverTest.java

示例13: simpleTest

import org.apache.activemq.artemis.api.core.client.ClientProducer; //导入方法依赖的package包/类
@Test
public void simpleTest() throws Exception {
   final String data = "Simple Text " + UUID.randomUUID().toString();
   final String queueName = "simpleQueue";
   final String addressName = "simpleAddress";

   // Create a queue bound to a particular address where the test will send to & consume from.
   session.createQueue(addressName, RoutingType.ANYCAST, queueName);

   // Create a producer to send a message to the previously created address.
   ClientProducer producer = session.createProducer(addressName);

   // Create a non-durable message.
   ClientMessage message = session.createMessage(false);

   // Put some data into the message.
   message.getBodyBuffer().writeString(data);

   // Send the message. This send will be auto-committed based on the way the session was created in setUp()
   producer.send(message);

   // Close the producer.
   producer.close();

   // Create a consumer on the queue bound to the address where the message was sent.
   ClientConsumer consumer = session.createConsumer(queueName);

   // Start the session to allow messages to be consumed.
   session.start();

   // Receive the message we sent previously.
   message = consumer.receive(1000);

   // Ensure the message was received.
   assertNotNull(message);

   // Acknowledge the message.
   message.acknowledge();

   // Ensure the data in the message received matches the data in the message sent.
   assertEquals(data, message.getBodyBuffer().readString());
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:43,代码来源:SimpleTest.java

示例14: testDuplicateIDCacheMemoryRetention

import org.apache.activemq.artemis.api.core.client.ClientProducer; //导入方法依赖的package包/类
public void testDuplicateIDCacheMemoryRetention(boolean temporary) throws Exception {
   final int TEST_SIZE = 100;

   locator = createInVMNonHALocator().setBlockOnNonDurableSend(true);

   sf = createSessionFactory(locator);

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

   session.start();

   Assert.assertEquals(0, ((PostOfficeImpl) server.getPostOffice()).getDuplicateIDCaches().size());

   final SimpleString addressName = new SimpleString("DuplicateDetectionTestAddress");

   for (int i = 0; i < TEST_SIZE; i++) {
      final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue_" + i);

      if (temporary) {
         session.createTemporaryQueue(addressName, queueName, null);
      } else {
         session.createQueue(addressName, queueName, null, true);
      }

      ClientProducer producer = session.createProducer(addressName);

      ClientConsumer consumer = session.createConsumer(queueName);

      ClientMessage message = createMessage(session, 1);
      SimpleString dupID = new SimpleString("abcdefg");
      message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
      producer.send(message);
      ClientMessage message2 = consumer.receive(1000);
      Assert.assertEquals(1, message2.getObjectProperty(propKey));

      message = createMessage(session, 2);
      message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
      producer.send(message);
      message2 = consumer.receiveImmediate();
      Assert.assertNull(message2);

      message = createMessage(session, 3);
      message.putBytesProperty(Message.HDR_BRIDGE_DUPLICATE_ID, dupID.getData());
      producer.send(message);
      message2 = consumer.receive(1000);
      Assert.assertEquals(3, message2.getObjectProperty(propKey));

      message = createMessage(session, 4);
      message.putBytesProperty(Message.HDR_BRIDGE_DUPLICATE_ID, dupID.getData());
      producer.send(message);
      message2 = consumer.receiveImmediate();
      Assert.assertNull(message2);

      producer.close();
      consumer.close();

      // there will be 2 ID caches, one for messages using "_AMQ_DUPL_ID" and one for "_AMQ_BRIDGE_DUP"
      Assert.assertEquals(2, ((PostOfficeImpl) server.getPostOffice()).getDuplicateIDCaches().size());
      session.deleteQueue(queueName);
      Assert.assertEquals(0, ((PostOfficeImpl) server.getPostOffice()).getDuplicateIDCaches().size());
   }

   Assert.assertEquals(0, ((PostOfficeImpl) server.getPostOffice()).getDuplicateIDCaches().size());
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:65,代码来源:DuplicateDetectionTest.java

示例15: testFailBackLiveRestartsBackupIsGone

import org.apache.activemq.artemis.api.core.client.ClientProducer; //导入方法依赖的package包/类
@Test(timeout = 120000)
public void testFailBackLiveRestartsBackupIsGone() throws Exception {
   locator.setFailoverOnInitialConnection(true);
   createSessionFactory();
   ClientSession session = createSessionAndQueue();

   ClientProducer producer = addClientProducer(session.createProducer(FailoverTestBase.ADDRESS));

   sendMessages(session, producer, NUM_MESSAGES);
   producer.close();
   session.commit();
   SimpleString liveId = liveServer.getServer().getNodeID();
   crash(session);

   session.start();
   ClientConsumer consumer = addClientConsumer(session.createConsumer(FailoverTestBase.ADDRESS));
   receiveMessages(consumer);
   assertNoMoreMessages(consumer);
   consumer.close();
   session.commit();

   Assert.assertEquals("backup must be running with the same nodeID", liveId, backupServer.getServer().getNodeID());
   sf.close();

   backupServer.crash();
   Thread.sleep(100);
   Assert.assertFalse("backup is not running", backupServer.isStarted());

   Assert.assertFalse("must NOT be a backup", liveServer.getServer().getHAPolicy() instanceof BackupPolicy);
   adaptLiveConfigForReplicatedFailBack(liveServer);
   beforeRestart(liveServer);
   liveServer.start();
   Assert.assertTrue("live initialized...", liveServer.getServer().waitForActivation(15, TimeUnit.SECONDS));

   sf = (ClientSessionFactoryInternal) createSessionFactory(locator);

   ClientSession session2 = createSession(sf, false, false);
   session2.start();
   ClientConsumer consumer2 = session2.createConsumer(FailoverTestBase.ADDRESS);
   boolean replication = liveServer.getServer().getHAPolicy() instanceof ReplicatedPolicy;
   if (replication)
      receiveMessages(consumer2, 0, NUM_MESSAGES, true);
   assertNoMoreMessages(consumer2);
   session2.commit();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:46,代码来源:FailoverTest.java


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