本文整理汇总了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));
}
});
}
示例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();
}
示例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();
}
示例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());
}
示例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());
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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());
}
示例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());
}
示例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();
}