0

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

4

2 回答 2

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;
    }
}
于 2011-10-27T17:07:37.690 回答
0

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

在 Mule 3.x 上,您想要做的最好通过将您的配置拆分到多个应用程序中并独立地关闭和启动这些单独的 Mule 应用程序来实现。

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

于 2011-08-19T00:40:37.000 回答