Wenn Sie eine Anwendungskomponente erstellen möchten, die die Unterstützung für Geschäftsaktivitäten
verwendet, müssen Sie die Option Run EJB methods under a Business Activity
scope im Implementierungsdeskriptor der entsprechenden Anwendungskomponente definieren und gegebenenfalls einen Kompensationshandler
erstellen, den die Anwendung im Fall eines Fehlers verwenden soll.
Anschließend wird die Komponente in die Anwendung integriert, und
die Anwendung wird auf einem Server implementiert, auf dem die Unterstützung für Geschäftsaktivitäten
aktiviert ist.
Bei der Anwendungskomponente kann es sich entweder um eine Enterprise-Bean handeln oder um
einen Web-Service, der als Enterprise-Bean implementiert ist.
Vorbereitende Schritte
Informationen zum Bearbeiten der Implementierungsdeskriptoren mit
Rational Application Developer
finden Sie in der Dokumentation zu
Rational Application Developer.
Informationen zu diesem Vorgang
Führen Sie diese Task für eine Anwendung aus, die in einem für Geschäftsaktivitäten aktivierten Server
ausgeführt wird, um die Unterstützung für Geschäftsaktivitäten zur Laufzeit nutzen und Arbeit ausführen zu können, die später von einem Kompensationshandler kompensiert werden können.
Falls die Anwendung bei Beendigung des Geltungsbereiches der Business Activity
eine Kompensation erfordert, übergibt die Anwendung
Daten, die vom Kompensationsprozess benötigt werden, indirekt über die
API für Geschäftsaktivitäten an einen Kompensationshandler.
Die vom Kompensationsprozess benötigten Daten können in Form eines serialisierbaren Objekts oder eines
Service Data Object (SDO) übergeben werden.
Vorgehensweise
- Entwerfen Sie die Anwendungskomponente, für die die Unterstützung
für Geschäftsaktivitäten erforderlich ist.
Definieren Sie insbesondere die Voraussetzungen der Anwendungskomponente
bezüglich Kompensations- (Compensation) und Schließaktivitäten (Close).
Falls die Anwendungskomponente Kompensationsaktivitäten erfordert,
definieren Sie die Art der Daten in der SDO, die die Anwendungskomponente an den Kompensationshandler
übergibt.
- Erstellen Sie gegebenenfalls anhand der Informationen aus dem Anwendungsentwurf
den Kompensationshandler für die Anwendungskomponente. Dieser Handler definiert die Schließ- und Kompensationslogik,
die bei Beendigung des Geltungsbereichs einer Geschäftsaktivität ausgeführt wird, dem der Handler
über eine Anwendungskomponente hinzugefügt wurde.
- Öffnen Sie das gewünschte Assembliertool von WebSphere
Application Server.
- Erstellen Sie eine neue Java™-Klasse, die die entsprechende Schnittstelle implementiert,
je nach Format der Daten, die vom Kompensationsprozess benötigt werden:
- Für ein serialisierbares Objekt implementieren Sie die Schnittstelle "com.ibm.websphere.wsba.serializable.CompensationHandler".
- Für ein SDO, implementieren Sie die Schnittstelle "com.ibm.websphere.wsba.CompensationHandler".
- Implementieren Sie die Methoden
close und compensate im neuen
Kompensationshandlerobjekt, um in Abhängigkeit von den serialisierbaren oder SDO-Daten, die beim Aufruf des Handlers
übergeben werden, die geeigneten Aktionen auszuführen.
Die Kompensationshandlerklasse kann jetzt referenziert und in
einer Anwendung assembliert werden.
- Öffnen Sie die Anwendungskomponente im Assembliertool.
- Öffnen Sie den Implementierungsdeskriptor
für die Anwendungskomponente im
Implementierungsdeskriptor-Viewer.
- Suchen Sie den Abschnitt
Compensation, und wählen Sie das Kontrollkästchen
Run EJB methods under a Business Activity scope aus.
- Geben Sie im Feld Compensation handler class den vollständig qualifizierten Klassennamen
der Kompensationshandlerklasse an, die Sie vorher erstellt haben.
- Speichern Sie den Implementierungsdeskriptor.
- Erstellen Sie die Anwendung, und integrieren Sie dabei sowohl die Anwendungskomponente
als auch den Kompensationshandler. Ist die Anwendung ein Web-Service, muss sie mit dem Standard
Java Specification Request (JSR)
109 konform sein.
- Implementieren Sie die Anwendung auf einem Anwendungsserver,
der für die Unterstützung von Geschäftsaktivitäten aktiviert ist.
Ergebnisse
Die Anwendung ist jetzt für Geschäftsaktivitäten aktiviert und kann die Unterstützung für Geschäftsaktivitäten
zur Laufzeit über die API für Geschäftsaktivitäten nutzen.
Der Anwendungskomponente ist ein Kompensationshandler
zugeordnet. Daher kann sie zur Laufzeit die Methoden
setCompensationDataImmediate und setCompensationDataAtCommit
aufrufen, um den Kompensationshandler zum Geltungsbereich der Geschäftsaktivität hinzuzufügen.
Weitere Informationen zu diesen Methoden finden Sie in den Artikeln zur API für Geschäftsaktivitäten.
Falls die Arbeitseinheit fehlschlägt, der
der Geltungsbereich der Geschäftsaktivität zugeordnet ist,
führt der Kompensationshandler die Aktionen aus, um den Fehler
auszugleichen.
Nächste Schritte
Vergewissern Sie sich, dass die Klasse des Kompensationshandlers im Anwendungsklassenpfad
für die Laufzeitumgebung von
WebSphere Application Server angegeben ist.