2009-03-26 5 views
3

Ich muss meine .Net-Anwendung mit einem anderen JMX-Agenten verbinden. Ich habe gelesen, dass das einfach nicht die Sache ist und ich Seife oder praktisch alles andere benutzen sollte. Da dies nicht passieren wird, gibt es Bibliotheken oder Interop-Techniken, die mir helfen können? Ich interessiere mich nur für die einfachen Dinge wie das Aufrufen einer entfernten Operation oder das Zurückgeben eines String-Ergebnisses.Wie verbinden Sie. Net App mit JMX Agent?

Antwort

1

.NET ist wirklich nicht die Technologie, um mit JMX zu sprechen. JMX ist ein integrierter Standard, der Teil von Java ist, aber für die Ausführung in Java ziemlich spezifisch ist. Ich nehme an, dass Sie die Anwendung, die Sie verwenden möchten, nicht steuern können, da Sie angeben, dass Sie versuchen, den JMX-Agenten einer anderen Person zu verwenden.

In diesem Fall sollten Sie in Betracht ziehen, Ihre Anwendung oder einen Teil davon in Java zu schreiben. Das ist der beste Weg, um auf den JMX zuzugreifen. Wenn das keine Option ist, haben Sie ein paar Dinge, die Sie untersuchen könnten:

1) Überprüfen Sie, ob die Anwendung, zu der Sie eine Verbindung herstellen, die Daten als etwas anderes als JMX verfügbar machen kann. Es ist normalerweise nicht schwer, den Zugriff über Webdienste auf die gleichen Daten zuzulassen.

2) Schreiben Sie einen kleinen Java-Wrapper, der mit dem JMX-Server kommuniziert und Web-Services verfügbar macht. Dadurch können Sie die Webdienste abfragen, die wiederum über JMX gehen.

3) Es gibt andere Agenten, die JMX erlauben muss, mit verschiedenen Technologien zu kommunizieren. Sie könnten etwas wie den SNMP-Agenten verwenden und SNMP-Traps von .NET verwenden. Weitere Informationen hierzu finden Sie hier: http://java.sun.com/javase/6/docs/technotes/guides/management/snmp.html

1

Wenn Sie einen HtmlAdaptorServer starten, können Sie einfach die URLs verwenden, um JMX-Methoden über Standard-HTTP-Aufrufe aufzurufen.

Ich habe dies in der Vergangenheit von Perl als Teil einer Systemadministrationsaufgabe getan. Es ist nicht schön und nicht zu pflegen, wenn sich die JMX-Schnittstellen stark verändern. Aber .. wenn du einen schnellen und schmutzigen Hack brauchst - das ist es!

1

Die Web Services Connector for Java Management Extensions (JMX) Agents und die Referenzimplementierung ws-jmx-connector wäre meine Wahl. JSR 262 wird eine neue Möglichkeit für plattformübergreifende/sprachübergreifende Unternehmensintegrationsprojekte bieten, aber die Entwicklung hat sich leider verlangsamt.

Es wären nur einige SOAP-Aufrufe erforderlich, um alle Operationen der JMX-Verwaltungsschnittstelle aufzurufen, IIRC sogar einschließlich Rückrufe/Benachrichtigungen.

0

Sie können dies mit IKVM tun. Es ist ein Java Byte Code für .Net CLR Compiler und funktioniert gut mit JMX.