2017-04-22 2 views
1

Zunächst einmal entschuldige ich mich, da dies bereits hier schon etwas beantwortet ist, aber ich denke, meine Situation ist ein bisschen anders.Kommunikation zwischen JVMTI-Agent und separaten JVM

How to communicate with jvmti agent attached on a running JVM

Meine Hauptfrage ist ... Ich frage mich, ob es sowieso sind die JNI oder andere Bibliotheken zwischen einem JVMTI nativen Agenten und einem völlig separaten JVM zu kommunizieren.

Hier ist eine kleine Abbildung

enter image description here

Also was ist hier passiert. Die JVM auf der linken Seite wird mit einem nativen Agenten geladen. Nur zur Diskussion, nehmen wir an, ich habe keinen Zugriff auf den Quellcode dieser Java-Anwendung. Stattdessen verwende ich den Java Native Agent, um Informationen von den Objekten zu sammeln.

Jetzt möchte ich die Informationen auf die JVM auf der rechten Seite übertragen. Dargestellt durch den defekten Link. Idealerweise möchte ich eine Methode auf JVM2 aufrufen, den Native Agent Informationen von JVM1 laden lassen und sie dann an JVM2 zurückgeben.

Ich bin mir ziemlich sicher, dass ich dies mit Sockets machen kann, aber ich habe mich nur gefragt, ob ich andere Optionen hier wie JNI und die Registrierung von nativen Agenten oder etwas wie in der vorherigen Antwort erwähnt.

+0

Was willst du tun? –

+0

Kommunizieren Sie Java-Objekte zwischen dem jvmti-Agent und dem separaten jvm –

+0

Ich denke, ich kann JMX-Client in einen Java-Agenten wickeln und die Datenübertragung auf diese Weise aufrufen. –

Antwort