java - 如何从序列中停用消息处理器?

标签 java wso2 wso2-esb

我正在使用 WSO2 EI。

当序列失败时,我需要停用消息处理器

如何从序列中停用消息处理器?

谢谢!

如果适用于 Linux 服务器、WSO2 EI - 6.4.0 和 JDK,则为:1.8.0_201

最佳答案

您可以实现一个简单的 class mediator访问 EI 的 JMX 端点以停用消息处理器。并按相关顺序引用类(class)调解员。以下是类中介器的示例。在这里,我将停用名为 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/

关于java - 如何从序列中停用消息处理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56024764/

相关文章:

Java - SwingWorker - 问题

java - 什么是主要刻度间距?

mysql - 将WSO2物联网服务器3.1.0升级到3.3.0

tomcat - 如何在 apache tomcat 7.0.37 上部署 wso2 esb 4.7.0 版?

java - 使用链表排队

java - 我应该避免使用静态变量吗

wso2 - 默认 WSO2 ESB 服务器登录凭据?

wso2 api网关 token 缓存

rest - 如何在 WSO2 ESB REST API 中更改 HTTP 状态代码

wso2 - 为什么 WSO2 Send Mediator 不等待响应?