如何重启嵌入式代理
常见问题解答 > 使用 Apache ActiveMQ Classic > 如何重启嵌入式代理
不建议直接重启嵌入式代理,因为它的状态可能会被破坏。因此,建议您在重启之前重新实例化代理。
BrokerService service = BrokerFactory.createBroker("xbean:activemq.xml");
service.start();
service.waitUntilStarted();
service.stop();
service.waitUntilStopped();
service = BrokerFactory.createBroker("xbean:activemq.xml");
service.start();
然而,在 5.3 版本中,我们允许强制启动已停止的代理,以满足需要此功能的用例。您可以使用
BrokerService.start(boolean force);
方法。
以下示例演示了这一点。
BrokerService service = BrokerFactory.createBroker("xbean:activemq.xml");
service.start();
service.waitUntilStarted();
service.stop();
service.waitUntilStopped();
service.start(true);
但是,如果可能,重新实例化代理更好(更可靠)。