@Override public String[] listConnectionIDs() throws Exception { return server.getActiveMQServerControl().listConnectionIDs(); }
@Override public boolean closeConsumerConnectionsForAddress(final String address) throws Exception { checkInitialised(); return server.getActiveMQServerControl().closeConsumerConnectionsForAddress(address); }
@Override public String[] listSessions(final String connectionID) throws Exception { checkInitialised(); return server.getActiveMQServerControl().listSessions(connectionID); }
@Override public boolean closeConnectionsForUser(final String userName) throws Exception { checkInitialised(); return server.getActiveMQServerControl().closeConnectionsForUser(userName); }
@Override public String listSessionsAsJSON(final String connectionID) throws Exception { checkInitialised(); return server.getActiveMQServerControl().listSessionsAsJSON(connectionID); }
@Override public String[] listRemoteAddresses() throws Exception { checkInitialised(); return server.getActiveMQServerControl().listRemoteAddresses(); }
@Override public String listPreparedTransactionDetailsAsJSON() throws Exception { return server.getActiveMQServerControl().listPreparedTransactionDetailsAsJSON((xid, tx, creation) -> new JMSTransactionDetail(xid, tx, creation)); }
@Override public String[] listRemoteAddresses(final String ipAddress) throws Exception { checkInitialised(); return server.getActiveMQServerControl().listRemoteAddresses(ipAddress); }
@Override public boolean closeConnectionsForAddress(final String ipAddress) throws Exception { checkInitialised(); return server.getActiveMQServerControl().closeConnectionsForAddress(ipAddress); }
@Override public String listPreparedTransactionDetailsAsHTML() throws Exception { return server.getActiveMQServerControl().listPreparedTransactionDetailsAsHTML((xid, tx, creation) -> new JMSTransactionDetail(xid, tx, creation)); }
@Override public boolean isSatisfied() throws Exception { if (server.getActiveMQServerControl().getQueueNames().length - baselineQueueCount == 1) { return true; } else { return false; } } }, TimeUnit.MILLISECONDS.toMillis(1000), TimeUnit.MILLISECONDS.toMillis(100)));
protected void assertActiveConnections(final int expectedActiveConnections, long timeout) throws Exception { Wait.assertEquals(expectedActiveConnections, server.getActiveMQServerControl()::getConnectionCount, timeout); }
private ActiveMQServerControl getServerControl(final OperationContext context, ModelNode operation) throws OperationFailedException { final ServiceName serviceName = MessagingServices.getActiveMQServiceName(PathAddress.pathAddress(operation.get(ModelDescriptionConstants.OP_ADDR))); ServiceController<?> service = context.getServiceRegistry(false).getService(serviceName); if (service == null || service.getState() != ServiceController.State.UP) { throw MessagingLogger.ROOT_LOGGER.activeMQServerNotInstalled(serviceName.getSimpleName()); } ActiveMQServer server = ActiveMQServer.class.cast(service.getValue()); return server.getActiveMQServerControl(); } }
private ActiveMQServerControl getServerControl(final OperationContext context, ModelNode operation) throws OperationFailedException { final ServiceName serviceName = MessagingServices.getActiveMQServiceName(PathAddress.pathAddress(operation.get(ModelDescriptionConstants.OP_ADDR))); ServiceController<?> service = context.getServiceRegistry(false).getService(serviceName); if (service == null || service.getState() != ServiceController.State.UP) { throw MessagingLogger.ROOT_LOGGER.activeMQServerNotInstalled(serviceName.getSimpleName()); } ActiveMQServer server = ActiveMQServer.class.cast(service.getValue()); return server.getActiveMQServerControl(); } }
@Override public boolean isSatisfied() throws Exception { int length = server.getActiveMQServerControl().getQueueNames().length; if (length - baselineQueueCount == 1) { return true; } else { log.info("Queue count: " + (length - baselineQueueCount)); return false; } } }, TimeUnit.SECONDS.toMillis(10), TimeUnit.MILLISECONDS.toMillis(100)));
@Override protected void recoverServices(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { final ServiceRegistry registry = context.getServiceRegistry(true); final ServiceName serviceName = MessagingServices.getActiveMQServiceName(PathAddress.pathAddress(operation.get(ModelDescriptionConstants.OP_ADDR))); final ServiceController<?> service = registry.getService(serviceName); if (service != null && service.getState() == ServiceController.State.UP) { final String name = PathAddress.pathAddress(operation.require(ModelDescriptionConstants.OP_ADDR)).getLastElement().getValue(); final BridgeConfiguration bridgeConfiguration = BridgeAdd.createBridgeConfiguration(context, name, model); ActiveMQServer server = ActiveMQServer.class.cast(service.getValue()); BridgeAdd.createBridge(name, bridgeConfiguration, server.getActiveMQServerControl()); } } }
@Test public void testForgetHeuristicallyRolledBackXID() throws Exception { Xid xid = newXID(); clientSession.start(xid, XAResource.TMNOFLAGS); clientSession.end(xid, XAResource.TMSUCCESS); clientSession.prepare(xid); String[] preparedTransactions = messagingService.getActiveMQServerControl().listPreparedTransactions(); Assert.assertEquals(1, preparedTransactions.length); System.out.println(preparedTransactions[0]); Assert.assertTrue(messagingService.getActiveMQServerControl().rollbackPreparedTransaction(XidImpl.toBase64String(xid))); Assert.assertEquals(1, messagingService.getActiveMQServerControl().listHeuristicRolledBackTransactions().length); clientSession.forget(xid); Assert.assertEquals(0, messagingService.getActiveMQServerControl().listHeuristicRolledBackTransactions().length); }
@Test public void testForgetHeuristicallyCommittedXID() throws Exception { Xid xid = newXID(); clientSession.start(xid, XAResource.TMNOFLAGS); clientSession.end(xid, XAResource.TMSUCCESS); clientSession.prepare(xid); String[] preparedTransactions = messagingService.getActiveMQServerControl().listPreparedTransactions(); Assert.assertEquals(1, preparedTransactions.length); System.out.println(preparedTransactions[0]); Assert.assertTrue(messagingService.getActiveMQServerControl().commitPreparedTransaction(XidImpl.toBase64String(xid))); Assert.assertEquals(1, messagingService.getActiveMQServerControl().listHeuristicCommittedTransactions().length); clientSession.forget(xid); Assert.assertEquals(0, messagingService.getActiveMQServerControl().listHeuristicCommittedTransactions().length); }
@Test public void testSynchronousClose() throws Exception { Assert.assertEquals(0, server.getActiveMQServerControl().listRemoteAddresses().length); ClientSessionFactory sf = createSessionFactory(); for (int i = 0; i < 2000; i++) { ClientSession session = sf.createSession(false, true, true); session.close(); } sf.close(); sf.getServerLocator().close(); } }
@Test public void testDuplicateRecordId() throws Exception { for (int i = 0; i < 3; i++) { server.start(); ActiveMQServerControl serverControl = server.getActiveMQServerControl(); serverControl.removeAddressSettings("q"); AddressSettingsInfo defaultSettings = AddressSettingsInfo.from(serverControl.getAddressSettingsAsJSON("#")); serverControl.addAddressSettings("q", "dlq", defaultSettings.getExpiryAddress(), -1, false, 1, defaultSettings.getMaxSizeBytes(), defaultSettings.getPageSizeBytes(), defaultSettings.getPageCacheMaxSize(), defaultSettings.getRedeliveryDelay(), defaultSettings.getRedeliveryMultiplier(), defaultSettings.getMaxRedeliveryDelay(), defaultSettings.getRedistributionDelay(), defaultSettings.isSendToDLAOnNoRoute(), defaultSettings.getAddressFullMessagePolicy(), defaultSettings.getSlowConsumerThreshold(), defaultSettings.getSlowConsumerCheckPeriod(), defaultSettings.getSlowConsumerPolicy(), defaultSettings.isAutoCreateJmsQueues(), defaultSettings.isAutoDeleteJmsQueues(), defaultSettings.isAutoCreateJmsQueues(), defaultSettings.isAutoDeleteJmsTopics()); server.stop(); PrintData.printData(server.getConfiguration().getBindingsLocation().getAbsoluteFile(), server.getConfiguration().getJournalLocation().getAbsoluteFile(), server.getConfiguration().getPagingLocation().getAbsoluteFile()); } } }