Hallo zusammen,
ich möchte gerne, dass wenn mein Programm nicht ordentlich beendet wird, es sich trotzdem am Applikations-Server abmeldet. Realisieren wollte ich es über die Java-Funktionalität Runtime.getRuntime().addShutdownHook(Thread).
Eigentlich sollte es ja kein Problem sein... man registriert einen Thread, der bei Beendigung des Programms (auch bei Abmeldung oder Herunterfahren vom Betriebssystem... so steht's zumindest in der API) gestartet wird.
Ich vertstehe ja, dass man in der Abarbeitung nicht viel Zeit zur Verfügung hat. Das Abmelden am App-Server dauert keine Sekunde, aber trotzdem funktioniert es nur in seltenen Fällen. Der Thread wird zwar gestartet, aber es ist absoluter Zufall wie weit er kommt. Ich habe mal Debug-Ausgaben eingefügt. Oft ist die erste Debugausgabe (erste Zeile in der run()-Methode des Thread) das Einzige was ausgeführt wird, manchmal kommt er auch etwas weiter, selten bis zum Abmelden.
Ich habe das halbe Internet durchsucht nach einer Lösung aber nix gefunden. Viele Beispiele, die ich gefunden hab dauern sicherlich länger in der Abarbeitung und haben anscheinend trotzdem funktioniert. Was mache ich falsch. So wie es jetzt ist, ist es absolut unbrauchbar.
Falls einer von Euch was konstruktives dazu beitragen kann, wäre ich für das ein oder andere Posting dankbar.
Viele Grüße
Tom
ich möchte gerne, dass wenn mein Programm nicht ordentlich beendet wird, es sich trotzdem am Applikations-Server abmeldet. Realisieren wollte ich es über die Java-Funktionalität Runtime.getRuntime().addShutdownHook(Thread).
Eigentlich sollte es ja kein Problem sein... man registriert einen Thread, der bei Beendigung des Programms (auch bei Abmeldung oder Herunterfahren vom Betriebssystem... so steht's zumindest in der API) gestartet wird.
Ich vertstehe ja, dass man in der Abarbeitung nicht viel Zeit zur Verfügung hat. Das Abmelden am App-Server dauert keine Sekunde, aber trotzdem funktioniert es nur in seltenen Fällen. Der Thread wird zwar gestartet, aber es ist absoluter Zufall wie weit er kommt. Ich habe mal Debug-Ausgaben eingefügt. Oft ist die erste Debugausgabe (erste Zeile in der run()-Methode des Thread) das Einzige was ausgeführt wird, manchmal kommt er auch etwas weiter, selten bis zum Abmelden.
Ich habe das halbe Internet durchsucht nach einer Lösung aber nix gefunden. Viele Beispiele, die ich gefunden hab dauern sicherlich länger in der Abarbeitung und haben anscheinend trotzdem funktioniert. Was mache ich falsch. So wie es jetzt ist, ist es absolut unbrauchbar.
Falls einer von Euch was konstruktives dazu beitragen kann, wäre ich für das ein oder andere Posting dankbar.
Viele Grüße
Tom