Запуск и остановка модели мула - PullRequest
0 голосов
/ 18 августа 2011

Мне нужно иметь возможность запускать и останавливать все сервисы внутри конкретной модели. Мое понимание модели состоит в том, что это логическая группировка сервисов, поэтому я ожидал, что когда я остановлю модель из JConsole, она также остановится.все услуги в рамках этой модели, однако этого не происходит.Есть ли определенный способ, которым я могу достичь вышеупомянутого?Причина, по которой мне нужно это сделать, заключается в том, что в пределах одного mule-config у нас есть разные группы услуг, и мы хотим запускать или останавливать группу служб независимо.

Ответы [ 2 ]

2 голосов
/ 27 октября 2011

Начните со всех своих служб, настроенных на 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;
    }
}
0 голосов
/ 19 августа 2011

Я не уверен, что это когда-либо работало, но имейте в виду, что в Mule 3.x фокус сместился с использования моделей (т.е. потоки и шаблоны конфигурации не учитывают потоки).

В Mule 3.x то, что вы хотите сделать, было бы лучше достигнуто, если бы ваша конфигурация была разделена на несколько приложений, а отдельные приложения Mule работали независимо друг от друга.

В Mule 2.x одним из вариантов будет анализ вашего MBeans запущенного экземпляра: вы должны найти MBeans, представляющий вашу модель, а затем найти MBeans для служб в этой модели. Оттуда вы сможете запускать / останавливать службы.

...