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


Java ClientMessage.putBytesProperty方法代码示例

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


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

示例1: sendMessages

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
private void sendMessages() throws Exception {
   ClientSession session = sf.createSession(true, true);

   String filter = null;
   session.createAddress(SimpleString.toSimpleString(ADDRESS), RoutingType.MULTICAST, false);
   session.createQueue(ADDRESS, RoutingType.MULTICAST, ADDRESS, filter, true);
   ClientProducer producer = session.createProducer(ADDRESS);

   for (int i = 0; i < numMessages; i++) {
      ClientMessage message = session.createMessage(true);
      setBody(i, message);
      message.putIntProperty("int", i);
      message.putShortProperty("short", (short) i);
      message.putByteProperty("byte", (byte) i);
      message.putFloatProperty("float", floatValue(i));
      message.putStringProperty(SIMPLE_STRING_KEY, new SimpleString(Integer.toString(i)));
      message.putBytesProperty("byte[]", byteArray(i));
      message.putObjectProperty("null-value", null);
      producer.send(message);
   }
   session.commit();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:23,代码来源:MessagePropertyTest.java

示例2: testRollbackThenSend

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@Test
public void testRollbackThenSend() 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());
   message.putStringProperty("key", dupID1.toString());
   producer.send(message);

   session.rollback();

   message = createMessage(session, 0);
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID1.getData());
   message.putStringProperty("key", dupID1.toString());
   producer.send(message);

   session.commit();

   message = consumer.receive(5000);
   assertNotNull(message);
   assertTrue(message.getStringProperty("key").equals(dupID1.toString()));
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:34,代码来源:DuplicateDetectionTest.java

示例3: testSimpleDuplicateDetecion

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

   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);
   producer.send(message);
   ClientMessage message2 = consumer.receive(1000);
   Assert.assertEquals(0, message2.getObjectProperty(propKey));

   message = createMessage(session, 1);
   SimpleString dupID = new SimpleString("abcdefg");
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
   producer.send(message);
   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_DUPLICATE_DETECTION_ID, dupID.getData());
   producer.send(message);
   message2 = consumer.receiveImmediate();
   Assert.assertNull(message2);

   // Now try with a different id

   message = createMessage(session, 4);
   SimpleString dupID2 = new SimpleString("hijklmnop");
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID2.getData());
   producer.send(message);
   message2 = consumer.receive(1000);
   Assert.assertEquals(4, message2.getObjectProperty(propKey));

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

   message = createMessage(session, 6);
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
   producer.send(message);
   message2 = consumer.receiveImmediate();
   Assert.assertNull(message2);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:60,代码来源:DuplicateDetectionTest.java

示例4: testDuplicateIDCacheMemoryRetention

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的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

示例5: testTransactedDuplicateDetection3

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的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

