Die EJB-Schnittstelle wird verwendet, um einen Stapeljob programmgesteuert zu übergeben und zu bearbeiten. Sie können die EJB-Schnittstelle mit dem Basis-Scheduler in
WebSphere Application Server verwenden, um eine kalenderbasierte Übergabe eines Stapeljobs durchzuführen.
Vorbereitende Schritte
Der Job-Scheduler unterstützt den programmgesteuerten Zugriff auf seine Funktionen über eine EJB-Schnittstelle für Java-EE-Anwendungen (Java™ Platform,
Enterprise Edition) und eine Web-Service-Schnittstelle für Java-EE-Anwendungen und für Anwendungen, die keine Java-EE-Anwendungen sind. Die EJB-Schnittstelle
für den Job-Scheduler wird durch die Schnittstellen beschrieben, die in der API-Dokumentation enthalten sind.
Nähere Informationen finden Sie in dieser Dokumentation.
Entwickeln und installieren
Sie Ihre Stapelanwendung.
Informationen zu diesem Vorgang
In diesem Artikel wird beschrieben, wie ein Stapeljob unter Verwendung des Basis-Schedulers an den Job-Scheduler übergeben wird. Der Artikel enthält ein Codebeispiel, das veranschaulicht, wie die EJB-Schnittstelle des
Job-Schedulers aufgerufen wird.
Vorgehensweise
- Erstellen und konfigurieren Sie einen Scheduler. Informationen zum Erstellen und Konfigurieren eines Schedulers finden Sie im Artikel zum Entwickeln und Planen von Tasks.
- Erstellen Sie eine Scheduler-Task für die Übergabe von Stapelarbeit.
Diese Scheduler-Task ruft die EJB
des Job-Schedulers auf, um einen Stapeljob
zu übergeben.
Lesen Sie die Anweisungen zum Erstellen einer Task, die eine EJB aufruft, im Artikel zum Entwickeln einer Task, die eine Session-Bean aufruft.
Dieser Artikel enthält außerdem Anweisungen zur Verwendung der Kalenderfunktion des Schedulers.
Das folgende Beispiel veranschaulicht, wie die EJB-Schnittstelle des
Job-Schedulers aufgerufen wird:
// Die für die Task erforderlichen Importanweisungen
import javax.naming.*;
import com.ibm.websphere.longrun.JobScheduler;
import com.ibm.websphere.longrun.JobSchedulerHome
private JobSchedulerHome zjsHome = null;
private JobScheduler zjs = null;
public void process(TaskStatus task) ()
try{
// Sicherstellen, dass die xJCL in eine Zeichenfolge übernommen werden kann,
// z. B. durch Einlesen einer xJCL-Datei in eine Zeichenfolge
String xJCL = <xJCL as a string>;
// Namenskontext auf Zellenebene abrufen
InitialContext ctxt = new InitialContext();
Hashtable env = new Hashtable();
env.put (Context.INITIAL_CONTEXT_FACTORY,
"com.ibm.websphere.naming.WsnInitialContextFactory");
env.put(Context.PROVIDER_URL,"corbaloc:rir:/NameServiceCellRoot");
ctxt = new InitialContext(env);
// Zum Suchen der EJB des Scheduler für lange Laufzeit aus dem Zellenkontext
// im Namespace muss der Namenskontext für den Anwendungsserver oder Cluster,
// in dem die Scheduleranwendung implementiert ist, angegeben werden.
// Beispiele: "nodes/myNode/servers/myServer", "clusters/myCluster".
String longRunningContext = <Kontext_für_lange_Laufzeit>;
zjsHome = (JobSchedulerHome) ctxt.lookup(longRunningContext +
"/ejb/com/ibm/websphere/longrun/JobSchedulerHome");
zjs = zjsHome.create();
zjs.submitJob( xJCL );
}catch (Exception e) {
System.out.println(e.getMessage());
}
- Führen Sie das Programm aus, um Stapelarbeit zu übergeben.
Lesen Sie den Artikel zum Übergeben einer Task an den Scheduler.