Ersatz für Thread.sleep() in EJBs?

peez

Bekanntes Mitglied
Ich weiß, dass man in Stateless Session Beans keine sleeps verwenden soll. Der Grund leuchtet mir natürlich auch ein (Transaktionen, Thread-Management etc.).

Was wäre denn ein adäquater Ersatz für ein Sleep, wenn ich z.B. innerhalb einer Methode ein Fremdsystem mit einer Aktion beauftragen möchte, dieses z.B. in Zehn-sekunden-Abständen nach dem Status fragen und wenn es mit seiner Arbeit fertig ist, weiter im Programmablauf gehen möchte?

Also zum Beispiel sowas hier:
Java:
public class Bsp {
	public void doSomething() {

                //Irgendwas tun
		int a = 0;
		int b = 5*5;
		
                //Fremdsystem beauftragen
		fremdsystemClient.invokeTransferFile();
		
                //Mit 10 Sek. Pause immer wieder Status pollen
		while (fremdsystemClient.getTransferStatus() != FERTIG) {
			Thread.sleep(10000);
		}
		
                //Datei transferiert, weiter im Programm
		FileInputStream i = new FileInputStream(transferierteDatei);
	}
}
 

peez

Bekanntes Mitglied
Leider ist das Fremdsystem u.a. ein Webservice, d.h. wait/notify würde ich auf Anhieb sagen kommt nicht in Frage, da das Fremdsystem u.a. per Webservice aufgerufen wird, und nicht von sich aus über den Abschluss informieren kann.

Habe das jetzt mit Timer versucht, funktioniert auch, allerdings scheint er damit die Session / den Login zu verlieren.
Kann ich dem Timer evt. die aktuelle Usersession direkt mitgeben u. die dann beim Timeout wiederherstellen?
 
N

nillehammer

Gast
peez hat gesagt.:
Leider ist das Fremdsystem u.a. ein Webservice, d.h. wait/notify würde ich auf Anhieb sagen kommt nicht in Frage, da das Fremdsystem u.a. per Webservice aufgerufen wird, und nicht von sich aus über den Abschluss informieren kann.
Das Fremdsystem selbst natürlich nicht, aber bei synchronen Webserviceaufrufen kann die Klasse, mit der Du den Aufruf machst (fremdsystemClient), das tun, wenn das Ergebnis vorliegt.

Bei asynchronen Webservice-Aufrufen könnte der Callback-Handler das übernehmen.
 

Ähnliche Java Themen

Neue Themen


Oben