CollTongweb.java
4.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package com.sitech.ismp.coll.middleware.tongweb.impl;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Set;
import javax.management.MBeanServerConnection;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import javax.management.QueryExp;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
public class CollTongweb {
HashMap<String, String[]> environmentMap = null;
private MBeanServerConnection mbeanServerConn = null;
JMXConnector JMXConn = null;
public MBeanServerConnection getMbeanServerConn() {
return mbeanServerConn;
}
public void init(HashMap params) {
String user = params.get("USER").toString();
String passwd = params.get("PASSWORD").toString();
String jmx_url = params.get("JMX_URL").toString();
params.put(JMXConnector.CREDENTIALS, new String[]{user,passwd});
String jmxurl = params.get("JMX_URL").toString();
Hashtable ht = new Hashtable();
ht.put(JMXConnector.CREDENTIALS, new String[]{user,passwd});
ht.put("JMX_URL", jmx_url);
ht.put("USER", user);
ht.put("PASSWORD", passwd);
try {
JMXServiceURL serverURL = new JMXServiceURL(jmxurl);
try {
if (this.environmentMap != null) {
JMXConn = JMXConnectorFactory.connect(serverURL, this.environmentMap);
} else {
JMXConn = JMXConnectorFactory.connect(serverURL, ht);
}
mbeanServerConn = JMXConn.getMBeanServerConnection();
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
protected String getCollInfo(ObjectName obj,String type) {
try {
String o = mbeanServerConn.getAttribute(obj, type).toString();
System.out.println("o="+o);
return o;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected Object execute(String objName, String attribute) {
Object value = "";
try {
ObjectName exeObjName = new ObjectName(objName);
value = this.getMbeanServerConn().getAttribute(exeObjName, attribute);
} catch (Exception e) {
e.printStackTrace();
}
return value;
}
protected HashMap<String, Object> executeAttributeArray(String objName, String[] attributes) {
HashMap<String, Object> resultMap = new HashMap<String, Object>();
try {
ObjectName exeObjName = new ObjectName(objName);
for (String attr : attributes) {
Object value = this.getMbeanServerConn().getAttribute(exeObjName, attr);
resultMap.put(attr, value);
}
} catch (Exception e) {
e.printStackTrace();
}
return resultMap;
}
protected List<HashMap<String, Object>> executQueryNames(String objName, String args[]) {
List<HashMap<String, Object>> exeResult = new ArrayList<HashMap<String, Object>>();
try {
ObjectName objectName = new ObjectName(objName);
Set<ObjectName> namesSet = this.getMbeanServerConn().queryNames(objectName, null);
for (ObjectName obj : namesSet) {
String name = obj.getKeyProperty("name");
ObjectName objname = new ObjectName(obj.getCanonicalName());
if (name != null) {
HashMap<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("name", name);
for (String param : args) {
Object value = this.getMbeanServerConn().getAttribute(objname, param);
resultMap.put(param, value != null ? value : "0");
}
exeResult.add(resultMap);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return exeResult;
}
@SuppressWarnings("unchecked")
protected Set<ObjectInstance> executeQueryMbeans(String objName, QueryExp exp) {
Set<ObjectInstance> managerSet = null;
try {
ObjectName managerObjName = new ObjectName(objName);
managerSet = this.getMbeanServerConn().queryMBeans(managerObjName, exp);
} catch (Exception e) {
e.printStackTrace();
}
return managerSet;
}
protected void release() {
try {
this.JMXConn.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}