盘古BPM体验地址    盘古BPM交流群盘古BPM交流群号:963222735

Activiti jmx使用(上)

Activiti 分享牛 3162℃

Activiti5.16.4版本中,添加了jmx模块,Activiti默认打开了jmx功能,关于如何禁用jmx功能,稍后进行说明。本文以activiti-jmx-5.21的使用为例详细说明:

使用jmx的时候,需要引入该模块的地址,Maven仓库地址为:

    org.activiti    activiti-jmx    5.21.0

引入之后,启动流程引擎如下所示:

public class App {
// 获取到Activiti ProcessEngine
ProcessEngine processEngine = null;
// 获取RepositoryService 实例对象
RepositoryService repositoryService = null;
// 资源名称
String resourceName = "shareniu_addInputStream.bpmn";
IdentityService identityService;
RuntimeService runtimeService;
TaskService taskService;
ActivitiEventDispatcher eventDispatcher;

@Before
public void init() {
InputStream in = App.class.getClassLoader().getResourceAsStream(
"com/shareniu/chapter16/activiti.cfg.xml");
ProcessEngineConfiguration pcf = ProcessEngineConfiguration
.createProcessEngineConfigurationFromInputStream(in);
processEngine = pcf.buildProcessEngine();
repositoryService = processEngine.getRepositoryService();
identityService = processEngine.getIdentityService();
runtimeService = processEngine.getRuntimeService();
taskService = processEngine.getTaskService();
ProcessEngineConfigurationImpl pc = (ProcessEngineConfigurationImpl) processEngine
.getProcessEngineConfiguration();
eventDispatcher = pc.getEventDispatcher();
}

紧接着,开始测试jmx功能,如下所示:

@Test
public void addInputStreamTest() throws IOException, MalformedObjectNameException, InstanceNotFoundException, MBeanException, ReflectionException, InterruptedException {

JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://127.0.0.1:1099/jmxrmi/activiti");      
JMXConnector jmxc = JMXConnectorFactory.connect(url, null);

MBeanServerConnection mbsc  = jmxc.getMBeanServerConnection();
Integer mBeanCount = mbsc.getMBeanCount();



ObjectName mbeanName = new ObjectName("org.activiti.jmx.Mbeans", "type", "Deployments");  
Object invoke = mbsc.invoke(mbeanName, "getProcessDefinitions", null, null);
System.out.println(invoke);
List<list> result=(List<list>) invoke;
for (List list : result) {
for (String string : list) {
System.out.println(string);
}
}
Thread.sleep(Integer.MAX_VALUE);
// ProcessDefinitionsMBean processDefinitionsMBean=new ProcessDefinitionsMBean(processEngine.getProcessEngineConfiguration());



// processDefinitionsMBean.getProcessDefinitionById(id)
/*mbsc.getObjectInstance("org.activiti.jmx.Mbeans");
ObjectName mbeanName = new ObjectName("com.jmx.demo9:name=Hello");  

System.out.println(mBeanCount);*/

}

Activiti在使用jmx功能的时候,默认的服务URL为service:jmx:rmi:///jndi/rmi://127.0.0.1:1099/jmxrmi/activiti。然后我们打开jconsole工具(位于JDK安装目录中的bin目录下)如下图所示:

版本归http://www.shareniu.com/所有,未经授权请不要转载,否则追究法律责任。


转载请注明:分享牛 » Activiti jmx使用(上)