本文整理汇总了Java中org.apache.activemq.artemis.api.core.client.ClientConsumer.receiveImmediate方法的典型用法代码示例。如果您正苦于以下问题:Java ClientConsumer.receiveImmediate方法的具体用法?Java ClientConsumer.receiveImmediate怎么用?Java ClientConsumer.receiveImmediate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.activemq.artemis.api.core.client.ClientConsumer
的用法示例。
在下文中一共展示了ClientConsumer.receiveImmediate方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testWildcardRoutingStarInMiddle
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testWildcardRoutingStarInMiddle() throws Exception {
SimpleString addressAB = new SimpleString("a.b.c");
SimpleString addressAC = new SimpleString("a.c");
SimpleString address = new SimpleString("*.b.*");
SimpleString queueName1 = new SimpleString("Q1");
SimpleString queueName2 = new SimpleString("Q2");
SimpleString queueName = new SimpleString("Q");
clientSession.createQueue(addressAB, queueName1, null, false);
clientSession.createQueue(addressAC, queueName2, null, false);
clientSession.createQueue(address, queueName, null, false);
ClientProducer producer = clientSession.createProducer(addressAB);
ClientProducer producer2 = clientSession.createProducer(addressAC);
ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
clientSession.start();
producer.send(createTextMessage(clientSession, "m1"));
producer2.send(createTextMessage(clientSession, "m2"));
ClientMessage m = clientConsumer.receive(500);
Assert.assertNotNull(m);
Assert.assertEquals("m1", m.getBodyBuffer().readString());
m.acknowledge();
m = clientConsumer.receiveImmediate();
Assert.assertNull(m);
}
示例2: testXAInterleaveResourceSuspendWorkCommit
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testXAInterleaveResourceSuspendWorkCommit() throws Exception {
Xid xid = newXID();
Xid xid2 = newXID();
ClientProducer clientProducer = clientSession.createProducer(atestq);
ClientSession recSession = sessionFactory.createSession();
recSession.start();
ClientConsumer clientConsumer = recSession.createConsumer(atestq);
ClientMessage m1 = createTextMessage(clientSession, "m1");
ClientMessage m2 = createTextMessage(clientSession, "m2");
clientSession.start(xid, XAResource.TMNOFLAGS);
clientProducer.send(m1);
clientSession.end(xid, XAResource.TMSUSPEND);
clientSession.start(xid2, XAResource.TMNOFLAGS);
clientProducer.send(m2);
clientSession.end(xid, XAResource.TMSUCCESS);
clientSession.commit(xid, true);
ClientMessage message = clientConsumer.receiveImmediate();
assertNotNull(message);
message = clientConsumer.receiveImmediate();
assertNull(message);
clientSession.end(xid2, XAResource.TMSUCCESS);
clientSession.commit(xid2, true);
message = clientConsumer.receiveImmediate();
assertNotNull(message);
}
示例3: testBasicWildcardRoutingWithHash
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testBasicWildcardRoutingWithHash() throws Exception {
SimpleString addressAB = new SimpleString("a.b");
SimpleString addressAC = new SimpleString("a.c");
SimpleString address = new SimpleString("a.#");
SimpleString queueName1 = new SimpleString("Q1");
SimpleString queueName2 = new SimpleString("Q2");
SimpleString queueName = new SimpleString("Q");
clientSession.createQueue(addressAB, queueName1, null, false);
clientSession.createQueue(addressAC, queueName2, null, false);
clientSession.createQueue(address, queueName, null, false);
ClientProducer producer = clientSession.createProducer(addressAB);
ClientProducer producer2 = clientSession.createProducer(addressAC);
ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
clientSession.start();
producer.send(createTextMessage(clientSession, "m1"));
producer2.send(createTextMessage(clientSession, "m2"));
ClientMessage m = clientConsumer.receive(500);
Assert.assertNotNull(m);
Assert.assertEquals("m1", m.getBodyBuffer().readString());
m.acknowledge();
m = clientConsumer.receive(500);
Assert.assertNotNull(m);
Assert.assertEquals("m2", m.getBodyBuffer().readString());
m.acknowledge();
m = clientConsumer.receiveImmediate();
Assert.assertNull(m);
}
示例4: testSlowConsumerKilled
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testSlowConsumerKilled() throws Exception {
ClientSessionFactory sf = createSessionFactory(locator);
ClientSession session = addClientSession(sf.createSession(false, true, true, false));
ClientProducer producer = addClientProducer(session.createProducer(QUEUE));
assertPaging();
final int numMessages = 25;
for (int i = 0; i < numMessages; i++) {
producer.send(createTextMessage(session, "m" + i));
}
ClientConsumer consumer = addClientConsumer(session.createConsumer(QUEUE));
session.start();
Thread.sleep(3000);
try {
consumer.receiveImmediate();
fail();
} catch (ActiveMQObjectClosedException e) {
assertEquals(e.getType(), ActiveMQExceptionType.OBJECT_CLOSED);
}
}
示例5: testLargeWildcardRouting
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testLargeWildcardRouting() throws Exception {
SimpleString addressAB = new SimpleString("a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z");
SimpleString addressAC = new SimpleString("a.c");
SimpleString address = new SimpleString("a.#");
SimpleString queueName1 = new SimpleString("Q1");
SimpleString queueName2 = new SimpleString("Q2");
SimpleString queueName = new SimpleString("Q");
clientSession.createQueue(addressAB, queueName1, null, false);
clientSession.createQueue(addressAC, queueName2, null, false);
clientSession.createQueue(address, queueName, null, false);
Assert.assertEquals(2, server.getPostOffice().getBindingsForAddress(addressAB).getBindings().size());
Assert.assertEquals(2, server.getPostOffice().getBindingsForAddress(addressAC).getBindings().size());
Assert.assertEquals(1, server.getPostOffice().getBindingsForAddress(address).getBindings().size());
ClientProducer producer = clientSession.createProducer(addressAB);
ClientProducer producer2 = clientSession.createProducer(addressAC);
ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
clientSession.start();
producer.send(createTextMessage(clientSession, "m1"));
producer2.send(createTextMessage(clientSession, "m2"));
ClientMessage m = clientConsumer.receive(500);
Assert.assertNotNull(m);
Assert.assertEquals("m1", m.getBodyBuffer().readString());
m.acknowledge();
m = clientConsumer.receive(500);
Assert.assertNotNull(m);
Assert.assertEquals("m2", m.getBodyBuffer().readString());
m.acknowledge();
m = clientConsumer.receiveImmediate();
Assert.assertNull(m);
clientConsumer.close();
clientSession.deleteQueue(queueName);
Assert.assertEquals(1, server.getPostOffice().getBindingsForAddress(addressAB).getBindings().size());
Assert.assertEquals(1, server.getPostOffice().getBindingsForAddress(addressAC).getBindings().size());
Assert.assertEquals(0, server.getPostOffice().getBindingsForAddress(address).getBindings().size());
}
示例6: testReceiveImmediate
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testReceiveImmediate() throws Exception {
// forces perfect round robin
locator.setConsumerWindowSize(0);
ClientSessionFactory cf = createSessionFactory(locator);
ClientSession sendSession = cf.createSession(false, true, true);
ClientProducer cp = sendSession.createProducer(addressA);
ClientSession session = cf.createSession(false, true, true);
session.createQueue(addressA, RoutingType.ANYCAST, queueA, false);
ClientConsumer cc = session.createConsumer(queueA);
ClientConsumer cc2 = session.createConsumer(queueA);
session.start();
cp.send(sendSession.createMessage(false));
cp.send(sendSession.createMessage(false));
cp.send(sendSession.createMessage(false));
sendSession.commit();
final Queue queue = server.locateQueue(queueA);
Wait.waitFor(() -> queue.getMessageCount() == 3, 500, 100);
Assert.assertNotNull(cc2.receiveImmediate());
Assert.assertNotNull(cc.receiveImmediate());
if (cc.receiveImmediate() == null) {
Assert.assertNotNull(cc2.receiveImmediate());
}
session.close();
sendSession.close();
}
示例7: testWildcardRoutingWithHashMultiLengthAddresses
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testWildcardRoutingWithHashMultiLengthAddresses() throws Exception {
SimpleString addressAB = new SimpleString("a.b.c.f");
SimpleString addressAC = new SimpleString("a.c.f");
SimpleString address = new SimpleString("a.#.f");
SimpleString queueName1 = new SimpleString("Q1");
SimpleString queueName2 = new SimpleString("Q2");
SimpleString queueName = new SimpleString("Q");
clientSession.createQueue(addressAB, queueName1, null, false);
clientSession.createQueue(addressAC, queueName2, null, false);
clientSession.createQueue(address, queueName, null, false);
ClientProducer producer = clientSession.createProducer(addressAB);
ClientProducer producer2 = clientSession.createProducer(addressAC);
ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
clientSession.start();
producer.send(createTextMessage(clientSession, "m1"));
producer2.send(createTextMessage(clientSession, "m2"));
ClientMessage m = clientConsumer.receive(500);
Assert.assertNotNull(m);
Assert.assertEquals("m1", m.getBodyBuffer().readString());
m.acknowledge();
m = clientConsumer.receive(500);
Assert.assertNotNull(m);
Assert.assertEquals("m2", m.getBodyBuffer().readString());
m.acknowledge();
m = clientConsumer.receiveImmediate();
Assert.assertNull(m);
}
示例8: testWildcardRoutingWithHash
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testWildcardRoutingWithHash() throws Exception {
SimpleString addressAB = new SimpleString("a.b.f");
SimpleString addressAC = new SimpleString("a.c.f");
SimpleString address = new SimpleString("a.#.f");
SimpleString queueName1 = new SimpleString("Q1");
SimpleString queueName2 = new SimpleString("Q2");
SimpleString queueName = new SimpleString("Q");
clientSession.createQueue(addressAB, queueName1, null, false);
clientSession.createQueue(addressAC, queueName2, null, false);
clientSession.createQueue(address, queueName, null, false);
ClientProducer producer = clientSession.createProducer(addressAB);
ClientProducer producer2 = clientSession.createProducer(addressAC);
ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
clientSession.start();
producer.send(createTextMessage(clientSession, "m1"));
producer2.send(createTextMessage(clientSession, "m2"));
ClientMessage m = clientConsumer.receive(500);
Assert.assertNotNull(m);
Assert.assertEquals("m1", m.getBodyBuffer().readString());
m.acknowledge();
m = clientConsumer.receive(500);
Assert.assertNotNull(m);
Assert.assertEquals("m2", m.getBodyBuffer().readString());
m.acknowledge();
m = clientConsumer.receiveImmediate();
Assert.assertNull(m);
}
示例9: testWildcardRoutingWithSingleHash
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testWildcardRoutingWithSingleHash() throws Exception {
SimpleString addressAB = new SimpleString("a.b");
SimpleString addressAC = new SimpleString("a.c");
SimpleString address = new SimpleString("#");
SimpleString queueName1 = new SimpleString("Q1");
SimpleString queueName2 = new SimpleString("Q2");
SimpleString queueName = new SimpleString("Q");
clientSession.createQueue(addressAB, queueName1, null, false);
clientSession.createQueue(addressAC, queueName2, null, false);
clientSession.createQueue(address, queueName, null, false);
ClientProducer producer = clientSession.createProducer(addressAB);
ClientProducer producer2 = clientSession.createProducer(addressAC);
ClientConsumer clientConsumer = clientSession.createConsumer(queueName);
clientSession.start();
producer.send(createTextMessage(clientSession, "m1"));
producer2.send(createTextMessage(clientSession, "m2"));
ClientMessage m = clientConsumer.receive(500);
Assert.assertNotNull(m);
Assert.assertEquals("m1", m.getBodyBuffer().readString());
m.acknowledge();
m = clientConsumer.receive(500);
Assert.assertNotNull(m);
Assert.assertEquals("m2", m.getBodyBuffer().readString());
m.acknowledge();
m = clientConsumer.receiveImmediate();
Assert.assertNull(m);
}
示例10: testLargeMessageFileLeak
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testLargeMessageFileLeak() throws Exception {
OperatingSystemMXBean os = ManagementFactory.getOperatingSystemMXBean();
// only run this on *nix systems which will have the com.sun.management.UnixOperatingSystemMXBean (needed to check open file count)
Assume.assumeTrue(os instanceof UnixOperatingSystemMXBean);
long fdBaseline = ((UnixOperatingSystemMXBean) os).getOpenFileDescriptorCount();
final int SIZE = 2 * 1024;
SimpleString dla = new SimpleString("DLA");
SimpleString qName = new SimpleString("q1");
SimpleString adName = new SimpleString("ad1");
AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(1).setDeadLetterAddress(dla);
server.getAddressSettingsRepository().addMatch(adName.toString(), addressSettings);
SimpleString dlq = new SimpleString("DLQ1");
clientSession.createQueue(dla, dlq, null, false);
clientSession.createQueue(adName, qName, null, false);
for (int i = 0; i < 10; i++) {
ClientProducer producer = clientSession.createProducer(adName);
ClientMessage clientFile = clientSession.createMessage(true);
clientFile.setBodyInputStream(ActiveMQTestBase.createFakeLargeStream(SIZE));
producer.send(clientFile);
clientSession.start();
ClientConsumer clientConsumer = clientSession.createConsumer(qName);
ClientMessage m = clientConsumer.receive(500);
m.acknowledge();
Assert.assertNotNull(m);
// force a cancel
clientSession.rollback();
m = clientConsumer.receiveImmediate();
Assert.assertNull(m);
clientConsumer.close();
}
assertTrue("File descriptors are leaking", ((UnixOperatingSystemMXBean) os).getOpenFileDescriptorCount() - fdBaseline <= 0);
}
示例11: assertNoMoreMessages
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
/**
* @param consumer
* @throws ActiveMQException
*/
private void assertNoMoreMessages(ClientConsumer consumer) throws ActiveMQException {
ClientMessage msg = consumer.receiveImmediate();
Assert.assertNull("there should be no more messages to receive! " + msg, msg);
}
示例12: testTransactedDuplicateDetection3
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testTransactedDuplicateDetection3() throws Exception {
ClientSession session = sf.createSession(false, false, false);
session.start();
final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");
session.createQueue(queueName, queueName, null, false);
ClientProducer producer = session.createProducer(queueName);
ClientConsumer consumer = session.createConsumer(queueName);
ClientMessage message = createMessage(session, 0);
SimpleString dupID1 = new SimpleString("abcdefg");
message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID1.getData());
producer.send(message);
message = createMessage(session, 1);
SimpleString dupID2 = new SimpleString("hijklmno");
message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID2.getData());
producer.send(message);
session.commit();
// These next two should get rejected
message = createMessage(session, 2);
message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID1.getData());
producer.send(message);
message = createMessage(session, 3);
message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID2.getData());
producer.send(message);
try {
session.commit();
} catch (Exception e) {
session.rollback();
}
message = consumer.receive(250);
Assert.assertEquals(0, message.getObjectProperty(propKey));
message = consumer.receive(250);
Assert.assertEquals(1, message.getObjectProperty(propKey));
message = consumer.receiveImmediate();
Assert.assertNull(message);
}
示例13: testLoad
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testLoad() throws Throwable {
ActiveMQServer server2 = createServer(true, false);
server2.getConfiguration().setJournalFileSize(10 * 1024 * 1024);
server2.getConfiguration().setJournalMinFiles(10);
server2.getConfiguration().setJournalCompactMinFiles(3);
server2.getConfiguration().setJournalCompactPercentage(50);
for (int i = 0; i < 10; i++) {
server2.start();
ServerLocator locator = createInVMNonHALocator().setMinLargeMessageSize(1024 * 1024).setBlockOnDurableSend(false);
ClientSessionFactory sf = createSessionFactory(locator);
ClientSession session = sf.createSession(true, true);
try {
session.createQueue("slow-queue", RoutingType.MULTICAST, "slow-queue");
} catch (Exception ignored) {
}
session.start();
ClientConsumer consumer = session.createConsumer("slow-queue");
while (true) {
System.out.println("Received message from previous");
ClientMessage msg = consumer.receiveImmediate();
if (msg == null) {
break;
}
msg.acknowledge();
}
session.close();
produceMessages(sf, 30000);
server2.stop();
}
}
示例14: testManyMessagesReceivedWithRollback
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testManyMessagesReceivedWithRollback() throws Exception {
Xid xid = new XidImpl("bq1".getBytes(), 4, "gtid1".getBytes());
ClientProducer producer = clientSession.createProducer(address);
ClientConsumer consumer = clientSessionXa.createConsumer(qName1);
SimpleString rh = new SimpleString("SMID1");
ClientMessage m1 = createTextMessage(clientSession, "m1");
m1.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
m1.setDurable(true);
ClientMessage m2 = createTextMessage(clientSession, "m2");
m2.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
m2.setDurable(true);
ClientMessage m3 = createTextMessage(clientSession, "m3");
m3.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
m3.setDurable(true);
ClientMessage m4 = createTextMessage(clientSession, "m4");
m4.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
m4.setDurable(true);
ClientMessage m5 = createTextMessage(clientSession, "m5");
m5.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
m5.setDurable(true);
ClientMessage m6 = createTextMessage(clientSession, "m6");
m6.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
m6.setDurable(true);
clientSessionXa.start(xid, XAResource.TMNOFLAGS);
clientSessionXa.start();
producer.send(m1);
ClientMessage m = consumer.receive(1000);
Assert.assertNotNull(m);
Assert.assertEquals(m.getBodyBuffer().readString(), "m1");
producer.send(m2);
m = consumer.receive(1000);
Assert.assertNotNull(m);
Assert.assertEquals(m.getBodyBuffer().readString(), "m2");
producer.send(m3);
m = consumer.receive(1000);
Assert.assertNotNull(m);
Assert.assertEquals(m.getBodyBuffer().readString(), "m3");
producer.send(m4);
m = consumer.receive(1000);
Assert.assertNotNull(m);
Assert.assertEquals(m.getBodyBuffer().readString(), "m4");
producer.send(m5);
m = consumer.receive(1000);
Assert.assertNotNull(m);
Assert.assertEquals(m.getBodyBuffer().readString(), "m5");
producer.send(m6);
m = consumer.receive(1000);
Assert.assertNotNull(m);
Assert.assertEquals(m.getBodyBuffer().readString(), "m6");
clientSessionXa.end(xid, XAResource.TMSUCCESS);
clientSessionXa.prepare(xid);
clientSession.close();
clientSessionXa.close();
restartServer();
clientSessionXa.rollback(xid);
consumer = clientSession.createConsumer(qName1);
clientSession.start();
m = consumer.receive(1000);
Assert.assertNotNull(m);
m.acknowledge();
Assert.assertEquals(m.getBodyBuffer().readString(), "m6");
m = consumer.receiveImmediate();
Assert.assertNull(m);
}
示例15: testManyMessagesReceivedAndCancelled
import org.apache.activemq.artemis.api.core.client.ClientConsumer; //导入方法依赖的package包/类
@Test
public void testManyMessagesReceivedAndCancelled() throws Exception {
ClientProducer producer = clientSession.createProducer(address);
ClientConsumer consumer = clientSession.createConsumer(qName1);
SimpleString rh = new SimpleString("SMID1");
ClientMessage m1 = createTextMessage(clientSession, "m1");
m1.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
ClientMessage m2 = createTextMessage(clientSession, "m2");
m2.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
ClientMessage m3 = createTextMessage(clientSession, "m3");
m3.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
ClientMessage m4 = createTextMessage(clientSession, "m4");
m4.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
ClientMessage m5 = createTextMessage(clientSession, "m5");
m5.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
ClientMessage m6 = createTextMessage(clientSession, "m6");
m6.putStringProperty(Message.HDR_LAST_VALUE_NAME, rh);
clientSession.start();
producer.send(m1);
ClientMessage m = consumer.receive(1000);
Assert.assertNotNull(m);
Assert.assertEquals(m.getBodyBuffer().readString(), "m1");
producer.send(m2);
m = consumer.receive(1000);
Assert.assertNotNull(m);
Assert.assertEquals(m.getBodyBuffer().readString(), "m2");
producer.send(m3);
m = consumer.receive(1000);
Assert.assertNotNull(m);
Assert.assertEquals(m.getBodyBuffer().readString(), "m3");
producer.send(m4);
m = consumer.receive(1000);
Assert.assertNotNull(m);
Assert.assertEquals(m.getBodyBuffer().readString(), "m4");
producer.send(m5);
m = consumer.receive(1000);
Assert.assertNotNull(m);
Assert.assertEquals(m.getBodyBuffer().readString(), "m5");
producer.send(m6);
m = consumer.receive(1000);
Assert.assertNotNull(m);
Assert.assertEquals(m.getBodyBuffer().readString(), "m6");
consumer.close();
consumer = clientSession.createConsumer(qName1);
m = consumer.receive(1000);
Assert.assertNotNull(m);
m.acknowledge();
Assert.assertEquals(m.getBodyBuffer().readString(), "m6");
m = consumer.receiveImmediate();
Assert.assertNull(m);
}