Der ActivitySession-Service wird als übergeordneter Service in einer vorhandenen Implementierung des Java 2 Platform, Enterprise Edition (J2EE) 1.4 Activity Service implementiert. Der Service stellt einen Bereich für Arbeitseinheiten bereit, in dem nicht wiederherstellbare oder nicht zweiphasige Ressourcen im Hinblick auf Transaktionen dezentral und kooperativ verwaltet werden können. Verwenden Sie diese Beispielanwendungen, um sich mit dem ActivitySession-Service vertraut zu machen.
Weniger als eine Stunde
Zur Verwendung der Beispiele laden Sie die Beispieldateien für den ActivitySession-Service von einer Produkt-Download-Site herunter. Führen Sie die folgenden Schritte aus:
Ein Servlet stellt die Benutzerschnittstelle für das Spiel "MasterMind" bereit. Das Spiel steuert mit einer Http-Sitzung den ActivitySession-Lebenszyklus und kommuniziert mit einer Enterprise-Bean, die den Status speichert und die Logik für das Spiel bereitstellt. Ziel des Spiels ist, den zu Anfang generierten, aus vier Elementen bestehenden Code zu erraten. Bei jeder Vermutung erhält der Benutzer einen Hinweis, wie viele der von ihm vermuteten Elemente im Zielcode enthalten sind und wie viele dieser Elemente er an der richtigen Stelle vermutet hat.
Bei diesem Beispiel handelt es sich um einen Client, der den ActivitySessions-Service startet und beendet und dabei eine Entity-Bean aktualisiert. Es demonstriert den Clientzugriff auf die Schnittstelle "UserActivitySession", den containergesteuerten ActivitySessions-Service und die Containerauflösung von ressourcengesteuerten lokalen Transaktionen. Diese Transaktionen werden innerhalb der Enterprise-Beans gestartet und haben den LTC-Grenzwert (Local Transaction Containment, lokaler Transaktionseinschluss) "ActivitySession". Der Client stellt sicher, dass Aktualisierungen von Bean-Instanzen festgeschrieben werden, wenn der ActivitySession-Service mit EndModeCheckpoint beendet wird und bei Verwendung von EndModeReset zurückgesetzt wird.
Bei diesem Beispiel handelt es sich um einen Client, der eine Methode für eine Stateless-Session-Bean aufruft. Diese Session-Bean verwendet Bean-gesteuerte ActivitySessions, wobei sie die ActivitySessions über die Schnittstelle "UserActivitySession" startet und beendet. Während dieser ActivitySessions wird auf eine Stateful-Session-Bean zugegriffen. Diese Stateful-Session-Bean verwendet den containergesteuerten ActivitySession-Service, den LTC-Grenzwert "ActivitySession" und die LTC-Auflösungssteuerung "Anwendung". Sie wird mehrmals aufgerufen, um Daten in einer Datenbank zu aktualisieren. Manchmal wird die Stateful-Session-Bean angewiesen, die lokalen Transaktionen des Ressourcenmanagers (Resource Manager Local Transactions, RMLTs) zum Abschluss zu bringen, d. h. eine Festschreibungs- oder eine Rollback-Operation auszuführen. In einigen Fällen bleiben RMLTs unvollständig. Die Stateless-Session-Bean führt den ActivitySession-Service dann aus und teilt dem Client mit, ob die Ergebnisse mit dem erwarteten Verhalten konsistent sind.