示例6: addPayload

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@Override
protected void addPayload(ClientMessage message) {
   message.putBytesProperty("payload", new byte[20 * 1024]);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:5,代码来源:AlmostLargeAsynchronousFailoverTest.java

示例7: testFailMessagesDuplicates

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

   Configuration config = createDefaultInVMConfig();

   HashMap<String, AddressSettings> settings = new HashMap<>();

   AddressSettings set = new AddressSettings();
   set.setAddressFullMessagePolicy(AddressFullMessagePolicy.FAIL);

   settings.put(PagingTest.ADDRESS.toString(), set);

   server = createServer(true, config, 1024, 5 * 1024, settings);

   server.start();

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

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

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

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

   ClientMessage message = session.createMessage(true);

   int biggerMessageSize = 2048;
   byte[] body = new byte[biggerMessageSize];
   ByteBuffer bb = ByteBuffer.wrap(body);
   for (int j = 1; j <= biggerMessageSize; j++) {
      bb.put(getSamplebyte(j));
   }

   message.getBodyBuffer().writeBytes(body);

   // Send enough messages to fill up the address.
   producer.send(message);
   producer.send(message);
   producer.send(message);

   Queue q = (Queue) server.getPostOffice().getBinding(ADDRESS).getBindable();
   Wait.waitFor(() -> 3 == getMessageCount(q));
   Assert.assertEquals(3, getMessageCount(q));

   // send a message with a dup ID that should fail b/c the address is full
   SimpleString dupID1 = new SimpleString("abcdefg");
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID1.getData());
   message.putStringProperty("key", dupID1.toString());

   validateExceptionOnSending(producer, message);

   Assert.assertEquals(3, getMessageCount(q));

   ClientConsumer consumer = session.createConsumer(ADDRESS);

   session.start();

   // Receive a message...this should open space for another message
   ClientMessage msgReceived = consumer.receive(5000);
   assertNotNull(msgReceived);
   msgReceived.acknowledge();
   session.commit(); // to make sure it's on the server (roundtrip)
   consumer.close();

   Assert.assertEquals(2, getMessageCount(q));

   producer.send(message);

   Assert.assertEquals(3, getMessageCount(q));

   consumer = session.createConsumer(ADDRESS);

   for (int i = 0; i < 3; i++) {
      msgReceived = consumer.receive(5000);
      assertNotNull(msgReceived);
      msgReceived.acknowledge();
      session.commit();
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:82,代码来源:PagingTest.java

示例8: testTransactedDuplicateDetection2

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@Test
public void testTransactedDuplicateDetection2() 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 dupID = new SimpleString("abcdefg");
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
   producer.send(message);

   session.rollback();

   // Should be able to resend it and not get rejected since transaction didn't commit

   message = createMessage(session, 1);
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
   producer.send(message);

   session.commit();

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

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

示例9: testTransactedDuplicateDetection1

import org.apache.activemq.artemis.api.core.client.ClientMessage; //导入方法依赖的package包/类
@Test
public void testTransactedDuplicateDetection1() 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);

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

   session.close();

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

   session.start();

   producer = session.createProducer(queueName);

   ClientConsumer consumer = session.createConsumer(queueName);

   // Should be able to resend it and not get rejected since transaction didn't commit

   message = createMessage(session, 1);
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
   producer.send(message);

   session.commit();

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

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

示例10: testEntireTransactionRejected

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

   session.start();

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

   final SimpleString queue2 = new SimpleString("queue2");

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

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

   ClientProducer producer = session.createProducer(queueName);

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

   ClientMessage message2 = createMessage(session, 0);
   ClientProducer producer2 = session.createProducer(queue2);
   producer2.send(message2);

   session.commit();

   session.close();

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

   session.start();

   ClientConsumer consumer2 = session.createConsumer(queue2);

   producer = session.createProducer(queueName);

   message = createMessage(session, 1);
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
   producer.send(message);

   message = createMessage(session, 2);
   producer.send(message);

   message = createMessage(session, 3);
   producer.send(message);

   message = createMessage(session, 4);
   producer.send(message);

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

   try {
      session.commit();
   } catch (ActiveMQDuplicateIdException die) {
      session.rollback();
   } catch (ActiveMQException e) {
      fail("Invalid Exception type:" + e.getType());
   }

   ClientConsumer consumer = session.createConsumer(queueName);

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

   message = consumer.receiveImmediate();
   Assert.assertNull(message);

   message = consumer2.receive(5000);
   assertNotNull(message);

   message.acknowledge();

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

示例11: testXADuplicateDetection1

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

   Xid xid = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());

   session.start(xid, XAResource.TMNOFLAGS);

   session.start();

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

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

   ClientProducer producer = session.createProducer(queueName);

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

   session.end(xid, XAResource.TMSUCCESS);

   session.close();

   Xid xid2 = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());

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

   session.start(xid2, XAResource.TMNOFLAGS);

   session.start();

   producer = session.createProducer(queueName);

   ClientConsumer consumer = session.createConsumer(queueName);

   // Should be able to resend it and not get rejected since transaction didn't commit

   message = createMessage(session, 1);
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
   producer.send(message);

   session.end(xid2, XAResource.TMSUCCESS);

   session.prepare(xid2);

   session.commit(xid2, false);

   Xid xid3 = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());

   session.start(xid3, XAResource.TMNOFLAGS);

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

   message = consumer.receiveImmediate();
   Assert.assertNull(message);

   DuplicateDetectionTest.log.info("ending session");
   session.end(xid3, XAResource.TMSUCCESS);

   DuplicateDetectionTest.log.info("preparing session");
   session.prepare(xid3);

   DuplicateDetectionTest.log.info("committing session");
   session.commit(xid3, false);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:69,代码来源:DuplicateDetectionTest.java

