Zschimmer GmbH Impressum und Kontakt

Job Scheduler     Erste Seite

  XML     API     Register


logo

Spooler - Programmschnittstelle (API)

JavaJavaScriptVBScriptPerl Javadoc
   

Spooler

 

void  spooler.abort_immediately() Bricht den Scheduler augenblicklich ab
 
void  spooler.abort_immediately_and_restart() Bricht den Scheduler augenblicklich ab und startet ihn neu.   
 
void  spooler.add_job_chain( Job_chain )
 
String   spooler.configuration_directory() Pfad des Konfigurationsverzeichnisses
 
Job_chain   spooler.create_job_chain()
 
Order   spooler.create_order()
 
Variable_set   spooler.create_variable_set()
 
Xslt_stylesheet   spooler.create_xslt_stylesheet()
Xslt_stylesheet   spooler.create_xslt_stylesheet( path )
Xslt_stylesheet   spooler.create_xslt_stylesheet( path )
 
String   spooler.db_history_table_name() Name der Datenbanktabelle für die Historie
 
String   spooler.db_name() Hostware-Pfad der Datenbank
 
String   spooler.db_order_history_table_name() Name der Datenbanktabelle für die Auftragshistorie
 
String   spooler.db_orders_table_name() Name der Datenbanktabelle für die Aufträge
 
String   spooler.db_tasks_table_name() Name der Datenbanktabelle für die Tasks
 
String   spooler.db_variables_table_name() Name der Datenbanktabelle für interne Variablen des Schedulers
 
String   spooler.directory() Das Arbeitsverzeichnis beim Start des Schedulers
 
String   spooler.execute_xml( xml ) Führt ein XML-Kommando aus
 
String   spooler.hostname() Name des Rechners, auf dem der Scheduler läuft.
 
String   spooler.id() Wert der Kommandozeilenoption -id=
 
String   spooler.include_path() Liefert die Kommandozeilenoption -include-path=.
 
String   spooler.ini_path() Wert der Option -ini= (Dateiname der factory.ini)
 
boolean   spooler.is_service()
 
Job   spooler.job( job_name ) Liefert einen Job
 
Job_chain   spooler.job_chain( name ) Liefert eine Jobkette
 
boolean   spooler.job_chain_exists( name )
 
void  spooler.let_run_terminate_and_restart()
 
Locks   spooler.locks() Liefert die Locks
 
Log   spooler.log() Das Hauptprotokoll
 
String   spooler.log_dir() Verzeichnis der Protokolle
 
String   spooler.param() Kommandozeilenoption -param=
 
Process_classes   spooler.process_classes() Liefert die Prozessklassen
 
Schedule   spooler.schedule( path ) Liefert den benannten Schedule oder null
 
Supervisor_client   spooler.supervisor_client() Liefert den Supervisor_client
 
int   spooler.tcp_port() HTTP- und TCP-Port für Kommandos an den Job Scheduler
 
void  spooler.terminate( timeout, restart, all_schedulers, continue_exclusive_operation ) Scheduler mit allen Tasks ordentlich beenden
 
void  spooler.terminate_and_restart( timeout ) Scheduler mit allen Tasks ordentlich beenden und erneut starten
 
int   spooler.udp_port() UDP-Port für Kommandos an den Job Scheduler
 
void  spooler.set_var( name, String ) Zugriff auf Scheduler-weite Variablen
String   spooler.var( name )
 
Variable_set   spooler.variables() Die Scheduler-weiten Variablen als Variable_set

 

Von dieser Klasse gibt es nur ein Objekt: spooler.

 

abort_immediately

Bricht den Scheduler augenblicklich ab

 

void  spooler.abort_immediately()

 

  

   Bricht den Scheduler augenblicklich ab. Kein Job hat Gelegenheit, darauf zu reagieren.   

  

Der Scheduler bricht zuvor alle gestarteten Prozesse ab. Das sind die Tasks und die Prozesse von Task.create_subprocess() und Task.add_pid().   

  

Siehe <modify_spooler cmd="abort_immediately"> und Beendigung des Schedulers.   

  

abort_immediately_and_restart

Bricht den Scheduler augenblicklich ab und startet ihn neu.   

 

void  spooler.abort_immediately_and_restart()

 

  

Wie Spooler.abort_immediately(), nur dass der Scheduler sich erneut startet. Dabei verwendet er die Kommandozeilenparameter wieder.   

  

Siehe <modify_spooler cmd="abort_immediately_and_restart"> und Beendigung des Schedulers.   

  

add_job_chain

 

void  spooler.add_job_chain( Job_chain )

 

Bei Job_chain.orders_recoverable=true lädt der Scheduler die Aufträge der Jobkette aus der Datenbank.

Siehe Spooler.create_job_chain() und <job_chain>.

Parameter

Job_chain

configuration_directory

