-
Notifications
You must be signed in to change notification settings - Fork 18
Open
Description
Code:
"use strict";
var jmx = require("jmx");
var client = jmx.createClient({
host: "localhost",
port: 9011
});
client.connect();
client.on("connect", function () {
client.getAttribute("java.lang:type=Memory", "HeapMemoryUsage", function (data) {
var used = data.getSync('used').longValue;
var max = data.getSync('max').longValue;
var percent = used / max;
console.log("Threads used: " + used + " / " + max + " = " + percent.toFixed(2) + "%");
});
client.getAttribute("java.lang:type=Threading", "AllThreadIds", function (data) {
console.log('data: ' + JSON.stringify(data));
var ids = [data[0].longValueSync(), data[1].longValueSync()];
console.log(Object.prototype.toString.call(ids) === "[object Array]"); // true
console.log('ids[0].longValue: ', JSON.stringify(ids[0].longValue));
console.log('ids: ', JSON.stringify(ids));
client.invoke("java.lang:type=Threading", "getThreadInfo", [ids], ['long[]'], function (data) { // ????????????????
console.log("Threading.getThreadInfo", JSON.stringify(data));
});
});
client.setAttribute("java.lang:type=Memory", "Verbose", true, function () {
console.log("Memory verbose on"); // callback is optional
});
});Output:
PS C:\tmp\watch-jmx> node index.js
Threads used: 923329448 / 1048576000 = 0.88%
data: [{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},
{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{
},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}
,{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},
{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]
true
ids.longValue: "30285"
ids: [30285,30284]
C:\tmp\watch-jmx\node_modules\jmx\lib\javaJmx.js:116
value = java.newInstanceSync(className, value);
^
Error: Could not create class long[]
java.lang.NoClassDefFoundError: long[]
Caused by: java.lang.ClassNotFoundException: long[]
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at Error (native)
at C:\tmp\watch-jmx\node_modules\jmx\lib\javaJmx.js:116:24
at Array.forEach (native)
at JavaJmx.jsParams2JavaParams (C:\tmp\watch-jmx\node_modules\jmx\lib\javaJmx.js:111:15)
at JavaJmx.invoke (C:\tmp\watch-jmx\node_modules\jmx\lib\javaJmx.js:133:40)
at Client.invoke (C:\tmp\watch-jmx\node_modules\jmx\lib\client.js:61:16)
at C:\tmp\watch-jmx\index.js:31:12
at C:\tmp\watch-jmx\node_modules\jmx\lib\adapters\javaReflection.js:49:7
at C:\tmp\watch-jmx\node_modules\jmx\lib\adapters\javaReflection.js:43:7
Reactions are currently unavailable