Ich habe eine Test-EJB3-Anwendung erstellt, die auf GlassFish Opensource Edition ausgeführt wird.Langsame "Nachschlage" -Zeit für Glassfish
Ich verbinde mich mit GlassFish vom selben Host (sowohl der Client als auch der Anwendungsserver laufen auf 'localhost').
Ich hole ein Remote (stateful) -Objekt mit InitialContext.lookup(), und dann interagiere ich mit ihm wie es ein normales Java-Objekt wäre.
Das einzige Problem ist der einzige Aufruf, die 15 Sekunden nimmt:
FooRemoteService foors = (FooRemoteService)
context.lookup("java:global/FooApp/FooService!test.FooRemoteService");
Ich verstehe, dass es irgendeine Art von „Handshaking“ sein und „Initialisierung“, aber das ist so darn langsam.
Der Rest der Interaktion (mehrere Remote-Aufrufe mit vielen serialisierten Objekten werden ausgetauscht) dauert nur etwa 0,1 Sekunden!
Wie kann ich herausfinden, warum es so lange dauert?
Nun, es instanziiert den 'FooRemoteService' beim ersten Mal ... Jede intensive Verarbeitung, die es am Ende macht? – Torious
Überhaupt nicht ... Wenn ich es mit einer lokalen virtuellen Maschine "neu" mache, dauert es einige Millisekunden – gd1