Mit dieser Task können Sie die Implementierungsattribute der ActivitySession für
eine Webanwendung konfigurieren, damit diese UserActivitySessions startet und die
Aufgaben im Bereich der ActivitySessions ausführt.
Vorbereitende Schritte
In der Beschreibung dieser Task wird davon ausgegangen, dass Sie eine EAR-Datei (Enterprise Archive) haben, die eine in
WebSphere Application Server implementierbare Anwendungs-Enterprise-Bean enthält. Weitere Einzelheiten finden Sie im Artikel
zum Assemblieren von Anwendungen.
Informationen zu diesem Vorgang
Sie können die Implementierungsattribute einer Anwendung über ein Assembliertool konfigurieren.
In diesem Artikel wird die Verwendung von Rational Application Developer für die Konfiguration der
Implementierungsattribute beschrieben.
Führen Sie die folgenden Schritte
aus, um die Implementierungsattribute der ActivitySession für eine Webanwendung zu konfigurieren:
Vorgehensweise
- Starten Sie das Assembliertool. Weitere Informationen finden Sie in der Dokumentation zu
Rational Application Developer.
- Erstellen oder editieren Sie das Webmodul. Wenn Sie beispielsweise die Attribute eines vorhandenen Moduls ändern möchten,
klicken Sie auf und wählen Sie dann die Archivdatei für das Modul aus. Verwenden zum Ändern der Attribute eines vorhandenen Moduls beispielsweise
den Importassistenten, um die EAR- bzw. WAR-Datei in das Assembliertool zu importieren.
Starten Sie den Importassistenten wie folgt:
- Klicken Sie auf .
- Erweitern Sie den Ordner "Web", klicken Sie auf WAR-Datei und anschließend
auf Weiter.
- Wählen Sie die WAR-Datei aus und klicken Sie anschließend auf Fertigstellen.
- Klicken Sie in der Sicht "Projektexplorer" der Java EE-Perspektive mit der rechten Maustaste
auf die Komponenteninstanz. Klicken Sie mit der rechten Maustaste auf Editor für Implementierungsdeskriptor und klicken
Sie anschließend auf Öffnen mit. Im Eigenschaftsfenster wird daraufhin ein Eigenschaftennotizbuch für das Webmodul angezeigt.
- Wählen Sie im Eigenschaftenfenster das Register "Extended Services" aus.
- Wählen Sie das Servlet aus, das Sie ändern möchten.
- Setzen Sie im Abschnitt "ActivitySession" das Attribut
Steuerungstyp der Aktivitätssitzung auf "Anwendung", "Container" oder "Ohne".
- Anwendung
- Das Starten und Beenden von ActivitySessions wird wie folgt von der Webanwendung übernommen:
- Ist beim Starten einer ActivitySession durch eine Anwendung eine
HttpSession aktiv, dann wird die ActivitySession vom Container der HttpSession zugeordnet.
- Wird eine ActivitySession gestartet, ohne dass eine
HttpSession aktiv ist, dann muss die Anwendung sicherstellen, dass sie vor Beendigung der
zugeteilten Methode beendet wird. Andernfalls werden Ausnahmen zurückgegeben.
- Falls eine HttpSession einer Anforderung zugeordnet ist, die einer Anwendung
zugeteilt wird, die diese Art der ActivitySession-Steuerung verwendet, und
falls dieser HttpSession eine ActivitySession zugeordnet ist, dann
wird die Anforderung dem Kontext dieser
ActivitySession zugeteilt. Beispielsweise nimmt der Container
den ActivitySession-Kontext im Thread vor der Zuteilung wieder auf.
- Eine Webanwendung kann sowohl Transaktionen als auch
ActivitySessions verwenden. Alle Transaktionen, die
im Geltungsbereich einer ActivitySession gestartet wurden, müssen innerhalb derselben Anforderungszuteilung
von der Webkomponente beendet
werden, die sie gestartet hat.
- Container
- Ein Servlet hat keinen Zugriff auf
UserActivitySessions. Jeder vom Servlet gestarteten
HttpSession wird automatisch eine ActivitySession vom Container zugeordnet, und diese
ActivitySession wird in den Ausführungs-Thread gestellt.
Wird ein solches Servlet von einer Anforderung verteilt, die über eine
HttpSession ohne ActivitySession verfügt, dann startet der
Container eine ActivitySession und ordnet diese der HttpSession und dem Thread zu.
Eine Webanwendung kann sowohl Transaktionen als auch
ActivitySessions verwenden. Alle Transaktionen, die
im Geltungsbereich einer ActivitySession gestartet wurden, müssen innerhalb derselben Anforderungszuteilung
von der Webkomponente beendet
werden, die sie gestartet hat.
- Ohne
- Ein Servlet hat keinen Zugriff auf UserActivitySession. Jeder von einem Servlet
gestarteten HttpSession wird nicht automatisch eine ActivitySession vom Container
zugeordnet.
Wird ein solches Servlet von einer Anforderung zugeteilt, die über eine HttpSession mit
ActivitySession verfügt, dann teilt der Container die Anforderung im Kontext dieser
ActivitySession zu.
Beispielsweise nimmt der Container
den ActivitySession-Kontext im Thread vor der Zuteilung wieder auf.
- Klicken Sie zum Anwenden der Änderungen und schließen des Assembliertools auf
OK.
Wenn Sie die Werte anwenden möchten, ohne den Eigenschaftendialog zu schließen,
klicken Sie auf Anwenden.
- Speichern Sie die am Implementierungsdeskriptor vorgenommenen Änderungen.
- Schließen Sie den Editor für Implementierungsdeskriptoren.
- Wenn Sie dazu aufgefordert werden, klicken Sie auf Ja, um
die Änderungen am Implementierungsdeskriptor zu speichern.
- Überprüfen Sie die Archivdateien. Weitere Informationen zum Prüfen von Dateien mit
Rational Application Developer finden Sie in den Informationen zu Rational Application
Developer.
- Klicken Sie im Popup-Menü des Projekts auf Implementieren, um den EJB-Implementierungscode zu
generieren.
- Optional: Testen Sie das fertig gestellte Modul in einer Installation von WebSphere Application
Server. Klicken Sie mit der rechten Maustaste auf ein Modul, klicken Sie auf Auf Server ausführen, und folgen Sie den Anweisungen
im daraufhin angezeigten Assistenten.
Wichtig: Verwenden Sie die Option Auf Server ausführen nur für Einheitentests. Das Assembliertool steuert die WAS-Installation, und
das Assembliertool überschreibt,
sofern
eine Anwendung fern veröffentlicht ist, die Konfigurationsdatei dieses Servers. Verwenden Sie die Option Auf Server ausführen nicht auf Produktionsservern.
Nächste Schritte
Verwenden Sie nach der Assemblierung Ihrer Anwendung ein Systemverwaltungstool, um die WAR-Datei zu implementieren.
Wenn Sie beispielsweise die Administrationskonsole verwenden möchten,
lesen Sie den Artikel zum Implementieren und Verwalten von Unternehmensanwendungen.