示例12: testXADuplicateDetection2

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

   Xid xid = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());

   session.start(xid, XAResource.TMNOFLAGS);

   session.start();

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

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

   ClientProducer producer = session.createProducer(queueName);

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

   session.end(xid, XAResource.TMSUCCESS);

   session.rollback(xid);

   session.close();

   Xid xid2 = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());

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

   session.start(xid2, XAResource.TMNOFLAGS);

   session.start();

   producer = session.createProducer(queueName);

   ClientConsumer consumer = session.createConsumer(queueName);

   // Should be able to resend it and not get rejected since transaction didn't commit

   message = createMessage(session, 1);
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
   producer.send(message);

   session.end(xid2, XAResource.TMSUCCESS);

   session.prepare(xid2);

   session.commit(xid2, false);

   Xid xid3 = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());

   session.start(xid3, XAResource.TMNOFLAGS);

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

   message = consumer.receiveImmediate();
   Assert.assertNull(message);

   DuplicateDetectionTest.log.info("ending session");
   session.end(xid3, XAResource.TMSUCCESS);

   DuplicateDetectionTest.log.info("preparing session");
   session.prepare(xid3);

   DuplicateDetectionTest.log.info("committing session");
   session.commit(xid3, false);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:71,代码来源:DuplicateDetectionTest.java

示例13: testXADuplicateDetection3

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

   Xid xid = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());

   session.start(xid, XAResource.TMNOFLAGS);

   session.start();

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

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

   ClientProducer producer = session.createProducer(queueName);

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

   session.end(xid, XAResource.TMSUCCESS);

   session.prepare(xid);

   session.close();

   Xid xid2 = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());

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

   session.start(xid2, XAResource.TMNOFLAGS);

   session.start();

   producer = session.createProducer(queueName);

   ClientConsumer consumer = session.createConsumer(queueName);

   // Should NOT be able to resend it

   message = createMessage(session, 1);
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
   producer.send(message);

   session.end(xid2, XAResource.TMSUCCESS);

   session.prepare(xid2);

   session.commit(xid2, false);

   Xid xid3 = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());

   session.start(xid3, XAResource.TMNOFLAGS);

   consumer.receive(250);

   message = consumer.receiveImmediate();
   Assert.assertNull(message);

   DuplicateDetectionTest.log.info("ending session");
   session.end(xid3, XAResource.TMSUCCESS);

   DuplicateDetectionTest.log.info("preparing session");
   session.prepare(xid3);

   DuplicateDetectionTest.log.info("committing session");
   session.commit(xid3, false);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:70,代码来源:DuplicateDetectionTest.java

示例14: testXADuplicateDetectionPrepareAndRollback

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

   Xid xid = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());

   session.start(xid, XAResource.TMNOFLAGS);

   session.start();

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

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

   ClientProducer producer = session.createProducer(queueName);

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

   session.end(xid, XAResource.TMSUCCESS);

   session.prepare(xid);

   session.rollback(xid);

   session.close();

   Xid xid2 = new XidImpl("xa2".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());

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

   session.start(xid2, XAResource.TMNOFLAGS);

   session.start();

   producer = session.createProducer(queueName);

   producer.send(message);

   session.end(xid2, XAResource.TMSUCCESS);

   session.prepare(xid2);

   session.commit(xid2, false);

   session.close();

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

   session.start();

   ClientConsumer consumer = session.createConsumer(queueName);

   ClientMessage msgRec = consumer.receive(5000);
   assertNotNull(msgRec);
   msgRec.acknowledge();

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

示例15: testXADuplicateDetectionPrepareAndRollbackStopServer

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

   Xid xid = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());

   session.start(xid, XAResource.TMNOFLAGS);

   session.start();

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

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

   ClientProducer producer = session.createProducer(queueName);

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

   session.end(xid, XAResource.TMSUCCESS);

   session.prepare(xid);

   session.close();

   server.stop();

   waitForServerToStop(server);

   server.start();

   sf = createSessionFactory(locator);

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

   session.start(xid, XAResource.TMJOIN);

   session.end(xid, XAResource.TMSUCCESS);

   session.rollback(xid);

   session.close();

   Xid xid2 = new XidImpl("xa2".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());

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

   session.start(xid2, XAResource.TMNOFLAGS);

   session.start();

   producer = session.createProducer(queueName);

   producer.send(message);

   session.end(xid2, XAResource.TMSUCCESS);

   session.prepare(xid2);

   session.commit(xid2, false);

   session.close();

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

   session.start();

   ClientConsumer consumer = session.createConsumer(queueName);

   ClientMessage msgRec = consumer.receive(5000);
   assertNotNull(msgRec);
   msgRec.acknowledge();

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


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