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


Java ClientMessage.getBodyBuffer方法代码示例

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


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

示例1: sendMessagesWithPredefinedSize

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
private void sendMessagesWithPredefinedSize(int numberOfMessages,
                                            ClientSession session,
                                            ClientProducer producer,
                                            int messageSize) throws Exception {
   ClientMessage message;
   final byte[] body = new byte[messageSize];
   ByteBuffer bb = ByteBuffer.wrap(body);
   for (int i = 1; i <= messageSize; i++) {
      bb.put(getSamplebyte(i));
   }

   for (int i = 0; i < numberOfMessages; i++) {
      message = session.createMessage(true);
      ActiveMQBuffer bodyLocal = message.getBodyBuffer();
      bodyLocal.writeBytes(body);

      producer.send(message);
      if (i % 1000 == 0) {
         session.commit();
      }
   }
   session.commit();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:24,代码来源:ActiveMQServerControlTest.java

示例2: sendFewMessages

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
protected void sendFewMessages(int numberOfMessages,
                               ClientSession session,
                               ClientProducer producer,
                               byte[] body) throws ActiveMQException {
   ClientMessage message;
   for (int i = 0; i < numberOfMessages; i++) {
      message = session.createMessage(true);

      ActiveMQBuffer bodyLocal = message.getBodyBuffer();

      bodyLocal.writeBytes(body);

      producer.send(message);
      if (i % 1000 == 0) {
         session.commit();
      }
   }
   session.commit();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:20,代码来源:GlobalPagingTest.java

示例3: assertLargeMessageBody

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
/**
 * Large message version of {@link #assertMessageBody(int, ClientMessage)}.
 *
 * @param i
 * @param message
 */
protected static void assertLargeMessageBody(final int i, final ClientMessage message) {
   ActiveMQBuffer buffer = message.getBodyBuffer();

   for (int j = 0; j < LARGE_MESSAGE_SIZE; j++) {
      Assert.assertTrue("msg " + i + ", expecting " + LARGE_MESSAGE_SIZE + " bytes, got " + j, buffer.readable());
      Assert.assertEquals("equal at " + j, ActiveMQTestBase.getSamplebyte(j), buffer.readByte());
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:15,代码来源:FailoverTestBase.java

示例4: createLargeMessage

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
private ClientMessage createLargeMessage(ClientSession session, final int largeSize) {
   ClientMessage message = session.createMessage(true);
   ActiveMQBuffer bodyBuffer = message.getBodyBuffer();
   final int propSize = 10240;
   while (bodyBuffer.writerIndex() < largeSize) {
      byte[] prop = new byte[propSize];
      bodyBuffer.writeBytes(prop);
   }
   return message;
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:11,代码来源:FailoverWithDivertTest.java

示例5: testBackupStartsWhenLiveIsReceivingLargeMessage

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
/**
 * LargeMessages are passed from the client to the server in chunks. Here we test the backup
 * starting the data synchronization with the live in the middle of a multiple chunks large
 * message upload from the client to the live server.
 *
 * @throws Exception
 */
@Test
public void testBackupStartsWhenLiveIsReceivingLargeMessage() throws Exception {
   final ClientSession session = addClientSession(sessionFactory.createSession(true, true));
   session.createQueue(FailoverTestBase.ADDRESS, FailoverTestBase.ADDRESS, null, true);
   final ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
   final ClientMessage message = session.createMessage(true);
   final int largeMessageSize = 1000 * MIN_LARGE_MESSAGE;
   message.setBodyInputStream(ActiveMQTestBase.createFakeLargeStream(largeMessageSize));

   final AtomicBoolean caughtException = new AtomicBoolean(false);
   final CountDownLatch latch = new CountDownLatch(1);
   final CountDownLatch latch2 = new CountDownLatch(1);

   Runnable r = new Runnable() {
      @Override
      public void run() {
         try {
            latch.countDown();
            producer.send(message);
            sendMessages(session, producer, 20);
            session.commit();
         } catch (ActiveMQException e) {
            e.printStackTrace();
            caughtException.set(true);
         } finally {
            latch2.countDown();
         }
      }
   };
   Executors.defaultThreadFactory().newThread(r).start();
   waitForLatch(latch);
   startBackupFinishSyncing();
   ActiveMQTestBase.waitForLatch(latch2);
   crash(session);
   assertFalse("no exceptions while sending message", caughtException.get());

   session.start();
   ClientConsumer consumer = session.createConsumer(FailoverTestBase.ADDRESS);
   ClientMessage msg = consumer.receive(2000);
   ActiveMQBuffer buffer = msg.getBodyBuffer();

   for (int j = 0; j < largeMessageSize; j++) {
      Assert.assertTrue("large msg , expecting " + largeMessageSize + " bytes, got " + j, buffer.readable());
      Assert.assertEquals("equal at " + j, ActiveMQTestBase.getSamplebyte(j), buffer.readByte());
   }
   receiveMessages(consumer, 0, 20, true);
   assertNull("there should be no more messages!", consumer.receiveImmediate());
   consumer.close();
   session.commit();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:58,代码来源:BackupSyncLargeMessageTest.java

示例6: testCoreClient

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
private void testCoreClient(final boolean netty, ServerLocator serverLocator) throws Exception {
   final SimpleString QUEUE = new SimpleString("CoreClientTestQueue");

   ActiveMQServer server = addServer(ActiveMQServers.newActiveMQServer(createDefaultConfig(netty), false));

   server.start();

   ServerLocator locator = serverLocator == null ? createNonHALocator(netty) : serverLocator;

   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 = 1000;

   for (int i = 0; i < numMessages; i++) {
      ClientMessage message = session.createMessage(ActiveMQTextMessage.TYPE, false, 0, System.currentTimeMillis(), (byte) 1);

      message.putStringProperty("foo", "bar");

      // One way around the setting destination problem is as follows -
      // Remove destination as an attribute from client producer.
      // The destination always has to be set explicitly before sending a message

      message.setAddress(QUEUE);

      message.getBodyBuffer().writeString("testINVMCoreClient");

      producer.send(message);
   }

   CoreClientTest.log.info("sent messages");

   ClientConsumer consumer = session.createConsumer(QUEUE);

   session.start();

   for (int i = 0; i < numMessages; i++) {
      ClientMessage message2 = consumer.receive();

      ActiveMQBuffer buffer = message2.getBodyBuffer();

      Assert.assertEquals("testINVMCoreClient", buffer.readString());

      message2.acknowledge();
   }

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

示例7: fillAddress

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

      final int PAGE_MAX = 100 * 1024;
      final int PAGE_SIZE = 10 * 1024;
      final int MESSAGE_SIZE = 1024; // 1k

      Configuration config = createDefaultInVMConfig().setJournalSyncNonTransactional(false);

      ActiveMQServer server = createServer(true, config, PAGE_SIZE, PAGE_MAX, new HashMap<String, AddressSettings>(), storeType);

      server.start();

      server.getAddressSettingsRepository().getMatch("#").setAddressFullMessagePolicy(AddressFullMessagePolicy.DROP);

      locator = createInVMNonHALocator().setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setBlockOnAcknowledge(true);

      ClientSessionFactory sf = createSessionFactory(locator);

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

      session.createQueue(ADDRESS, ADDRESS, null, true);

      ClientProducer producer = session.createProducer(ADDRESS);

      ClientMessage message;

      byte[] body = new byte[MESSAGE_SIZE];

      ByteBuffer bb = ByteBuffer.wrap(body);

      for (int j = 1; j <= MESSAGE_SIZE; j++) {
         bb.put(getSamplebyte(j));
      }

      for (int i = 0; i < 5000; i++) {
         message = session.createMessage(true);

         ActiveMQBuffer bodyLocal = message.getBodyBuffer();

         bodyLocal.writeBytes(body);

         message.putIntProperty(new SimpleString("id"), i);

         producer.send(message);
         if (i % 1000 == 0) {
            session.commit();
         }
      }
      session.commit();
      session.close();
   }
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:52,代码来源:LargeMessageTest.java

示例8: testSelfExpandingBuffer

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
private void testSelfExpandingBuffer(final boolean netty, final boolean persistent) throws Exception {
   setUpService(netty, persistent);

   ClientSessionFactory factory;

   ServerLocator locator = createFactory(netty);

   factory = createSessionFactory(locator);

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

   try {

      session.createQueue(ADDRESS, ADDRESS, true);

      ClientMessage msg = session.createMessage(true);

      ActiveMQBuffer buffer = msg.getBodyBuffer();

      SelfExpandingBufferTest.log.info("buffer is " + buffer);

      byte[] bytes = RandomUtil.randomBytes(10 * buffer.capacity());

      buffer.writeBytes(bytes);

      ClientProducer prod = session.createProducer(ADDRESS);

      prod.send(msg);

      // Send same message again

      prod.send(msg);

      ClientConsumer cons = session.createConsumer(ADDRESS);

      session.start();

      ClientMessage msg2 = cons.receive(3000);

      Assert.assertNotNull(msg2);

      byte[] receivedBytes = new byte[bytes.length];

      // log.info("buffer start pos should be at " + PacketImpl.PACKET_HEADERS_SIZE + DataConstants.SIZE_INT);
      //
      // log.info("buffer pos at " + msg2.getBodyBuffer().readerIndex());
      //
      // log.info("buffer length should be " + msg2.getBodyBuffer().readInt(PacketImpl.PACKET_HEADERS_SIZE));

      msg2.getBodyBuffer().readBytes(receivedBytes);

      ActiveMQTestBase.assertEqualsByteArrays(bytes, receivedBytes);

      msg2 = cons.receive(3000);

      Assert.assertNotNull(msg2);

      msg2.getBodyBuffer().readBytes(receivedBytes);

      ActiveMQTestBase.assertEqualsByteArrays(bytes, receivedBytes);
   } finally {
      session.close();
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:65,代码来源:SelfExpandingBufferTest.java

示例9: testSendOverBlockingNoFlowControl

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

   Configuration config = createDefaultInVMConfig().setJournalSyncNonTransactional(false);

   server = createServer(true, config, PagingTest.PAGE_SIZE, PagingTest.PAGE_MAX);
   server.getAddressSettingsRepository().getMatch("#").setAddressFullMessagePolicy(AddressFullMessagePolicy.BLOCK);

   server.start();

   final int biggerMessageSize = 10 * 1024;

   final int numberOfMessages = 500;

   locator = createInVMNonHALocator().setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setBlockOnAcknowledge(true).setProducerWindowSize(-1).setMinLargeMessageSize(1024 * 1024);

   sf = createSessionFactory(locator);

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

   session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);

   ClientProducer producer = session.createProducer(PagingTest.ADDRESS);

   ClientMessage message = null;

   byte[] body = new byte[biggerMessageSize];

   ByteBuffer bb = ByteBuffer.wrap(body);

   for (int j = 1; j <= biggerMessageSize; j++) {
      bb.put(getSamplebyte(j));
   }

   for (int i = 0; i < numberOfMessages; i++) {
      message = session.createMessage(true);

      ActiveMQBuffer bodyLocal = message.getBodyBuffer();

      bodyLocal.writeBytes(body);

      message.putIntProperty(new SimpleString("id"), i);

      producer.send(message);

      if (i % 10 == 0) {
         session.commit();
      }
   }
   session.commit();

   session.start();

   ClientConsumer cons = session.createConsumer(ADDRESS);

   for (int i = 0; i < numberOfMessages; i++) {
      message = cons.receive(5000);
      assertNotNull(message);
      message.acknowledge();

      if (i % 10 == 0) {
         session.commit();
      }
   }

   session.commit();

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

示例10: testTwoQueuesOneNoRouting

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

   clearDataRecreateServerDirs();

   Configuration config = createDefaultInVMConfig().setJournalSyncNonTransactional(false);

   server = createServer(true, config, PagingTest.PAGE_SIZE, PagingTest.PAGE_MAX);

   server.start();

   final int numberOfMessages = 1000;

   locator = createInVMNonHALocator().setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setBlockOnAcknowledge(true);

   sf = createSessionFactory(locator);

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

   session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);
   session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS.concat("-invalid"), new SimpleString(Filter.GENERIC_IGNORED_FILTER), true);

   ClientProducer producer = session.createProducer(PagingTest.ADDRESS);

   ClientMessage message = null;

   byte[] body = new byte[MESSAGE_SIZE];

   for (int i = 0; i < numberOfMessages; i++) {
      message = session.createMessage(persistentMessages);

      ActiveMQBuffer bodyLocal = message.getBodyBuffer();

      bodyLocal.writeBytes(body);

      message.putIntProperty(new SimpleString("id"), i);

      producer.send(message);
      if (i % 1000 == 0) {
         session.commit();
      }
   }

   session.commit();

   session.start();

   ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);

   for (int i = 0; i < numberOfMessages; i++) {
      message = consumer.receive(5000);
      assertNotNull(message);
      message.acknowledge();

      assertEquals(i, message.getIntProperty("id").intValue());
      if (i % 1000 == 0) {
         session.commit();
      }
   }

   session.commit();

   session.commit();

   session.commit();

   PagingStore store = server.getPagingManager().getPageStore(ADDRESS);
   store.getCursorProvider().cleanup();

   long timeout = System.currentTimeMillis() + 5000;
   while (store.isPaging() && timeout > System.currentTimeMillis()) {
      Thread.sleep(100);
   }

   // It's async, so need to wait a bit for it happening
   assertFalse(server.getPagingManager().getPageStore(ADDRESS).isPaging());
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:79,代码来源:PagingTest.java

示例11: testRollbackOnSend

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

   Configuration config = createDefaultInVMConfig();

   server = createServer(true, config, PagingTest.PAGE_SIZE, PagingTest.PAGE_MAX);

   server.start();

   final int numberOfIntegers = 256;

   final int numberOfMessages = 10;

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

   sf = createSessionFactory(locator);
   ClientSession session = sf.createSession(null, null, false, false, true, false, 0);

   session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);

   ClientProducer producer = session.createProducer(PagingTest.ADDRESS);

   ClientMessage message = null;

   for (int i = 0; i < numberOfMessages; i++) {
      message = session.createMessage(true);

      ActiveMQBuffer bodyLocal = message.getBodyBuffer();

      for (int j = 1; j <= numberOfIntegers; j++) {
         bodyLocal.writeInt(j);
      }

      message.putIntProperty(new SimpleString("id"), i);

      producer.send(message);
   }

   session.rollback();

   ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);

   session.start();

   Assert.assertNull(consumer.receiveImmediate());

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

示例12: testCommitOnSend

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

   Configuration config = createDefaultInVMConfig();

   server = createServer(true, config, PagingTest.PAGE_SIZE, PagingTest.PAGE_MAX);

   server.start();

   final int numberOfIntegers = 10;

   final int numberOfMessages = 500;

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

   sf = createSessionFactory(locator);
   ClientSession session = sf.createSession(null, null, false, false, false, false, 0);

   session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS, null, true);

   ClientProducer producer = session.createProducer(PagingTest.ADDRESS);

   ClientMessage message = null;

   for (int i = 0; i < numberOfMessages; i++) {
      message = session.createMessage(true);

      ActiveMQBuffer bodyLocal = message.getBodyBuffer();

      for (int j = 1; j <= numberOfIntegers; j++) {
         bodyLocal.writeInt(j);
      }

      message.putIntProperty(new SimpleString("id"), i);

      producer.send(message);
   }

   session.commit();

   session.close();

   locator.close();

   locator = createInVMNonHALocator();

   server.stop();

   server = createServer(true, config, PagingTest.PAGE_SIZE, PagingTest.PAGE_MAX);

   server.start();

   sf = createSessionFactory(locator);

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

   ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS);

   session.start();
   for (int i = 0; i < numberOfMessages; i++) {
      if (i == 55) {
         System.out.println("i = 55");
      }
      ClientMessage msg = consumer.receive(5000);
      Assert.assertNotNull(msg);
      msg.acknowledge();
      session.commit();
   }

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