Pfad des Konfigurationsverzeichnisses

 

String   spooler.configuration_directory()

 

Das XML-Attribut <config configuration_directory="…"> wird damit überschrieben

create_job_chain

 

Job_chain   spooler.create_job_chain()

 

Liefert eine neue Job_chain. Diese Jobkette kann, nachdem sie mit Jobs gefüllt worden ist, mit Spooler.add_job_chain() dem Scheduler hinzugefügt werden

Siehe <job_chain>.

Rückgabe

Job_chain  

create_order

 

Order   spooler.create_order()

 

Erzeugt einen neuen Auftrag. Dieser Auftrag kann mit Job_chain.add_order() einer Jobkette übergeben werden.

Rückgabe

Order  

create_variable_set

 

Variable_set   spooler.create_variable_set()

Rückgabe

Variable_set  

create_xslt_stylesheet

 

Xslt_stylesheet   spooler.create_xslt_stylesheet()
Xslt_stylesheet   spooler.create_xslt_stylesheet( java.io.path path )
Xslt_stylesheet   spooler.create_xslt_stylesheet( String path )

Parameter

xml  (optional)

XSLT-Stylesheet als XML-String

Rückgabe

Xslt_stylesheet  

db_history_table_name

Name der Datenbanktabelle für die Historie

 

String   spooler.db_history_table_name()

 

Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) wird damit überschrieben

db_name

Hostware-Pfad der Datenbank

 

String   spooler.db_name()

 

Verbindungszeichenfolge der Datenbank für die Historienführung. Der Job Scheduler unterstützt ODBC (Windows) und JDBC für den Zugriff auf Datenbanken. Ohne Eintrag werden Dateien im .csv-Format erzeugt, siehe factory.ini (Abschnitt [spooler], Eintrag history_file=…).

Unter Windows kann ein einfacher Dateiname angegebenen werden, der auf .mdb endet (z.B. scheduler.mdb). Der Job Scheduler verwendet dann eine Microsoft MS-Access Datenbank dieses Namens, die im Protokollverzeichnis (s. Option -log-dir) liegt. Der Job Scheduler richtet die Datei ein, wenn sie fehlt.

Der Job Scheduler richtet die Tabellen selbständig ein.

Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db=…) wird damit überschrieben

Beispiel  

;    SQL Server 2000 via msbase.jar, msutil.jar, mssqlserver.jar
db = jdbc -class=com.microsoft.jdbc.sqlserver.SQLServerDriver jdbc:microsoft:sqlserver://localhost:1433;selectMethod=Cursor;databaseName=scheduler -user=scheduler -password=secret
;    SQL Server 2000, 2005 via sqljdbc.jar
db = jdbc -class=com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://localhost:1433;sendStringParametersAsUnicode=false;selectMethod=cursor;databaseName=scheduler -user=scheduler -password=secret

;    MySQL 4.1.7, 5.x
db = jdbc -class=com.mysql.jdbc.Driver jdbc:mysql://localhost/scheduler:3306 -user=scheduler -password=secret

;    Oracle 8.1.7, 9i, 10g
db = jdbc -class=oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@localhost:1521:orcl -user=scheduler -password=secret

;    PostgreSQL 8.x
db   = jdbc -class=org.postgresql.Driver jdbc:postgresql://localhost:5432/scheduler -user=scheduler -password=secret

;    IBM DB2 8
db   = jdbc -class=com.ibm.db2.jcc.DB2Driver jdbc:db2://localhost:50000/scheduler:driverType=2;retrieveMessagesFromServerOnGetMessage=true; -user=scheduler -password=secret

;    Firebird 1.5
db   = jdbc -class=org.firebirdsql.jdbc.FBDriver jdbc:firebirdsql://localhost:3050/scheduler -user=scheduler -password=secret

;    ODBC
db = odbc -db=scheduler_datasource -user=scheduler -password=secret

;    MS Access Datenbank
db = scheduler.mdb

db_order_history_table_name

Name der Datenbanktabelle für die Auftragshistorie

 

String   spooler.db_order_history_table_name()

 

Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_order_history_table=…) wird damit überschrieben

db_orders_table_name

Name der Datenbanktabelle für die Aufträge

 

String   spooler.db_orders_table_name()

 

Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_orders_table=…) wird damit überschrieben

db_tasks_table_name

Name der Datenbanktabelle für die Tasks

 

String   spooler.db_tasks_table_name()

 

Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_tasks_table=…) wird damit überschrieben

db_variables_table_name

Name der Datenbanktabelle für interne Variablen des Schedulers

 

String   spooler.db_variables_table_name()

 

Der Job Scheduler hält in dieser Tabelle interne Zähler, zum Beispiel für die nächste freie Task-ID.

Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_variables_table=…) wird damit überschrieben

directory

Das Arbeitsverzeichnis beim Start des Schedulers

 

