2013-04-09 2 views
5

ich weblogic Beispiel verwenden, um JMX: http://groovy.codehaus.org/Groovy+and+JMX JMX mit groovigenWie eine Verbindung mit groovigen schnellen

Problem zu verbinden ist, dass die Verbindung zu lange dauert:

long time = System.currentTimeMillis(); 

    println System.currentTimeMillis() - time; 
    def server = JMXConnectorFactory.connect(serviceURL, h).MBeanServerConnection 
    println System.currentTimeMillis() - time; 

ich etwa 200 groovy Skript habe. Jedes Skript macht etwas anderes, aber alle müssen sich mit jmx verbinden. Wenn ich alles ausführen will, dauert es ungefähr eine Stunde und mehr. Gibt es einige Möglichkeiten, wie es schneller geht?

+0

Kannst du nicht einmal an, dann unter ihnen diese Verbindung teilen? –

+0

das ist Optionen, aber ich weiß nicht, wie ich es tun kann. Jedes Skript sollte auch alleine funktionieren – hudi

+0

@tim_yates eine Idee, wie man eine Verbindung zwischen Skripten teilt? – hudi

Antwort

2

so ist die Antwort sehr einfach. Ich brauche dieses Projekt zu verwenden: http://kobo.github.io/groovyserv/

dann habe ich gerade erstellt Klasse JmxSharedConection mit statischen Methode, wo ich Verbindung hinzufügen und jetzt funktioniert es viel schneller

1

Ich würde Tim Vorschlag nehmen und eine gemeinsame Verbindung als [synchronisiert] Singleton implementieren. In der Tat stellen Sie die Verbindung einmal her und dann verwendet jedes Skript es wie benötigt. Für einige zusätzliche Pizz, registrieren Sie eine connection listener zu Ihrem JMXConnection, und wenn Konnektivität verloren geht, starten Sie eine Reconnect-Schleife, die Ausnahmen zu den aufrufenden Skripts, bis Sie wieder verbinden.

+0

und können Sie mir ein Beispiel zeigen? Ich habe keine Ahnung, wie ich anfangen soll – hudi