示例13: testTwoQueuesDifferentFilters

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

   clearDataRecreateServerDirs();

   Configuration config = createDefaultInVMConfig().setJournalSyncNonTransactional(false);

   server = createServer(true, config, PagingTest.PAGE_SIZE, PagingTest.PAGE_MAX);

   server.start();

   final int numberOfMessages = 200;
   locator = createInVMNonHALocator().setClientFailureCheckPeriod(120000).setConnectionTTL(5000000).setCallTimeout(120000).setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setBlockOnAcknowledge(true);

   sf = createSessionFactory(locator);

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

   // note: if you want to change this, numberOfMessages has to be a multiple of NQUEUES
   int NQUEUES = 2;

   for (int i = 0; i < NQUEUES; i++) {
      session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS.concat("=" + i), new SimpleString("propTest=" + i), true);
   }

   ClientProducer producer = session.createProducer(PagingTest.ADDRESS);

   ClientMessage message = null;

   byte[] body = new byte[MESSAGE_SIZE];

   for (int i = 0; i < numberOfMessages; i++) {
      message = session.createMessage(persistentMessages);

      ActiveMQBuffer bodyLocal = message.getBodyBuffer();

      bodyLocal.writeBytes(body);

      message.putIntProperty("propTest", i % NQUEUES);
      message.putIntProperty("id", i);

      producer.send(message);
      if (i % 1000 == 0) {
         session.commit();
      }
   }

   session.commit();

   session.start();

   for (int nqueue = 0; nqueue < NQUEUES; nqueue++) {
      ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS.concat("=" + nqueue));

      for (int i = 0; i < (numberOfMessages / NQUEUES); i++) {
         message = consumer.receive(500000);
         assertNotNull(message);
         message.acknowledge();

         assertEquals(nqueue, message.getIntProperty("propTest").intValue());
      }

      assertNull(consumer.receiveImmediate());

      consumer.close();

      session.commit();
   }

   PagingStore store = server.getPagingManager().getPageStore(ADDRESS);
   store.getCursorProvider().cleanup();

   long timeout = System.currentTimeMillis() + 5000;
   while (store.isPaging() && timeout > System.currentTimeMillis()) {
      Thread.sleep(100);
   }

   // It's async, so need to wait a bit for it happening
   assertFalse(server.getPagingManager().getPageStore(ADDRESS).isPaging());
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:82,代码来源:PagingTest.java

