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.

Anmerkung: Session-Beans, die BMT verwenden und für Aktivieren bei die Einstellung Activity Session verwenden, können ActivitySessions verwalten. Entity-Beans können keine ActivitySessions steuern. Innerhalb von Entity-Beans werden ActivitySessions immer vom EJB-Container gesteuert.

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

  1. Rufen Sie für die ActivitySession einen Ausgangskontext ab.
  2. Rufen Sie eine Implementierung der Schnitttstelle UserActivitySession ab, indem Sie einen JNDI-Lookup des URL java:comp/websphere/UserActivitySession durchführen. Die Schnittstelle UserActivitySession wird verwendet, um ActivitySessions zu starten und zu beenden und verschiedene Attribute der aktiven ActivitySession, die dem Thread zugeordnet ist, abzufragen.
  3. Legen Sie das Zeitlimit in Sekunden fest, nach dessen Ablauf alle danach gestarteten ActivitySessions automatisch vom ActivitySession-Service beendet werden sollen. Falls die Session-Bean oder der Unternehmensanwendungsclient keinen speziellen Wert für dieses Zeitlimit festlegt, wird das Standardzeitlimit (300 Sekunden) verwendet.

    Das Standardzeitlimit kann außerdem für jeden Anwendungsserver in der Anzeige Server > ActivitySession-Service der Administrationskonsole außer Kraft gesetzt werden.

  4. Starten Sie die ActivitySession, indem Sie die Methode beginSession() der Schnitttstelle UserActivitySession aufrufen.
  5. Rufen Sie in der ActivitySession Geschäftsmethoden auf, um die vorgesehene Arbeit auszuführen. Sie können für die Steuerung der ActivitySession auch andere Methoden der Schnitttstelle UserActivitySession aufrufen. Beispielsweise können Sie diese Methoden einsetzen, um den Status der ActivitySession abzurufen oder die Prüfpunkte aller ActivitySession-Ressourcen in der ActivitySession zu untersuchen.
  6. Beenden Sie die ActivitySession, indem Sie die Methode endSession() der Schnittstelle UserActivitySession aufrufen.

Beispiel

Der folgende Codeauszug zeigt ein grundlegendes Beispiel für die Verwendung der Schnittstelle UserActivitySession:
// 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);

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tas_usebma
Dateiname:tas_usebma.html