String   spooler.directory()

 

Ändert das Arbeitsverzeichnis.

Eine auf einem entfernten Scheduler ausgeführte Task (<process_class remote_scheduler="…">) liefert den Wert des entfernten Schedulers.

Die Option -cd wird damit überschrieben

 

Eine auf einem entfernten Scheduler ausgeführte Task (<process_class remote_scheduler="…">) liefert den Wert des entfernten Schedulers.

Rückgabe

String  

Der Pfad endet unter Unix mit "/" und unter Windows mit "\".

execute_xml

Führt ein XML-Kommando aus

 

String   spooler.execute_xml( String xml )

Beispiel  in javascript

spooler_log.info( spooler.execute_xml( "<show_state/>" ) );

 

Fehler werden als XML-Antwort <ERROR> geliefert.

Parameter

xml

Siehe XML-Kommandos.

Rückgabe

String  

Liefert die XML-Antwort des ausgeführten Kommandos.

hostname

Name des Rechners, auf dem der Scheduler läuft.

 

String   spooler.hostname()

id

Wert der Kommandozeilenoption -id=

 

String   spooler.id()

 

Der Job Scheduler wählt nur die Elemente der XML-Konfiguration aus, deren Attribut spooler_id leer ist oder denselben Wert wie in dieser Einstellung enthält.

Wenn die Scheduler-ID nicht angegeben ist, beachtet der Job Scheduler das XML-Attribut spooler_id= nicht und wählt alle Elemente der XML-Konfiguration aus.

Siehe z.B. <config>.

Die Option -id wird damit überschrieben
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag id=…) wird damit überschrieben

include_path

Liefert die Kommandozeilenoption -include-path=.

 

String   spooler.include_path()

 

Verzeichnis der Dateien, die mit <include> eingezogen werden.

Eine auf einem entfernten Scheduler ausgeführte Task (<process_class remote_scheduler="…">) liefert den Wert des entfernten Schedulers.

Umgebungsvariablen (z.B. $HOME) werden ersetzt (siehe hier).

Die Option -include-path wird damit überschrieben
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag include_path=…) wird damit überschrieben
Das XML-Attribut <config include_path="…"> wird damit überschrieben

 

Eine auf einem entfernten Scheduler ausgeführte Task (<process_class remote_scheduler="…">) liefert den Wert des entfernten Schedulers.

ini_path

Wert der Option -ini= (Dateiname der factory.ini)

 

String   spooler.ini_path()

 

Eine auf einem entfernten Scheduler ausgeführte Task (<process_class remote_scheduler="…">) liefert den Wert des entfernten Schedulers.

Siehe -ini, factory.ini

is_service

 

boolean   spooler.is_service()

Rückgabe

boolean  

true, genau dann wenn der Scheduler als Dienst (in Windows) oder als Daemon (in Unix) läuft.

job

Liefert einen Job

 

Job   spooler.job( String job_name )

 

Wenn der Jobname nicht bekannt ist, wird eine Exception geliefert.

Parameter

job_name

Rückgabe

Job  

job_chain

Liefert eine Jobkette

 

Job_chain   spooler.job_chain( String name )

 

Wenn der Name der Jobkette nicht bekannt ist, wird eine Exception geliefert.

Parameter

name

Rückgabe

Job_chain  

job_chain_exists

 

boolean   spooler.job_chain_exists( String name )

Parameter

name

let_run_terminate_and_restart

 

void  spooler.let_run_terminate_and_restart()

 

Sobald alle Aufträge abgearbeitet sind, beendet der Scheduler alle Tasks (durch Aufruf von Job_impl) und beendet dann sich selbst. Ein neuer Scheduler mit unveränderten Kommandozeilenparametern wird gestartet.

Siehe <modify_spooler cmd="let_run_terminate_and_restart"> und Beendigung des Schedulers.

locks

Liefert die Locks

 

Locks   spooler.locks()

Rückgabe

Locks  

log

Das Hauptprotokoll

 

Log   spooler.log()

 

Normalerweise wird man spooler_log() verwenden.

Rückgabe

Log  

log_dir

Verzeichnis der Protokolle

 

String   spooler.log_dir()

 

In dieses Verzeichnis schreibt der Job Scheduler seine Protokolle.

log_dir=*stderr lässt den Job Scheduler die Protokollausgabe nach stderr (auf den Bildschirm) schreiben.

Eine auf einem entfernten Scheduler ausgeführte Task (<process_class remote_scheduler="…">) liefert den Wert des entfernten Schedulers.

Umgebungsvariablen (z.B. $HOME) werden ersetzt (siehe hier).

Die Option -log-dir wird damit überschrieben
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_dir=…) wird damit überschrieben

 

Eine auf einem entfernten Scheduler ausgeführte Task (<process_class remote_scheduler="…">) liefert den Wert des entfernten Schedulers.

