Die EJB-Schnittstelle des Scheduler für lange Laufzeit wird verwendet, um Jobs mit langer Laufzeit über das Programm zu übergeben und zu bearbeiten. Die EJB-Schnittstelle kann zusammen mit dem WebSphere-Scheduler verwendet werden, um die Übergabe von Jobs mit langer Laufzeit kalenderbasiert durchzuführen. Dieser Abschnitt beschreibt, wie Jobs mit langer Laufzeit mit dem Basis-Scheduler von WebSphere Application Server an den Scheduler für lange Laufzeit übergeben werden.
// 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 als Zeichenfolge>; // 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 Scheduler-Anwendung implementiert ist, angegeben werden. // Beispiel: “nodes/meinKnoten/servers/myServer” bzw. “clusters/meinCluster”. 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()); }