启动和停止骡子模型

时间:2011-08-18 12:17:32

标签: mule

我需要能够启动和停止特定模型中的所有服务,我对模型的理解是它是服务的逻辑分组,所以我期待当我从JConsole停止模型时它也会停止该模型中的所有服务,但这不会发生。有没有一种特殊的方式可以实现上述目标? 我需要这样做的原因是,在一个mule-config内,我们有不同的服务组,我们希望独立地启动或停止服务组。

2 个答案:

答案 0 :(得分:2)

从设置为initialState="stopped"的所有服务开始,然后根据需要将其打开。这是一种方法:

List<String> modelNames = getEnabledModelNames();

for (String modelName : modelNames) {

    try {
        Collection<Service> services = muleContext.getRegistry().lookupServices();
        for (Service service : services) {
            if (modelName.equals(service.getModel().getName())) {
                service.start();
                logger.debug("service started {}", service.getName());
            }
        }
    } catch (Exception e) {
        // throw exception;
    }
}

答案 1 :(得分:0)

我不确定这是否有效,但请注意,在Mule 3.x中,焦点已经从使用模型转移(即流程和配置模式不流动)。

在Mule 3.x上,您可以通过在多个应用程序中拆分配置并独立完成这些单独的Mule应用程序来实现您想要的目标。

在Mule 2.x上,一个选项是内省运行的实例MBean:您应该找到代表您的Model的MBean,然后在此Model中查找服务的MBean。从那里,您将能够启动/停止服务。