本文整理汇总了Java中org.apache.activemq.artemis.api.core.client.ClientSession.createTemporaryQueue方法的典型用法代码示例。如果您正苦于以下问题:Java ClientSession.createTemporaryQueue方法的具体用法?Java ClientSession.createTemporaryQueue怎么用?Java ClientSession.createTemporaryQueue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.activemq.artemis.api.core.client.ClientSession
的用法示例。
在下文中一共展示了ClientSession.createTemporaryQueue方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testRouteToSingleTemporaryQueue
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testRouteToSingleTemporaryQueue() throws Exception {
ClientSession sendSession = cf.createSession(false, true, true);
sendSession.createTemporaryQueue(addressA, queueA);
int numMessages = 300;
ClientProducer p = sendSession.createProducer(addressA);
for (int i = 0; i < numMessages; i++) {
p.send(sendSession.createMessage(false));
}
ClientSession session = cf.createSession(false, true, true);
ClientConsumer c1 = session.createConsumer(queueA);
session.start();
for (int i = 0; i < numMessages; i++) {
ClientMessage m = c1.receive(5000);
Assert.assertNotNull(m);
m.acknowledge();
}
Assert.assertNull(c1.receiveImmediate());
sendSession.close();
session.close();
}
示例2: testStompProtocolManagerLeak
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
@BMRules(
rules = {@BMRule(
name = "StompProtocolManager Leak Server Rule",
targetClass = "org.apache.activemq.artemis.core.protocol.stomp.StompProtocolManager",
targetMethod = "onNotification(org.apache.activemq.artemis.core.server.management.Notification)",
targetLocation = "EXIT",
helper = "org.apache.activemq.artemis.tests.extras.byteman.StompInternalStateTest",
action = "verifyBindingAddRemove($1, $0.destinations)")})
public void testStompProtocolManagerLeak() throws Exception {
ClientSession session = null;
try {
assertNull(resultTestStompProtocolManagerLeak);
ServerLocator locator = createNettyNonHALocator();
ClientSessionFactory factory = createSessionFactory(locator);
session = factory.createSession();
session.createTemporaryQueue(STOMP_QUEUE_NAME, STOMP_QUEUE_NAME);
session.deleteQueue(STOMP_QUEUE_NAME);
assertNull(resultTestStompProtocolManagerLeak);
} finally {
if (session != null) {
session.close();
}
}
}
示例3: createSubscription
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
public ClientSession createSubscription(String subscriptionName, boolean durable) {
ClientSession session = null;
try {
session = sessionFactory.createSession();
if (durable) {
session.createQueue(destination, subscriptionName, true);
} else {
session.createTemporaryQueue(destination, subscriptionName);
}
return session;
} catch (ActiveMQException e) {
throw new RuntimeException(e);
}
}
示例4: testRequest
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testRequest() throws Exception {
final SimpleString key = RandomUtil.randomSimpleString();
long value = RandomUtil.randomLong();
SimpleString requestAddress = new SimpleString("AdTest");
SimpleString requestQueue = RandomUtil.randomSimpleString();
final ClientSession session = sf.createSession(false, true, true);
session.start();
session.createTemporaryQueue(requestAddress, requestQueue);
ClientConsumer requestConsumer = session.createConsumer(requestQueue);
requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));
ClientRequestor requestor = new ClientRequestor(session, requestAddress);
ClientMessage request = session.createMessage(false);
request.putLongProperty(key, value);
ClientMessage reply = requestor.request(request, 500);
Assert.assertNotNull("reply was not received", reply);
Assert.assertEquals(value, reply.getObjectProperty(key));
Thread.sleep(5000);
session.close();
}
示例5: testTwoRequests
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testTwoRequests() throws Exception {
final SimpleString key = RandomUtil.randomSimpleString();
long value = RandomUtil.randomLong();
SimpleString requestAddress = RandomUtil.randomSimpleString();
SimpleString requestQueue = RandomUtil.randomSimpleString();
ClientSessionFactory sf = createSessionFactory(locator);
final ClientSession session = sf.createSession(false, true, true);
session.start();
session.createTemporaryQueue(requestAddress, requestQueue);
ClientConsumer requestConsumer = session.createConsumer(requestQueue);
requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));
ClientRequestor requestor = new ClientRequestor(session, requestAddress);
ClientMessage request = session.createMessage(false);
request.putLongProperty(key, value);
ClientMessage reply = requestor.request(request, 500);
Assert.assertNotNull("reply was not received", reply);
Assert.assertEquals(value, reply.getObjectProperty(key));
request = session.createMessage(false);
request.putLongProperty(key, value + 1);
reply = requestor.request(request, 500);
Assert.assertNotNull("reply was not received", reply);
Assert.assertEquals(value + 1, reply.getObjectProperty(key));
session.close();
}
示例6: testClose
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testClose() throws Exception {
final SimpleString key = RandomUtil.randomSimpleString();
long value = RandomUtil.randomLong();
SimpleString requestAddress = RandomUtil.randomSimpleString();
SimpleString requestQueue = RandomUtil.randomSimpleString();
ClientSessionFactory sf = createSessionFactory(locator);
final ClientSession session = sf.createSession(false, true, true);
session.start();
session.createTemporaryQueue(requestAddress, requestQueue);
ClientConsumer requestConsumer = session.createConsumer(requestQueue);
requestConsumer.setMessageHandler(new SimpleMessageHandler(key, session));
final ClientRequestor requestor = new ClientRequestor(session, requestAddress);
ClientMessage request = session.createMessage(false);
request.putLongProperty(key, value);
ClientMessage reply = requestor.request(request, 500);
Assert.assertNotNull("reply was not received", reply);
Assert.assertEquals(value, reply.getObjectProperty(key));
request = session.createMessage(false);
request.putLongProperty(key, value + 1);
requestor.close();
ActiveMQAction activeMQAction = new ActiveMQAction() {
@Override
public void run() throws Exception {
requestor.request(session.createMessage(false), 500);
}
};
ActiveMQTestBase.expectActiveMQException("can not send a request on a closed ClientRequestor", ActiveMQExceptionType.OBJECT_CLOSED, activeMQAction);
}
示例7: testTemporaryTrue
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testTemporaryTrue() throws Exception {
ClientSession session = createSessionFactory(locator).createSession(false, true, true);
session.createTemporaryQueue(address, queueName);
Binding binding = server.getPostOffice().getBinding(queueName);
Queue q = (Queue) binding.getBindable();
Assert.assertTrue(q.isTemporary());
session.close();
}
示例8: testSendToTempQueueFromAnotherClusterNode
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
/**
* https://jira.jboss.org/jira/browse/HORNETQ-286
*
* the test checks that the temp queue is properly propagated to the cluster
* (assuming we wait for the bindings)
*/
@Test
public void testSendToTempQueueFromAnotherClusterNode() throws Exception {
setupCluster();
startServers(0, 1);
setupSessionFactory(0, isNetty());
setupSessionFactory(1, isNetty());
String tempAddress = "queues.tempaddress";
String tempQueue = "tempqueue";
// create temp queue on node #0
ClientSession session = sfs[0].createSession(false, true, true);
session.createTemporaryQueue(tempAddress, tempQueue);
ClientConsumer consumer = session.createConsumer(tempQueue);
// check the binding is created on node #1
waitForBindings(1, tempAddress, 1, 1, false);
// send to the temp address on node #1
send(1, tempAddress, 10, false, null);
session.start();
// check consumer bound to node #0 receives from the temp queue
for (int j = 0; j < 10; j++) {
ClientMessage message = consumer.receive(5000);
if (message == null) {
Assert.assertNotNull("consumer did not receive message on temp queue " + j, message);
}
message.acknowledge();
}
consumer.close();
session.deleteQueue(tempQueue);
session.close();
}
示例9: testDuplicateIDCacheMemoryRetention
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的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());
}
示例10: testSendRegularAfterCompression
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testSendRegularAfterCompression() throws Exception {
ActiveMQServer server = createServer(true, isNetty());
server.start();
ClientSessionFactory sf = createSessionFactory(locator);
ClientSession session = addClientSession(sf.createSession(false, true, true));
session.createTemporaryQueue(ADDRESS, ADDRESS);
ClientProducer producer = session.createProducer(ADDRESS);
int minLargeSize = locator.getMinLargeMessageSize();
TestLargeMessageInputStream input = new TestLargeMessageInputStream(minLargeSize);
adjustLargeCompression(true, input, 1024);
int num = 1;
for (int i = 0; i < num; i++) {
ClientMessage clientFile = session.createMessage(true);
clientFile.setBodyInputStream(input.clone());
producer.send(clientFile);
}
session.start();
//no file should be in the dir as we send it as regular
validateNoFilesOnLargeDir();
ClientConsumer consumer = session.createConsumer(ADDRESS);
for (int j = 0; j < num; j++) {
ClientMessage msg1 = consumer.receive(1000);
Assert.assertNotNull(msg1);
for (int i = 0; i < input.getSize(); i++) {
byte b = msg1.getBodyBuffer().readByte();
Assert.assertEquals("incorrect char ", input.getChar(i), b);
}
msg1.acknowledge();
}
session.commit();
consumer.close();
session.close();
}
示例11: testSendLargeAfterUnableToSendRegular
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testSendLargeAfterUnableToSendRegular() throws Exception {
ActiveMQServer server = createServer(true, isNetty());
server.start();
//reduce the minLargeMessageSize to make the test faster
locator.setMinLargeMessageSize(5 * 1024);
ClientSessionFactory sf = createSessionFactory(locator);
ClientSession session = addClientSession(sf.createSession(false, false, false));
session.createTemporaryQueue(ADDRESS, ADDRESS);
ClientProducer producer = session.createProducer(ADDRESS);
int minLargeSize = locator.getMinLargeMessageSize();
TestLargeMessageInputStream input = new TestLargeMessageInputStream(minLargeSize);
input.setSize(80 * minLargeSize);
adjustLargeCompression(false, input, 40 * minLargeSize);
int num = 10;
for (int i = 0; i < num; i++) {
ClientMessage clientFile = session.createMessage(true);
clientFile.setBodyInputStream(input.clone());
producer.send(clientFile);
}
session.commit();
session.start();
//no file should be in the dir as we send it as regular
validateNoFilesOnLargeDir(server.getConfiguration().getLargeMessagesDirectory(), num);
ClientConsumer consumer = session.createConsumer(ADDRESS);
for (int j = 0; j < num; j++) {
ClientMessage msg1 = consumer.receive(1000);
Assert.assertNotNull(msg1);
for (int i = 0; i < input.getSize(); i++) {
byte b = msg1.getBodyBuffer().readByte();
Assert.assertEquals("incorrect char", input.getChar(i), b);
}
msg1.acknowledge();
}
session.commit();
consumer.close();
session.close();
}
示例12: doSimpleSendAfterFailover
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
private void doSimpleSendAfterFailover(final boolean durable, final boolean temporary) throws Exception {
locator.setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setBlockOnAcknowledge(true).setReconnectAttempts(300).setRetryInterval(100);
sf = createSessionFactoryAndWaitForTopology(locator, 2);
ClientSession session = createSession(sf, true, true, 0);
if (temporary) {
session.createTemporaryQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null);
} else {
session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, durable);
}
ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS);
ClientConsumer consumer = session.createConsumer(FailoverTestBase.ADDRESS);
session.start();
crash(session);
sendMessagesSomeDurable(session, producer);
receiveMessages(consumer);
}
示例13: testRecreateConsumerOverServerFailure
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testRecreateConsumerOverServerFailure() throws Exception {
ServerLocator serverWithReattach = createInVMNonHALocator().setReconnectAttempts(30).setRetryInterval(1000).setConfirmationWindowSize(-1).setConnectionTTL(TemporaryQueueTest.CONNECTION_TTL).setClientFailureCheckPeriod(TemporaryQueueTest.CONNECTION_TTL / 3);
ClientSessionFactory reattachSF = createSessionFactory(serverWithReattach);
ClientSession session = reattachSF.createSession(false, false);
session.createTemporaryQueue("tmpAd", "tmpQ");
ClientConsumer consumer = session.createConsumer("tmpQ");
ClientProducer prod = session.createProducer("tmpAd");
session.start();
RemotingConnectionImpl conn = (RemotingConnectionImpl) ((ClientSessionInternal) session).getConnection();
conn.fail(new ActiveMQIOErrorException());
prod.send(session.createMessage(false));
session.commit();
assertNotNull(consumer.receive(1000));
session.close();
reattachSF.close();
serverWithReattach.close();
}
示例14: testCloseConsumer
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testCloseConsumer() throws Exception {
final int messageSize = (int) (3.5 * ActiveMQClient.DEFAULT_MIN_LARGE_MESSAGE_SIZE);
ClientSession session = null;
ActiveMQServer server = createServer(true, isNetty(), storeType);
server.start();
ClientSessionFactory sf = addSessionFactory(createSessionFactory(locator));
session = addClientSession(sf.createSession(false, false, false));
session.createTemporaryQueue(ADDRESS, ADDRESS);
ClientProducer producer = session.createProducer(ADDRESS);
Message clientFile = createLargeClientMessageStreaming(session, messageSize, true);
producer.send(clientFile);
session.commit();
session.start();
ClientConsumer consumer = session.createConsumer(ADDRESS);
ClientMessage msg1 = consumer.receive(1000);
msg1.acknowledge();
session.commit();
Assert.assertNotNull(msg1);
consumer.close();
try {
msg1.getBodyBuffer().readByte();
Assert.fail("Exception was expected");
} catch (final Exception ignored) {
// empty on purpose
}
session.close();
validateNoFilesOnLargeDir();
}
示例15: testLargeMessageCompression
import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testLargeMessageCompression() throws Exception {
final int messageSize = (int) (3.5 * ActiveMQClient.DEFAULT_MIN_LARGE_MESSAGE_SIZE);
ActiveMQServer server = createServer(true, isNetty());
server.start();
ClientSessionFactory sf = createSessionFactory(locator);
ClientSession session = addClientSession(sf.createSession(false, false, false));
session.createTemporaryQueue(ADDRESS, ADDRESS);
ClientProducer producer = session.createProducer(ADDRESS);
Message clientFile = createLargeClientMessageStreaming(session, messageSize, true);
producer.send(clientFile);
session.commit();
session.start();
ClientConsumer consumer = session.createConsumer(ADDRESS);
ClientMessage msg1 = consumer.receive(1000);
Assert.assertNotNull(msg1);
for (int i = 0; i < messageSize; i++) {
byte b = msg1.getBodyBuffer().readByte();
assertEquals("position = " + i, getSamplebyte(i), b);
}
msg1.acknowledge();
session.commit();
consumer.close();
session.close();
validateNoFilesOnLargeDir();
}