Einfache rechenintensive Anwendung entwickeln
Sie können eine einfache rechenintensive Anwendung über einen Controller für rechenintensive Jobs, die Befehlszeile oder das Tool Apache ANT schreiben.
Vorgehensweise
- Rechenintensiven Job unter Verwendung eines Controllers für rechenintensive Jobs erstellen
- Erstellen Sie einen rechenintensiven Jobabschnitt.
- Erstellen Sie eine Java™-Klasse, die die Schnittstelle "com.ibm.websphere.ci.CIWork" implementiert.
- Implementieren Sie die Geschäftslogik.
- Optional: Geben Sie bei Stapelanwendungen einen Job-Listener an.
Stellen Sie eine Implementierung für die Schnittstelle "com.ibm.websphere.batch.listener.JobListener" bereit um weitere Initialisierungs- und Bereinigungsoperationen für Jobs und Abschnitte hinzuzufügen. Geben Sie den Job-Listener in der xJCL mit dem Element "job-level listener" an.
Die Methode "beforeJob()" des Job-Listeners wird aufgerufen, bevor ein Benutzerartefakt aufgerufen wird. Die Methode "afterJob()" des Job-Listeners wird nach dem Aufruf des letzten Benutzerartefakts aufgerufen. Die Methode "beforeStep()" des Job-Listeners wird vor abschnittsbezogenen Benutzerartefakten aufgerufen. Die Methode "afterStep()" des Job-Listeners wird als letztes abschnittsbezogenes Benutzerartefakt aufgerufen. Bei jedem Aufruf des Job-Listeners wird eine Nachricht im Jobprotokoll aufgezeichnet.
- Optional: Rufen Sie bei Stapelanwendungen den Jobabschnittskontext ab.
JobStepContext ctx= JobStepContextMgr.getContext();
Die Serviceklasse "JobStepContextMgr" ermöglicht dem Stapeljobabschnitt, eine Referenz auf sein Objekt "JobStepContext" abzurufen. Der Jobabschnittskontext stellt die folgende Funktionalität bereit:- Zugriff auf Informationen die den Kontext eindeutig identifizieren, in dem der aktuelle Stapeljobabschnitt ausgeführt wird, z. B. die Job-ID
- Benutzerdatenbereich, in dem anwendungsspezifische Informationen zwischen den Methoden des Stapelprogrammierframeworks während des Lebenszyklus des Stapeljobabschnitts übergeben werden können
- Transienter Benutzerdatenbereich, in dem anwendungsspezifische Informationen zwischen Abschnitten übergeben werden können
- Persistenter Benutzerdatenbereich, in dem anwendungsspezifische Informationen zwischen Prüfpunkt/Wiederanlauf gespeichert werden
Sie können die Helper-Klasse "PersistentMap" verwenden, um das Speichern von Basistypen wie boolean und double im persistenten Benutzerdatenbereich des Jobabschnittskontext zu vereinfachen.
- Deklarieren Sie einen Controller für rechenintensive Jobs.
- Fügen Sie Ihrem Implementierungsdeskriptor eine Stateless-Session-Bean hinzu, und verweisen Sie auf die Implementierungsklasse, die vom
Produkt bereitgestellt wird.
Geben Sie dazu com.ibm.ws.ci.CIControllerBean als Bean-Klasse an. Diese Spezifikation muss nur einziges Mal für eine rechenintensive Anwendung vorgenommen werden.
- Verwenden Sie com.ibm.ws.ci.CIControllerHome als ferne Home-Schnittstellenklasse und com.ibm.ws.ci.CIController als ferne Schnittstellenklasse.
- Fügen Sie Ihrem Implementierungsdeskriptor eine Stateless-Session-Bean hinzu, und verweisen Sie auf die Implementierungsklasse, die vom
Produkt bereitgestellt wird.
- Konfigurieren Sie den EJB-Implementierungsdeskriptor.
- Konfigurieren Sie eine Ressourcenreferenz im Controller, die auf den Standard-WorkManager/CIWorkManager des Typs "commonj.work.WorkManager" zeigt.
- Erstellen Sie einen rechenintensiven Jobabschnitt.
- Rechenintensive Jobs über die Befehlszeile erstellen
- Erstellen Sie einen rechenintensiven Jobabschnitt.
- Erstellen Sie eine Java-Klasse, die die Schnittstelle "com.ibm.websphere.ci.CIWork" implementiert.
- Implementieren Sie die Geschäftslogik.
- Rufen Sie bei Stapelanwendungen den Jobabschnittskontext ab.
JobStepContext ctx= JobStepContextMgr.getContext();
Die Serviceklasse "JobStepContextMgr" ermöglicht dem Stapeljobabschnitt, eine Referenz auf sein Objekt "JobStepContext" abzurufen. Der Jobabschnittskontext stellt die folgende Funktionalität bereit:- Zugriff auf Informationen die den Kontext eindeutig identifizieren, in dem der aktuelle Stapeljobabschnitt ausgeführt wird, z. B. die Job-ID
- Benutzerdatenbereich, in dem anwendungsspezifische Informationen zwischen den Methoden des Stapelprogrammierframeworks während des Lebenszyklus des Stapeljobabschnitts übergeben werden können
- Transienter Benutzerdatenbereich, in dem anwendungsspezifische Informationen zwischen Abschnitten übergeben werden können
- Persistenter Benutzerdatenbereich, in dem anwendungsspezifische Informationen zwischen Prüfpunkt/Wiederanlauf gespeichert werden
Sie können die Helper-Klasse "PersistentMap" verwenden, um das Speichern von Basistypen wie boolean und double im persistenten Benutzerdatenbereich des Jobabschnittskontext zu vereinfachen.
- Öffnen Sie eine Eingabeaufforderung, und stellen Sie sicher, dass das Verzeichnis, in dem sich Ihr ausführbares Java-Programm befindet, in der Variablen PATH enthalten ist, damit Sie den Java-Befehl ausführen können.
- Setzen Sie einen Java-Befehl ab.
java -jar pgcbatchpackager.jar -appname=<Anwendungsname> -jarfile=<JAR-Datei mit Klassen für POJO-Abschnitte> -earfile=<Name der Ausgabe-EAR-Datei ohne .ear> [-utilityjars=<durch Semikolons getrennte Liste mit Dienstprogramm-JARs>] [-debug] [-gridjob]
Setzen Sie für Stapeljobs beispielsweise den folgenden Befehl ab:java –jar pgcbatchpackager.jar –appname=SimpleCI –jarfile=SimpleCIEJBs.jar -earfile=SimpleCI –gridjob=true
- Erstellen Sie einen rechenintensiven Jobabschnitt.
- Rechenintensive Jobs mit ANT erstellen
- Erstellen Sie den rechenintensiven Jobabschnitt.
- Erstellen Sie eine Java-Klasse, die die Schnittstelle "com.ibm.websphere.ci.CIWork" implementiert.
- Implementieren Sie die Geschäftslogik.
- Rufen Sie bei Stapelanwendungen den Jobabschnittskontext ab.
JobStepContext ctx= JobStepContextMgr.getContext();
Die Serviceklasse "JobStepContextMgr" ermöglicht dem Stapeljobabschnitt, eine Referenz auf sein Objekt "JobStepContext" abzurufen. Der Jobabschnittskontext stellt die folgende Funktionalität bereit:- Zugriff auf Informationen die den Kontext eindeutig identifizieren, in dem der aktuelle Stapeljobabschnitt ausgeführt wird, z. B. die Job-ID
- Benutzerdatenbereich, in dem anwendungsspezifische Informationen zwischen den Methoden des Stapelprogrammierframeworks während des Lebenszyklus des Stapeljobabschnitts übergeben werden können
- Transienter Benutzerdatenbereich, in dem anwendungsspezifische Informationen zwischen Abschnitten übergeben werden können
- Persistenter Benutzerdatenbereich, in dem anwendungsspezifische Informationen zwischen Prüfpunkt/Wiederanlauf gespeichert werden
Sie können die Helper-Klasse "PersistentMap" verwenden, um das Speichern von Basistypen wie boolean und double im persistenten Benutzerdatenbereich des Jobabschnittskontext zu vereinfachen.
- Stellen Sie für einen rechenintensiven Job sicher, dass die Datei pgcbatchpackager.jar im Klassenpfad enthalten ist.
- Deklarieren Sie die Task. Verwenden Sie zum Deklarieren der Task den folgenden Befehl:
<taskdef name="pgcpackager" classname="com.ibm.ws.batch.packager.PGCPackager" classpath="${FEBaseDir}/grid.pgc.packager/build/lib/pgcbatchpackager.jar" />
- Rufen Sie nach dem Kompilieren der Java-Dateien in Ihrer Anwendung die Task "pgcpackager" auf.
<pgcpackager appname="<appname>" earFile="<Positionsname der zu generierenden EAR-Datei>" jarfile="Position der POJO-JAR-Datei" gridJob="true"/>
- Erstellen Sie den rechenintensiven Jobabschnitt.
Ergebnisse
Nächste Schritte
Unterartikel
Programmiermodell für rechenintensive Anwendungen
Rechenintensive Anwendungen verarbeiten rechenintensive Anforderungen, die nicht gut in das traditionelle Java-EE-Konzept (Java Platform, Enterprise Edition) von Antwort und Anforderung passen.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tgrid_bgridtutorialci
Dateiname:tgrid_bgridtutorialci.html