/** * Sends a message to the request address and wait indefinitely for a reply. * The temporary queue is used for the REPLYTO_HEADER_NAME, and only one reply per request is expected * * @param request the message to send * @return the reply message * @throws Exception */ public ClientMessage request(final ClientMessage request) throws Exception { return request(request, 0); }
private Integer getQueueID(ClientSession session, SimpleString queueName) throws Exception { Integer queueID = -1; Object result; try (ClientRequestor requestor = new ClientRequestor(session, "activemq.management")) { ClientMessage managementMessage = session.createMessage(false); ManagementHelper.putAttribute(managementMessage, ResourceNames.QUEUE + queueName, "ID"); session.start(); logger.debug("Requesting ID for: " + queueName); ClientMessage reply = requestor.request(managementMessage); result = ManagementHelper.getResult(reply); } if (result != null && result instanceof Number) { queueID = ((Number) result).intValue(); } return queueID; }
ClientRequestor requestor = new ClientRequestor(session, ActiveMQDefaultConfiguration.getDefaultManagementAddress()); ClientMessage reply = requestor.request(mngmntMessage, 500); if (expectSuccess) { Assert.assertNotNull(reply); requestor.close(); } catch (Exception e) { if (expectSuccess) {
@Override public void run() throws Exception { new ClientRequestor(session, requestAddress); } };
@Override public void stop() throws Exception { requestor.close(); if (sf != null) { sf.close(); } if (serverLocator != null) { serverLocator.close(); } sf = null; serverLocator = null; }
try (ClientRequestor requestor = new ClientRequestor(managementSession, "activemq.management")) { ClientMessage managementMessage = managementSession.createMessage(false); ManagementHelper.putAttribute(managementMessage, ResourceNames.QUEUE + queue, "ID"); logger.debug("Requesting ID for: " + queue); ClientMessage reply = requestor.request(managementMessage); Number idObject = (Number) ManagementHelper.getResult(reply); queueID = idObject.longValue();
@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); }
private ClientRequestor getClientRequestor(ClientSession session) throws Exception { return new ClientRequestor(session, ActiveMQDefaultConfiguration.getDefaultManagementAddress()); }
try (ClientRequestor requestor = new ClientRequestor(managementSession, "activemq.management")) { ClientMessage managementMessage = managementSession.createMessage(false); ManagementHelper.putAttribute(managementMessage, ResourceNames.QUEUE + queue, "ID"); logger.debug("Requesting ID for: " + queue); ClientMessage reply = requestor.request(managementMessage); Number idObject = (Number) ManagementHelper.getResult(reply); queueID = idObject.longValue();
/** * Sends a message to the request address and wait indefinitely for a reply. * The temporary queue is used for the REPLYTO_HEADER_NAME, and only one reply per request is expected * * @param request the message to send * @return the reply message * @throws Exception */ public ClientMessage request(final ClientMessage request) throws Exception { return request(request, 0); }
ClientRequestor requestor = new ClientRequestor(session, requestAddress); ClientMessage request = session.createMessage(false); request.putLongProperty(key, value); ClientMessage reply = requestor.request(request, 5000); Assert.assertNotNull("reply was not received", reply); reply.acknowledge(); Assert.assertEquals(value, reply.getObjectProperty(key)); requestor.close(); session.close();
@Override public void start() throws Exception { serverLocator = ActiveMQClient.createServerLocatorWithoutHA(new TransportConfiguration(NettyConnectorFactory.class.getName())); sf = serverLocator.createSessionFactory(); clientSession = sf.createSession(ActiveMQDefaultConfiguration.getDefaultClusterUser(), ActiveMQDefaultConfiguration.getDefaultClusterPassword(), false, true, true, false, 1); requestor = new ClientRequestor(clientSession, ActiveMQDefaultConfiguration.getDefaultManagementAddress()); clientSession.start(); }
public void performCoreManagement(ManagementCallback<ClientMessage> cb) throws Exception { try (ActiveMQConnectionFactory factory = createCoreConnectionFactory(); ServerLocator locator = factory.getServerLocator(); ClientSessionFactory sessionFactory = locator.createSessionFactory(); ClientSession session = sessionFactory.createSession(user, password, false, true, true, false, ActiveMQClient.DEFAULT_ACK_BATCH_SIZE)) { session.start(); ClientRequestor requestor = new ClientRequestor(session, "activemq.management"); ClientMessage message = session.createMessage(false); cb.setUpInvocation(message); ClientMessage reply = requestor.request(message); if (ManagementHelper.hasOperationSucceeded(reply)) { cb.requestSuccessful(reply); } else { cb.requestFailed(reply); } } }
/** * Sends a message to the request address and wait indefinitely for a reply. * The temporary queue is used for the REPLYTO_HEADER_NAME, and only one reply per request is expected * * @param request the message to send * @return the reply message * @throws Exception */ public ClientMessage request(final ClientMessage request) throws Exception { return request(request, 0); }
protected ClientMessage getQueueAttribute(String queueName, String attribute) throws Exception { try (ServerLocator serverLocator = ActiveMQClient.createServerLocator(brokerURL)) { try (ClientSessionFactory sf = serverLocator.createSessionFactory()) { ClientSession managementSession; if (user != null || password != null) { managementSession = sf.createSession(user, password, false, true, true, false, 0); } else { managementSession = sf.createSession(false, true, true); } managementSession.start(); try (ClientRequestor requestor = new ClientRequestor(managementSession, "activemq.management")) { ClientMessage managementMessage = managementSession.createMessage(false); ManagementHelper.putAttribute(managementMessage, ResourceNames.QUEUE + queueName, attribute); managementSession.start(); ClientMessage reply = requestor.request(managementMessage); return reply; } finally { managementSession.stop(); } } } }
/** * Sends a message to the request address and wait indefinitely for a reply. * The temporary queue is used for the REPLYTO_HEADER_NAME, and only one reply per request is expected * * @param request the message to send * @return the reply message * @throws Exception */ public ClientMessage request(final ClientMessage request) throws Exception { return request(request, 0); }
public void performCoreManagement(ManagementCallback<ClientMessage> cb) throws Exception { try (ActiveMQConnectionFactory factory = createCoreConnectionFactory(); ServerLocator locator = factory.getServerLocator(); ClientSessionFactory sessionFactory = locator.createSessionFactory(); ClientSession session = sessionFactory.createSession(user, password, false, true, true, false, ActiveMQClient.DEFAULT_ACK_BATCH_SIZE)) { session.start(); ClientRequestor requestor = new ClientRequestor(session, "activemq.management"); ClientMessage message = session.createMessage(false); cb.setUpInvocation(message); ClientMessage reply = requestor.request(message); if (ManagementHelper.hasOperationSucceeded(reply)) { cb.requestSuccessful(reply); } else { cb.requestFailed(reply); } } }
/** * Sends a message to the request address and wait indefinitely for a reply. * The temporary queue is used for the REPLYTO_HEADER_NAME, and only one reply per request is expected * * @param request the message to send * @return the reply message * @throws Exception */ public ClientMessage request(final ClientMessage request) throws Exception { return request(request, 0); }
protected ClientMessage getQueueAttribute(String queueName, String attribute) throws Exception { try (ServerLocator serverLocator = ActiveMQClient.createServerLocator(brokerURL)) { try (ClientSessionFactory sf = serverLocator.createSessionFactory()) { ClientSession managementSession; if (user != null || password != null) { managementSession = sf.createSession(user, password, false, true, true, false, 0); } else { managementSession = sf.createSession(false, true, true); } managementSession.start(); try (ClientRequestor requestor = new ClientRequestor(managementSession, "activemq.management")) { ClientMessage managementMessage = managementSession.createMessage(false); ManagementHelper.putAttribute(managementMessage, ResourceNames.QUEUE + queueName, attribute); managementSession.start(); ClientMessage reply = requestor.request(managementMessage); return reply; } finally { managementSession.stop(); } } } }
/** * Sends a message to the request address and wait indefinitely for a reply. * The temporary queue is used for the REPLYTO_HEADER_NAME, and only one reply per request is expected * * @param request the message to send * @return the reply message * @throws Exception */ public ClientMessage request(final ClientMessage request) throws Exception { return request(request, 0); }