Eine Unternehmensanwendung oder einen Unternehmensanwendungsclient zur Steuerung von ActivitySessions entwickeln
Verwenden Sie dieses Task, um anhand des bereitgestellten Beispielcodeauszugs den Code zu schreiben, den eine Session-EJB oder einen Unternehmensanwendungsclient zur Steuerung einer ActivitySession benötigt.
Informationen zu diesem Vorgang
In den meisten Fällen kann eine Enterprise-Bean davon ausgehen, dass der EJB-Container die ActivitySessions innerhalb der Bean steuert. Sie müssen dann lediglich die geeigneten ActivitySession-Attribute im Implementierungsdeskriptor des EJB-Moduls definieren. Informationen hierzu finden Sie im Artikel zur Konfiguration der Implementierungsattribute für die ActivitySession eines EJB-Moduls. Darüber hinaus ist es im allgemeinen sinnvoll, die Enterprise-Beans so zu entwerfen, dass die gesamte ActivitySession-Steuerung auf der Ebene der Enterprise-Bean stattfindet.
In einigen Fällen kann es jedoch erforderlich sein, dass eine Session-Bean oder einen Unternehmensanwendungsclient direkt in ActivitySessions teilnimmt. Für diesen Fall müssen Sie den Code schreiben, den die Session-Bean oder den Unternehmensanwendungsclient benötigt, um ihre ActivitySessions selbst zu steuern.
Wenn Sie planen, den Code zu schreiben, den eine Session-Bean oder einen Unternehmensanwendungsclient zur Steuerung von ActivitySessions benötigt, sollten Sie die Artikel zu ActivitySessions und Transaktionskontexten beschriebenen Punkte beachten.
Wenn Sie den Code schreiben möchten, den eine Session-EJB oder einen Unternehmensanwendungsclient zur Steuerung einer ActivitySession benötigt, dann führen Sie auf der Grundlage des folgenden Beispielcodeauszugs diese Schritte aus:
Vorgehensweise
Beispiel
// Ausgangskontext abrufen
InitialContext ic = new InitialContext();
// Lookup für UserActivitySession
UserActivitySession uas = (UserActivitySession)ic.lookup("java:comp/websphere/UserActivitySession");
// ActivitySession-Zeitlimit auf 60 Sekunden setzen
uas.setSessionTimeout(60);
// Einen neuen ActivitySession-Kontext starten
uas.beginSession();
// Unter diesem Kontext arbeiten
MyBeanA beanA.doSomething();
...
MyBeanB beanB.doSomethingElse();
// Den Kontext beenden
uas.endSession(EndModeCheckpoint);