猿问

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

我正在使用 WSO2 EI。

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

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

谢谢!

如果对于 Linux 服务器、WSO2 EI - 6.4.0 和 JDK 是这样的:1.8.0_201


白衣非少年
浏览 140回答 1
1回答

慕标琳琳

您可以实现一个简单的类调解器来访问 EI 的 JMX 端点以停用消息处理器。并按您的相关顺序推荐班级调解员。以下是一个示例类中介。在这里,我将停用名为 testPro 的消息处理器。public class MsgProDeactivator extends AbstractMediator {&nbsp;&nbsp; &nbsp; public boolean mediate(MessageContext context) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; try {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Map<String, Object> env = new HashMap<String, Object>();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String[] credentials = new String[]{"admin", "admin"};&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; env.put("jmx.remote.credentials", credentials);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String url = "service:jmx:rmi://localhost:11111/jndi/rmi://localhost:9999/jmxrmi";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; JMXServiceURL target = new JMXServiceURL(url);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; JMXConnector connector = JMXConnectorFactory.connect(target, env);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MBeanServerConnection remote = connector.getMBeanServerConnection();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String beanDef = "org.apache.synapse:Type=Message Forwarding Processor view,Name=testPro";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ObjectName bean = new ObjectName(beanDef);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; remote.invoke(bean, "deactivate", null, null);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; connector.close();&nbsp; &nbsp; &nbsp; &nbsp; } catch (Exception e) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace();&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; return true;&nbsp; &nbsp; }}欲了解更多信息:http: //imesh.github.io/how-to-activatedeactivate-message-processors-in-wso2-esb-with-mbeans/
随时随地看视频慕课网APP

相关分类

Java
我要回答