param

Kommandozeilenoption -param=

 

String   spooler.param()

 

Zur freien Verwendung. Der Parameter ist in den Skripten über spooler.param lesbar.

Das XML-Element <param> wird damit überschrieben
Die Option -param wird damit überschrieben
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag param=…) wird damit überschrieben

process_classes

Liefert die Prozessklassen

 

Process_classes   spooler.process_classes()

Rückgabe

Process_classes  

schedule

Liefert den benannten Schedule oder null

 

Schedule   spooler.schedule( String path )

Parameter

path

Rückgabe

Schedule  

supervisor_client

Liefert den Supervisor_client

 

Supervisor_client   spooler.supervisor_client()

Rückgabe

Supervisor_client  

Exceptions

SCHEDULER-423 There is no supervisor 

tcp_port

HTTP- und TCP-Port für Kommandos an den Job Scheduler

 

int   spooler.tcp_port()

 

Der Job Scheduler kann auf einem TCP-Port während des Betriebs Kommandos entgegennehmen. Hier kann eine Portnummer eingestellt werden. Die Portnummer ist eine Zahl zwischen 2048 (betriebssystemabhängig) und 65535. Die Voreinstellung lautet 4444.

Über denselben Port betreibt der Job Scheduler einen HTTP/HTML-Server, so dass er über einen Browser ansprechbar ist, z.B. http://localhost:4444.

Bei tcp_port=0 (voreingestellt) ist der Job Scheduler nicht über TCP oder HTTP ansprechbar. Damit kann die Steuerung des Job Schedulers per TCP-Kommando, z.B. über eine Web-Seite, unterbunden werden.

Die Option -tcp-port wird damit überschrieben
Das XML-Attribut <config tcp_port="…"> wird damit überschrieben

Rückgabe

int  

0, wenn kein Port geöffnet ist.

terminate

Scheduler mit allen Tasks ordentlich beenden

 

void  spooler.terminate( int timeout  (optional), boolean restart  (optional), boolean all_schedulers  (optional), boolean continue_exclusive_operation  (optional) )

 

Beendet alle Tasks (durch Aufruf von spooler_close()) und schließlich sich selbst.

Wenn eine Frist angegeben ist, bricht der Scheduler nach Ablauf alle noch laufenden Prozesse ab (das sind Tasks, die zulange in einem Aufruf wie spooler_process() verharren).

Siehe <modify_spooler cmd="terminate"> und Beendigung des Schedulers.

Parameter

timeout  (optional)

Frist in Sekunden, die der Scheduler auf die Beendigung der Tasks wartet und nach der der Scheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen Parameter wartet der Scheduler endlos auf die Tasks.

restart  (optional)

restart=true lässt den Scheduler nach Beendigung neu starten.

all_schedulers  (optional)

all_schedulers=true beendet alle Scheduler im Cluster (s. -exclusive) Das kann eine Minute dauern.

continue_exclusive_operation  (optional)

continue_exclusive_operation=true lässt einen anderen Scheuler im Cluster (s. -exclusive) den Betrieb fortsetzen.

terminate_and_restart

Scheduler mit allen Tasks ordentlich beenden und erneut starten

 

void  spooler.terminate_and_restart( int timeout  (optional) )

 

Wie Spooler.terminate(), aber der Scheduler startet sich neu.

Siehe <modify_spooler cmd="terminate_and_restart"> und Beendigung des Schedulers.

Parameter

timeout  (optional)

Frist in Sekunden, die der Scheduler auf die Beendigung der Tasks wartet und nach der der Scheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen Parameter wartet der Scheduler endlos auf die Tasks.

udp_port

UDP-Port für Kommandos an den Job Scheduler

 

int   spooler.udp_port()

 

Auch über UDP kann der Job Scheduler Kommandos entgegennehmen. Hier wird die Portnummer angegeben. Ein Kommando muss in eine Nachricht passen. Der Job Scheduler schickt keine Antwort.

Bei udp_port=0 (voreingestellt) öffnet der Job Scheduler keinen UDP-Port.

Die Option -udp-port wird damit überschrieben
Das XML-Attribut <config udp_port="…"> wird damit überschrieben

Rückgabe

int  

0, wenn kein Port geöffnet ist.

var

Zugriff auf Scheduler-weite Variablen

 

void  spooler.set_var( String name, String )
String   spooler.var( String name )

 

Die Variablen sind überall im Scheduler benutzbar.

Parameter

name
String

variables

Die Scheduler-weiten Variablen als Variable_set

 

Variable_set   spooler.variables()

 

Die Variablen können in der Konfigurationsdatei eingestellt werden mit <config><params>.

Rückgabe

Variable_set  

Software- und Organisations-Service GmbH

Zuletzt geändert von Joacim Zschimmer, 2008-05-08