Как отключить процессор сообщений из последовательности? - PullRequest
0 голосов
/ 07 мая 2019

Я работаю с WSO2 EI.

При сбое последовательности мне нужно деактивировать процессор сообщений

Как отключить процессор сообщений из последовательности?

Спасибо!

Это если для Linux Server, WSO2 EI - 6.4.0 и JDK это: 1.8.0_201

1 Ответ

1 голос
/ 08 мая 2019

Вы можете реализовать простой посредник класса для доступа к конечной точке JMX EI для деактивации процессора сообщений. И обратитесь к медиатору класса в соответствующей последовательности. Ниже приводится пример посредника класса. Здесь я деактивирую процессор сообщений с именем testPro.

public class MsgProDeactivator extends AbstractMediator { 

    public boolean mediate(MessageContext context) { 
        try {
            Map<String, Object> env = new HashMap<String, Object>();
            String[] credentials = new String[]{"admin", "admin"};
            env.put("jmx.remote.credentials", credentials);

            String url = "service:jmx:rmi://localhost:11111/jndi/rmi://localhost:9999/jmxrmi";
            JMXServiceURL target = new JMXServiceURL(url);
            JMXConnector connector = JMXConnectorFactory.connect(target, env);
            MBeanServerConnection remote = connector.getMBeanServerConnection();

            String beanDef = "org.apache.synapse:Type=Message Forwarding Processor view,Name=testPro";
            ObjectName bean = new ObjectName(beanDef);

            remote.invoke(bean, "deactivate", null, null);
            connector.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return true;
    }
}

Для получения дополнительной информации: http://imesh.github.io/how-to-activatedeactivate-message-processors-in-wso2-esb-with-mbeans/

...