WebSphere Extended Deployment, Version 6.0.x     Betriebssysteme: AIX, HP-UX, Linux, Solaris, Windows, z/OS

Eine einfache Stapelanwendung entwickeln

Dieser Artikel beschreibt, wie Sie eine einfache Stapelanwendung schreiben.

Vorbereitungen

Vor dem Starten dieser Task müssen Sie Ihre Umgebung einrichten.

Gründe und Szenarios für die Ausführung dieser Task

Diese Beispiel-Task geht davon aus, dass Sie Rational Application Developer (RAD) verwenden. Es können aber auch andere Entwicklungstools verwendet werden.
  1. Erstellen Sie ein neues Enterprise-Anwendungsprojekt mit dem Namen PostingsSample2.
    1. Fügen Sie ein neues EJB-Projektmodul hinzu. Dabei werden eine neue EAR-Datei und ein EJB-Projekt erstellt.
    2. Fügen Sie BATCH_RUNTIME zum Java-Erstellungspfad für das Projekt PostingsSample2EJB hinzu.
    3. Nehmen Sie an, es gibt eine vorhandene Java-Klasse AccountOp und ein Java-Objekt mit zwei öffentlichen Schnittstellenmethoden, creditAccount(..) und debitAccount(..). Diese Methoden werden bei Bedarf von der Stapel-Bean aufgerufen. Importieren Sie diese Klasse aus dem Arbeitsbereich oder schreiben Sie eine Klasse, die die Stapelanwendung aufruft.
  2. Erstellen Sie die Klasse BatchStep. Die Stapel-Bean ist eine Entity-Bean, die von der abstrakten Klasse BatchStep erbt. Gehen Sie wie folgt vor, um den abstrakten Jobabschnitt PostingSample2Step zu erstellen:
    1. Erstellen Sie im Projekt PostingsSample2EJB eine abstrakte Java-Klasse PostingSample2Step, die von BatchJobStepInterface erbt.
    2. Fügen Sie BatchJobStepInterface hinzu.
    3. Definieren Sie die Klasse als abstrakte Klasse.
  3. Erstellen Sie die Stapel-Bean (Entity-EJB). Diese Schritte beschreiben, wie die Stapel-Bean manuell erstellt wird. Die Stapel-Bean verwendet die Klassen BatchJobStepLocalInterface, BatchJobStepKey und BatchJobStepLocalHome aus dem bereitgestellten Programmiermodell. Diese Klassen werden nicht erneut erstellt. Es wird nur die Implementierung der Stapel-Bean generiert.
    1. Erstellen Sie im Projekt PostingSample2EJB eine neue CMP-EJB mit dem Namen PostingsSample2Data.
    2. Wählen Sie für die Local-Home-Schnittstellenklasse BatchJobStepLocalHomeInterface aus.
    3. Wählen Sie für die Local-Schnittstellenklasse BatchJobStepLocalInterface aus.
    4. Wählen Sie die Option Einfachen Schlüsselattributtyp für die Schlüsselklasse verwenden ab.
    5. Wählen Sie für die Schlüsselklasse BatchJobStepKey aus.
    6. Entfernen Sie die CMP-Attribut-ID.
    7. Fügen Sie im CMP-Attribut die beiden CMP-Attribute jobID und stepID der Typzeichenfolge hinzu.
    8. Fügen Sie jobID als Name und java.lang.String als Typ hinzu. Wählen Sie Schlüssel aus.
    9. Fügen Sie stepID hinzu und geben Sie java.lang.String im Feld Schlüssel ein.
    10. Wählen Sie BeanSuperclass aus. Erstellen Sie einen entsprechenden Typ PostingStep2. Damit wird die neue EJB erstellt, aber in den Projekten wird nur die EJB-Bean-Klasse angezeigt. Die Local-Schnittstelle, die Home-Schnittstelle und die Schlüsselklasse werden den mit dem Programmiermodell bereitgestellten Klassen entnommen.
    11. Editieren Sie den Deployment-Deskriptor. Nehmen Sie die folgenden Änderungen in der Datei ejb-jar.xml für PostingSample2Data vor.
      1. Ändern Sie auf der Registerkarte Bean den Namen der CMP-Verbindungs-Factory in jdbc/lree und den Berechtigungstyp für den Container in Per_Connection_Factory.
      2. Setzen Sie auf der Registerkarte Assemblierung für die Containertransaktionen alle Methoden (*) von PostingsSample2Data auf Erforderlich.
      3. Ändern Sie den JNDI-Namen unter "WebSphere-Bindings" in ejb/com/ibm/ws/batch/sample/PostingsSample2Data.
    12. Speichern und schließen Sie den Deployment-Deskriptor. Wie zuvor fügen Sie die Implementierung für die EJB später hinzu.
  4. Erstellen Sie die Session-Bean für den Stapeljob. Der Stapeljob ist eine Session-Bean, die im Deployment-Deskriptor deklariert wird, aber keine generierten Klassen hat, weil diese alle zur Laufzeitumgebung gehören.
    1. Klicken Sie für die Datei ejb-jar.xml auf der Registerkarte Bean auf Hinzufügen, um eine neue Session-EJB zu erstellen. Geben Sie der Bean den Namen PostingsJob2.
    2. Ändern Sie den Transaktionstyp in "Bean".
    3. Geben Sie für die Bean-Klasse, die Remote-Home-Schnittstelle und die Remote-Schnittstelle die folgenden Zeichenfolgen ein:
      1. Bean-Klasse: com.ibm.ws.batch.BatchJobControllerBean
      2. Remote-Schnittstelle: com.ibm.ws.batch.BatchJobController
      3. Remote-Home-Schnittstelle: com.ibm.ws.batch.BatchJobControllerHome
      Beachten Sie, dass keine neue Klasse generiert wird, weil alle Klassen in der Laufzeitumgebung vorhanden sind. Im Deployment-Deskriptor wird nur die Job-Session-Bean deklariert.
    4. Ändern Sie den JNDI-Namen für WebSphere-Bindings in ejb/com/ibm/ws/batch/PostingsSample2Job.
    5. Fügen Sie eine Referenz auf PostingsSample2Job mit dem Typ "EJB-Verweis" hinzu.
    6. Wählen Sie PostingsSample2Data Bean aus und fügen Sie den Namen ejb/PostingsSample2Data hinzu. Wählen Sie den Referenztyp "Lokal" aus.
    7. Erstellen Sie die Referenz auf den Arbeitsmanager.
      1. Klicken Sie für die Bean PostingSample2Job auf der Registerkarte Verweise auf Hinzufügen. Wählen Sie Ressourcenverweis aus und klicken Sie auf Weiter.
      2. Name: wm/BatchWorkManager
      3. Typ: commonj.work.WorkManager
      4. Authentifizierung: Container
      5. Bereich der gemeinsamen Benutzung: Shareable
    8. Ändern Sie den JNDI-Namen von wm/BatchWorkManger in wm/default.
    9. Speichern und schließen Sie die Datei ejb-jar.xml.
  5. Erstellen Sie den Eingabedatenstrom für den Stapeljob. Es kann 0, 1 oder n Eingabe- und/oder Ausgabedatenströme geben. In diesem Beispiel gibt es einen Eingabedatenstrom, der aus einer Datei liest, und keinen Ausgabedatenstrom. Die Ausgabe wird in die Konsole geschrieben. Die BDS-Klassen sind POJO. Führen Sie zum Erstellen des Eingabedatenstroms die folgenden Schritte aus:
    1. Erstellen Sie eine neue Klasse im Paket com.ibm.ws.batch.sample mit dem Namen PostingsSample2InputStream.
    2. Implementieren Sie die Schnittstelle BatchDataStream. Damit wird die neue Datenstromklasse PostingSample2Input erstellt. Sie können die Implementierung später hinzufügen.
  6. Erstellen Sie die Klasse Posting2, um einen Datensatz aus den Eingabedatenstrom darzustellen. Diese Klasse ist die Objektdarstellung eines Datensatzes im Stapeleingabedatenstrom. Sie wird erstellt, während ein Datensatz aus dem Eingabe-BDS gelesen wird, und an die Stapel-Bean weitergegeben. Diese Klasse ist mit einer Daten- oder Cargo-Bean zu vergleichen, die Attribute und entsprechende Setter und Getter für die Felder im Eingabedatenstrom enthält.
    1. Erstellen Sie eine neue Klasse mit dem Namen Posting2, die die Schnittstelle Serializable implementiert. Implementierungen können später hinzugefügt werden.
  7. Fügen Sie den Klassen Implementierungen hinzu.
    1. Fügen Sie jetzt, wie in den mitgelieferten Klassendateien definiert, Implementierungen zu PostingSample2DataBean, PostingSample2Step und PostingSample2InputStream hinzu. Dieses Beispiel wird aus Verarbeitungsperspektive einfach gehalten, um die Schritte für die Entwicklung einer neuen Stapelanwendung klar herauszuheben. Nachdem Sie die Implementierungsklassen hinzugefügt haben, können Sie die EJB implementieren.

Nächster Artikel

Erweitern Sie in der Navigationsstruktur der Administrationskonsole den Eintrag Laufzeitoperationen und wählen Sie Jobverwaltung aus. Stellen Sie sicher, dass die rechte Anzeige eine leere Jobtabelle ohne Fehlernachrichten enthält.



Task-Topic    

Nutzungsbedingungen | Feedback Letzte Aktualisierung: Mar 23, 2006 9:54:23 AM EST
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r0/index.jsp?topic=?topic=/com.ibm.websphere.xd.doc/info/scheduler/tbgridtutorial2.html

© Copyright IBM 2005, 2006. Alle Rechte vorbehalten.
Dieses Information Center beruht auf der Eclipse-Technologie. (http://www.eclipse.org)