示例14: testTwoQueuesAndOneInativeQueue

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

   clearDataRecreateServerDirs();

   Configuration config = createDefaultInVMConfig().setJournalSyncNonTransactional(false);

   server = createServer(true, config, PagingTest.PAGE_SIZE, PagingTest.PAGE_MAX);

   server.start();

   try {
      ServerLocator locator = createInVMNonHALocator().setClientFailureCheckPeriod(120000).setConnectionTTL(5000000).setCallTimeout(120000).setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setBlockOnAcknowledge(true);

      ClientSessionFactory sf = locator.createSessionFactory();

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

      session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS.concat("=1"), null, true);
      session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS.concat("=2"), null, true);

      // A queue with an impossible filter
      session.createQueue(PagingTest.ADDRESS, PagingTest.ADDRESS.concat("-3"), new SimpleString("nothing='something'"), true);

      PagingStore store = server.getPagingManager().getPageStore(ADDRESS);

      Queue queue = server.locateQueue(PagingTest.ADDRESS.concat("=1"));

      queue.getPageSubscription().getPagingStore().startPaging();

      ClientProducer producer = session.createProducer(PagingTest.ADDRESS);

      ClientMessage message = session.createMessage(persistentMessages);

      ActiveMQBuffer bodyLocal = message.getBodyBuffer();

      bodyLocal.writeBytes(new byte[1024]);

      producer.send(message);

      session.commit();

      session.start();

      for (int msg = 1; msg <= 2; msg++) {
         ClientConsumer consumer = session.createConsumer(PagingTest.ADDRESS.concat("=" + msg));

         message = consumer.receive(5000);
         assertNotNull(message);
         message.acknowledge();

         assertNull(consumer.receiveImmediate());

         consumer.close();
      }

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

      store.getCursorProvider().cleanup();

      waitForNotPaging(server.locateQueue(PagingTest.ADDRESS.concat("=1")));

      sf.close();

      locator.close();
   } finally {
      try {
         server.stop();
      } catch (Throwable ignored) {
      }
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:75,代码来源:PagingTest.java

示例15: testOrder1

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@Test
public void testOrder1() throws Throwable {
   boolean persistentMessages = true;

   Configuration config = createDefaultInVMConfig().setJournalSyncNonTransactional(false);

   ActiveMQServer server = createServer(true, config, PAGE_SIZE, PAGE_MAX, new HashMap<String, AddressSettings>());

   server.start();

   final int messageSize = 1024;

   final int numberOfMessages = 500;

   ServerLocator locator = createInVMNonHALocator().setClientFailureCheckPeriod(1000).setConnectionTTL(2000).setReconnectAttempts(0).setBlockOnNonDurableSend(false).setBlockOnDurableSend(false).setBlockOnAcknowledge(false).setConsumerWindowSize(1024 * 1024);

   ClientSessionFactory sf = createSessionFactory(locator);

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

   server.addAddressInfo(new AddressInfo(ADDRESS, RoutingType.ANYCAST));
   server.createQueue(ADDRESS, RoutingType.ANYCAST, ADDRESS, null, true, false);

   ClientProducer producer = session.createProducer(PagingTest.ADDRESS);

   byte[] body = new byte[messageSize];

   ByteBuffer bb = ByteBuffer.wrap(body);

   for (int j = 1; j <= messageSize; j++) {
      bb.put(getSamplebyte(j));
   }

   for (int i = 0; i < numberOfMessages; i++) {
      ClientMessage message = session.createMessage(persistentMessages);

      ActiveMQBuffer bodyLocal = message.getBodyBuffer();

      bodyLocal.writeBytes(body);

      message.putIntProperty(new SimpleString("id"), i);

      producer.send(message);
   }

   session.commit();

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


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