Schedulerschnittstelle
Verwenden Sie das Java-Objekt com.ibm.websphere.scheduler.Scheduler (im JNDI-Namespace für die Schedulerkonfiguration), um eine Referenz auf einen Scheduler zu ermitteln und mit Tasks zu arbeiten.
Für jede Schedulerkonfiguration ist im JNDI-Namespace ein Java-Objekt com.ibm.websphere.scheduler.Scheduler vorhanden. Eine Referenz auf einen Scheduler kann dadurch abgerufen werden, dass ein Lookup für einen JNDI-Namen durchgeführt wird. Der Lookup ist jedoch nur in dem Serverprozess, in dem die Schedulerinstanz vorhanden ist, gültig. Wenn eine Referenz abgerufen wurde, können Tasks erstellt, ausgesetzt, abgebrochen werden usw., vorausgesetzt, der Aufrufende hat Zugriff auf die Schedulerinstanz.
Ausführliche Informationen finden Sie in der API-Dokumentation zur Schedulerschnittstelle.
- Taskerstellung
- Die Task wird im persistenten Speicher mit dem globalen Transaktionskontext des Aufrufenden erstellt, falls vorhanden. Nähere Einzelheiten finden Sie im Artikel Transaktionen und Scheduler. Da es sich um eine transaktionsorientierte Operation handelt, kann die Task erst mit einem anderen Thread ausgeführt oder geändert werden, wenn die aktuelle Transaktion festgeschrieben wurde.
- Taskbearbeitung
- Erstellte Tasks können mit den Methoden suspend(), resume(), cancel() und purge() geändert werden. Diese Methoden verwenden als Parameter eine Task-ID-Zeichenfolge, die von der Methode create() generiert wird und im TaskStatus-Objekt gefunden werden kann. Wenn derzeit eine Task ausgeführt oder von einem anderen Thread geändert wird, wird eine Operation, die versucht, den Status der Task zu ändern, möglicherweise blockiert. Tasks können nur von der Anwendung (EAR-Datei), die zur Erstellung der Task verwendet wurde, geändert werden.
- Taskausführung
- Tasks werden in dem Thread-Pool, der vom Arbeitsmanager der Konfiguration angegeben wurde, ausgeführt. Wenn mehrere Scheduler dieselben Datenbanktabellen gemeinsam nutzen, gehört der Scheduler zu einem Cluster, und die Tasks in der Tabelle können in jedem Scheduler ausgeführt werden, unabhängig davon, ob sie sich selben Server, Knoten oder in derselben Zelle befinden.
- Task-Lookup
- Tasks können über die Eigenschaft "Name", das zur Erstellungszeit zugeordnet wurde, lokalisiert werden. Dies ist nützlich, wenn Sie eine Gruppe von Tasks ändern müssen und die Überwachung einzelner Task-IDs nicht angebracht ist.