Притворяться, чтобы быть «Jconsole» - PullRequest
0 голосов
/ 16 декабря 2010

Я хотел бы избежать назначения определенных портов TCP процессам, но все же иметь возможность устанавливать (локальное) соединение с компонентами JMX внутри них.Я продолжаю видеть доказательства того, что это возможно, но я не могу понять, что я буду использовать в качестве имени JNDI для ссылки на какой-либо такой процесс или для итерации по всем из них, как это делает jconsole.

1 Ответ

1 голос
/ 16 декабря 2010

Я полагаю, что вы ищете Attach API , который не будет (внешне) использовать имя JNDI и просто подключается по PID. Это не плохой путь, но я не уверен, что все JVM реализуют этот API. Вот быстрый пример в Groovy:

import com.sun.tools.attach.*;

VirtualMachine.list().each() { vmd ->
    try {
        VirtualMachine vm = VirtualMachine.attach(vmd);
        println vm;
    } catch (Exception e) {}
}
...