JobScheduler: API - Software- und Organisations
Transcription
JobScheduler: API - Software- und Organisations
Job Automation Job Scheduling JOBSCHEDULER API Documentation März 2015 Software- und Organisations-Service GmbH Giesebrechtstr. 15 10629 Berlin Germany Telephone +49 30 86 47 90-0 JobScheduler: API 2 Impressum Software- and Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin Telefon +49 (30) 86 47 90-0 Telefax +49 (30) 8 61 33 35 Mail [email protected] Web www.sos-berlin.com Software- and Organisations-Service GmbH März 2015 JobScheduler: API 3 Inhaltsverzeichnis 1 Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2 Java API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.1 Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 2.1.1 code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 2.1.2 is_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.1.3 text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2 Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2.1 clear_delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2.2 clear_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2.3 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 2.2.4 delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.2.5 delay_order_after_setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.2.6 folder_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.2.7 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 2.2.8 max_order_setbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 2.2.9 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.2.10 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.2.11 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.2.12 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 2.2.13 setback_max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.2.14 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.2.15 start_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.2.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.2.17 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 2.2.18 wake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3 Job_chain - Jobkette zur Auftragsverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3.1 add_end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 2.3.2 add_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.3.3 add_or_replace_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.3.4 add_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.3.5 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.3.6 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.3.7 order_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.3.8 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 2.3.9 orders_recoverable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.3.10 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 2.3.11 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.4 Job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.4.1 action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.4.2 error_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.4.3 error_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 2.4.4 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.4.5 next_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.4.6 next_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.4.7 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 2.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.5.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.5.2 spooler_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 2.5.3 spooler_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.5.4 spooler_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.5.5 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.5.6 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 4 2.5.7 spooler_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.5.8 spooler_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.5.9 spooler_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.5.10 spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41 2.5.11 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 2.6 Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.6.1 max_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 2.6.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.6.3 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.7 Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 2.7.1 add_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.7.2 create_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.7.3 lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.7.4 lock_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.8 Log - Protokollierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.8.1 debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.8.2 debug1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.8.3 debug2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.8.4 debug3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.8.5 debug4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.8.6 debug5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.8.7 debug6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.8.8 debug7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.8.9 debug8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.8.10 debug9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46 2.8.11 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46 2.8.12 filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47 2.8.13 info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47 2.8.14 last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47 2.8.15 last_error_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.8.16 level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47 2.8.17 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.8.18 log_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.8.19 mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.8.20 mail_it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49 2.8.21 mail_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.8.22 mail_on_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.8.23 mail_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.8.24 mail_on_warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.8.25 new_filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.8.26 start_new_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.8.27 warn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.9 Mail - eMail-Versand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.9.1 add_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51 2.9.2 add_header_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.9.3 bcc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.9.4 body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52 2.9.5 cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 2.9.6 dequeue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 2.9.7 dequeue_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.9.8 from . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.9.9 queue_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.9.10 smtp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.9.11 subject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.9.12 to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.9.13 xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 5 2.9.14 xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.10.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.10.2 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57 2.10.3 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57 2.10.4 spooler_process_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.10.5 spooler_process_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.10.6 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 2.10.7 spooler_task_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59 2.10.8 spooler_task_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 2.11 Order - Auftrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 2.11.1 at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 2.11.2 end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 2.11.3 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62 2.11.4 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62 2.11.5 job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 2.11.6 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 2.11.7 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 2.11.8 payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 2.11.9 payload_is_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.11.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.11.11 remove_from_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.11.12 run_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 2.11.13 setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 2.11.14 setback_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65 2.11.15 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 2.11.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 2.11.17 string_next_start_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 2.11.18 suspended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 2.11.19 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 2.11.20 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 2.11.21 web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 2.11.22 web_service_operation_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 2.11.23 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69 2.11.24 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69 2.11.25 xml_payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 2.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69 2.12.1 length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 2.13 Process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 2.13.1 max_processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 2.13.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 2.13.3 remote_scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 2.13.4 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71 2.14 Process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 2.14.1 add_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 2.14.2 create_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 2.14.3 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 2.14.4 process_class_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 2.15 Run_time - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 2.15.1 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 2.15.2 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73 2.16 Schedule - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 2.16.1 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73 2.17 Spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74 2.17.1 abort_immediately . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 2.17.2 abort_immediately_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 6 2.17.3 add_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74 2.17.4 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2.17.5 create_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2.17.6 create_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2.17.7 create_variable_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75 2.17.8 create_xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2.17.9 db_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 2.17.10 db_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76 2.17.11 db_order_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 2.17.12 db_orders_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 2.17.13 db_tasks_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 2.17.14 db_variables_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 2.17.15 directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 2.17.16 execute_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 2.17.17 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 2.17.18 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 2.17.19 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 2.17.20 ini_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 2.17.21 is_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 2.17.22 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 2.17.23 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 2.17.24 job_chain_exists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 2.17.25 let_run_terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 2.17.26 locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 2.17.27 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 2.17.28 log_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 2.17.29 param . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81 2.17.30 process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 2.17.31 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 2.17.32 supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 2.17.33 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 2.17.34 terminate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83 2.17.35 terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 2.17.36 udp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 2.17.37 var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 2.17.38 variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 2.18 Spooler_program - Für den Java-Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85 2.19 Subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 2.19.1 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 2.19.2 env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86 2.19.3 environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 2.19.4 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87 2.19.5 ignore_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 2.19.6 ignore_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 2.19.7 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88 2.19.8 own_process_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 2.19.9 pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 2.19.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 2.19.11 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 2.19.12 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90 2.19.13 terminated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 2.19.14 termination_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90 2.19.15 timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90 2.19.16 wait_for_termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91 2.20 Supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 2.20.1 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 7 2.20.2 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 2.21 Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91 2.21.1 add_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 2.21.2 call_me_again_when_locks_available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92 2.21.3 changed_directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 2.21.4 create_subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 2.21.5 delay_spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 2.21.6 end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 2.21.7 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 2.21.8 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94 2.21.9 history_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 2.21.10 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 2.21.11 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 2.21.12 order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95 2.21.13 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 2.21.14 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 2.21.15 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 2.21.16 remove_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 2.21.17 repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97 2.21.18 stderr_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98 2.21.19 stderr_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 2.21.20 stdout_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 2.21.21 stdout_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 2.21.22 trigger_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 2.21.23 try_hold_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99 2.21.24 try_hold_lock_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 2.21.25 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 2.21.26 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 2.22 Variable_set - Variablenmenge zur Übergabe von Parametern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 2.22.1 count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 2.22.2 merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102 2.22.3 names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 2.22.4 substitute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 2.22.5 value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103 2.22.6 var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 2.22.7 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 2.23 Web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 2.23.1 forward_xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 2.23.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 2.23.3 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 2.24 Web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 2.24.1 peer_hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 2.24.2 peer_ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 2.24.3 request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 2.24.4 response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106 2.24.5 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 2.25 Web_service_request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 2.25.1 binary_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 2.25.2 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107 2.25.3 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 2.25.4 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 2.25.5 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 2.25.6 url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 2.26 Web_service_response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108 2.26.1 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108 2.26.2 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 8 2.26.3 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 2.26.4 send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 2.26.5 status_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 2.26.6 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 2.27 Xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 2.27.1 apply_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 2.27.2 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 2.27.3 load_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110 2.27.4 load_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 3 Javascript API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 3.1 Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 3.1.1 code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 3.1.2 is_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112 3.1.3 text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112 3.2 Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 3.2.1 clear_delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 3.2.2 clear_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 3.2.3 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113 3.2.4 delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 3.2.5 delay_order_after_setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114 3.2.6 folder_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 3.2.7 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115 3.2.8 max_order_setbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 3.2.9 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115 3.2.10 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 3.2.11 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 3.2.12 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116 3.2.13 setback_max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 3.2.14 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117 3.2.15 start_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 3.2.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 3.2.17 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118 3.2.18 wake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 3.3 Job_chain - Jobkette zur Auftragsverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 3.3.1 add_end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 3.3.2 add_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 3.3.3 add_or_replace_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 3.3.4 add_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 3.3.5 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120 3.3.6 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 3.3.7 order_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 3.3.8 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 3.3.9 orders_recoverable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 3.3.10 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 3.3.11 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122 3.4 Job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 3.4.1 action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 3.4.2 error_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 3.4.3 error_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 3.4.4 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 3.4.5 next_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124 3.4.6 next_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 3.4.7 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 3.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 3.5.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 3.5.2 spooler_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 9 3.5.3 spooler_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 3.5.4 spooler_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 3.5.5 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126 3.5.6 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126 3.5.7 spooler_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 3.5.8 spooler_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127 3.5.9 spooler_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127 3.5.10 spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 3.5.11 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 3.6 Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128 3.6.1 max_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 3.6.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128 3.6.3 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128 3.7 Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 3.7.1 add_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 3.7.2 create_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129 3.7.3 lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 3.7.4 lock_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 3.8 Log - Protokollierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 3.8.1 debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 3.8.2 debug1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130 3.8.3 debug2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131 3.8.4 debug3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131 3.8.5 debug4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131 3.8.6 debug5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131 3.8.7 debug6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131 3.8.8 debug7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131 3.8.9 debug8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132 3.8.10 debug9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 3.8.11 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 3.8.12 filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 3.8.13 info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 3.8.14 last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 3.8.15 last_error_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133 3.8.16 level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 3.8.17 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 3.8.18 log_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 3.8.19 mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 3.8.20 mail_it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 3.8.21 mail_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 3.8.22 mail_on_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 3.8.23 mail_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135 3.8.24 mail_on_warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 3.8.25 new_filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 3.8.26 start_new_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 3.8.27 warn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 3.9 Mail - eMail-Versand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 3.9.1 add_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 3.9.2 add_header_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 3.9.3 bcc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137 3.9.4 body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 3.9.5 cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 3.9.6 dequeue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 3.9.7 dequeue_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 3.9.8 from . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139 3.9.9 queue_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 10 3.9.10 smtp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 3.9.11 subject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 3.9.12 to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 3.9.13 xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 3.9.14 xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141 3.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 3.10.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142 3.10.2 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 3.10.3 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 3.10.4 spooler_process_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143 3.10.5 spooler_process_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 3.10.6 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 3.10.7 spooler_task_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 3.10.8 spooler_task_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145 3.11 Order - Auftrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145 3.11.1 at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 3.11.2 end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 3.11.3 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 3.11.4 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 3.11.5 job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 3.11.6 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 3.11.7 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148 3.11.8 payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 3.11.9 payload_is_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 3.11.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 3.11.11 remove_from_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 3.11.12 run_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 3.11.13 setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 3.11.14 setback_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 3.11.15 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 3.11.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 3.11.17 string_next_start_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151 3.11.18 suspended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 3.11.19 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 3.11.20 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 3.11.21 web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152 3.11.22 web_service_operation_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153 3.11.23 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 3.11.24 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 3.11.25 xml_payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 3.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 3.12.1 length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 3.13 Process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155 3.13.1 max_processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 3.13.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 3.13.3 remote_scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 3.13.4 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 3.14 Process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 3.14.1 add_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156 3.14.2 create_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 3.14.3 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157 3.14.4 process_class_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157 3.15 Run_time - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157 3.15.1 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 3.15.2 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 3.16 Schedule - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 11 3.16.1 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 3.17 Spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 3.17.1 abort_immediately . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159 3.17.2 abort_immediately_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 3.17.3 add_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 3.17.4 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 3.17.5 create_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 3.17.6 create_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 3.17.7 create_variable_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 3.17.8 create_xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160 3.17.9 db_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161 3.17.10 db_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 3.17.11 db_order_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 3.17.12 db_orders_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162 3.17.13 db_tasks_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162 3.17.14 db_variables_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 3.17.15 directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 3.17.16 execute_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 3.17.17 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 3.17.18 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 3.17.19 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 3.17.20 ini_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 3.17.21 is_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164 3.17.22 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165 3.17.23 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 3.17.24 job_chain_exists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 3.17.25 let_run_terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165 3.17.26 locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165 3.17.27 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166 3.17.28 log_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 3.17.29 param . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 3.17.30 process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 3.17.31 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 3.17.32 supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 3.17.33 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 3.17.34 terminate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 3.17.35 terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168 3.17.36 udp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 3.17.37 variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169 3.18 Spooler_program - Für den Java-Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 3.19 Subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 3.19.1 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171 3.19.2 env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 3.19.3 environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171 3.19.4 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 3.19.5 ignore_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172 3.19.6 ignore_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172 3.19.7 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 3.19.8 own_process_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173 3.19.9 pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 3.19.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 3.19.11 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174 3.19.12 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 3.19.13 terminated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 3.19.14 termination_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 3.19.15 timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 12 3.19.16 wait_for_termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 3.20 Supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 3.20.1 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 3.20.2 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 3.21 Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 3.21.1 add_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 3.21.2 call_me_again_when_locks_available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 3.21.3 changed_directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177 3.21.4 create_subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 3.21.5 delay_spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 3.21.6 end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 3.21.7 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 3.21.8 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 3.21.9 history_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 3.21.10 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 3.21.11 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 3.21.12 order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 3.21.13 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 3.21.14 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 3.21.15 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181 3.21.16 remove_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 3.21.17 repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 3.21.18 stderr_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 3.21.19 stderr_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 3.21.20 stdout_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 3.21.21 stdout_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183 3.21.22 trigger_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 3.21.23 try_hold_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 3.21.24 try_hold_lock_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 3.21.25 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 3.21.26 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 3.22 Variable_set - Variablenmenge zur Übergabe von Parametern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 3.22.1 count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 3.22.2 merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186 3.22.3 names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 3.22.4 set_var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187 3.22.5 substitute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 3.22.6 value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187 3.22.7 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 3.23 Web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 3.23.1 forward_xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 3.23.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 3.23.3 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 3.24 Web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 3.24.1 peer_hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 3.24.2 peer_ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 3.24.3 request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 3.24.4 response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190 3.24.5 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 3.25 Web_service_request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 3.25.1 binary_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 3.25.2 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190 3.25.3 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 3.25.4 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 3.25.5 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 3.25.6 url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 13 3.26 Web_service_response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192 3.26.1 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192 3.26.2 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 3.26.3 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 3.26.4 send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 3.26.5 status_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 3.26.6 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 3.27 Xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 3.27.1 apply_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 3.27.2 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194 3.27.3 load_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194 3.27.4 load_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 4 Perl API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 4.1 Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 4.1.1 code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 4.1.2 is_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196 4.1.3 text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196 4.2 Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196 4.2.1 clear_delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 4.2.2 clear_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 4.2.3 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 4.2.4 delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 4.2.5 delay_order_after_setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198 4.2.6 folder_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 4.2.7 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 4.2.8 max_order_setbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 4.2.9 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199 4.2.10 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 4.2.11 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 4.2.12 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 4.2.13 setback_max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200 4.2.14 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201 4.2.15 start_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 4.2.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 4.2.17 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 4.2.18 wake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202 4.3 Job_chain - Jobkette zur Auftragsverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .203 4.3.1 add_end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 4.3.2 add_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 4.3.3 add_or_replace_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 4.3.4 add_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 4.3.5 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204 4.3.6 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 4.3.7 order_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 4.3.8 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 4.3.9 orders_recoverable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 4.3.10 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 4.3.11 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .206 4.4 Job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 4.4.1 action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 4.4.2 error_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 4.4.3 error_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 4.4.4 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 4.4.5 next_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208 4.4.6 next_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 4.4.7 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 14 4.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 4.5.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 4.5.2 spooler_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 4.5.3 spooler_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 4.5.4 spooler_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209 4.5.5 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210 4.5.6 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210 4.5.7 spooler_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 4.5.8 spooler_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 4.5.9 spooler_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211 4.5.10 spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211 4.5.11 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 4.6 Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212 4.6.1 max_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 4.6.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212 4.6.3 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212 4.7 Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 4.7.1 add_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 4.7.2 create_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213 4.7.3 lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 4.7.4 lock_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 4.8 Log - Protokollierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 4.8.1 debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 4.8.2 debug1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214 4.8.3 debug2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215 4.8.4 debug3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215 4.8.5 debug4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215 4.8.6 debug5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215 4.8.7 debug6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215 4.8.8 debug7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215 4.8.9 debug8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .216 4.8.10 debug9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 4.8.11 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 4.8.12 filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 4.8.13 info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 4.8.14 last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 4.8.15 last_error_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217 4.8.16 level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 4.8.17 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 4.8.18 log_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 4.8.19 mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 4.8.20 mail_it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 4.8.21 mail_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 4.8.22 mail_on_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 4.8.23 mail_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219 4.8.24 mail_on_warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 4.8.25 new_filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 4.8.26 start_new_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 4.8.27 warn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 4.9 Mail - eMail-Versand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 4.9.1 add_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 4.9.2 add_header_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 4.9.3 bcc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221 4.9.4 body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 4.9.5 cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 4.9.6 dequeue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 15 4.9.7 dequeue_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 4.9.8 from . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223 4.9.9 queue_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 4.9.10 smtp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 4.9.11 subject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 4.9.12 to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 4.9.13 xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 4.9.14 xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225 4.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 4.10.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .226 4.10.2 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 4.10.3 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 4.10.4 spooler_process_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227 4.10.5 spooler_process_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 4.10.6 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 4.10.7 spooler_task_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 4.10.8 spooler_task_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229 4.11 Order - Auftrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229 4.11.1 at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 4.11.2 end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 4.11.3 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 4.11.4 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 4.11.5 job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 4.11.6 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 4.11.7 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232 4.11.8 payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 4.11.9 payload_is_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 4.11.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 4.11.11 remove_from_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 4.11.12 run_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 4.11.13 setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 4.11.14 setback_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 4.11.15 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 4.11.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 4.11.17 string_next_start_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235 4.11.18 suspended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 4.11.19 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 4.11.20 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 4.11.21 web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .236 4.11.22 web_service_operation_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237 4.11.23 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 4.11.24 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 4.11.25 xml_payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 4.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 4.12.1 length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 4.13 Process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239 4.13.1 max_processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 4.13.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 4.13.3 remote_scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 4.13.4 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 4.14 Process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 4.14.1 add_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240 4.14.2 create_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 4.14.3 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241 4.14.4 process_class_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241 4.15 Run_time - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 16 4.15.1 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 4.15.2 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 4.16 Schedule - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 4.16.1 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 4.17 Spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 4.17.1 abort_immediately . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243 4.17.2 abort_immediately_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 4.17.3 add_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 4.17.4 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 4.17.5 create_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 4.17.6 create_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 4.17.7 create_variable_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 4.17.8 create_xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244 4.17.9 db_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245 4.17.10 db_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 4.17.11 db_order_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 4.17.12 db_orders_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246 4.17.13 db_tasks_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246 4.17.14 db_variables_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 4.17.15 directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 4.17.16 execute_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 4.17.17 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 4.17.18 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 4.17.19 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 4.17.20 ini_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 4.17.21 is_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248 4.17.22 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249 4.17.23 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 4.17.24 job_chain_exists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 4.17.25 let_run_terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249 4.17.26 locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250 4.17.27 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250 4.17.28 log_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 4.17.29 param . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 4.17.30 process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 4.17.31 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251 4.17.32 supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 4.17.33 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251 4.17.34 terminate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 4.17.35 terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252 4.17.36 udp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 4.17.37 var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253 4.17.38 variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253 4.18 Spooler_program - Für den Java-Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 4.19 Subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 4.19.1 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255 4.19.2 env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 4.19.3 environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256 4.19.4 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 4.19.5 ignore_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256 4.19.6 ignore_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257 4.19.7 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 4.19.8 own_process_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257 4.19.9 pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 4.19.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 4.19.11 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 17 4.19.12 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 4.19.13 terminated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 4.19.14 termination_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 4.19.15 timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 4.19.16 wait_for_termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 4.20 Supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 4.20.1 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 4.20.2 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 4.21 Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 4.21.1 add_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 4.21.2 call_me_again_when_locks_available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 4.21.3 changed_directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261 4.21.4 create_subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 4.21.5 delay_spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 4.21.6 end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 4.21.7 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 4.21.8 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 4.21.9 history_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 4.21.10 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 4.21.11 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 4.21.12 order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 4.21.13 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 4.21.14 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 4.21.15 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265 4.21.16 remove_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 4.21.17 repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 4.21.18 stderr_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 4.21.19 stderr_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 4.21.20 stdout_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 4.21.21 stdout_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267 4.21.22 trigger_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 4.21.23 try_hold_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 4.21.24 try_hold_lock_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 4.21.25 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 4.21.26 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 4.22 Variable_set - Variablenmenge zur Übergabe von Parametern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 4.22.1 count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 4.22.2 merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271 4.22.3 names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 4.22.4 set_var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271 4.22.5 substitute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 4.22.6 value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272 4.22.7 var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 4.22.8 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 4.23 Web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 4.23.1 forward_xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 4.23.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 4.23.3 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 4.24 Web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 4.24.1 peer_hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 4.24.2 peer_ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 4.24.3 request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 4.24.4 response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275 4.24.5 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 4.25 Web_service_request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 4.25.1 binary_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 18 4.25.2 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276 4.25.3 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 4.25.4 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 4.25.5 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 4.25.6 url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 4.26 Web_service_response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277 4.26.1 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277 4.26.2 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 4.26.3 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 4.26.4 send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 4.26.5 status_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 4.26.6 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 4.27 Xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 4.27.1 apply_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 4.27.2 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279 4.27.3 load_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279 4.27.4 load_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 5 VBScript API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281 5.1 Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 5.1.1 code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 5.1.2 is_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281 5.1.3 text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281 5.2 Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281 5.2.1 clear_delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 5.2.2 clear_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 5.2.3 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 5.2.4 delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 5.2.5 delay_order_after_setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283 5.2.6 folder_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 5.2.7 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 5.2.8 max_order_setbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 5.2.9 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284 5.2.10 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 5.2.11 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 5.2.12 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 5.2.13 setback_max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285 5.2.14 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286 5.2.15 start_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 5.2.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 5.2.17 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 5.2.18 wake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287 5.3 Job_chain - Jobkette zur Auftragsverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .288 5.3.1 add_end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 5.3.2 add_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 5.3.3 add_or_replace_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 5.3.4 add_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 5.3.5 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .289 5.3.6 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 5.3.7 order_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 5.3.8 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 5.3.9 orders_recoverable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 5.3.10 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 5.3.11 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291 5.4 Job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 5.4.1 action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 5.4.2 error_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 19 5.4.3 error_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 5.4.4 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 5.4.5 next_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293 5.4.6 next_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 5.4.7 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 5.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 5.5.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 5.5.2 spooler_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 5.5.3 spooler_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 5.5.4 spooler_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294 5.5.5 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295 5.5.6 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295 5.5.7 spooler_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 5.5.8 spooler_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296 5.5.9 spooler_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296 5.5.10 spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 5.5.11 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 5.6 Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 5.6.1 max_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 5.6.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 5.6.3 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 5.7 Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 5.7.1 add_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 5.7.2 create_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298 5.7.3 lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 5.7.4 lock_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 5.8 Log - Protokollierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 5.8.1 debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 5.8.2 debug1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299 5.8.3 debug2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300 5.8.4 debug3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300 5.8.5 debug4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300 5.8.6 debug5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300 5.8.7 debug6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300 5.8.8 debug7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300 5.8.9 debug8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301 5.8.10 debug9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 5.8.11 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 5.8.12 filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 5.8.13 info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 5.8.14 last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 5.8.15 last_error_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302 5.8.16 level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 5.8.17 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 5.8.18 log_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 5.8.19 mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 5.8.20 mail_it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 5.8.21 mail_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 5.8.22 mail_on_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 5.8.23 mail_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304 5.8.24 mail_on_warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 5.8.25 new_filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 5.8.26 start_new_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 5.8.27 warn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 5.9 Mail - eMail-Versand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 5.9.1 add_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 20 5.9.2 add_header_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 5.9.3 bcc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306 5.9.4 body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 5.9.5 cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 5.9.6 dequeue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 5.9.7 dequeue_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 5.9.8 from . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308 5.9.9 queue_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 5.9.10 smtp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 5.9.11 subject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 5.9.12 to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 5.9.13 xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 5.9.14 xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310 5.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 5.10.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .311 5.10.2 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 5.10.3 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 5.10.4 spooler_process_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .312 5.10.5 spooler_process_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 5.10.6 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 5.10.7 spooler_task_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 5.10.8 spooler_task_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314 5.11 Order - Auftrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314 5.11.1 at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 5.11.2 end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 5.11.3 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 5.11.4 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 5.11.5 job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 5.11.6 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 5.11.7 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317 5.11.8 payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 5.11.9 payload_is_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 5.11.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 5.11.11 remove_from_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 5.11.12 run_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 5.11.13 setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 5.11.14 setback_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 5.11.15 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 5.11.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 5.11.17 string_next_start_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .320 5.11.18 suspended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 5.11.19 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 5.11.20 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 5.11.21 web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .321 5.11.22 web_service_operation_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322 5.11.23 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 5.11.24 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 5.11.25 xml_payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 5.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 5.12.1 length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 5.13 Process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324 5.13.1 max_processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 5.13.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 5.13.3 remote_scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 5.13.4 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 5.14 Process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 21 5.14.1 add_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325 5.14.2 create_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 5.14.3 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326 5.14.4 process_class_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326 5.15 Run_time - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326 5.15.1 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 5.15.2 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 5.16 Schedule - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 5.16.1 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 5.17 Spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 5.17.1 abort_immediately . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .328 5.17.2 abort_immediately_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 5.17.3 add_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 5.17.4 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 5.17.5 create_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 5.17.6 create_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 5.17.7 create_variable_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 5.17.8 create_xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329 5.17.9 db_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330 5.17.10 db_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 5.17.11 db_order_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 5.17.12 db_orders_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331 5.17.13 db_tasks_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331 5.17.14 db_variables_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 5.17.15 directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 5.17.16 execute_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 5.17.17 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 5.17.18 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 5.17.19 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 5.17.20 ini_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 5.17.21 is_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333 5.17.22 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334 5.17.23 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 5.17.24 job_chain_exists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 5.17.25 let_run_terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334 5.17.26 locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334 5.17.27 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335 5.17.28 log_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 5.17.29 param . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 5.17.30 process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 5.17.31 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336 5.17.32 supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 5.17.33 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336 5.17.34 terminate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 5.17.35 terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337 5.17.36 udp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 5.17.37 var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338 5.17.38 variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338 5.18 Spooler_program - Für den Java-Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 5.19 Subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 5.19.1 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340 5.19.2 env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 5.19.3 environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341 5.19.4 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 5.19.5 ignore_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341 5.19.6 ignore_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 22 5.19.7 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 5.19.8 own_process_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342 5.19.9 pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 5.19.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 5.19.11 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343 5.19.12 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 5.19.13 terminated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 5.19.14 termination_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 5.19.15 timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 5.19.16 wait_for_termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 5.20 Supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 5.20.1 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 5.20.2 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 5.21 Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 5.21.1 add_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 5.21.2 call_me_again_when_locks_available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 5.21.3 changed_directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .346 5.21.4 create_subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 5.21.5 delay_spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 5.21.6 end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 5.21.7 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 5.21.8 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 5.21.9 history_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 5.21.10 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 5.21.11 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 5.21.12 order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 5.21.13 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 5.21.14 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 5.21.15 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350 5.21.16 remove_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 5.21.17 repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 5.21.18 stderr_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 5.21.19 stderr_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 5.21.20 stdout_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 5.21.21 stdout_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .352 5.21.22 trigger_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 5.21.23 try_hold_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 5.21.24 try_hold_lock_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 5.21.25 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 5.21.26 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 5.22 Variable_set - Variablenmenge zur Übergabe von Parametern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 5.22.1 count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 5.22.2 merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .355 5.22.3 names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 5.22.4 set_var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356 5.22.5 substitute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 5.22.6 value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356 5.22.7 var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 5.22.8 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 5.23 Web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 5.23.1 forward_xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 5.23.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 5.23.3 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 5.24 Web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 5.24.1 peer_hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 5.24.2 peer_ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 Software- and Organisations-Service GmbH März 2015 JobScheduler: API 23 5.24.3 request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 5.24.4 response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .360 5.24.5 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 5.25 Web_service_request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 5.25.1 binary_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 5.25.2 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .360 5.25.3 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 5.25.4 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 5.25.5 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 5.25.6 url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 5.26 Web_service_response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362 5.26.1 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362 5.26.2 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 5.26.3 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 5.26.4 send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 5.26.5 status_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 5.26.6 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 5.27 Xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 5.27.1 apply_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 5.27.2 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .364 5.27.3 load_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .364 5.27.4 load_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 Software- and Organisations-Service GmbH März 2015 Übersicht 24 1 Übersicht Unterstützte Sprachen: Java <script Dient zum Schreiben von Jobs in Java. language="Jav a"> java:Jav <script Dient zum Schreiben von Jobs in JavaScript. Verwendet die "Rhino with Beans" aScript language="jav Implementation. a:JavaScript"> javax.sc <script ript:rhino language="jav ax.script:rhino" > Unterstützt die Script-Sprache Rhino, welche die "javax.script" scripting API implementiert. Andere Script-Sprachen, welche die "javax.script" scripting API implementieren können mit <script language="javax.script:language"> verwendet werden. Spiderm <script Dient zum Schreiben von Jobs in JavaScript. Verwendet die "spidermonkey" onkey language="Spi Implementation. Steht nur unter 32 bit zur Verfügung. (32bit) dermonkey"> PowerS hell <script language="Po werShell"> VBScript <script language="VB Script"> Perl Dient zum Schreiben von Jobs in PowerShell. Steht nur unter Windows zur Verfügung. Dient zum Schreiben von Jobs in VBScript. Steht nur unter Windows zur Verfügung. <script Dient zum Schreiben von Jobs in Perl. language="Per l"> Jobs, die die Programmschnittstelle des JobSchedulers nutzen, können in den Sprachen Java, JavaScript (Mozilla) und Perl implementiert werden (beachten Sie die Installationsvoraussetzungen). Unter Microsoft Windows stehen auch JScript, VBScript und Powershell zur Verfügung. Ab JobScheduler Version 1.3.10 wird das javax.script package unterstützt. Mit diesem Paket sind Implementierungen für eine Reihe verschiedener Scriptsprachen wie javascript (Rhino implementation), groovy und python verfügbar. Die Spidermonkey implementation von javascript wird mit dieser Version als "deprecated" markiert. JavaScript unter 64 bit: Ab JobScheduler Version 1.5 steht die Spidermonkey Implementation von javascript nur unter 32 bit zur Verfügung. Um javascript unter 64 bit zu benutzen, kann die "Rhino with Beans" Implementation verwendet werden. Diese steht sowohl unter 32 bit als auch unter 64 bit zur Verfügung. Die "Rhino with Beans" Implementation ist eine Erweiterung von Rhino und ersetzt die Spidermonkey Implementation. Die "Rhino with Beans" Implementation dient dazu, bestehende javascript-jobs mit geringem Änderungsaufwand auf 64 bit zu portieren. Bei der Benutzung gibt es zwischen beiden Implementationen leichte unterschiede: Differences between the spidermonkey and "rhino with beans" engines Die folgende Tabelle zeigt eine Übersicht der verwendeten engine in Abhängigkeit des language-Attributs in <script language="..."> Spidermonkey Software- and Organisations-Service GmbH Spidermonkey --- März 2015 Übersicht java:JavaScript 25 Rhino with Beans Rhino with Beans Die Werte "Spidermonkey" und "JavaScript" des language-Attributs sind äquivalent (Spidermonkey engine). Ebenso sind die Werte "java:JavaScript", "java:Rhino" und "java:ECMAScript" des language-Attributs äquivalent ("Rhino with Beans" engine). Um die API in Powershell nutzen zu können, muss der JobScheduler Powershell Adapter separat heruntergeladen und installiert werden. Siehe http://sourceforge.net/apps/mediawiki/jobscheduler/index.php?title=JSApi_Powershell Ein Job wird gemäß der Schnittstelle Job_impl implementiert. Die Objekte des JobSchedulers sind direkt oder indirekt über diese Schnittstelle zugreifbar. Software- and Organisations-Service GmbH März 2015 Java API 26 2 Java API Für Java stehen die folgenden Klassen zur Verfügung: 2.1 Error 2.1.1 code Der Fehlercode Syntax: String error. code () 2.1.2 is_error true, wenn ein Fehler vorliegt Syntax: boolean error. is_error () 2.1.3 text Fehlertext (mit Fehlercode) Syntax: String error. text () 2.2 Job Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen. 2.2.1 clear_delay_after_error Nimmt alle delay_after_error zurück Syntax: void spooler_job. clear_delay_after_error () 2.2.2 clear_when_directory_changed Nimmt alle start_when_directory_changed() zurück Software- and Organisations-Service GmbH März 2015 Java API 27 Syntax: void spooler_job. clear_when_directory_changed () 2.2.3 configuration_directory Verzeichnis der Konfigurationsdatei des Jobs Syntax: String spooler_job. configuration_directory () "", wenn der Job nicht aus einem Konfigurationsverzeichnis stammt. 2.2.4 delay_after_error Verzögert erneuten Jobstart nach Fehler Syntax: void spooler_job.set_delay_after_error ( int error_steps, double seconds ) Syntax: void spooler_job.set_delay_after_error ( int error_steps, String hhmm_ss ) Beispiel: spooler_job.set_delay_after_error( 2, 10 ); aufeinanderfolgenden Fehler um 10 Sekunden verzögern spooler_job.set_delay_after_error( 5, "00:01" ); aufeinanderfolgenden Fehler um eine Minute verzögern spooler_job.set_delay_after_error( 10, "24:00" ); aufeinanderfolgenden Fehler um einen Tag verzögern spooler_job.set_delay_after_error( 20, "STOP" ); Fehler den Job stoppen // Ab dem 2. // Ab dem 5. // Ab dem 10. // Beim 20. aufeinanderfolgenden Nach einem Fehler wiederholt der JobScheduler den Job sofort. Nach dem zweiten bis zum vierten Fehler verzögert der JobScheduler den Job um 10 Sekunden, nach dem fünften bis zum neunten Fehler um eine Minute, nach dem zehnten bis zum neunzehnten um 24 Stunden, nach dem zwanzigsten aufeinanderfolgenden Fehler schließlich stoppt der Job. Für verschiedene Anzahlen aufeinanderfolgender Fehler kann eine Verzögerung eingestellt werden. Der Job wird dann nicht gestoppt, sondern die angegebene Zeit verzögert und erneut gestartet. Der Aufruf kann für verschiedene Anzahlen wiederholt werden. Man wird jeweils eine längere Verzögerung angeben. Wenn Sie den Parameter seconds_or_hhmm_ss als String übergeben, können Sie auch "STOP" angeben. Der Job stoppt, wenn er die angegebene Anzahl aufeinanderfolgende Fehler erreicht hat. Eine gute Stelle für die Aufrufe ist spooler_init() . Siehe <delay_after_error> . Parameter: error_steps Anzahl der aufeinanderfolgenden Jobfehler, ab der die Verzögerung gilt Software- and Organisations-Service GmbH März 2015 Java API 28 seconds_or_hhmm_ss Frist, nach der der Job wiederholt wird 2.2.5 delay_order_after_setback Stellt Aufträge nach Fehler zurück Syntax: void spooler_job.set_delay_order_after_setback ( int setback_count, double seconds ) Syntax: void spooler_job.set_delay_order_after_setback ( int setback_count, String hhmm_ss ) Beispiel: in javascript spooler_job.delay_order_after_setback( 1 ) = 60; Rückstellung desselben Auftrags: // 1. bis 2. aufeinderfolgende // Auftrag um 60s verzögern. spooler_job.delay_order_after_setback( 3 ) = "01:00"; Rückstellung desselben Auftrags: // Ab 3. aufeinanderfolgender // Auftrag um eine Stunde verzögern. spooler_job.max_order_setbacks = 5; versetzt den Auftrag in den Fehlerzustand // Die 5. Rückstellung Ein Auftragsjob kann einen Auftrag, den er gerade ausführt, mit Order.setback() zurückstellen. Er wird dann an eine hintere Stelle der Auftragswarteschlange des Jobs eingereiht und kommt nach der eingestellten Zeit erneut zur Ausführung. Die aufeinanderfolgenden Rückstellungen eines Auftrags werden gezählt. Mit delay_order_after_setback können Sie verschiedene Fristen für wiederholte Rückstellungen festlegen. Siehe <delay_order_after_setback> , Order.setback() , Job.max_order_setbacks , Job_chain.add_job() , Job.delay_after_error() . Parameter: setback_coun t Für die 1., 2. usw. aufeinanderfolgende Rückstellung desselben Auftrags können verschiedene Fristen eingestellt werden. seconds_or_h hmm_ss Frist für die Rückstellung. Nach Ablauf der Frist kommt der Auftrag erneut in diesem Job zur Ausführung. 2.2.6 folder_path Pfad des Ordners, in dem der Job sich befindet. Syntax: String spooler_job. folder_path () "", wenn der Job nicht aus dem lokalen Konfigurationsverzeichnis ( <config configuration_directory=""> ) stammt. Software- and Organisations-Service GmbH März 2015 Java API 29 Liefert den Pfad des Jobs relativ zum Live-Directory. Der Pfad beginnt mit einem "/", alle Bestandteile eines Pfads sind durch "/" getrennt Beispiele: • • • für einen Job c:\scheduler\config\live\somewhere\excel\sample.job.xml wird "/somewhere/excel" zurückgeliefert für einen Job c:\scheduler\config\live\sample.xml wird "/" zurückgeliefert für einen Job außerhalb des Live-Verzeichnisses wird "" (Leerstring) zurückgeliefert 2.2.7 include_path Wert der Option -include-path= Syntax: String spooler_job. include_path () Siehe -include-path . 2.2.8 max_order_setbacks Begrenzt die Anzahl der Rückstellungen eines Auftrags Syntax: void spooler_job.set_max_order_setbacks ( int ) Wenn derselbe Auftrag mehr als hier angegeben aufeinderfolgend zurückgesetzt worden ist (s. Order.setback() ), gerät er in den Fehlerzustand (s. Job_chain_node.error_state ). Siehe Job.delay_order_after_setback und <delay_order_after_setback is_maximum="yes"> . 2.2.9 name Pfad des Jobs ohne beginnenden Schrägstrich Syntax: String spooler_job. name () Siehe <job name=""> . 2.2.10 order_queue Auftragswarteschlange des Jobs Syntax: Order_queue spooler_job. order_queue () Beispiel: in javascript spooler_log.info( 'order=' + ( spooler_job.order_queue ? "yes" : "no" ) ); Software- and Organisations-Service GmbH März 2015 Java API 30 Ein Auftragsjob ( <job order="yes"> ) hat eine Auftragswarteschlange. Die Auftragswarteschlange wird über eine Jobkette, in der der Job eingetragen ist, gefüllt. Siehe Job_chain.add_order() , Job_chain.add_job() . Rückgabe: Order_queue null, wenn der Job keine Auftragswarteschlange hat (bei <job order="no"> ). 2.2.11 process_class Die Prozessklasse Syntax: Process_class spooler_job. process_class () Siehe <job process_class=""> . Rückgabe: Process_class 2.2.12 remove Entfernt den Job Syntax: void spooler_job. remove () Der Job wird gestoppt, d.h. laufende Tasks werden beendet, keine neuen werden gestartet. Sobald keine Task mehr läuft, wird der Job entfernt. Tasks in der Warteschlange werden ignoriert. Wenn keine Task des Jobs läuft, entfernt remove() den Job sofort. Auftragsjobs ( <job order="yes"> ) können nicht entfernt werden. Siehe <modify_job cmd="remove"> . 2.2.13 setback_max Wie oft kann ein Auftrag zurückgestellt werden? Syntax: void spooler_job.set_setback_max ( int ) Syntax: int spooler_job. setback_max () Siehe <delay_order_after_setback is_maximum="yes"> . Software- and Organisations-Service GmbH März 2015 Java API 31 2.2.14 start Erzeugt eine neue Task und reiht sie in die Task-Warteschlange ein Syntax: Task spooler_job. start ( Variable_set variables (optional) ) Beispiel: spooler.job( "job_a" ).start(); sos.spooler.Variable_set parameters = spooler.create_variable_set(); parameter.set_var( "my_parameter", "my_value" ); parameter.set_var( "other_parameter", "other_value" ); spooler.job( "job_a" ).start( parameters ); Die Parameter stehen der Task mit Task.params zur Verfügung. Zwei besondere Parameter können angegeben werden: "spooler_task gibt der Task einen Namen, der in den Statusanzeigen erscheint. _name" "spooler_star gibt eine Zeit in Sekunden (reelle Zahl) an, nach deren Ablauf die Task zu starten ist. Dabei wird t_after" <run_time> nicht beachtet. Siehe Spooler.create_variable_set() , Spooler.job , Variable_set.value . Rückgabe: Task 2.2.15 start_when_directory_changed Überwacht ein Verzeichnis und lässt bei Änderung eine Task starten Syntax: void spooler_job. start_when_directory_changed ( java.io.File directory_path, String filename_pattern (optional) ) Syntax: void spooler_job. start_when_directory_changed ( java.io.File directory_path, String filename_pattern (optional) ) Syntax: void spooler_job. start_when_directory_changed ( String directory_path ) Syntax: void spooler_job. start_when_directory_changed filename_pattern (optional) ) ( String directory_path, String Beispiel: in javascript spooler_job.start_when_directory_changed( "c:/tmp" ); // Nur Dateien beachten, deren Name nicht auf "~" endet. spooler_job.start_when_directory_changed( "c:/tmp", "^.*[^~]$" ); Software- and Organisations-Service GmbH März 2015 Java API 32 Wenn keine Task des Jobs läuft und sich das Verzeichnis geändert hat (eine Datei hinzukommt, umbenannt oder entfernt wird), startet der JobScheduler innerhalb der <run_time> eine Task. Um mehrere Verzeichnisse zu überwachen, kann der Aufruf wiederholt werden. Ein Aufruf mit einem bereits angegebenen Verzeichnis erneuert die Überwachung. Der Aufruf kann im Scheduler-Skript oder in spooler_init() des Jobs codiert werden. Im letzteren Fall muss der Job zu Beginn einmal starten, damit der Aufruf wirksam wird. Verwenden Sie dazu die Einstellung <run_time once="yes"> . Der Job sollte mit <run_time repeat=""> periodisch gestartet und mit <delay_after_error> versehen werden. Dieselbe Einstellung können Sie auch in der XML-Konfiguration mit <start_when_directory_changed> vornehmen. Siehe auch JobScheduler Dokumentation. Parameter: directory_path Pfad des zu überwachenden Verzeichnisses filename_patter Beschränkt die Überwachung auf Dateinamen, die dem Regulären Ausdruck entsprechen. n 2.2.16 state_text Freier Text für den Zustand des Jobs Syntax: void spooler_job.set_state_text ( String ) Beispiel: spooler_job.set_state_text( "Step C succeeded" ); Der Text wird in der HTML-Oberfläche gezeigt. Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen. 2.2.17 title Titel des Jobs Syntax: String spooler_job. title () Beispiel: spooler_log.info( "Job title=" + spooler_job.title() ); Siehe <job title=""> . Software- and Organisations-Service GmbH März 2015 Java API 33 2.2.18 wake Veranlasst den Start einer Task Syntax: void spooler_job. wake () Wenn der Job im Zustand pending oder stopped ist (also keine Task läuft), startet der Aufruf eine Task. Siehe Job.start() . 2.3 Job_chain - Jobkette zur Auftragsverarbeitung Eine Jobkette (Job_chain) ist eine Kette von Jobs (Jobkettenknoten oder Stellen). Diese Kette wird von Aufträgen ( Order ) durchlaufen. Jeder Stelle in der Jobkette ist ein Zustand und ein Job zugeordnet. Wenn ein Auftrag der Jobkette hinzugefügt wird, setzt der JobScheduler ihn an die seinem Zustand entsprechende Stelle. Der dieser Stelle zugeordnete Job führt den Auftrag aus. Jede Stelle hat außerdem einen Folgezustand und einen Fehlerzustand. Nach der Verarbeitung eines Auftrags durch einen Jobschritt ändert der JobScheduler den Zustand des Auftrags. Wenn der Jobschritt (spooler_process) true liefert, stellt der JobScheduler den Folgezustand, sonst den Fehlerzustand ein. Der Auftrag rutscht damit an eine andere Stelle der Jobkette, die dem neuen Zustand zugeordnet ist. Das gilt nicht, wenn der Zustand während der Ausführung mit Order.state verändert worden ist. Sie erzeugen eine Jobkette mit Spooler.create_job_chain() , füllen sie mit Job_chain.add_job() und Job_chain.add_end_state() und machen sie schließlich mit Spooler.add_job_chain() bekannt. Jeder Knoten ist eindeutig einem Zustand zugeordnet. Für jeden Zustand muss genau einmal Job_chain.add_job() oder Job_chain.add_end_state() aufgerufen werden. Beispiel: Job_chain my_job_chain = spooler.create_job_chain(); my_job_chain.set_name( "Jobkette" ); my_job_chain.add_job( "job_100", 100, 200, 999 ); my_job_chain.add_job( "job_200", 200, 1000, 999 ); my_job_chain.add_end_state( 999 ); my_job_chain.add_end_state( 1000 ); spooler.add_job_chain( my_job_chain ); 2.3.1 add_end_state Fügt der Jobkette einen Endknoten hinzu Syntax: void job_chain. add_end_state ( String state ) Diesem Knoten ist kein Job zugeordnet. Ein Auftrag, der einen Endknoten erreicht, hat die Jobkette durchlaufen und wird vom JobScheduler aus ihr entfernt. Software- and Organisations-Service GmbH März 2015 Java API 34 2.3.2 add_job Erweitert die Jobkette um einen Job Syntax: void job_chain. add_job ( String job_name, String input_state, String output_state, String error_state ) 2.3.3 add_or_replace_order Gibt einen Auftrag in die Jobkette und ersetzt ggfs. einen mit gleicher Kennung Syntax: void job_chain. add_or_replace_order ( Order order ) Hat die Jobkette bereits einen Auftrag mit gleicher Kennung, dann wird dieser ersetzt. Genauer: Er wird aus der Jobkette entfernt, und der neue Auftrag wird hinzugefügt. Solange eine Task den vorhandenen Auftrag ausführt, sind im JobScheduler zwei Aufträge mit gleicher Kennung vorhanden. Allerdings ist der vorhandene Auftrag aus der Jobkette und aus der Datenbank bereits entfernt. Er ist nur noch für die Task nutzbar und verschwindet nach der Ausführung. In diesem Fall wartet der JobScheduler die Ausführung des neuen Auftrags ab, bis die Ausführung des alten Auftrags beendet ist. Siehe Job_chain.add_order() und Order.remove_from_job_chain() 2.3.4 add_order Gibt einen Auftrag in die Jobkette Syntax: void job_chain. add_order ( Order order ) Wenn der Auftrag in einer anderen Jobkette enthalten ist, entfernt der JobScheduler ihn daraus. Der Auftrag wird in die Auftragswarteschlange des Jobs, der seinem Zustand entspricht, gemäß seiner Priorität eingeordnet. Die Jobkette mit muss <job_chain> oder Spooler.add_job_chain() dem JobScheduler bekannt gemacht worden sein. Wenn die Jobkette bereits einen Auftrag mit gleicher Order.id enthält, wird eine Exception mit Fehlercode SCHEDULER-186 geliefert. Siehe aber Job_chain.add_or_replace_order() . Rückgabe: Order 2.3.5 name Name der Jobkette Software- and Organisations-Service GmbH März 2015 Java API 35 Syntax: void job_chain.set_name ( String ) Syntax: String job_chain. name () Beispiel: Job_chain job_chain = spooler.create_job_chain(); job_chain.set_name( "Jobkette" ); 2.3.6 node Der Jobkettenknoten zum angegebenen Zustand Syntax: Job_chain_node job_chain. node ( String state ) Rückgabe: Job_chain_node 2.3.7 order_count Anzahl der Aufträge in der Jobkette Syntax: int job_chain. order_count () 2.3.8 order_queue = node(state).job().order_queue() Syntax: Order_queue job_chain. order_queue ( String state ) Liefert die Auftragswarteschlange des Jobs, der dem angegebenen Zustand zugeordnet ist. Rückgabe: Order_queue 2.3.9 orders_recoverable Syntax: void job_chain.set_orders_recoverable ( boolean ) Syntax: boolean job_chain. orders_recoverable () Siehe <job_chain orders_recoverable=""> . Software- and Organisations-Service GmbH März 2015 Java API 36 2.3.10 remove Entfernt die Jobkette Syntax: void job_chain. remove () Wenn gerade Aufträge der Jobkette verarbeitet werden (in spooler_process() ), dann entfernt der JobScheduler die Jobkette, sobald der letzte Auftrag verarbeitet worden ist. Die Aufträge bleiben in der Datenbank erhalten. Wenn später eine Jobkette mit gleichen Namen hinzugefügt wird ( Spooler.add_job_chain() ), dann lädt der JobScheduler diese Aufträge erneut. Die Zustände der Aufträge müssen in der erneuerten Jobkette vorhanden sein. 2.3.11 title Syntax: void job_chain.set_title ( String ) Syntax: String job_chain. title () Siehe <job_chain title=""> . 2.4 Job_chain_node Ein Jobkettenknoten beschreibt eine Stelle in einer Jobkette ( Job_chain ). Einem Jobkettenknoten sind zugeordnet: ein Zustand, ein Job, ein Folgezustand und ein Fehlerzustand. Ein Jobkettenknoten wird mit Job_chain.add_job() oder mit Job_chain.add_end_state() erzeugt. 2.4.1 action Jobkettenknoten stoppen oder überspringen Syntax: void node.set_action ( String ) Syntax: String node. action () Beispiel: Job_chain_node job_chain_node = spooler.job_chain( "my_job_chain" ).node( 100 ); job_chain_node.set_action( Job_chain_node.ACTION_NEXT_STATE ); Für eine verteilte Jobkette nicht möglich. Mögliche Angaben sind action="process" Das ist die Voreinstellung. Aufträge werden ausgeführt. Software- and Organisations-Service GmbH März 2015 Java API 37 action="stop" Aufträge werden nicht ausgeführt, sie sammeln sich in der Auftragswarteschlange an. action="next_state" Aufträge werden sofort dem mit next_state bestimmten Folgeknoten übergeben. Siehe auch <job_chain_node.modify action=""> . In Java sind für Zeichenketten Konstanten definiert: • • • Job_chain_node.ACTION_PROCESS Job_chain_node.ACTION_STOP Job_chain_node.ACTION_NEXT_STATE 2.4.2 error_node Nächster Knoten in der Jobkette für den Fehlerfall Syntax: Job_chain_node node. error_node () Beispiel: Job_chain_node job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.debug( "error state=" + job_chain_node.error_node().state() ); // "state=999" Rückgabe: Job_chain_node null, wenn es keinen Fehler-Knoten gibt (Fehlerzustand ist nicht angegeben) 2.4.3 error_state Zustand in der Jobkette für den Fehlerfall Syntax: String node. error_state () Beispiel: Job_chain_node job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.debug( "error state=" + job_chain_node.error_node().state() ); // "error state=999" 2.4.4 job Job, der dem Knoten zugeordnet ist Syntax: Job node. job () Software- and Organisations-Service GmbH März 2015 Java API 38 Beispiel: Job_chain_node job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.debug( "job=" + job_chain_node.job().name() ); // "job=job_100" Rückgabe: Job 2.4.5 next_node Syntax: Job_chain_node node. next_node () Rückgabe: Job_chain_node 2.4.6 next_state Zustand in der Jobkette für den Erfolgsfall Syntax: String node. next_state () Beispiel: Job_chain_node job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.debug( "next state=" + job_chain_node.next_state() ); // "state=200" 2.4.7 state Zustand, für den dieser Jobkettenknoten gilt Syntax: String node. state () Beispiel: Job_chain_node job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.info( "state=" + job_chain_node.state() ); // "state=100" Software- and Organisations-Service GmbH März 2015 Java API 39 2.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript Der Methoden eines Jobs werden in folgender Reihenfolge aufgerufen. spooler_init() spooler_open() spooler_process() spooler_process() ... spooler_close() spooler_on_success() oder spooler_on_error() spooler_exit() Keine dieser Methoden muss implementiert werden. In der Regel wird wenigstens spooler_process() implementiert. Ein Fehler beim Ausführen des Job-Skripts während des Ladens oder in spooler_init() führt zum Aufruf von spooler_on_error() . Der Job wird gestoppt. spooler_exit() wird gerufen (obwohl spooler_init() nicht gerufen worden ist!) und das Skript entladen. spooler_on_error() muss also auch mit Fehlern umgehen, die beim Laden oder in spooler_init() auftreten. spooler_exit() wird gerufen, auch wenn spooler_init() nicht gerufen worden ist. 2.5.1 spooler Das allgemeine Objekt des Schedulers Syntax: Spooler spooler Beispiel: spooler_log.debug( "The working directory of the JobScheduler is " + spooler.directory() ); Rückgabe: Spooler 2.5.2 spooler_close Task-Ende Syntax: void spooler_close () Wird am Ende eines Joblaufs gerufen. Gegenstück zu spooler_open() . Software- and Organisations-Service GmbH März 2015 Java API 40 2.5.3 spooler_exit Destruktor Syntax: void spooler_exit () Wird als allerletzte Methode gerufen, bevor das Skript entladen wird. Hier kann z.B. eine Datenbank-Verbindung geschlossen werden. 2.5.4 spooler_init Initialisierung Syntax: boolean spooler_init () Der JobScheduler ruft diese Methode nach dem Konstruktor und vor spooler_open() genau einmal auf. Gegenstück ist spooler_exit() . Die Methode ist geeignet, um die Task zu initialisieren (z.B. um eine Datenbank-Verbindung aufzubauen). Rückgabe: boolean false beendet die Task. Der JobScheduler setzt mit spooler_exit() fort. Wenn die Task einen Auftrag verarbeiten soll, wird die Task mit Fehler beendet, was den Job stoppt (wenn nicht Job.delay_after_error gesetzt ist). 2.5.5 spooler_job Das Objekt des Jobs Syntax: Job spooler_job Beispiel: spooler_log.info( "The name of this job is " + spooler_job.name() ); Rückgabe: Job 2.5.6 spooler_log Zum Protokollieren Syntax: Log spooler_log Beispiel: spooler_log.info( "Something has happend" ); Software- and Organisations-Service GmbH März 2015 Java API 41 Rückgabe: Log 2.5.7 spooler_on_error Bei Task-Ende im Fehlerfall Syntax: void spooler_on_error () Wird als letzte Funktion eines Joblaufs gerufen, wenn ein Fehler aufgetreten ist (nach spooler_close() und vor spooler_exit() ). 2.5.8 spooler_on_success Bei Task-Ende im Erfolgsfall Syntax: void spooler_on_success () Wird nach spooler_close() , vor spooler_exit() aufgerufen, wenn kein Fehler aufgetreten ist. 2.5.9 spooler_open Task-Beginn Syntax: boolean spooler_open () Wird zu Beginn einer Task gerufen. Die Methode wird direkt nach spooler_init() gerufen, es gibt derzeit keinen Unterschied. Gegenstück ist spooler_close() . 2.5.10 spooler_process Jobschritt oder Ausführung eines Auftrags Syntax: boolean spooler_process () Führt einen Jobschritt aus. Ein Auftragsjob erhält in Task.order den auszuführenden Auftrag. Die Default-Implementierung gibt false zurück. Ein Auftragsjob versetzt aber einen Auftrag in den Folgezustand. Rückgabe: Software- and Organisations-Service GmbH März 2015 Java API 42 boolean Bei <job order="no"> : false beendet den Joblauf. Bei <job order="yes"> : false versetzt den Auftrag in den Fehlerzustand (s. Job_chain_node und < job_chain_node> ). Das gilt nicht, wenn der Zustand während der Ausführung mit Order.state verändert worden ist. 2.5.11 spooler_task Das Objekt der Task Syntax: Task spooler_task Beispiel: spooler_log.info( "The task id is " + spooler_task.id() ); Rückgabe: Task 2.6 Lock Siehe auch <lock name=""> . Beispiel: in javascript var locks = spooler.locks; var lock = locks.create_lock(); lock.name = "my_lock"; locks.add_lock( lock ); 2.6.1 max_non_exclusive Begrenzung der nicht-exklusiven Belegungen Syntax: void lock.set_max_non_exclusive ( int ) Syntax: int lock. max_non_exclusive () Die Voreinstellung ist unbegrenzt (231-1), es können also mit <lock.use exclusive="no"> beliebig viele nicht-exklusive Tasks gestartet werden (aber nur eine exklusive). Die Zahl kann nicht kleiner sein als die Zahl der nicht-exklusiven Belegungen. Siehe auch <lock max_non_exclusive=""> . Software- and Organisations-Service GmbH März 2015 Java API 43 2.6.2 name Name der Sperre Syntax: void lock.set_name ( String ) Syntax: String lock. name () Der Name kann nur einmal gesetzt und nicht geändert werden. Siehe auch <lock name=""> . 2.6.3 remove Entfernt die Sperre Syntax: void lock. remove () Beispiel: in javascript spooler.locks.lock( "my_lock" ).remove(); Die Sperre kann nur gelöscht werden, wenn sie von keiner Task belegt und von keinem Job gebraucht ( <lock.use > ) wird. Siehe auch <lock.remove> . 2.7 Locks 2.7.1 add_lock Fügt dem JobScheduler eine Sperre hinzu Syntax: void locks. add_lock ( Lock lck ) 2.7.2 create_lock Richtet eine neue Sperre ein Syntax: Lock locks. create_lock () Liefert eine neues Lock . Diese Sperre kann mit Locks.add_lock() dem JobScheduler hinzugefügt werden. Rückgabe: Software- and Organisations-Service GmbH März 2015 Java API 44 Lock 2.7.3 lock Liefert eine Sperre Syntax: Lock locks. lock ( String lock_name ) Wenn die Sperre nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Lock 2.7.4 lock_or_null Liefert eine Sperre Syntax: Lock locks. lock_or_null ( String lock_name ) Rückgabe: Lock null, wenn die Sperre nicht bekannt ist. 2.8 Log - Protokollierung In einem Job oder im Scheduler-Skript stellt spooler_log die hier beschriebenen Methoden bereit. eMail-Versand Am Ende einer Task kann der JobScheduler das Task-Protokoll per eMail versenden. In es versendet werden soll, geben diese Eigenschaften an: • • • • • Log.mail_on_error , Log.mail_on_warning , Log.mail_on_process , Log.mail_on_success und Log.mail_it Nur das Ende der Task, nicht das Ende einer Auftragsausführung (also spooler_process() ) führt zum eMail-Versand. Siehe aber Task.end() . Log.mail stellt ein Mail -Objekt bereit, das die Adressierung übernimmt. Software- and Organisations-Service GmbH März 2015 Java API 45 Beispiel: spooler_log.info( "Something for the Log" ); spooler_log.set_mail_on_warning( true ); spooler_log.mail().set_from ( "[email protected]" ); spooler_log.mail().set_to ( "[email protected]" ); spooler_log.mail().set_subject( "Task ended" ); 2.8.1 debug Debug-Meldung (Level -1) Syntax: void spooler_log. debug ( String line ) 2.8.2 debug1 Debug-Meldung (Level -1) Syntax: void spooler_log. debug1 ( String line ) 2.8.3 debug2 Debug-Meldung (Level -2) Syntax: void spooler_log. debug2 ( String line ) 2.8.4 debug3 Debug-Meldung (Level -3) Syntax: void spooler_log. debug3 ( String line ) 2.8.5 debug4 Debug-Meldung (Level -4) Syntax: void spooler_log. debug4 ( String line ) Software- and Organisations-Service GmbH März 2015 Java API 46 2.8.6 debug5 Debug-Meldung (Level -5) Syntax: void spooler_log. debug5 ( String line ) 2.8.7 debug6 Debug-Meldung (Level -6) Syntax: void spooler_log. debug6 ( String line ) 2.8.8 debug7 Debug-Meldung (Level -7) Syntax: void spooler_log. debug7 ( String line ) 2.8.9 debug8 Debug-Meldung (Level -8) Syntax: void spooler_log. debug8 ( String line ) 2.8.10 debug9 Debug-Meldung (Level -9) Syntax: void spooler_log. debug9 ( String line ) 2.8.11 error Fehlermeldung (Level 1) Syntax: void spooler_log. error ( String line ) Wenn die Fehlermeldung ins Task-Protokoll ( spooler_log ) geschrieben wird und nicht <job stop_on_error="no"> eingestellt ist, stoppt der Job nach Ende der Task. Software- and Organisations-Service GmbH März 2015 Java API 47 2.8.12 filename Dateiname des Protokolls Syntax: String spooler_log. filename () 2.8.13 info Informationsmeldung (Level 0) Syntax: void spooler_log. info ( String line ) 2.8.14 last Letzte Ausgabe des angegebenen Levels Syntax: String spooler_log. last ( int level ) Syntax: String spooler_log. last ( String level ) 2.8.15 last_error_line Die zuletzt mit Level 2 (error) ausgegebene Zeile Syntax: String spooler_log. last_error_line () 2.8.16 level Protokollausgaben beschränken Syntax: void spooler_log.set_level ( int ) Syntax: int spooler_log. level () Legt fest, ab welcher Stufe der JobScheduler Protokollzeilen ausgibt. Jede Protokollzeile ist auf einer der folgenden Stufen: error, warn, info, debug1 bis debug9 (debug1 ist dasselbe wie debug). Nur Meldungen ab dem Level werden ausgegeben. Dabei bedeutet die numerische Angabe: -9 bis -2: Software- and Organisations-Service GmbH debug9 bis debug2 März 2015 Java API 48 -1: debug 0: info 1: warn 2: error Die Option -log-level hat Vorrang. Die Einstellung factory.ini (Abschnitt [job], Eintrag log_level=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_level=…) wird damit überschrieben. Nur Meldungen ab dem Level werden ausgegeben. Dabei bedeutet die numerische Angabe: -9 bis -2: debug9 bis debug2 -1: debug 0: info 1: warn 2: error 2.8.17 log Syntax: void spooler_log. log ( int level, String line ) 2.8.18 log_file Protokolliert den Inhalt der Datei Syntax: void spooler_log. log_file ( java.io.File path ) Syntax: void spooler_log. log_file ( String path ) Protokolliert den Inhalt der Datei mit Level 0 (info). Ein Fehler beim Zugriff auf die Datei wird als Warnung protokolliert. Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wird die Datei vom Dateisystem des Schedulers, nicht der Task, gelesen. 2.8.19 mail Im Mail-Objekt können Sie Einstellungen zur eMail vornehmen Syntax: void spooler_log.set_mail ( Mail ) Software- and Organisations-Service GmbH März 2015 Java API 49 Syntax: Mail spooler_log. mail () Rückgabe: Mail 2.8.20 mail_it Versand erzwingen Syntax: void spooler_log.set_mail_it ( boolean ) Bei true wird das Protokoll bei Task-Ende verschickt unabhängig von den Einstellungen Log.mail_on_error , Log.mail_on_warning , Log.mail_on_success , Log.mail_on_process und Log.mail_on_error . 2.8.21 mail_on_error Mit Fehler beendete Task verschickt eMail Syntax: void spooler_log.set_mail_on_error ( boolean ) Syntax: boolean spooler_log. mail_on_error () Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_error=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_error=…) wird damit überschrieben. 2.8.22 mail_on_process Task mit spooler_process() verschickt eMail Syntax: void spooler_log.set_mail_on_process ( int ) Syntax: int spooler_log. mail_on_process () Veranlasst den Versand des Task-Protokolls, wenn die Task wenigstens die angegebene Anzahl Schritte, also Aufrufe von spooler_process() , ausgeführt hat. Weil Nicht-API-Tasks keine Schritte haben, zählt der JobScheduler für sie immer einen Schritt. Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_process=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_process=…) wird damit überschrieben. Software- and Organisations-Service GmbH März 2015 Java API 50 2.8.23 mail_on_success Erfolgreich gelaufende Task verschickt eMail Syntax: void spooler_log.set_mail_on_success ( boolean ) Syntax: boolean spooler_log. mail_on_success () Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_success=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_success=…) wird damit überschrieben. 2.8.24 mail_on_warning Wenn eine Warnung ausgegeben worden ist, wird am Task-Ende eine eMail verschickt Syntax: void spooler_log.set_mail_on_warning ( boolean ) Syntax: boolean spooler_log. mail_on_warning () Damit im Fehlerfall eine Mail verschickt wird, ist mail_on_error=yes explizit zu setzen. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_warning=…) wird damit überschrieben. 2.8.25 new_filename Neuer Dateiname fürs Protokoll Syntax: void spooler_log.set_new_filename ( String ) Syntax: String spooler_log. new_filename () Setzt den Dateinamen fürs Protokoll. Wenn das Protokoll geschlossen wird, kopiert der JobScheduler es in diese Datei. Die Datei steht dann der Anwendung zur Verfügung. 2.8.26 start_new_file Nur fürs Hauptprotokoll: Schließt das bisherige und beginnt ein neues Protokoll Syntax: void spooler_log. start_new_file () Software- and Organisations-Service GmbH März 2015 Java API 51 2.8.27 warn Warnung (Level 2) Syntax: void spooler_log. warn ( String line ) 2.9 Mail - eMail-Versand Siehe Log.mail . 2.9.1 add_file Fügt einen Anhang hinzu Syntax: void mail. add_file ( String path, String filename_for_mail (optional) , String content_type (optional) , String enconding (optional) ) Beispiel: spooler_log.mail().add_file( "c:/tmp/1.txt", "1.txt", "text/plain", "quoted-printable" ); Parameter: path Pfadname der anzuhängenden Datei filename_for_mail Dateiname, der in der Nachricht erscheinen soll content_type "text/plain" ist voreingestellt. enconding Z.B. "quoted-printable" 2.9.2 add_header_field Fügt dem eMail-Kopf ein Feld hinzu Syntax: void mail. add_header_field ( String field_name, String value ) 2.9.3 bcc Unsichtbarer Empfänger einer Kopie der Nachricht, blind carbon copy Syntax: void mail.set_bcc ( String ) Syntax: String mail. bcc () Software- and Organisations-Service GmbH März 2015 Java API 52 Beispiel: spooler_log.mail().set_bcc( "[email protected]" ); Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_bcc=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_bcc=…) wird damit überschrieben. Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). 2.9.4 body Inhalt der Nachricht Syntax: void mail.set_body ( String ) Syntax: String mail. body () Beispiel: spooler_log.mail().set_body( "Job succeeded" ); Codieren Sie Zeilenwechsel mit \n (in VBScript mit chr(10)). 2.9.5 cc Empfänger einer Kopie der Nachricht, carbon copy Syntax: void mail.set_cc ( String ) Syntax: String mail. cc () Beispiel: spooler_log.mail().set_cc( "[email protected]" ); Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). Software- and Organisations-Service GmbH März 2015 Java API 53 Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_cc=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_cc=…) wird damit überschrieben. Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). 2.9.6 dequeue Nachrichten aus dem Verzeichnis queue_dir erneut versuchen zu versenden Syntax: int mail. dequeue () Siehe Mail.dequeue_log , factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…). Rückgabe: int Zahl der versandten Nachrichten 2.9.7 dequeue_log Protokoll von dequeue() Syntax: String mail. dequeue_log () Beispiel: in javascript var count = spooler_log.mail.dequeue(); spooler_log.info( count + " messages from mail queue sent" ); spooler_log.info( spooler_log.mail.dequeue_log ); Siehe Mail.dequeue() . 2.9.8 from Absender Syntax: void mail.set_from ( String ) Syntax: String mail. from () Beispiel: spooler_log.mail().set_from( "[email protected]" ); Software- and Organisations-Service GmbH März 2015 Java API 54 Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_from=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_from=…) wird damit überschrieben. 2.9.9 queue_dir Verzeichnis der nicht versendbaren eMails Syntax: void mail.set_queue_dir ( String path ) Syntax: String mail. queue_dir () eMails, die der JobScheduler nicht verschicken kann (weil z.B. der SMTP-Server nicht erreichbar ist), werden hier abgelegt. Um diese eMails später zu verschicken, muss ein Job geschrieben werden, der die Methode Mail.dequeue() aufruft. Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag queue_dir=…). Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen). Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_queue_dir=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…) wird damit überschrieben. Die Einstellung sos.ini (Abschnitt [mail], Eintrag queue_dir=…) wird damit überschrieben. 2.9.10 smtp Name des SMTP-Servers Syntax: void mail.set_smtp ( String ) Syntax: String mail. smtp () Beispiel: spooler_log.mail().set_smtp( "mail.company.com" ); Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag smtp=…). Die Einstellung factory.ini (Abschnitt [job], Eintrag smtp=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag smtp=…) wird damit überschrieben. Software- and Organisations-Service GmbH März 2015 Java API 55 Die Einstellung sos.ini (Abschnitt [mail], Eintrag smtp=…) wird damit überschrieben. 2.9.11 subject Betreff Syntax: void mail.set_subject ( String ) Syntax: String mail. subject () Beispiel: spooler_log.mail().set_subject( "Job succeeded" ); Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_subject=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_subject=…) wird damit überschrieben. 2.9.12 to Empfänger Syntax: void mail.set_to ( String ) Syntax: String mail. to () Beispiel: spooler_log.mail().set_to( "[email protected]" ); Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_to=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_to=…) wird damit überschrieben. Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). Software- and Organisations-Service GmbH März 2015 Java API 56 2.9.13 xslt_stylesheet XSLT-Stylesheet für eMail-Aufbereitung Syntax: Xslt_stylesheet mail. xslt_stylesheet () Rückgabe: Xslt_stylesheet Das XSLT-Stylesheet als String 2.9.14 xslt_stylesheet_path XSLT-Stylesheet für eMail-Aufbereitung Syntax: void mail.set_xslt_stylesheet_path ( java.io.path path ) Syntax: void mail.set_xslt_stylesheet_path ( String path ) Beispiel: spooler_log.mail().set_xslt_stylesheet_path( "c:/stylesheets/mail.xslt" ); Der Pfad eines XSLT-Stylesheets. Der JobScheduler verwendet das XSLT-Stylesheet zum Aufbereiten der eMails. (Die Dokumentation hierzu ist noch nicht geschrieben.) <config mail_xslt_stylesheet="…"> Parameter: path Der Pfad der Datei, die das XSLT-Stylesheet enthält 2.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs Mit <monitor> können Sie einem Job einen Monitor geben. Ein Monitor kann folgende Methoden bereitstellen: Monitor_impl.spooler_task_before() Vor dem Start der Task, kann den Start verhindern. Monitor_impl.spooler_task_after() Nach dem Ende der Task. Monitor_impl.spooler_process_before() Vor spooler_process() , kann diesen Aufruf verhinden. Software- and Organisations-Service GmbH März 2015 Java API 57 Monitor_impl.spooler_process_after() Nach spooler_process() , kann dessen Rückgabewert ändern. 2.10.1 spooler Das allgemeine Objekt des Schedulers Syntax: Spooler spooler Beispiel: spooler_log.debug( "The working directory of the JobScheduler is " + spooler.directory() ); Wie dasselbe Objekt in der Klasse Job_impl: spooler . Rückgabe: Spooler 2.10.2 spooler_job Das Objekt des Jobs Syntax: Job spooler_job Beispiel: spooler_log.info( "The name of this job is " + spooler_job.name() ); Wie dasselbe Objekt in der Klasse Job_impl: spooler_job . Rückgabe: Job 2.10.3 spooler_log Zum Protokollieren Syntax: Log spooler_log Beispiel: spooler_log.info( "Something has happend" ); Wie dasselbe Objekt in der Klasse Job_impl: spooler_log . Rückgabe: Log Software- and Organisations-Service GmbH März 2015 Java API 58 2.10.4 spooler_process_after Nach spooler_process() Syntax: boolean spooler_process_after ( boolean spooler_process_result ) Beispiel: public boolean spooler_task_after( boolean spooler_process_result ) throws Exception { spooler_log.info( "SPOOLER_TASK_BEFORE()" ); spooler_log.info( "spooler_process() didn't throw an exception and delivered " + spooler_process_result ); return spooler_process_result; // Unchanged result } Der JobScheduler ruft diese Methode nach jedem spooler_process() auf. Parameter: spooler_process_ result Rückgabewert von spooler_process() oder false, wenn spooler_process() mit einer Exception geendet hat. Rückgabe: boolean Ersetzt den Rückgabewert von spooler_process() . 2.10.5 spooler_process_before Vor spooler_process() Syntax: boolean spooler_process_before () Beispiel: public boolean spooler_process_before() throws Exception { spooler_log.info( "SPOOLER_PROCESS_BEFORE()" ); return true; // spooler_process() will be executed } Software- and Organisations-Service GmbH März 2015 Java API 59 Beispiel: public boolean spooler_process_before() throws Exception { boolean continue_with_spooler_process = true; if( !are_needed_ressources_available() ) { spooler_task.order().setback(); continue_with_spooler_process = false; } return continue_with_spooler_process; } Der JobScheduler ruft diese Methode vor jedem spooler_process() auf. Rückgabe: boolean false verhindert den folgenden Aufruf von spooler_process() . Der JobScheduler setzt fort, als hätte spooler_process() false geliefert. 2.10.6 spooler_task Das Objekt der Task Syntax: Task spooler_task Beispiel: spooler_log.info( "The task id is " + spooler_task.id() ); Wie dasselbe Objekt in der Klasse Job_impl: spooler_task . Rückgabe: Task 2.10.7 spooler_task_after Nach dem Ende der Task Syntax: void spooler_task_after () Beispiel: public void spooler_task_after() throws Exception { spooler_log.info( "SPOOLER_TASK_AFTER()" ); } Software- and Organisations-Service GmbH März 2015 Java API 60 Der JobScheduler ruft diese Methode, nachdem die Task geendet hat. 2.10.8 spooler_task_before Vor Start der Task Syntax: boolean spooler_task_before () Beispiel: public boolean spooler_task_before() throws Exception { spooler_log.info( "SPOOLER_TASK_BEFORE()" ); return true; // Task will be started //return false; // Task will not be started } Vor dem Laden der Task ruft der JobScheduler diese Methode auf. Rückgabe: boolean false lässt die Task nicht starten. Monitor_impl.spooler_task_after() wird nicht gerufen. 2.11 Order - Auftrag Siehe JobScheduler Dokumentation, Spooler.create_order() , Job_chain.add_order() , Task.order . Dateiauftrag Ein Dateiauftrag ist ein Auftrag mit dem Parameter scheduler_file_path: Order.params . Variable_set.value() . Siehe JobScheduler Dokumentation. Software- and Organisations-Service GmbH März 2015 Java API 61 Beispiel: Auftrag mit einfacher Nutzlast, in javascript // Create order: { var order = spooler.create_order(); order.id = 1234; order.title = "This is my order"; order.state_text = "This is my state text"; order.payload = "This is my payload"; spooler.job_chain( "my_job_chain" ).add_order( order ); } ... // Process order: function spooler_process() { var order = spooler_task.order; spooler_log.info( "order.payload=" + order.payload ); return true; } Beispiel: Erzeugen eines Auftrags mit Variable_set als Nutzlast, in javascript // Create order: { var variable_set = spooler.create_variable_set(); variable_set.value( "param_one" ) = "11111"; variable_set.value( "param_two" ) = "22222"; var order = spooler.create_order(); order.id = 1234; order.payload = variable_set; spooler.job_chain( "my_job_chain" ).add_order( order ); } ... // Process order: function spooler_process() { var order = spooler_task.order; var variable_set = order.payload; spooler_log.info( "param_one=" + variable_set.value( "param_one" ) ); spooler_log.info( "param_two=" + variable_set.value( "param_two" ) ); return true; } 2.11.1 at Start-Zeitpunkt des Auftrags Syntax: void order.set_at ( String|DATE ) Beispiel: order.set_at( "now+60" ); order.set_at( new Date( new Date().getTime() + 60 * 1000 ) ); java.util.Date ) spooler.job_chain( "my_job_chain" ).add_order( order ); Software- and Organisations-Service GmbH // set_at( String ) // set_at( März 2015 Java API 62 Setzt den Start-Zeitpunkt bevor der Auftrag in eine Auftragswarteschlange eingereiht wird. Als String kann angegeben werden: • • • • "now" "yyyy-mm-dd HH:MM[:SS]" "now + HH:MM[:SS]" "now + seconds" Die Einstellung ändert die von Order.run_time oder Order.setback() vorgegebene Startzeit. Siehe <add_order at=""> . 2.11.2 end_state Zustand, vor dessen erfolgreichen Verlassen der Auftrag enden soll Syntax: void order.set_end_state ( String ) Syntax: String order. end_state () Wenn ein Auftrag einen eigenen End-Zustand hat (end_state ungleich ""), endet der Auftrag, bevor er diesen Zustand erfolgreich verlassen würde, also nach Ausführung des dem End-Zustand zugeordneten Jobs (siehe < job_chain_node> ). Der Zustand muss in der Jobkette bekannt sein. 2.11.3 id Kennung des Auftrags Syntax: void order.set_id ( String ) Syntax: String order. id () Jeder Auftrag hat eine (innerhalb der Jobkette oder der Auftragswarteschlange des Jobs eindeutige) Kennung. Diese Kennung sollte den zu verarbeitenden Daten entsprechen. Üblicherweise wird der Schlüssel eines Datenbanksatzes verwendet. Wenn Sie die id nicht setzen, vergibt Job_chain.add_order() eine Kennung. 2.11.4 job_chain Jobkette, in der der Auftrag enthalten ist Syntax: Job_chain order. job_chain () Rückgabe: Software- and Organisations-Service GmbH März 2015 Java API 63 Job_chain 2.11.5 job_chain_node Jobkettenknoten, der dem Zustand des Auftrags entspricht Syntax: Job_chain_node order. job_chain_node () Rückgabe: Job_chain_node 2.11.6 log Auftragsprotokoll Syntax: Log order. log () Beispiel: spooler_task.order.log.info( "Only for order log, not for task log" ); spooler_log.info( "For both order log and task log" ); Rückgabe: Log 2.11.7 params Parameter des Auftrags Syntax: void order.set_params ( Variable_set ) Syntax: Variable_set order. params () params wird in Order.payload gehalten, letzteres kann also nicht zusammen mit params verwendet werden. Siehe <add_order> . Rückgabe: Variable_set 2.11.8 payload Nutzlast, also Parameter des Auftrags. Software- and Organisations-Service GmbH März 2015 Java API 64 Syntax: void order.set_payload ( Object payload ) Syntax: Object order. payload () Statt dieser Eigenschaft wird die Verwendung von Order.params empfohlen (was (Variable_set)order.payload entspricht). Neben der Auftragskennung Order.id , die den Auftrag identifiziert, können Sie hier zusätzliche Angaben machen. Siehe Order.params und Order.xml_payload . Parameter: payload Kann ein String oder ein Variable_set sein. Rückgabe: Object Kann ein String oder ein Variable_set sein. 2.11.9 payload_is_type Prüft den COM-Typ der Nutzlast Syntax: boolean order. payload_is_type ( String type_name ) Parameter: type_name "Spooler.Variable_set", "Hostware.Dyn_obj" oder "Hostware.Record". 2.11.10 priority Aufträge mit höherer Priorität werden zuerst verarbeitet Syntax: void order.set_priority ( int ) Syntax: int order. priority () 2.11.11 remove_from_job_chain Syntax: void order. remove_from_job_chain () Wenn der Auftrag gerade von einer Task ausgeführt wird, liefert die Eigenschaft Order.job_chain weiterhin die Jobkette, aus der der Auftrag mit diesem Aufruf entfernt worden ist. Erst wenn die Ausführung beendet ist, liefert die Eigenschaft null (außer der Auftrag ist wieder in eine Jobkette eingetragen worden). Damit bleibt die Eigenschaft job_chain während der Ausführung durch die Task stabil. Software- and Organisations-Service GmbH März 2015 Java API 65 2.11.12 run_time <run_time> zur periodischen Wiederholung des Auftrags Syntax: Run_time order. run_time () Beispiel: in javascript order.run_time.xml = "<run_time><at at='2006-05-23 11:43:00'/></run_time>"; Siehe <run_time> . Das Kommando <modify_order at="now"> lässt einen wegen run_time wartenden Auftrag sofort anlaufen. Rückgabe: Run_time 2.11.13 setback Stellt den Auftrag eine Zeitlang zurück Syntax: void order. setback () Der Auftrag wird zurückgestellt und nach der mit <delay_order_after_setback> oder Job.delay_order_after_setback eingestellten Frist wiederholt. Bei einer Wiederholung wird nur die Funktion spooler_process() des Jobs wiederholt. Wenn in spooler_process() die Funktion order.setback() aufgerufen wurde, bleibt der Rückgabewert von spooler_process() ohne Wirkung. Der Auftrag zählt aufeinander folgende Aufrufe dieser Methode, was von <delay_order_after_setback> berücksichtigt wird. Der Zähler wird auf 0 gestellt, wenn spooler_process() ohne diesen Aufruf zu Ende ausgeführt worden ist. Beim Start des Schedulers sind alle Zähler 0. Das Kommando <modify_order at="now"> lässt einen zugestellten Auftrag sofort anlaufen. 2.11.14 setback_count Wie oft ist der Auftrag zurückgestellt worden? Syntax: int order. setback_count () Siehe <delay_order_after_setback> . 2.11.15 state Zustand des Auftrags Syntax: void order.set_state ( String ) Software- and Organisations-Service GmbH März 2015 Java API 66 Syntax: String order. state () Wenn der Auftrag in einer Jobkette ist, muss der Zustand in der Jobkette vorhanden sein. Wenn der Auftrag gerade von einem Job ausgeführt wird, wird der in der Jobkette festgelegte Folgezustand ( < job_chain_node next_state=""> ) wirkungslos. Die Rückgabewerte von spooler_process() und Monitor_impl.spooler_process_after() sind ohne Bedeutung. Mit Order.state kann also ein Job den Folgezustand frei bestimmen. Der Auftrag wird in die Auftragswarteschlange des Jobs eingereiht, der dem Zustand zugeordnet ist (s. < job_chain_node> ). Die Ausführung durch diesen Job wird solange verzögert, bis der jetzt ausführende Job den Auftrag ausgeführt hat. 2.11.16 state_text Freier Text für den Zustand des Auftrags Syntax: void order.set_state_text ( String ) Syntax: String order. state_text () Der Text wird auf der HTML-Oberfläche gezeigt. Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen. 2.11.17 string_next_start_time Nächste Startzeit des Auftrags bei Verwendung von <run_time> Syntax: String order. string_next_start_time () Rückgabe: String "yyyy-mm-dd HH:MM:SS.MMM" oder "now" oder "never". 2.11.18 suspended Ausgesetzer Auftrag Syntax: void order.set_suspended ( boolean ) Syntax: boolean order. suspended () Ein ausgesetzter Auftrag wird nicht ausgeführt. Wenn der Auftrag gerade von einer Task ausgeführt wird, wird der Schritt ( spooler_process() ) noch zu Ende ausgeführt und der Auftrag nach den gewohnten Regeln in den Folgezustand versetzt, bevor er tatsächlich ausgesetzt wird. Software- and Organisations-Service GmbH März 2015 Java API 67 Damit kann ein Auftrag in einen Endzustand ausgesetzt werden, womit verhindet wird, dass er entfernt wird. Erst wenn die Aussetzung eines solchen Auftrags aufgehoben wird, ( order.suspended=false), entfernt der JobScheduler den Auftrag. Ein ausgesetzter Auftrag im Endzustand kann mit Order.state in einen Zustand versetzt werden, der einem Job zugeordnet ist. Der Auftrag bleibt dennoch ausgesetzt. 2.11.19 title Der Titel ist ein Klartext, der den Auftrag bezeichnet Syntax: void order.set_title ( String ) Syntax: String order. title () 2.11.20 web_service Der Webdienst, der dem Auftrag zugeordnet ist Syntax: Web_service order. web_service () Wenn der Auftrag keinem Webdienst zugeordnet ist, liefert der Aufruf den Fehler SCHEDULER-240 . Siehe auch Order.web_service_or_null . Rückgabe: Web_service 2.11.21 web_service_operation Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist Syntax: Web_service_operation order. web_service_operation () Software- and Organisations-Service GmbH März 2015 Java API 68 Beispiel: public boolean spooler_process() throws Exception { Order order = spooler_task.order(); Web_service_operation web_service_operation = order.web_service_operation(); Web_service_request request = web_service_operation.request(); // Decode request data String request_string = new String( request.binary_content(), request.charset_name() ); process request_string ...; String response_string = "This is my response"; String charset_name = "UTF-8"; ByteArrayOutputStream byos = new ByteArrayOutputStream(); // Encode response data Writer writer = new OutputStreamWriter( byos, charset_name ); writer.write( response_string ); writer.close(); // Respond Web_service_response response = web_service_operation.response(); response.set_content_type( "text/plain" ); response.set_charset_name( charset_name ); response.set_binary_content( byos.toByteArray() ); response.send(); // Web service operation has finished return true; } Siehe <web_service> , Web_service_operation und Order.web_service_operation_or_null , Rückgabe: Web_service_operation 2.11.22 web_service_operation_or_null Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist, oder null Syntax: Web_service_operation order. web_service_operation_or_null () Siehe Order.web_service_operation , Web_service_operation und <web_service> . Rückgabe: Web_service_operation Software- and Organisations-Service GmbH März 2015 Java API 69 2.11.23 web_service_or_null Der Web-Dienst, der dem Auftrag zugeordnet ist, oder null. Syntax: Web_service order. web_service_or_null () Siehe auch Order.web_service . Rückgabe: Web_service 2.11.24 xml Auftrag in XML: <order>...</order> Syntax: String order. xml () Rückgabe: String Siehe <order> 2.11.25 xml_payload XML-Nutzlast, also Parameter des Auftrags. Syntax: void order.set_xml_payload ( String xml ) Syntax: String order. xml_payload () Zusätzlich zur Eigenschaft Order.params kann diese Eigenschaft ein XML-Dokument aufnehmen. <xml_payload> enthält das Wurzelelement des XML-Dokuments (statt in #PCDATA-codierter Form). 2.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs Ein auftragsgesteuerter Job ( <job order="yes"> hat eine Auftragswarteschlange, die die vom Job zu verarbeitenden Aufträge aufnimmt. Die Aufträge sind nach Priorität und Zeitpunkt des Eintreffens geordnet. Verarbeiten bedeutet, dass der JobScheduler die Methode spooler_process() einer Task des Jobs aufruft. Die Methode kann über Task.order auf den Auftrag zugreifen. Endet spooler_process() ohne Fehler (ohne Exception), entfernt der JobScheduler den Auftrag aus der Auftragswarteschlange. Ist der Auftrag in einer Jobkette, dann rückt der Auftrag an die nächste Position der Jobkette. Software- and Organisations-Service GmbH März 2015 Java API 70 2.12.1 length Anzahl der Aufträge in der Auftragswarteschlange Syntax: int q. length () 2.13 Process_class Siehe auch <process_class name=""> . Beispiel: in javascript var process_classs = spooler.process_classs; var process_class = process_classs.create_process_class(); process_class.name = "my_process_class"; process_classs.add_process_class( process_class ); 2.13.1 max_processes Anzahl der Prozesse Syntax: void process_class.set_max_processes ( int ) Syntax: int process_class. max_processes () Die Voreinstellung ist 10. Siehe auch <process_class max_processes=""> . 2.13.2 name Name der Prozessklasse Syntax: void process_class.set_name ( String ) Syntax: String process_class. name () Der Name kann nur einmal gesetzt und nicht geändert werden. Siehe auch <process_class name=""> . 2.13.3 remote_scheduler Adresse des fernen Schedulers, der die Prozesse ausführen soll Syntax: void process_class.set_remote_scheduler ( String ) Software- and Organisations-Service GmbH März 2015 Java API 71 Syntax: String process_class. remote_scheduler () Beispiel: in javascript spooler.process_classes.process_class( "my_process_class" ).remote_scheduler = "host:4444"; Siehe auch <process_class remote_scheduler=""> . Parameter: Die Adresse wird als " host : portnumber" angegeben. Beim Lesen wird (derzeit) zusätzlich die IP-Nummer geliefert: " hostname / ipnumber : portnumber" Rückgabe: String Die Adresse wird als " host : portnumber" angegeben. Beim Lesen wird (derzeit) zusätzlich die IP-Nummer geliefert: " hostname / ipnumber : portnumber" 2.13.4 remove Entfernt die Prozessklasse Syntax: void process_class. remove () Beispiel: in javascript spooler.process_classs.process_class( "my_process_class" ).remove(); Wenn noch Tasks in der Prozessklasse laufen, verzögert der JobScheduler das Löschen bis die letzte Task geendet hat. Solange werden keine neuen Tasks gestartet. Siehe auch <process_class.remove> . 2.14 Process_classes 2.14.1 add_process_class Fügt dem JobScheduler eine Prozessklasse hinzu Syntax: void process_classs. add_process_class ( Process_class pc ) Software- and Organisations-Service GmbH März 2015 Java API 72 2.14.2 create_process_class Legt eine neue Prozesklasse ein Syntax: Process_class process_classs. create_process_class () Liefert eine neues Process_class . Diese Prozessklasse kann mit Process_classes.add_process_class() dem JobScheduler hinzugefügt werden. Rückgabe: Process_class 2.14.3 process_class Liefert eine Prozessklasse Syntax: Process_class process_classs. process_class ( String process_class_name ) Wenn die Prozessklasse nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Process_class 2.14.4 process_class_or_null Liefert eine Prozessklasse Syntax: Process_class process_classs. process_class_or_null ( String process_class_name ) Rückgabe: Process_class null, wenn die Prozessklasse nicht bekannt ist. 2.15 Run_time - Laufzeit Siehe <run_time> , Order , Schedule . Beispiel: in javascript var order = spooler_task.order; // Repeat order daily at 15:00 order.run_time.xml = "<run_time><period single_start='15:00'/></run_time>"; Software- and Organisations-Service GmbH März 2015 Java API 73 2.15.1 schedule <schedule> Syntax: Schedule run_time. schedule () Rückgabe: Schedule 2.15.2 xml <run_time> Syntax: void run_time.set_xml ( String ) Verwirft die bisherige Einstellung und setzt Run_time neu. Parameter: XML-Dokument als String 2.16 Schedule - Laufzeit Siehe <schedule> , <run_time> , Spooler.schedule , Run_time . Beispiel: in javascript spooler.schedule( "my_schedule" ).xml = "<schedule><period single_start='15:00'/>< /schedule>"; 2.16.1 xml <schedule> Syntax: void schedule.set_xml ( String ) Syntax: String schedule. xml () Verwirft die bisherige Einstellung und setzt Schedule neu. Parameter: XML-Dokument als String Rückgabe: String XML-Dokument als String Software- and Organisations-Service GmbH März 2015 Java API 74 2.17 Spooler Von dieser Klasse gibt es nur ein Objekt: spooler . 2.17.1 abort_immediately Bricht den JobScheduler augenblicklich ab Syntax: void spooler. abort_immediately () Bricht den JobScheduler augenblicklich ab. Kein Job hat Gelegenheit, darauf zu reagieren. Der JobScheduler 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 JobScheduler Dokumentation. 2.17.2 abort_immediately_and_restart Bricht den JobScheduler augenblicklich ab und startet ihn neu. Syntax: void spooler. abort_immediately_and_restart () Wie Spooler.abort_immediately() , nur dass der JobScheduler sich erneut startet. Dabei verwendet er die Kommandozeilenparameter wieder. Siehe <modify_spooler cmd="abort_immediately_and_restart"> und JobScheduler Dokumentation. 2.17.3 add_job_chain Syntax: void spooler. add_job_chain ( Job_chain chain ) Bei Job_chain.orders_recoverable =true lädt der JobScheduler die Aufträge der Jobkette aus der Datenbank. Siehe Spooler.create_job_chain() und <job_chain> . Software- and Organisations-Service GmbH März 2015 Java API 75 2.17.4 configuration_directory Pfad des Konfigurationsverzeichnisses Syntax: String spooler. configuration_directory () <config configuration_directory="…"> 2.17.5 create_job_chain Syntax: 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 JobScheduler hinzugefügt werden Siehe <job_chain> . Rückgabe: Job_chain 2.17.6 create_order Syntax: Order spooler. create_order () Erzeugt einen neuen Auftrag. Dieser Auftrag kann mit Job_chain.add_order() einer Jobkette übergeben werden. Rückgabe: Order 2.17.7 create_variable_set Syntax: Variable_set spooler. create_variable_set () Rückgabe: Variable_set 2.17.8 create_xslt_stylesheet Syntax: Xslt_stylesheet spooler. create_xslt_stylesheet () Syntax: Xslt_stylesheet spooler. create_xslt_stylesheet ( java.io.path path ) Syntax: Xslt_stylesheet spooler. create_xslt_stylesheet ( String path ) Software- and Organisations-Service GmbH März 2015 Java API 76 Parameter: xml XSLT-Stylesheet als XML-String Rückgabe: Xslt_stylesheet Xslt_stylesheet Xslt_stylesheet 2.17.9 db_history_table_name Name der Datenbanktabelle für die Historie Syntax: String spooler. db_history_table_name () Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) wird damit überschrieben. 2.17.10 db_name Hostware-Pfad der Datenbank Syntax: String spooler. db_name () Verbindungszeichenfolge der Datenbank für die Historienführung. Der JobScheduler 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 JobScheduler verwendet dann eine Microsoft MS-Access Datenbank dieses Namens, die im Protokollverzeichnis (s. Option -log-dir ) liegt. Der JobScheduler richtet die Datei ein, wenn sie fehlt. Der JobScheduler richtet die Tabellen selbständig ein. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db=…) wird damit überschrieben. 2.17.11 db_order_history_table_name Name der Datenbanktabelle für die Auftragshistorie Syntax: String spooler. db_order_history_table_name () Die Einstellung factory.ini überschrieben. Software- and Organisations-Service GmbH (Abschnitt [spooler], Eintrag db_order_history_table=…) wird damit März 2015 Java API 77 2.17.12 db_orders_table_name Name der Datenbanktabelle für die Aufträge Syntax: String spooler. db_orders_table_name () Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_orders_table=…) wird damit überschrieben. 2.17.13 db_tasks_table_name Name der Datenbanktabelle für die Tasks Syntax: String spooler. db_tasks_table_name () Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_tasks_table=…) wird damit überschrieben. 2.17.14 db_variables_table_name Name der Datenbanktabelle für interne Variablen des Schedulers Syntax: String spooler. db_variables_table_name () Der JobScheduler 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. 2.17.15 directory Das Arbeitsverzeichnis beim Start des Schedulers Syntax: String spooler. directory () Ändert das Arbeitsverzeichnis. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Software- and Organisations-Service GmbH März 2015 Java API 78 Die Option -cd hat Vorrang. Eine auf einem entfernten JobScheduler 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 "\". 2.17.16 execute_xml Führt ein XML-Kommando aus Syntax: 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 JobScheduler Dokumentation. Rückgabe: String Liefert die XML-Antwort des ausgeführten Kommandos. 2.17.17 hostname Name des Rechners, auf dem der JobScheduler läuft. Syntax: String spooler. hostname () 2.17.18 id Wert der Kommandozeilenoption -id= Syntax: String spooler. id () Der JobScheduler wählt nur die Elemente der XML-Konfiguration aus, deren Attribut spooler_id leer ist oder denselben Wert wie in dieser Einstellung enthält. Software- and Organisations-Service GmbH März 2015 Java API 79 Wenn die Scheduler-ID nicht angegeben ist, beachtet der JobScheduler das XML-Attribut spooler_id= nicht und wählt alle Elemente der XML-Konfiguration aus. Siehe z.B. <config> . Die Option -id hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag id=…) wird damit überschrieben. 2.17.19 include_path Liefert die Kommandozeilenoption -include-path=. Syntax: String spooler. include_path () Verzeichnis der Dateien, die mit <include> eingezogen werden. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen). Die Option -include-path hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag include_path=…) wird damit überschrieben. <config include_path="…"> Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. 2.17.20 ini_path Wert der Option -ini= (Dateiname der factory.ini) Syntax: String spooler. ini_path () Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Siehe -ini , JobScheduler Dokumentation 2.17.21 is_service Syntax: boolean spooler. is_service () Software- and Organisations-Service GmbH März 2015 Java API 80 Rückgabe: boolean true, genau dann wenn der JobScheduler als Dienst (in Windows) oder als Daemon (in Unix) läuft. 2.17.22 job Liefert einen Job Syntax: Job spooler. job ( String job_name ) Wenn der Jobname nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Job 2.17.23 job_chain Liefert eine Jobkette Syntax: Job_chain spooler. job_chain ( String name ) Wenn der Name der Jobkette nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Job_chain 2.17.24 job_chain_exists Syntax: boolean spooler. job_chain_exists ( String name ) 2.17.25 let_run_terminate_and_restart Syntax: void spooler. let_run_terminate_and_restart () Sobald alle Aufträge abgearbeitet sind, beendet der JobScheduler alle Tasks (durch Aufruf von Job_impl ) und beendet dann sich selbst. Ein neuer JobScheduler mit unveränderten Kommandozeilenparametern wird gestartet. Siehe <modify_spooler cmd="let_run_terminate_and_restart"> und JobScheduler Dokumentation. Software- and Organisations-Service GmbH März 2015 Java API 81 2.17.26 locks Liefert die Locks Syntax: Locks spooler. locks () Rückgabe: Locks 2.17.27 log Das Hauptprotokoll Syntax: Log spooler. log () Normalerweise wird man spooler_log() verwenden. Rückgabe: Log 2.17.28 log_dir Verzeichnis der Protokolle Syntax: String spooler. log_dir () In dieses Verzeichnis schreibt der JobScheduler seine Protokolle. log_dir= *stderr lässt den JobScheduler die Protokollausgabe nach stderr (auf den Bildschirm) schreiben. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen). Die Option -log-dir hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_dir=…) wird damit überschrieben. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. 2.17.29 param Kommandozeilenoption -param= Software- and Organisations-Service GmbH März 2015 Java API 82 Syntax: String spooler. param () Zur freien Verwendung. Der Parameter ist in den Skripten über spooler.param lesbar. Die Option -param hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag param=…) wird damit überschrieben. 2.17.30 process_classes Liefert die Prozessklassen Syntax: Process_classes spooler. process_classes () Rückgabe: Process_classes 2.17.31 schedule Liefert den benannten Schedule oder null Syntax: Schedule spooler. schedule ( String path ) Rückgabe: Schedule 2.17.32 supervisor_client Liefert den Supervisor_client oder null Syntax: Supervisor_client spooler. supervisor_client () Rückgabe: Supervisor_client 2.17.33 tcp_port HTTP- und TCP-Port für Kommandos an den JobScheduler Syntax: int spooler. tcp_port () Software- and Organisations-Service GmbH März 2015 Java API 83 Der JobScheduler 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 JobScheduler einen HTTP/HTML-Server, so dass er über einen Browser ansprechbar ist, z.B. http://localhost:4444. Bei tcp_port=0 (voreingestellt) ist der JobScheduler nicht über TCP oder HTTP ansprechbar. Damit kann die Steuerung des JobSchedulers per TCP-Kommando, z.B. über eine Web-Seite, unterbunden werden. Die Option -tcp-port hat Vorrang. <config tcp_port="…"> Rückgabe: int 0, wenn kein Port geöffnet ist. 2.17.34 terminate JobScheduler mit allen Tasks ordentlich beenden Syntax: 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 JobScheduler 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 JobScheduler Dokumentation. Parameter: timeout Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen Parameter wartet der JobScheduler endlos auf die Tasks. restart restart=true lässt den JobScheduler nach Beendigung neu starten. all_schedu all_schedulers=true beendet alle JobScheduler im Cluster (s. -exclusive ) Das kann eine lers Minute dauern. continue_e continue_exclusive_operation=true lässt einen anderen Scheuler im Cluster (s. -exclusive ) xclusive_o den Betrieb fortsetzen. peration 2.17.35 terminate_and_restart JobScheduler mit allen Tasks ordentlich beenden und erneut starten Syntax: void spooler. terminate_and_restart ( int timeout (optional) ) Software- and Organisations-Service GmbH März 2015 Java API 84 Wie Spooler.terminate() , aber der JobScheduler startet sich neu. Siehe <modify_spooler cmd="terminate_and_restart"> und JobScheduler Dokumentation. Parameter: time Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der out JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen Parameter wartet der JobScheduler endlos auf die Tasks. 2.17.36 udp_port UDP-Port für Kommandos an den JobScheduler Syntax: int spooler. udp_port () Auch über UDP kann der JobScheduler Kommandos entgegennehmen. Hier wird die Portnummer angegeben. Ein Kommando muss in eine Nachricht passen. Der JobScheduler schickt keine Antwort. Bei udp_port=0 (voreingestellt) öffnet der JobScheduler keinen UDP-Port. Die Option -udp-port hat Vorrang. <config udp_port="…"> Rückgabe: int 0, wenn kein Port geöffnet ist. 2.17.37 var Zugriff auf Scheduler-weite Variablen Syntax: void spooler.set_var ( String name, String ) Syntax: String spooler. var ( String name ) Die Variablen sind überall im JobScheduler benutzbar. 2.17.38 variables Die Scheduler-weiten Variablen als Variable_set Syntax: Variable_set spooler. variables () Die Variablen können in der Konfigurationsdatei eingestellt werden mit <config> . Software- and Organisations-Service GmbH März 2015 Java API 85 Rückgabe: Variable_set 2.18 Spooler_program - Für den Java-Debugger Startet den JobScheduler über Java, so dass in Java geschriebene Jobs debuggt werden können (z.B. mit Eclipse). Zu den Methoden siehe Javadoc. Der JobScheduler wird als Windows-Applikation, nicht als Konsol-Programm gestartet. Ausgaben nach stderr gehen verloren. -log-dir liefert keine Ausgabe. Siehe JobScheduler Dokumentation. Beispiel: C:\>java -Djava.library.path=… -classpath …\sos.spooler.jar sos.spooler.Spooler_program configuration.scheduler -log-dir=c:\tmp\scheduler Mit -Djava.library.path=… geben Sie das Verzeichnis der scheduler.dll an, wenn es nicht bereits in %PATH% aufgeführt ist. 2.19 Subprocess Ein Subprozess ist irgendein Prozess, der mit Task.create_subprocess() oder Subprocess.start() gestartet werden kann. Beispiel: system() - Einfache Ausführung eines Kommandos, in javascript exit_code = my_system( "backup /" ); function system( cmd, timeout ) { var subprocess = spooler_task.create_subprocess(); try { if( timeout ) subprocess.timeout = timeout; subprocess.start( cmd ); subprocess.wait_for_termination(); return subprocess.exit_code; } finally { subprocess.close(); } } Software- and Organisations-Service GmbH März 2015 Java API 86 Beispiel: in javascript var subprocess = spooler_task.create_subprocess(); subprocess.environment( "test1" ) = "one"; subprocess.environment( "test2" ) = "two"; subprocess.ignore_error = true; subprocess.start( "sleep 20" ); spooler_log.info( "pid=" + subprocess.pid ); subprocess.timeout = 10; spooler_log.info( "wait_for_termination ..." ); var ok = subprocess.wait_for_termination( 10 ); spooler_log.info( "wait_for_termination ok=" + ok ); if( subprocess.terminated ) { spooler_log.info( "exit code=" + subprocess.exit_code ); spooler_log.info( "termination signal=" + subprocess.termination_signal ); } 2.19.1 close Gibt die System-Ressourcen frei Syntax: void subprocess. close () Sollte in Sprachen mit Garbage Collector (Java, JavaScript) gerufen werden, außer die Task beendet sich sofort. Der Subprocess ist danach unbrauchbar. 2.19.2 env Umgebungsvariablen als Variable_set Syntax: Variable_set subprocess. env () Beispiel: in javascript var subprocess = spooler_task.create_subprocess(); subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) ); subprocess.wait_for_termination(); Liefert ein Variable_set der Umgebungsvariablen. Anfänglich ist die Umgebung mit den Umgebungsvariablen des startenden Prozesses gefüllt. Umgebungsvariablen können entfernt werden, indem sie auf "" gesetzt werden. Der Aufruf Subprocess.start() übergibt die Umgebungsvariablen dem Subprozess. Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden. Software- and Organisations-Service GmbH März 2015 Java API 87 Nach dem Start des Subprozesses haben Änderungen an den Umgebungsvariablen keine Wirkung. Auch können vom Prozess geänderte Umgebungsvariablen nicht gelesen werden. Das Objekt lässt sich nicht anderen Objekten übergeben (denn es befindet sich im Prozess der Task, während die meisten anderen Objekte sich im Prozess des Schedulers befinden). Rückgabe: Variable_set 2.19.3 environment Umgebungsvariablen Syntax: void subprocess.set_environment ( String name, String value ) Beispiel: // The following two statements have the same effect subprocess.set_environment( "my_variable", "my_value" ) subprocess.env().set_value( "my_variable" ) = "my_value" Die hier gesetzten Variablen werden zusammen mit den übrigen Umgebungsvariablen des laufenden Prozesses dem neuen Subprozess übergeben. Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden. Siehe auch Subprocess.env . 2.19.4 exit_code Syntax: int subprocess. exit_code () Erst aufrufen, wenn Subprocess.terminated == true. 2.19.5 ignore_error Verhindert, dass bei exit_code != 0 der Job stoppt Syntax: void subprocess.set_ignore_error ( boolean ) Syntax: boolean subprocess. ignore_error () Verhindert, dass der Job stoppt, wenn der Subprozess bei Task-Ende mit Subprocess.exit_code != 0 geendet hat. Wenn das Ende des Subprocesses nicht mit Subprocess.wait_for_termination abgewartet worden ist, tut das der JobScheduler bei Task-Ende. Wenn dann der Subprocess mit Subprocess.exit_code != 0 endet, stoppt der Job mit Fehler. Software- and Organisations-Service GmbH März 2015 Java API 88 Mit ignore_error kann das verhindert werden. 2.19.6 ignore_signal Verhindert, dass bei einem Abbruch des Prozesses mit Signal der Job stoppt Syntax: void subprocess.set_ignore_signal ( int ) Syntax: int subprocess. ignore_signal () Wirkt nicht unter Windows, weil es hier keine Signale gibt. 2.19.7 kill Bricht den Subprozess ab Syntax: void subprocess. kill ( int signal (optional) ) Parameter: signal Nur unter Unix: Das Signal für kill(). 0 wird als 9 (SIGKILL, sofortiges Ende) interpretiert. 2.19.8 own_process_group Subprozess als Prozessgruppe Syntax: void subprocess.set_own_process_group ( boolean ) Syntax: boolean subprocess. own_process_group () Nur unter Unix. Der Default kann mit factory.ini (Abschnitt [spooler], Eintrag subprocess.own_process_group=…) eingestellt werden. own_process_group lässt den Subprozess in einer eigenen Prozessgruppe starten, indem der Systemaufruf setpgid(0,0) ausgeführt wird. Wenn der JobScheduler den Subprozess abbricht, bricht er die ganze Prozessgruppe ab. 2.19.9 pid Prozesskennung Syntax: int subprocess. pid () Software- and Organisations-Service GmbH März 2015 Java API 89 2.19.10 priority Prozess-Priorität Syntax: void subprocess.set_priority ( int ) Syntax: int subprocess. priority () Beispiel: in javascript subprocess.priority = +5; // Unix: Priorität etwas verschlechtern Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht werden. Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13 "high" (andere Werte werden abgerundet). Siehe auch Task.priority_class . Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Subprocess.priority_class . Siehe auch Task.priority . 2.19.11 priority_class Prioritätsklasse Syntax: void subprocess.set_priority_class ( String ) Syntax: String subprocess. priority_class () Beispiel: in javascript subprocess.priority_class = "below_normal"; Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix entsprechen: Prioritätsklasse Windows Unix "idle" 4 16 "below_normal" 6 6 "normal" 8 0 "above_normal" 10 -6 "high" 13 -16 Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelndem Recht, führt das nicht zu einem Fehler. Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Software- and Organisations-Service GmbH März 2015 Java API 90 Siehe auch Subprocess.priority , Task.priority_class und Microsoft® Windows® Scheduling Priorities. 2.19.12 start Startet den Prozess Syntax: void subprocess. start ( String command_line ) Syntax: void subprocess. start ( String filename_and_arguments ) Windows erkennt sofort, wenn das Programm nicht ausführbar ist. Die Methode liefert dann einen Fehler. Unter Unix wird stattdessen Subprocess.exit_code auf 99 gesetzt. Vorher muss das Ende des Prozesses abgewartet werden mit Subprocess.wait_for_termination() . Shell-Operatoren wie |, && und > werden nicht interpretiert. Verwenden Sie dazu die Programme /bin/sh bzw. c:\windows\system32\cmd.exe (das Verzeichnis ist installations-abhängig). Der Prozess wird unter Unix mit execvp() und unter Windows mit CreateProcess() gestartet. 2.19.13 terminated Syntax: boolean subprocess. terminated () Prüft, ob der Prozess geendet hat. Wenn er geendet hat, kann anschließend Subprocess.exit_code und Subprocess.termination_signal gerufen werden. 2.19.14 termination_signal Signal, mit dem sich der Prozess beendet hat (nur Unix) Syntax: int subprocess. termination_signal () Erst aufrufen, wenn Subprocess.terminated == true. 2.19.15 timeout Frist für den Subprozess Syntax: void subprocess.set_timeout ( double seconds ) Nach Ablauf der Zeit bricht der JobScheduler den Subprozess ab (Unix: mit SIGKILL). Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht. Software- and Organisations-Service GmbH März 2015 Java API 91 2.19.16 wait_for_termination Syntax: void subprocess. wait_for_termination () Syntax: boolean subprocess. wait_for_termination ( double seconds ) Parameter: seconds Wartezeit. Fehlt der Parameter, dann wartet der Aufruf bis der Subprozess geendet hat. Rückgabe: boolean true, wenn der Subprozess geendet hat. false, wenn der Subprozess nach Ablauf der Wartezeit noch läuft. 2.20 Supervisor_client Spooler.supervisor_client liefert dieses Objekt. Beispiel: in javascript var supervisor_hostname = spooler.supervisor_client.hostname; 2.20.1 hostname Name oder IP-Nummer des Rechners, auf dem der Supervisor läuft Syntax: String supervisor_client. hostname () Siehe auch <config supervisor=""> . 2.20.2 tcp_port TCP-Port des Supervisors Syntax: int supervisor_client. tcp_port () Siehe auch <config supervisor=""> . 2.21 Task Eine Task ist eine laufende Instanz eines Jobs. Software- and Organisations-Service GmbH März 2015 Java API 92 Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen. Implementiert wird eine Task mit Job_impl . 2.21.1 add_pid Macht dem JobScheduler einen abhängigen, befristeten Prozess bekannt Syntax: void spooler_task. add_pid ( int pid ) Syntax: void spooler_task. add_pid ( int pid, double timeout_seconds ) Mit dem Aufruf kann die Laufzeit von abhängigen Prozessen eingeschränkt werden. Bei Task-Ende bricht der JobScheduler noch laufende abhängigen Prozesse in jedem Fall ab. Wenn der JobScheduler einen Prozess abbricht, gibt es einen Eintrag ins Protokoll. Die Task erfährt davon nichts. Der Aufruf <kill_task> bricht alle mit add_pid() bekannt gemachten Prozesse ab. Unter Unix kann eine Prozessgruppen-Id als negative pid übergeben werden. Ein kill bricht dann die ganze Prozessgruppe ab. Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht. 2.21.2 call_me_again_when_locks_available Wiederholt spooler_open() oder spooler_process(), sobald Sperren verfügbar Syntax: void spooler_task. call_me_again_when_locks_available () Ve r a n l a s s t den S c h e d u l e r, nach erfolglosem Task.try_hold_lock() oder Task.try_hold_lock_non_exclusive() den Aufruf von spooler_open() bzw. spooler_process() zu wiederholen, sobald die angeforderten Sperren verfügbar sind. Der JobScheduler wiederholt dann den Aufruf mit gehaltenen Sperren, so dass die erstgenannten Aufrufe Erfolg haben werden. Nach dem Aufruf hat der Rückgabewert von spooler_open() bzw. spooler_process() (true/false) keine Wirkung. Einen Auftrag Task.order belässt der JobScheduler in seinem Zustand. 2.21.3 changed_directories Die Verzeichnisse, deren Änderung den Start der Task veranlasst haben Syntax: String spooler_task. changed_directories () Siehe Job.start_when_directory_changed() , Task.trigger_files . Rückgabe: String Die Verzeichnisnamen sind durch Semikolon getrennt. Software- and Organisations-Service GmbH März 2015 Java API 93 "", wenn kein Verzeichnis geändert ist. 2.21.4 create_subprocess Start eines überwachten Subprozesses Syntax: Subprocess spooler_task. create_subprocess () Syntax: Subprocess spooler_task. create_subprocess ( String command_line ) Syntax: Subprocess spooler_task. create_subprocess ( String filename_and_arguments ) Rückgabe: Subprocess Subprocess Subprocess 2.21.5 delay_spooler_process Verzögert den nächsten Aufruf von spooler_process() Syntax: void spooler_task.set_delay_spooler_process ( double ) Syntax: void spooler_task.set_delay_spooler_process ( String hhmm_ss ) Wirkt nur in spooler_process() . 2.21.6 end Beendet die Task Syntax: void spooler_task. end () Der JobScheduler ruft nicht mehr spooler_process() auf. Statt dessen ruft er spooler_close() auf. Der Aufruf kann verwendet werden, um beim Task-Ende den Versand des Task-Protokolls zu veranlassen, siehe Log . 2.21.7 error Setzt einen Fehler und stoppt den Job Syntax: void spooler_task.set_error ( String ) Syntax: Error spooler_task. error () Der lesende Aufruf liefert den letzten Fehler dieser Task. Wenn kein Fehler vorliegt, wird ein Error -Objekt zurückgeliefert, dessen Eigenschaft is_error false liefert. Software- and Organisations-Service GmbH März 2015 Java API 94 Sie können eine Fehlermeldung auch mit Log.error() ins Task-Protokoll schreiben. Rückgabe: String Error 2.21.8 exit_code Exit-Code Syntax: void spooler_task.set_exit_code ( int ) Syntax: int spooler_task. exit_code () Beispiel: in javascript spooler_log.error( "This call of spooler_log.error() sets the exit code to 1" ); spooler_task.exit_code = 0; // Reset the exit code Der Exit-Code ist anfänglich 0 und wird bei einem Fehler auf 1 gesetzt. Das ist, wenn der JobScheduler eine Zeile mit [ERROR] ins Task-Protokoll schreibt: • • • Aufruf von Log.error() Setzen von Task.error Das Skript liefert eine Exception. Der Job kann anschließend, z.B. in spooler_on_error() , den Task.exit_code neu setzen. Der Exit-Code des (Betriebssystem-)Prozesses, der die Task ausführt, ist ohne Belang und wird nicht übernommen, im Gegensatz zu Jobs mit <process> oder <script language="shell"> . Der Exit-Code entscheidet über die anschließend auszuführenden Kommandos. Siehe hierzu <job> <commands on_exit_code=""> . Der Exit-Code hat keinen Einfluss darauf, ob der Job gestoppt wird (eine Fehlermeldung der Task lässt den Job stoppen). 2.21.9 history_field Ein Feld in der Task-Historie Syntax: void spooler_task.set_history_field ( String name, String value ) Beispiel: in javascript spooler_task.history_field( "extra" ) = 4711; Die Datenbanktabelle (s. factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) muss eine Spalte mit dem Namen haben und diese Spalte muss in der Datei factory.ini (Abschnitt [job], Eintrag history_columns=…) deklariert sein. Software- and Organisations-Service GmbH März 2015 Java API 95 2.21.10 id Die Task-Kennung Syntax: int spooler_task. id () Jede Task hat eine Scheduler-weit eindeutige numerische Kennung. 2.21.11 job Der Job, zu dem die Task gehört Syntax: Job spooler_task. job () Rückgabe: Job 2.21.12 order Der zu verarbeitende Auftrag Syntax: Order spooler_task. order () Beispiel: Order order = spooler_task.order(); spooler_log.info( "order.id=" + order.id() + ", order.title=" + order.title() ); Rückgabe: Order null, wenn kein Auftrag vorliegt. 2.21.13 params Die Parameter der Task Syntax: Variable_set spooler_task. params () Beispiel: String value = spooler_task.params().var( "parameter3" ); Software- and Organisations-Service GmbH März 2015 Java API 96 Beispiel: Variable_set parameters = spooler_task.params(); if( parameters.count() > 0 ) spooler_log.info( "Parameters given" ); String value1 = parameters.var( "parameter1" ); vorhanden ist String value2 = parameters.var( "parameter2" ); // "", wenn die Variable nicht Eine Task kann Parameter haben. Die Parameter können gesetzt werden mit • • • In der Konfigurationsdatei im Element <job> mit <params> , Job.start() und <start_job> . Rückgabe: Variable_set != null 2.21.14 priority Priorität der laufenden Task Syntax: void spooler_task.set_priority ( int ) Syntax: int spooler_task. priority () Beispiel: in javascript spooler_task.priority = +5; // Unix: Priorität etwas verschlechtern Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht werden. Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13 "high" (andere Werte werden abgerundet). Siehe auch Task.priority_class . Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Task.priority_class . 2.21.15 priority_class Prioritätsklasse der laufenden Task Syntax: void spooler_task.set_priority_class ( String ) Syntax: String spooler_task. priority_class () Software- and Organisations-Service GmbH März 2015 Java API 97 Beispiel: in javascript spooler_task.priority_class = "below_normal"; Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix entsprechen: Prioritätsklasse Windows Unix "idle" 4 16 "below_normal" 6 6 "normal" 8 0 "above_normal" 10 -6 "high" 13 -16 Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelnden Rechts, führt das nicht zu einem Fehler. Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Siehe auch Task.priority , Subprocess.priority_class und Microsoft® Windows® Scheduling Priorities. 2.21.16 remove_pid Gegenstück zu add_pid() Syntax: void spooler_task. remove_pid ( int pid ) Es gibt keinen Fehler, wenn die Pid nicht mit Task hinzugefügt worden ist. Siehe Task.add_pid() . 2.21.17 repeat Startet erneut eine Task nach der eingestellten Zeit Syntax: void spooler_task.set_repeat ( double ) (Diese Methode gehört eigentlich in die Klasse Job . Sie hat nichts mit der gerade laufenden Task zu tun.) Wenn nach Ablauf der angegebenen Zeit keine Task des Jobs läuft, startet der JobScheduler eine Task. Dabei wird die <run_time> berücksichtigt. <period repeat=""> der aktuellen Periode wird vorläufig außer Kraft gesetzt. Job.delay_after_error hat Vorrang, wenn die Task einen Fehler liefert. Software- and Organisations-Service GmbH März 2015 Java API 98 2.21.18 stderr_path Der Pfadname der stderr-Ausgabe der Task Syntax: String spooler_task. stderr_path () Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 2.21.19 stderr_text Der bisher vom Prozess der Task nach stderr geschriebene Text Syntax: String spooler_task. stderr_text () Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 2.21.20 stdout_path Der Pfadname der stdout-Ausgabe der Task Syntax: String spooler_task. stdout_path () Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 2.21.21 stdout_text Der bisher vom Prozess der Task nach stdout geschriebene Text Syntax: String spooler_task. stdout_text () Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: Software- and Organisations-Service GmbH März 2015 Java API 99 String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 2.21.22 trigger_files Pfade der Dateien in mit regex überwachten Verzeichnissen Syntax: String spooler_task. trigger_files () Liefert die Pfade der Dateien aus überwachten Verzeichnissen ( Job.start_when_directory_changed() oder < start_when_directory_changed> ) zum Zeitpunkt des Starts der Task. Nur die Verzeichnisse, für die ein Regulärer Ausdruck (regex) angegeben ist, werden berücksichtigt. Die Pfade werden aus dem Verzeichnispfad, wie er in Job.start_when_directory_changed() oder < start_when_directory_changed> angegeben ist und dem Dateinamen zusammengesetzt. Nicht-API-Jobs ( <process> und <script language="shell"> ) steht der Inhalt von Task.trigger_files in der Umgebungsvariablen SCHEDULER_TASK_TRIGGER_FILES zur Verfügung. Siehe Job.start_when_directory_changed() , Task.changed_directories() . Rückgabe: String Die Dateipfade durch Semikolon getrennt. "" sonst 2.21.23 try_hold_lock Versucht, eine Sperre zu halten Syntax: boolean spooler_task. try_hold_lock ( String lock_path ) Software- and Organisations-Service GmbH März 2015 Java API 100 Beispiel: in javascript function spooler_process() { var result = false; if( spooler_task.try_hold_lock( "Georgien" ) && spooler_task.try_hold_lock_non_exlusive( "Venezuela" ) ) { // Task is holding the two locks. Insert processing code here. result = ... } else { spooler_task.call_me_again_when_locks_available(); } return result; } try_lock_hold() versucht, die angegebene Sperre ( Lock ) zu halten, und kann aufgerufen werden • • in spooler_open() : die Sperre wird für die Task gehalten und erst nach Beendigung freigegeben, in spooler_process() : die Sperre wird für nur für diesen Jobschritt gehalten und nach dessen Beendigung freigegeben, also beim Verlassen von spooler_process(). Wenn die Sperre nicht verfügbar ist, ein Aufruf also false liefert, kann entweder • • • mit Task.call_me_again_when_locks_available() der JobScheduler veranlasst werden, den Aufruf spooler_open() bzw. spooler_process() zu wiederholen, sobald die Sperren verfügbar sind, oder spooler_open() bzw. spooler_process() ohne vorgenannten Aufruf mit false beendet werden, mit der üblichen Wirkung, aber nicht mit true beendet werden, das wird als Fehler angesehen und führt zur Warnung SCHEDULER-469 . Siehe auch <lock.use> . Rückgabe: boolean true, wenn die Task die Sperre hält. 2.21.24 try_hold_lock_non_exclusive Versucht, eine Sperre nicht-exklusiv zu halten Syntax: boolean spooler_task. try_hold_lock_non_exclusive ( String lock_path ) Es gelten dieselben Bedingungen wie für Task.try_hold_lock() . Siehe auch <lock.use exclusive="no"> . Rückgabe: boolean true, wenn die Task die Sperre hält. Software- and Organisations-Service GmbH März 2015 Java API 101 2.21.25 web_service Der Webdienst, der der Task zugeordnet ist Syntax: Web_service spooler_task. web_service () Wenn die Task keinem Webdienst zugeordnet ist, liefert der Aufruf eine Exception. Siehe auch Task.web_service_or_null . Rückgabe: Web_service 2.21.26 web_service_or_null Der Webdienst, der der Task zugeordnet ist, oder null. Syntax: Web_service spooler_task. web_service_or_null () Siehe auch Task.web_service . Rückgabe: Web_service 2.22 Variable_set - Variablenmenge zur Übergabe von Parametern Variablenmengen werden gebraucht für die Scheduler-weiten Variablen und Task-Parameter. Eine neue Variablenmenge wird mit Spooler.create_variable_set() angelegt. Die Großschreibung der Variablennamen ist nicht relevant. In COM (JavaScript, VBScript, Perl) ist ein Variablenwert ein Variant. Weil die Variablen in der Regel in die Scheduler-Datenbank geschrieben werden, sollten nur nach String konvertierbare Variant-Werte verwendet werden (d.h. es sollten keine Objekte verwendet werden). In Java ist ein Variablenwert ein String. Wenn die Variable mit COM als Variant gesetzt worden ist, wird beim Lesen der nach String konvertierte Wert zurückgegeben. Null und Empty werden als null zurückgeliefert. Wenn ein Variant-Wert nicht konvertierbar ist, wird eine Exception ausgelöst. Siehe auch <params> und <sos.spooler.variable_set> . 2.22.1 count Anzahl der Variablen Syntax: int variable_set. count () Software- and Organisations-Service GmbH März 2015 Java API 102 2.22.2 merge Mischt eine andere Variablenmenge ein Syntax: void variable_set. merge ( Variable_set vs ) Gleichnamige Variablen werden überschrieben. 2.22.3 names Alle Variablennamen durch Semikolon getrennt Syntax: String variable_set. names () Beispiel: Variable_set variable_set = spooler.create_variable_set(); spooler_log.info( "\"" + variable_set.names() + "\"" ); // ==> "" variable_set.set_var( "variable_1", "edno" ); variable_set.set_var( "variable_2", "dwa" ); spooler_log.info( "\"" + variable_set.names() + "\"" ); "variable_1;variable_2" // ==> java.util.StringTokenizer t = new java.util.StringTokenizer( variable_set.names(), ";" ); while( t.hasMoreTokens() ) { String name = t.nextToken(); spooler_log.info( name + "=" + variable_set.var( name ) ); } Rückgabe: String Die Namen aller Variablen durch Semikolon getrennt. 2.22.4 substitute Ersetzt $-Variablen in einem String Syntax: String variable_set. substitute ( String sustitution_string ) Beispiel: in javascript subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) ); Software- and Organisations-Service GmbH März 2015 Java API 103 Im Beispiel wird Subprocess.env verwendet. Referenzen der Form $ name und ${ name } im String werden durch Variablenwerte ersetzt, siehe auch . Rückgabe: String Die Zeichenkette mit den ersetzten $-Variablen 2.22.5 value Eine Variable Syntax: void variable_set.set_value ( String name, String value ) Syntax: String variable_set. value ( String name ) Parameter: name value empty, wenn die Variable nicht vorhanden ist. Rückgabe: String empty, wenn die Variable nicht vorhanden ist. 2.22.6 var Eine Variable Syntax: void variable_set.set_var ( String name, String value ) Syntax: String variable_set. var ( String name ) Verwenden Sie Variable_set.value , das ist in allen Sprachen verfügbar. Parameter: name value empty, wenn die Variable nicht vorhanden ist. Rückgabe: String empty, wenn die Variable nicht vorhanden ist. Software- and Organisations-Service GmbH März 2015 Java API 104 2.22.7 xml Variable_set als XML-Dokument Syntax: void variable_set.set_xml ( String ) Syntax: String variable_set. xml () Beispiel: in javascript var variable_set = spooler.create_variable_set(); spooler_log.info( variable_set.xml ); // Liefert <?xml version='1.0'?>< sos.spooler.variable_set/> variable_set.xml= "<?xml version='1.0'?>" + "<params>" + "<param name='nachname' value='Meier'/>" + "<param name='vorname' value='Hans'/>" + "</params>"; spooler_log.info( variable_set.xml ); spooler_log.info( "nachname=" + variable_set.value( "nachname" ) ); spooler_log.info( "vorname =" + variable_set.value( "vorname" ) ); Siehe <sos.spooler.variable_set> , <params> . Parameter: XML-Dokument als String. Liefert < sos.spooler.variable_set> . Beim Setzen wird der Name des Wurzelelements nicht beachtet, <params> oder <sos.spooler.variable_set> kann übergeben werden. Rückgabe: String XML-Dokument als String. Liefert <sos.spooler.variable_set> . Beim Setzen wird der Name des Wurzelelements nicht beachtet, <params> oder <sos.spooler.variable_set> kann übergeben werden. 2.23 Web_service Siehe auch <web_service> 2.23.1 forward_xslt_stylesheet_path Pfad des XSLT-Stylesheets fürs Forwarding Syntax: String web_service. forward_xslt_stylesheet_path () Siehe auch <web_service forward_xslt_stylesheet=""> Software- and Organisations-Service GmbH März 2015 Java API 105 2.23.2 name Name des Web-Dienstes im Scheduler Syntax: String web_service. name () Siehe auch <web_service name=""> 2.23.3 params Parameter zur freien Verwendung Syntax: Variable_set web_service. params () Die Parameter des Web-Services können mit <web_service> eingestellt werden. Rückgabe: Variable_set 2.24 Web_service_operation Siehe auch <web_service> 2.24.1 peer_hostname Hostname der Gegenstelle Syntax: String web_service_operation. peer_hostname () Rückgabe: String "", wenn der Name nicht ermittelt werden kann. 2.24.2 peer_ip IP-Adresse der Gegenstelle Syntax: String web_service_operation. peer_ip () Software- and Organisations-Service GmbH März 2015 Java API 106 2.24.3 request Anforderung Syntax: Web_service_request web_service_operation. request () Rückgabe: Web_service_request 2.24.4 response Antwort Syntax: Web_service_response web_service_operation. response () Rückgabe: Web_service_response 2.24.5 web_service Syntax: Web_service web_service_operation. web_service () Rückgabe: Web_service 2.25 Web_service_request Siehe Web_service_operation . 2.25.1 binary_content Nutzdaten als Byte-Array (nur Java) Syntax: byte[] web_service_request. binary_content () Die Eigenschaft steht nur unter Java zur Verfügung. Wie der binäre Inhalt zu interpretieren ist, sollte der Client in im Header-Feld Content-Type mitgeteilt haben (siehe HTTP/1.1 14.17 Content-Type und Web_service_request.charset_name ). Software- and Organisations-Service GmbH März 2015 Java API 107 2.25.2 charset_name Zeichencodierung Syntax: String web_service_request. charset_name () Beispiel: in javascript var request = spooler_task.order.web_service_operation.request; spooler_log.info( request.header( "Content-Type" ) ); spooler_log.info( request.content_type ); spooler_log.info( request.charset_name ); // ==> text/xml; charset=utf-8 // ==> text/xml // ==> utf-8 Liefert den Parameter charset= aus dem Kopfeintrag Content-Type:. 2.25.3 content_type Content-Type (ohne Parameter) Syntax: String web_service_request. content_type () Liefert den Kopfeintrag Content-Type: ohne Parameter, z.B. "text/plain". 2.25.4 header Eintrag im Kopf Syntax: String web_service_request. header ( String name ) Beispiel: in javascript spooler_log.info( "Content-Type: " + spooler_task.order.web_service_operation.request.header( "Content-Type" ) ); Parameter: name Die Großschreibung spielt keine Rolle. Rückgabe: String Für einen unbekannten Eintrag wird "" geliefert 2.25.5 string_content Nutzdaten als Text Software- and Organisations-Service GmbH März 2015 Java API 108 Syntax: String web_service_request. string_content () Die Zeichen-Codierung wird dem Parameter charset aus headers( "Content-Type" ) entnommen (siehe HTTP/1.1 14.17 Content-Type). Fehlt der Parameter, wird ISO-8859-1 angenommen. Folgende Zeichen-Codierungen (Charset) werden erkannt: • • ISO-8859-1 UTF-8 (nur Windows und beschränkt auf den Zeichenvorrat von ISO-8859-1) Siehe auch Web_service_request.binary_content . 2.25.6 url Uniform Resource Locator Syntax: String web_service_request. url () url = "http://" + header( "Host" ) + url_pfad 2.26 Web_service_response Die Eigenschaft binary_content steht nur unter Java zur Verfügung. Siehe auch <web_service> 2.26.1 charset_name Zeichencodierung Syntax: String web_service_response. charset_name () Beispiel: in javascript var request = spooler_task.order.web_service_operation.request; spooler_log.info( request.header( "Content-Type" ) ); spooler_log.info( request.content_type ); spooler_log.info( request.charset_name ); // ==> text/xml; charset=utf-8 // ==> text/xml // ==> utf-8 Zugriff auf den Parameter charset= aus dem Kopfeintrag Content-Type:. 2.26.2 content_type Content-Type (ohne Parameter) Software- and Organisations-Service GmbH März 2015 Java API 109 Syntax: String web_service_response. content_type () Zugriff auf den Kopfeintrag Content-Type: ohne dazugehörige Parameter (z.B. charset=). 2.26.3 header Eintrag im Kopf Syntax: void web_service_response.set_header ( String value, String name ) Syntax: String web_service_response. header ( String name ) Beispiel: in javascript spooler_log.info( "Content-Type: " + spooler_task.order.web_service_operation.header( "Content-Type" ) ); Parameter: value Für einen umbekannten Eintrag wird "" verwendet name Die Großschreibung spielt keine Rolle. Rückgabe: String Für einen umbekannten Eintrag wird "" verwendet 2.26.4 send Antwort senden Syntax: void web_service_response. send () 2.26.5 status_code HTTP-Status-Code Syntax: void web_service_response.set_status_code ( int ) Voreingestellt ist 200 (OK). Software- and Organisations-Service GmbH März 2015 Java API 110 2.26.6 string_content Nutzdaten als Text Syntax: void web_service_response.set_string_content ( String text ) Beispiel: in javascript var response = spooler_task.order.web_service_operation.response; response.content_type = "text/plain"; response.charset_name = "iso-8859-1"; response.string_content = "This is the answer"; response.send(); Zuvor muss header( "Content-Type" ) mit dem Parameter charset gesetzt sein, zum Beispiel header( "Content-Type" ) = "text/plain; charset=iso-8859-1"; Der Text wird nach dem Parameter charset codiert. Fehlt der Parameter, wird ISO-8859-1 angenommen. Zu den hier zulässigen Zeichen-Codierungen (Charset) siehe Web_service_request.string_content Siehe Web_service_response.charset_name . 2.27 Xslt_stylesheet Mit einem XSLT-Stylesheet wird die Konvertierung eines XML-Dokuments in ein anderes beschrieben. Der XSLT-Prozessor ist mit libxslt implementiert. 2.27.1 apply_xml Wendet das Stylesheet auf ein XML-Dokument an. Syntax: String x. apply_xml ( String xml ) 2.27.2 close Gibt die Ressourcen des Stylesheets frei Syntax: void x. close () 2.27.3 load_file Lädt das Stylesheet aus einer XML-Datei Software- and Organisations-Service GmbH März 2015 Java API 111 Syntax: void x. load_file ( java.io.File path ) Syntax: void x. load_file ( String path ) 2.27.4 load_xml Lädt das Stylesheet aus einem XML-Dokument Syntax: void x. load_xml ( String xml ) Software- and Organisations-Service GmbH März 2015 Javascript API 112 3 Javascript API Für Javascript stehen die folgenden Klassen zur Verfügung: 3.1 Error 3.1.1 code Der Fehlercode Syntax: string error. code 3.1.2 is_error true, wenn ein Fehler vorliegt Syntax: boolean error. is_error 3.1.3 text Fehlertext (mit Fehlercode) Syntax: string error. text 3.2 Job Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen. 3.2.1 clear_delay_after_error Nimmt alle delay_after_error zurück Syntax: spooler_job. clear_delay_after_error () 3.2.2 clear_when_directory_changed Nimmt alle start_when_directory_changed() zurück Software- and Organisations-Service GmbH März 2015 Javascript API 113 Syntax: spooler_job. clear_when_directory_changed () 3.2.3 configuration_directory Verzeichnis der Konfigurationsdatei des Jobs Syntax: string spooler_job. configuration_directory "", wenn der Job nicht aus einem Konfigurationsverzeichnis stammt. 3.2.4 delay_after_error Verzögert erneuten Jobstart nach Fehler Syntax: spooler_job. delay_after_error ( int error_steps ) = double|int|string seconds_or_hhmm_ss Beispiel: spooler_job.delay_after_error( 2 Fehler um 10 Sekunden verzögern spooler_job.delay_after_error( 5 Fehler um eine Minute verzögern spooler_job.delay_after_error( 10 Fehler um einen Tag verzögern spooler_job.delay_after_error( 20 Fehler den Job stoppen ) = 10; // Ab dem 2. aufeinanderfolgenden ) = "00:01"; // Ab dem 5. aufeinanderfolgenden ) = "24:00"; // Ab dem 10. aufeinanderfolgenden ) = "STOP"; // Beim 20. aufeinanderfolgenden Nach einem Fehler wiederholt der JobScheduler den Job sofort. Nach dem zweiten bis zum vierten Fehler verzögert der JobScheduler den Job um 10 Sekunden, nach dem fünften bis zum neunten Fehler um eine Minute, nach dem zehnten bis zum neunzehnten um 24 Stunden, nach dem zwanzigsten aufeinanderfolgenden Fehler schließlich stoppt der Job. Für verschiedene Anzahlen aufeinanderfolgender Fehler kann eine Verzögerung eingestellt werden. Der Job wird dann nicht gestoppt, sondern die angegebene Zeit verzögert und erneut gestartet. Der Aufruf kann für verschiedene Anzahlen wiederholt werden. Man wird jeweils eine längere Verzögerung angeben. Wenn Sie den Parameter seconds_or_hhmm_ss als String übergeben, können Sie auch "STOP" angeben. Der Job stoppt, wenn er die angegebene Anzahl aufeinanderfolgende Fehler erreicht hat. Eine gute Stelle für die Aufrufe ist spooler_init() . Siehe <delay_after_error> . Parameter: error_steps Anzahl der aufeinanderfolgenden Jobfehler, ab der die Verzögerung gilt seconds_or_hhmm_ss Frist, nach der der Job wiederholt wird Software- and Organisations-Service GmbH März 2015 Javascript API 114 3.2.5 delay_order_after_setback Stellt Aufträge nach Fehler zurück Syntax: spooler_job. delay_order_after_setback ( int setback_count ) = double|int|string seconds_or_hhmm_ss Beispiel: spooler_job.delay_order_after_setback( 1 ) = 60; Rückstellung desselben Auftrags: // 1. bis 2. aufeinderfolgende // Auftrag um 60s verzögern. spooler_job.delay_order_after_setback( 3 ) = "01:00"; Rückstellung desselben Auftrags: // Ab 3. aufeinanderfolgender // Auftrag um eine Stunde verzögern. spooler_job.max_order_setbacks = 5; versetzt den Auftrag in den Fehlerzustand // Die 5. Rückstellung Ein Auftragsjob kann einen Auftrag, den er gerade ausführt, mit Order.setback() zurückstellen. Er wird dann an eine hintere Stelle der Auftragswarteschlange des Jobs eingereiht und kommt nach der eingestellten Zeit erneut zur Ausführung. Die aufeinanderfolgenden Rückstellungen eines Auftrags werden gezählt. Mit delay_order_after_setback können Sie verschiedene Fristen für wiederholte Rückstellungen festlegen. Siehe <delay_order_after_setback> , Order.setback() , Job.max_order_setbacks , Job_chain.add_job() , Job.delay_after_error() . Parameter: setback_coun t Für die 1., 2. usw. aufeinanderfolgende Rückstellung desselben Auftrags können verschiedene Fristen eingestellt werden. seconds_or_h hmm_ss Frist für die Rückstellung. Nach Ablauf der Frist kommt der Auftrag erneut in diesem Job zur Ausführung. 3.2.6 folder_path Pfad des Ordners, in dem der Job sich befindet. Syntax: string spooler_job. folder_path "", wenn der Job nicht aus dem lokalen Konfigurationsverzeichnis ( <config configuration_directory=""> ) stammt. Liefert den Pfad des Jobs relativ zum Live-Directory. Der Pfad beginnt mit einem "/", alle Bestandteile eines Pfads sind durch "/" getrennt Beispiele: Software- and Organisations-Service GmbH März 2015 Javascript API • • • 115 für einen Job c:\scheduler\config\live\somewhere\excel\sample.job.xml wird "/somewhere/excel" zurückgeliefert für einen Job c:\scheduler\config\live\sample.xml wird "/" zurückgeliefert für einen Job außerhalb des Live-Verzeichnisses wird "" (Leerstring) zurückgeliefert 3.2.7 include_path Wert der Option -include-path= Syntax: string spooler_job. include_path Siehe -include-path . 3.2.8 max_order_setbacks Begrenzt die Anzahl der Rückstellungen eines Auftrags Syntax: spooler_job. max_order_setbacks = int Wenn derselbe Auftrag mehr als hier angegeben aufeinderfolgend zurückgesetzt worden ist (s. Order.setback() ), gerät er in den Fehlerzustand (s. Job_chain_node.error_state ). Siehe Job.delay_order_after_setback und <delay_order_after_setback is_maximum="yes"> . 3.2.9 name Pfad des Jobs ohne beginnenden Schrägstrich Syntax: string spooler_job. name Siehe <job name=""> . 3.2.10 order_queue Auftragswarteschlange des Jobs Syntax: Order_queue spooler_job. order_queue Beispiel: spooler_log.info( 'order=' + ( spooler_job.order_queue ? "yes" : "no" ) ); Ein Auftragsjob ( <job order="yes"> ) hat eine Auftragswarteschlange. Die Auftragswarteschlange wird über eine Jobkette, in der der Job eingetragen ist, gefüllt. Software- and Organisations-Service GmbH März 2015 Javascript API 116 Siehe Job_chain.add_order() , Job_chain.add_job() . Rückgabe: Order_queue null, wenn der Job keine Auftragswarteschlange hat (bei <job order="no"> ). 3.2.11 process_class Die Prozessklasse Syntax: Process_class spooler_job. process_class Siehe <job process_class=""> . Rückgabe: Process_class 3.2.12 remove Entfernt den Job Syntax: spooler_job. remove () Der Job wird gestoppt, d.h. laufende Tasks werden beendet, keine neuen werden gestartet. Sobald keine Task mehr läuft, wird der Job entfernt. Tasks in der Warteschlange werden ignoriert. Wenn keine Task des Jobs läuft, entfernt remove() den Job sofort. Auftragsjobs ( <job order="yes"> ) können nicht entfernt werden. Siehe <modify_job cmd="remove"> . 3.2.13 setback_max Wie oft kann ein Auftrag zurückgestellt werden? Syntax: spooler_job. setback_max = int Syntax: int spooler_job. setback_max Siehe <delay_order_after_setback is_maximum="yes"> . Software- and Organisations-Service GmbH März 2015 Javascript API 117 3.2.14 start Erzeugt eine neue Task und reiht sie in die Task-Warteschlange ein Syntax: Task spooler_job. start ( Variable_set variables (optional) ) Beispiel: spooler.job( "job_a" ).start(); var parameters = spooler.create_variable_set(); parameters.value( "my_parameter" ) = "my_value"; parameters.value( "other_parameter" ) = "other_value"; spooler.job( "job_a" ).start( parameters ); Die Parameter stehen der Task mit Task.params zur Verfügung. Zwei besondere Parameter können angegeben werden: "spooler_task gibt der Task einen Namen, der in den Statusanzeigen erscheint. _name" "spooler_star gibt eine Zeit in Sekunden (reelle Zahl) an, nach deren Ablauf die Task zu starten ist. Dabei wird t_after" <run_time> nicht beachtet. Siehe Spooler.create_variable_set() , Spooler.job , Variable_set.value . Rückgabe: Task 3.2.15 start_when_directory_changed Überwacht ein Verzeichnis und lässt bei Änderung eine Task starten Syntax: spooler_job. start_when_directory_changed filename_pattern (optional) ) ( string directory_path, string Beispiel: spooler_job.start_when_directory_changed( "c:/tmp" ); // Nur Dateien beachten, deren Name nicht auf "~" endet. spooler_job.start_when_directory_changed( "c:/tmp", "^.*[^~]$" ); Wenn keine Task des Jobs läuft und sich das Verzeichnis geändert hat (eine Datei hinzukommt, umbenannt oder entfernt wird), startet der JobScheduler innerhalb der <run_time> eine Task. Um mehrere Verzeichnisse zu überwachen, kann der Aufruf wiederholt werden. Ein Aufruf mit einem bereits angegebenen Verzeichnis erneuert die Überwachung. Der Aufruf kann im Scheduler-Skript oder in spooler_init() des Jobs codiert werden. Im letzteren Fall muss der Job zu Beginn einmal starten, damit der Aufruf wirksam wird. Verwenden Sie dazu die Einstellung <run_time once="yes"> . Der Job sollte mit <run_time repeat=""> periodisch gestartet und mit <delay_after_error> versehen werden. Software- and Organisations-Service GmbH März 2015 Javascript API 118 Dieselbe Einstellung können Sie auch in der XML-Konfiguration mit <start_when_directory_changed> vornehmen. Siehe auch JobScheduler Dokumentation. Parameter: directory_path Pfad des zu überwachenden Verzeichnisses filename_patter Beschränkt die Überwachung auf Dateinamen, die dem Regulären Ausdruck entsprechen. n 3.2.16 state_text Freier Text für den Zustand des Jobs Syntax: spooler_job. state_text = string Beispiel: spooler_job.state_text = "Step C succeeded"; Der Text wird in der HTML-Oberfläche gezeigt. Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen. 3.2.17 title Titel des Jobs Syntax: string spooler_job. title Beispiel: spooler_log.info( "Job title=" + spooler_job.title ); Siehe <job title=""> . 3.2.18 wake Veranlasst den Start einer Task Syntax: spooler_job. wake () Wenn der Job im Zustand pending oder stopped ist (also keine Task läuft), startet der Aufruf eine Task. Siehe Job.start() . Software- and Organisations-Service GmbH März 2015 Javascript API 119 3.3 Job_chain - Jobkette zur Auftragsverarbeitung Eine Jobkette (Job_chain) ist eine Kette von Jobs (Jobkettenknoten oder Stellen). Diese Kette wird von Aufträgen ( Order ) durchlaufen. Jeder Stelle in der Jobkette ist ein Zustand und ein Job zugeordnet. Wenn ein Auftrag der Jobkette hinzugefügt wird, setzt der JobScheduler ihn an die seinem Zustand entsprechende Stelle. Der dieser Stelle zugeordnete Job führt den Auftrag aus. Jede Stelle hat außerdem einen Folgezustand und einen Fehlerzustand. Nach der Verarbeitung eines Auftrags durch einen Jobschritt ändert der JobScheduler den Zustand des Auftrags. Wenn der Jobschritt (spooler_process) true liefert, stellt der JobScheduler den Folgezustand, sonst den Fehlerzustand ein. Der Auftrag rutscht damit an eine andere Stelle der Jobkette, die dem neuen Zustand zugeordnet ist. Das gilt nicht, wenn der Zustand während der Ausführung mit Order.state verändert worden ist. Sie erzeugen eine Jobkette mit Spooler.create_job_chain() , füllen sie mit Job_chain.add_job() und Job_chain.add_end_state() und machen sie schließlich mit Spooler.add_job_chain() bekannt. Jeder Knoten ist eindeutig einem Zustand zugeordnet. Für jeden Zustand muss genau einmal Job_chain.add_job() oder Job_chain.add_end_state() aufgerufen werden. Beispiel: var my_job_chain = spooler.create_job_chain(); my_job_chain.name = "Jobkette"; my_job_chain.add_job( "job_100", 100, 200, 999 ); my_job_chain.add_job( "job_200", 200, 1000, 999 ); my_job_chain.add_end_state( 999 ); my_job_chain.add_end_state( 1000 ); spooler.add_job_chain( my_job_chain ); 3.3.1 add_end_state Fügt der Jobkette einen Endknoten hinzu Syntax: job_chain. add_end_state ( var state ) Diesem Knoten ist kein Job zugeordnet. Ein Auftrag, der einen Endknoten erreicht, hat die Jobkette durchlaufen und wird vom JobScheduler aus ihr entfernt. 3.3.2 add_job Erweitert die Jobkette um einen Job Syntax: job_chain. add_job ( string job_name, var input_state, var output_state, var error_state ) Software- and Organisations-Service GmbH März 2015 Javascript API 120 3.3.3 add_or_replace_order Gibt einen Auftrag in die Jobkette und ersetzt ggfs. einen mit gleicher Kennung Syntax: job_chain. add_or_replace_order ( Order order ) Hat die Jobkette bereits einen Auftrag mit gleicher Kennung, dann wird dieser ersetzt. Genauer: Er wird aus der Jobkette entfernt, und der neue Auftrag wird hinzugefügt. Solange eine Task den vorhandenen Auftrag ausführt, sind im JobScheduler zwei Aufträge mit gleicher Kennung vorhanden. Allerdings ist der vorhandene Auftrag aus der Jobkette und aus der Datenbank bereits entfernt. Er ist nur noch für die Task nutzbar und verschwindet nach der Ausführung. In diesem Fall wartet der JobScheduler die Ausführung des neuen Auftrags ab, bis die Ausführung des alten Auftrags beendet ist. Siehe Job_chain.add_order() und Order.remove_from_job_chain() 3.3.4 add_order Gibt einen Auftrag in die Jobkette Syntax: Order job_chain. add_order ( Order |string order_or_payload ) Wenn der Auftrag in einer anderen Jobkette enthalten ist, entfernt der JobScheduler ihn daraus. Der Auftrag wird in die Auftragswarteschlange des Jobs, der seinem Zustand entspricht, gemäß seiner Priorität eingeordnet. Die Jobkette mit muss <job_chain> oder Spooler.add_job_chain() dem JobScheduler bekannt gemacht worden sein. Wenn die Jobkette bereits einen Auftrag mit gleicher Order.id enthält, wird eine Exception mit Fehlercode SCHEDULER-186 geliefert. Siehe aber Job_chain.add_or_replace_order() . Rückgabe: Order 3.3.5 name Name der Jobkette Syntax: job_chain. name = string Syntax: string job_chain. name Beispiel: var job_chain = spooler.create_job_chain(); job_chain.name = "Jobkette"; Software- and Organisations-Service GmbH März 2015 Javascript API 121 3.3.6 node Der Jobkettenknoten zum angegebenen Zustand Syntax: Job_chain_node job_chain. node ( var state ) Rückgabe: Job_chain_node 3.3.7 order_count Anzahl der Aufträge in der Jobkette Syntax: int job_chain. order_count 3.3.8 order_queue = node(state).job().order_queue() Syntax: Order_queue job_chain. order_queue ( var state ) Liefert die Auftragswarteschlange des Jobs, der dem angegebenen Zustand zugeordnet ist. Rückgabe: Order_queue 3.3.9 orders_recoverable Syntax: job_chain. orders_recoverable = boolean Syntax: boolean job_chain. orders_recoverable Siehe <job_chain orders_recoverable=""> . 3.3.10 remove Entfernt die Jobkette Syntax: job_chain. remove () Wenn gerade Aufträge der Jobkette verarbeitet werden (in spooler_process() ), dann entfernt der JobScheduler die Jobkette, sobald der letzte Auftrag verarbeitet worden ist. Software- and Organisations-Service GmbH März 2015 Javascript API 122 Die Aufträge bleiben in der Datenbank erhalten. Wenn später eine Jobkette mit gleichen Namen hinzugefügt wird ( Spooler.add_job_chain() ), dann lädt der JobScheduler diese Aufträge erneut. Die Zustände der Aufträge müssen in der erneuerten Jobkette vorhanden sein. 3.3.11 title Syntax: job_chain. title = string Syntax: string job_chain. title Siehe <job_chain title=""> . 3.4 Job_chain_node Ein Jobkettenknoten beschreibt eine Stelle in einer Jobkette ( Job_chain ). Einem Jobkettenknoten sind zugeordnet: ein Zustand, ein Job, ein Folgezustand und ein Fehlerzustand. Ein Jobkettenknoten wird mit Job_chain.add_job() oder mit Job_chain.add_end_state() erzeugt. 3.4.1 action Jobkettenknoten stoppen oder überspringen Syntax: node. action = string Syntax: string node. action Beispiel: var job_chain_node = spooler.job_chain( "my_job_chain" ).node( 100 ); job_chain_node.action = "next_state"; Für eine verteilte Jobkette nicht möglich. Mögliche Angaben sind action="process" Das ist die Voreinstellung. Aufträge werden ausgeführt. action="stop" Aufträge werden nicht ausgeführt, sie sammeln sich in der Auftragswarteschlange an. action="next_state" Aufträge werden sofort dem mit next_state bestimmten Folgeknoten übergeben. Siehe auch <job_chain_node.modify action=""> . In Java sind für Zeichenketten Konstanten definiert: Software- and Organisations-Service GmbH März 2015 Javascript API • • • 123 Job_chain_node.ACTION_PROCESS Job_chain_node.ACTION_STOP Job_chain_node.ACTION_NEXT_STATE 3.4.2 error_node Nächster Knoten in der Jobkette für den Fehlerfall Syntax: Job_chain_node node. error_node Beispiel: var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.debug( "error state=" + job_chain_node.error_node.state ); "state=999" // Rückgabe: Job_chain_node null, wenn es keinen Fehler-Knoten gibt (Fehlerzustand ist nicht angegeben) 3.4.3 error_state Zustand in der Jobkette für den Fehlerfall Syntax: var node. error_state Beispiel: var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.debug( "error state=" + job_chain_node.error_node.state ); state=999" // "error 3.4.4 job Job, der dem Knoten zugeordnet ist Syntax: Job node. job Beispiel: var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.debug( "job=" + job_chain_node.job.name ); "job=job_100" // Rückgabe: Job Software- and Organisations-Service GmbH März 2015 Javascript API 124 3.4.5 next_node Syntax: Job_chain_node node. next_node Rückgabe: Job_chain_node 3.4.6 next_state Zustand in der Jobkette für den Erfolgsfall Syntax: var node. next_state Beispiel: var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.debug( "next_state=" + job_chain_node.next_state ); "state=200" // 3.4.7 state Zustand, für den dieser Jobkettenknoten gilt Syntax: var node. state Beispiel: var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.info( "state=" + job_chain_node.state ); "state=100" // 3.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript Der Methoden eines Jobs werden in folgender Reihenfolge aufgerufen. spooler_init() spooler_open() spooler_process() spooler_process() ... spooler_close() spooler_on_success() oder spooler_on_error() spooler_exit() Software- and Organisations-Service GmbH März 2015 Javascript API 125 Keine dieser Methoden muss implementiert werden. In der Regel wird wenigstens spooler_process() implementiert. Ein Fehler beim Ausführen des Job-Skripts während des Ladens oder in spooler_init() führt zum Aufruf von spooler_on_error() . Der Job wird gestoppt. spooler_exit() wird gerufen (obwohl spooler_init() nicht gerufen worden ist!) und das Skript entladen. spooler_on_error() muss also auch mit Fehlern umgehen, die beim Laden oder in spooler_init() auftreten. spooler_exit() wird gerufen, auch wenn spooler_init() nicht gerufen worden ist. 3.5.1 spooler Das allgemeine Objekt des Schedulers Syntax: Spooler spooler Beispiel: spooler_log.debug( "The working directory of the JobScheduler is " + spooler.directory ); Rückgabe: Spooler 3.5.2 spooler_close Task-Ende Syntax: spooler_close () Wird am Ende eines Joblaufs gerufen. Gegenstück zu spooler_open() . 3.5.3 spooler_exit Destruktor Syntax: spooler_exit () Wird als allerletzte Methode gerufen, bevor das Skript entladen wird. Hier kann z.B. eine Datenbank-Verbindung geschlossen werden. 3.5.4 spooler_init Initialisierung Syntax: boolean spooler_init () Software- and Organisations-Service GmbH März 2015 Javascript API 126 Der JobScheduler ruft diese Methode nach dem Konstruktor und vor spooler_open() genau einmal auf. Gegenstück ist spooler_exit() . Die Methode ist geeignet, um die Task zu initialisieren (z.B. um eine Datenbank-Verbindung aufzubauen). Rückgabe: boolean false beendet die Task. Der JobScheduler setzt mit spooler_exit() fort. Wenn die Task einen Auftrag verarbeiten soll, wird die Task mit Fehler beendet, was den Job stoppt (wenn nicht Job.delay_after_error gesetzt ist). 3.5.5 spooler_job Das Objekt des Jobs Syntax: Job spooler_job Beispiel: spooler_log.info( "The name of this job is " + spooler_job.name ); Rückgabe: Job 3.5.6 spooler_log Zum Protokollieren Syntax: Log spooler_log Beispiel: in java spooler_log.info( "Something has happend" ); Rückgabe: Log 3.5.7 spooler_on_error Bei Task-Ende im Fehlerfall Syntax: spooler_on_error () Wird als letzte Funktion eines Joblaufs gerufen, wenn ein Fehler aufgetreten ist (nach spooler_close() und vor spooler_exit() ). Software- and Organisations-Service GmbH März 2015 Javascript API 127 3.5.8 spooler_on_success Bei Task-Ende im Erfolgsfall Syntax: spooler_on_success () Wird nach spooler_close() , vor spooler_exit() aufgerufen, wenn kein Fehler aufgetreten ist. 3.5.9 spooler_open Task-Beginn Syntax: boolean spooler_open () Wird zu Beginn einer Task gerufen. Die Methode wird direkt nach spooler_init() gerufen, es gibt derzeit keinen Unterschied. Gegenstück ist spooler_close() . 3.5.10 spooler_process Jobschritt oder Ausführung eines Auftrags Syntax: boolean spooler_process () Führt einen Jobschritt aus. Ein Auftragsjob erhält in Task.order den auszuführenden Auftrag. Die Default-Implementierung gibt false zurück. Ein Auftragsjob versetzt aber einen Auftrag in den Folgezustand. Rückgabe: boolean Bei <job order="no"> : false beendet den Joblauf. Bei <job order="yes"> : false versetzt den Auftrag in den Fehlerzustand (s. Job_chain_node und < job_chain_node> ). Das gilt nicht, wenn der Zustand während der Ausführung mit Order.state verändert worden ist. 3.5.11 spooler_task Das Objekt der Task Syntax: Task spooler_task Beispiel: spooler_log.info( "The task id is " + spooler_task.id ); Software- and Organisations-Service GmbH März 2015 Javascript API 128 Rückgabe: Task 3.6 Lock Siehe auch <lock name=""> . Beispiel: var locks = spooler.locks; var lock = locks.create_lock(); lock.name = "my_lock"; locks.add_lock( lock ); 3.6.1 max_non_exclusive Begrenzung der nicht-exklusiven Belegungen Syntax: lock. max_non_exclusive = int Syntax: int lock. max_non_exclusive Die Voreinstellung ist unbegrenzt (231-1), es können also mit <lock.use exclusive="no"> beliebig viele nicht-exklusive Tasks gestartet werden (aber nur eine exklusive). Die Zahl kann nicht kleiner sein als die Zahl der nicht-exklusiven Belegungen. Siehe auch <lock max_non_exclusive=""> . 3.6.2 name Name der Sperre Syntax: lock. name = string Syntax: string lock. name Der Name kann nur einmal gesetzt und nicht geändert werden. Siehe auch <lock name=""> . 3.6.3 remove Entfernt die Sperre Syntax: lock. remove () Software- and Organisations-Service GmbH März 2015 Javascript API 129 Beispiel: spooler.locks.lock( "my_lock" ).remove(); Die Sperre kann nur gelöscht werden, wenn sie von keiner Task belegt und von keinem Job gebraucht ( <lock.use > ) wird. Siehe auch <lock.remove> . 3.7 Locks 3.7.1 add_lock Fügt dem JobScheduler eine Sperre hinzu Syntax: locks. add_lock ( Lock lck ) 3.7.2 create_lock Richtet eine neue Sperre ein Syntax: Lock locks. create_lock () Liefert eine neues Lock . Diese Sperre kann mit Locks.add_lock() dem JobScheduler hinzugefügt werden. Rückgabe: Lock 3.7.3 lock Liefert eine Sperre Syntax: Lock locks. lock ( string lock_name ) Wenn die Sperre nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Lock Software- and Organisations-Service GmbH März 2015 Javascript API 130 3.7.4 lock_or_null Liefert eine Sperre Syntax: Lock locks. lock_or_null ( string lock_name ) Rückgabe: Lock null, wenn die Sperre nicht bekannt ist. 3.8 Log - Protokollierung In einem Job oder im Scheduler-Skript stellt spooler_log die hier beschriebenen Methoden bereit. eMail-Versand Am Ende einer Task kann der JobScheduler das Task-Protokoll per eMail versenden. In es versendet werden soll, geben diese Eigenschaften an: • • • • • Log.mail_on_error , Log.mail_on_warning , Log.mail_on_process , Log.mail_on_success und Log.mail_it Nur das Ende der Task, nicht das Ende einer Auftragsausführung (also spooler_process() ) führt zum eMail-Versand. Siehe aber Task.end() . Log.mail stellt ein Mail -Objekt bereit, das die Adressierung übernimmt. Beispiel: spooler_log.info( "Something for the Log" ); spooler_log.mail_on_warning = true; spooler_log.mail.from = "[email protected]"; spooler_log.mail.to = "[email protected]"; spooler_log.mail.subject = "ended"; 3.8.1 debug Debug-Meldung (Level -1) Syntax: spooler_log. debug ( string line ) 3.8.2 debug1 Debug-Meldung (Level -1) Software- and Organisations-Service GmbH März 2015 Javascript API 131 Syntax: spooler_log. debug1 ( string line ) 3.8.3 debug2 Debug-Meldung (Level -2) Syntax: spooler_log. debug2 ( string line ) 3.8.4 debug3 Debug-Meldung (Level -3) Syntax: spooler_log. debug3 ( string line ) 3.8.5 debug4 Debug-Meldung (Level -4) Syntax: spooler_log. debug4 ( string line ) 3.8.6 debug5 Debug-Meldung (Level -5) Syntax: spooler_log. debug5 ( string line ) 3.8.7 debug6 Debug-Meldung (Level -6) Syntax: spooler_log. debug6 ( string line ) 3.8.8 debug7 Debug-Meldung (Level -7) Syntax: spooler_log. debug7 ( string line ) Software- and Organisations-Service GmbH März 2015 Javascript API 132 3.8.9 debug8 Debug-Meldung (Level -8) Syntax: spooler_log. debug8 ( string line ) 3.8.10 debug9 Debug-Meldung (Level -9) Syntax: spooler_log. debug9 ( string line ) 3.8.11 error Fehlermeldung (Level 1) Syntax: spooler_log. error ( string line ) Wenn die Fehlermeldung ins Task-Protokoll ( spooler_log ) geschrieben wird und nicht <job stop_on_error="no"> eingestellt ist, stoppt der Job nach Ende der Task. 3.8.12 filename Dateiname des Protokolls Syntax: string spooler_log. filename 3.8.13 info Informationsmeldung (Level 0) Syntax: spooler_log. info ( string line ) 3.8.14 last Letzte Ausgabe des angegebenen Levels Syntax: string spooler_log. last ( int|string level ) Software- and Organisations-Service GmbH März 2015 Javascript API 133 3.8.15 last_error_line Die zuletzt mit Level 2 (error) ausgegebene Zeile Syntax: string spooler_log. last_error_line 3.8.16 level Protokollausgaben beschränken Syntax: spooler_log. level = int Syntax: int spooler_log. level Legt fest, ab welcher Stufe der JobScheduler Protokollzeilen ausgibt. Jede Protokollzeile ist auf einer der folgenden Stufen: error, warn, info, debug1 bis debug9 (debug1 ist dasselbe wie debug). Nur Meldungen ab dem Level werden ausgegeben. Dabei bedeutet die numerische Angabe: -9 bis -2: debug9 bis debug2 -1: debug 0: info 1: warn 2: error Die Option -log-level hat Vorrang. Die Einstellung factory.ini (Abschnitt [job], Eintrag log_level=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_level=…) wird damit überschrieben. Nur Meldungen ab dem Level werden ausgegeben. Dabei bedeutet die numerische Angabe: -9 bis -2: debug9 bis debug2 -1: debug 0: info 1: warn 2: error Software- and Organisations-Service GmbH März 2015 Javascript API 134 3.8.17 log Syntax: spooler_log. log ( int level, string line ) 3.8.18 log_file Protokolliert den Inhalt der Datei Syntax: spooler_log. log_file ( string path ) Protokolliert den Inhalt der Datei mit Level 0 (info). Ein Fehler beim Zugriff auf die Datei wird als Warnung protokolliert. Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wird die Datei vom Dateisystem des Schedulers, nicht der Task, gelesen. 3.8.19 mail Im Mail-Objekt können Sie Einstellungen zur eMail vornehmen Syntax: spooler_log. mail = Mail Syntax: Mail spooler_log. mail Rückgabe: Mail 3.8.20 mail_it Versand erzwingen Syntax: spooler_log. mail_it = boolean Bei true wird das Protokoll bei Task-Ende verschickt unabhängig von den Einstellungen Log.mail_on_error , Log.mail_on_warning , Log.mail_on_success , Log.mail_on_process und Log.mail_on_error . 3.8.21 mail_on_error Mit Fehler beendete Task verschickt eMail Syntax: spooler_log. mail_on_error = boolean Syntax: boolean spooler_log. mail_on_error Software- and Organisations-Service GmbH März 2015 Javascript API 135 Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_error=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_error=…) wird damit überschrieben. 3.8.22 mail_on_process Task mit spooler_process() verschickt eMail Syntax: spooler_log. mail_on_process = int Syntax: int spooler_log. mail_on_process Veranlasst den Versand des Task-Protokolls, wenn die Task wenigstens die angegebene Anzahl Schritte, also Aufrufe von spooler_process() , ausgeführt hat. Weil Nicht-API-Tasks keine Schritte haben, zählt der JobScheduler für sie immer einen Schritt. Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_process=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_process=…) wird damit überschrieben. 3.8.23 mail_on_success Erfolgreich gelaufende Task verschickt eMail Syntax: spooler_log. mail_on_success = boolean Syntax: boolean spooler_log. mail_on_success Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_success=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_success=…) wird damit überschrieben. 3.8.24 mail_on_warning Wenn eine Warnung ausgegeben worden ist, wird am Task-Ende eine eMail verschickt Syntax: spooler_log. mail_on_warning = boolean Syntax: boolean spooler_log. mail_on_warning Damit im Fehlerfall eine Mail verschickt wird, ist mail_on_error=yes explizit zu setzen. Software- and Organisations-Service GmbH März 2015 Javascript API 136 Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_warning=…) wird damit überschrieben. 3.8.25 new_filename Neuer Dateiname fürs Protokoll Syntax: spooler_log. new_filename = string Syntax: string spooler_log. new_filename Setzt den Dateinamen fürs Protokoll. Wenn das Protokoll geschlossen wird, kopiert der JobScheduler es in diese Datei. Die Datei steht dann der Anwendung zur Verfügung. 3.8.26 start_new_file Nur fürs Hauptprotokoll: Schließt das bisherige und beginnt ein neues Protokoll Syntax: spooler_log. start_new_file () 3.8.27 warn Warnung (Level 2) Syntax: spooler_log. warn ( string line ) 3.9 Mail - eMail-Versand Siehe Log.mail . 3.9.1 add_file Fügt einen Anhang hinzu Syntax: mail. add_file ( string path, string filename_for_mail (optional) , string content_type (optional) , string enconding (optional) ) Beispiel: spooler_log.mail.add_file( "c:/tmp/1.txt", "1.txt", "text/plain", "quoted-printable" ); Parameter: path Pfadname der anzuhängenden Datei Software- and Organisations-Service GmbH März 2015 Javascript API 137 filename_for_mail Dateiname, der in der Nachricht erscheinen soll content_type "text/plain" ist voreingestellt. enconding Z.B. "quoted-printable" 3.9.2 add_header_field Fügt dem eMail-Kopf ein Feld hinzu Syntax: mail. add_header_field ( string field_name, string value ) 3.9.3 bcc Unsichtbarer Empfänger einer Kopie der Nachricht, blind carbon copy Syntax: mail. bcc = string Syntax: string mail. bcc Beispiel: spooler_log.mail.bcc = "[email protected]"; Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_bcc=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_bcc=…) wird damit überschrieben. Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). 3.9.4 body Inhalt der Nachricht Syntax: mail. body = string Syntax: string mail. body Beispiel: spooler_log.mail.body = "Job succeeded"; Software- and Organisations-Service GmbH März 2015 Javascript API 138 Codieren Sie Zeilenwechsel mit \n (in VBScript mit chr(10)). 3.9.5 cc Empfänger einer Kopie der Nachricht, carbon copy Syntax: mail. cc = string Syntax: string mail. cc Beispiel: spooler_log.mail.cc = "[email protected]"; Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_cc=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_cc=…) wird damit überschrieben. Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). 3.9.6 dequeue Nachrichten aus dem Verzeichnis queue_dir erneut versuchen zu versenden Syntax: int mail. dequeue () Siehe Mail.dequeue_log , factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…). Rückgabe: int Zahl der versandten Nachrichten 3.9.7 dequeue_log Protokoll von dequeue() Syntax: string mail. dequeue_log Software- and Organisations-Service GmbH März 2015 Javascript API 139 Beispiel: var count = spooler_log.mail.dequeue(); spooler_log.info( count + " messages from mail queue sent" ); spooler_log.info( spooler_log.mail.dequeue_log ); Siehe Mail.dequeue() . 3.9.8 from Absender Syntax: mail. from = string Syntax: string mail. from Beispiel: spooler_log.mail.from = "[email protected]"; Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_from=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_from=…) wird damit überschrieben. 3.9.9 queue_dir Verzeichnis der nicht versendbaren eMails Syntax: mail. queue_dir = string path Syntax: string mail. queue_dir eMails, die der JobScheduler nicht verschicken kann (weil z.B. der SMTP-Server nicht erreichbar ist), werden hier abgelegt. Um diese eMails später zu verschicken, muss ein Job geschrieben werden, der die Methode Mail.dequeue() aufruft. Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag queue_dir=…). Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen). Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_queue_dir=…) wird damit überschrieben. Software- and Organisations-Service GmbH März 2015 Javascript API 140 Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…) wird damit überschrieben. Die Einstellung sos.ini (Abschnitt [mail], Eintrag queue_dir=…) wird damit überschrieben. 3.9.10 smtp Name des SMTP-Servers Syntax: mail. smtp = string Syntax: string mail. smtp Beispiel: spooler_log.mail.smtp = "mail.company.com"; Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag smtp=…). Die Einstellung factory.ini (Abschnitt [job], Eintrag smtp=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag smtp=…) wird damit überschrieben. Die Einstellung sos.ini (Abschnitt [mail], Eintrag smtp=…) wird damit überschrieben. 3.9.11 subject Betreff Syntax: mail. subject = string Syntax: string mail. subject Beispiel: spooler_log.mail.subject = "Job succeeded"; Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_subject=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_subject=…) wird damit überschrieben. Software- and Organisations-Service GmbH März 2015 Javascript API 141 3.9.12 to Empfänger Syntax: mail. to = string Syntax: string mail. to Beispiel: spooler_log.mail.to = "[email protected]"; Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_to=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_to=…) wird damit überschrieben. Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). 3.9.13 xslt_stylesheet XSLT-Stylesheet für eMail-Aufbereitung Syntax: Xslt_stylesheet mail. xslt_stylesheet Rückgabe: Xslt_stylesheet Das XSLT-Stylesheet als String 3.9.14 xslt_stylesheet_path XSLT-Stylesheet für eMail-Aufbereitung Syntax: mail. xslt_stylesheet_path = string path Beispiel: spooler_log.mail.xslt_stylesheet_path = "c:/stylesheets/mail.xslt"; Software- and Organisations-Service GmbH März 2015 Javascript API 142 Der Pfad eines XSLT-Stylesheets. Der JobScheduler verwendet das XSLT-Stylesheet zum Aufbereiten der eMails. (Die Dokumentation hierzu ist noch nicht geschrieben.) <config mail_xslt_stylesheet="…"> Parameter: path Der Pfad der Datei, die das XSLT-Stylesheet enthält 3.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs Mit <monitor> können Sie einem Job einen Monitor geben. Ein Monitor kann folgende Methoden bereitstellen: Monitor_impl.spooler_task_before() Vor dem Start der Task, kann den Start verhindern. Monitor_impl.spooler_task_after() Nach dem Ende der Task. Monitor_impl.spooler_process_before() Vor spooler_process() , kann diesen Aufruf verhinden. Monitor_impl.spooler_process_after() Nach spooler_process() , kann dessen Rückgabewert ändern. 3.10.1 spooler Das allgemeine Objekt des Schedulers Syntax: Spooler spooler Beispiel: spooler_log.debug( "The working directory of the JobScheduler is " + spooler.directory ); Wie dasselbe Objekt in der Klasse Job_impl: spooler . Rückgabe: Spooler 3.10.2 spooler_job Das Objekt des Jobs Syntax: Job spooler_job Software- and Organisations-Service GmbH März 2015 Javascript API 143 Beispiel: spooler_log.info( "The name of this job is " + spooler_job.name ); Wie dasselbe Objekt in der Klasse Job_impl: spooler_job . Rückgabe: Job 3.10.3 spooler_log Zum Protokollieren Syntax: Log spooler_log Beispiel: in java spooler_log.info( "Something has happend" ); Wie dasselbe Objekt in der Klasse Job_impl: spooler_log . Rückgabe: Log 3.10.4 spooler_process_after Nach spooler_process() Syntax: boolean spooler_process_after ( boolean spooler_process_result ) Beispiel: in java public boolean spooler_task_after( boolean spooler_process_result ) throws Exception { spooler_log.info( "SPOOLER_TASK_BEFORE()" ); spooler_log.info( "spooler_process() didn't throw an exception and delivered " + spooler_process_result ); return spooler_process_result; // Unchanged result } Der JobScheduler ruft diese Methode nach jedem spooler_process() auf. Parameter: spooler_process_ result Rückgabewert von spooler_process() oder false, wenn spooler_process() mit einer Exception geendet hat. Rückgabe: Software- and Organisations-Service GmbH März 2015 Javascript API 144 boolean Ersetzt den Rückgabewert von spooler_process() . 3.10.5 spooler_process_before Vor spooler_process() Syntax: boolean spooler_process_before () Beispiel: in java public boolean spooler_process_before() throws Exception { spooler_log.info( "SPOOLER_PROCESS_BEFORE()" ); return true; // spooler_process() will be executed } Beispiel: in java public boolean spooler_process_before() throws Exception { boolean continue_with_spooler_process = true; if( !are_needed_ressources_available() ) { spooler_task.order().setback(); continue_with_spooler_process = false; } return continue_with_spooler_process; } Der JobScheduler ruft diese Methode vor jedem spooler_process() auf. Rückgabe: boolean false verhindert den folgenden Aufruf von spooler_process() . Der JobScheduler setzt fort, als hätte spooler_process() false geliefert. 3.10.6 spooler_task Das Objekt der Task Syntax: Task spooler_task Beispiel: spooler_log.info( "The task id is " + spooler_task.id ); Software- and Organisations-Service GmbH März 2015 Javascript API 145 Wie dasselbe Objekt in der Klasse Job_impl: spooler_task . Rückgabe: Task 3.10.7 spooler_task_after Nach dem Ende der Task Syntax: spooler_task_after () Beispiel: in java public void spooler_task_after() throws Exception { spooler_log.info( "SPOOLER_TASK_AFTER()" ); } Der JobScheduler ruft diese Methode, nachdem die Task geendet hat. 3.10.8 spooler_task_before Vor Start der Task Syntax: boolean spooler_task_before () Beispiel: in java public boolean spooler_task_before() throws Exception { spooler_log.info( "SPOOLER_TASK_BEFORE()" ); return true; // Task will be started //return false; // Task will not be started } Vor dem Laden der Task ruft der JobScheduler diese Methode auf. Rückgabe: boolean false lässt die Task nicht starten. Monitor_impl.spooler_task_after() wird nicht gerufen. 3.11 Order - Auftrag Siehe JobScheduler Dokumentation, Spooler.create_order() , Job_chain.add_order() , Task.order . Software- and Organisations-Service GmbH März 2015 Javascript API 146 Dateiauftrag Ein Dateiauftrag ist ein Auftrag mit dem Parameter scheduler_file_path: Order.params . Variable_set.value() . Siehe JobScheduler Dokumentation. Beispiel: Auftrag mit einfacher Nutzlast // Create order: { var order = spooler.create_order(); order.id = 1234; order.title = "This is my order"; order.state_text = "This is my state text"; order.payload = "This is my payload"; spooler.job_chain( "my_job_chain" ).add_order( order ); } ... // Process order: function spooler_process() { var order = spooler_task.order; spooler_log.info( "order.payload=" + order.payload ); return true; } Beispiel: Erzeugen eines Auftrags mit Variable_set als Nutzlast // Create order: { var variable_set = spooler.create_variable_set(); variable_set.value( "param_one" ) = "11111"; variable_set.value( "param_two" ) = "22222"; var order = spooler.create_order(); order.id = 1234; order.payload = variable_set; spooler.job_chain( "my_job_chain" ).add_order( order ); } ... // Process order: function spooler_process() { var order = spooler_task.order; var variable_set = order.payload; spooler_log.info( "param_one=" + variable_set.value( "param_one" ) ); spooler_log.info( "param_two=" + variable_set.value( "param_two" ) ); return true; } 3.11.1 at Start-Zeitpunkt des Auftrags Syntax: order. at = string|DATE Software- and Organisations-Service GmbH März 2015 Javascript API 147 Beispiel: order.at = "now+65"; spooler.job_chain( "my_job_chain" ).add_order( order ); Setzt den Start-Zeitpunkt bevor der Auftrag in eine Auftragswarteschlange eingereiht wird. Als String kann angegeben werden: • • • • "now" "yyyy-mm-dd HH:MM[:SS]" "now + HH:MM[:SS]" "now + seconds" Die Einstellung ändert die von Order.run_time oder Order.setback() vorgegebene Startzeit. Siehe <add_order at=""> . 3.11.2 end_state Zustand, vor dessen erfolgreichen Verlassen der Auftrag enden soll Syntax: order. end_state = var Syntax: var order. end_state Wenn ein Auftrag einen eigenen End-Zustand hat (end_state ungleich ""), endet der Auftrag, bevor er diesen Zustand erfolgreich verlassen würde, also nach Ausführung des dem End-Zustand zugeordneten Jobs (siehe < job_chain_node> ). Der Zustand muss in der Jobkette bekannt sein. 3.11.3 id Kennung des Auftrags Syntax: order. id = var Syntax: var order. id Jeder Auftrag hat eine (innerhalb der Jobkette oder der Auftragswarteschlange des Jobs eindeutige) Kennung. Diese Kennung sollte den zu verarbeitenden Daten entsprechen. Üblicherweise wird der Schlüssel eines Datenbanksatzes verwendet. Wenn Sie die id nicht setzen, vergibt Job_chain.add_order() eine Kennung. 3.11.4 job_chain Jobkette, in der der Auftrag enthalten ist Software- and Organisations-Service GmbH März 2015 Javascript API 148 Syntax: Job_chain order. job_chain Rückgabe: Job_chain 3.11.5 job_chain_node Jobkettenknoten, der dem Zustand des Auftrags entspricht Syntax: Job_chain_node order. job_chain_node Rückgabe: Job_chain_node 3.11.6 log Auftragsprotokoll Syntax: Log order. log Beispiel: spooler_task.order.log.info( "Only for order log, not for task log" ); spooler_log.info( "For both order log and task log" ); Rückgabe: Log 3.11.7 params Parameter des Auftrags Syntax: order. params = Variable_set Syntax: Variable_set order. params params wird in Order.payload gehalten, letzteres kann also nicht zusammen mit params verwendet werden. Siehe <add_order> . Rückgabe: Variable_set Software- and Organisations-Service GmbH März 2015 Javascript API 149 3.11.8 payload Nutzlast, also Parameter des Auftrags. Syntax: order. payload = Variable_set |string|int|… payload Syntax: Variable_set |string|int|… order. payload Statt dieser Eigenschaft wird die Verwendung von Order.params empfohlen (was (Variable_set)order.payload entspricht). Neben der Auftragskennung Order.id , die den Auftrag identifiziert, können Sie hier zusätzliche Angaben machen. Siehe Order.params und Order.xml_payload . Parameter: payload Kann ein String oder ein Variable_set sein. Rückgabe: Variable_set |string|int|… Kann ein String oder ein Variable_set sein. 3.11.9 payload_is_type Prüft den COM-Typ der Nutzlast Syntax: boolean order. payload_is_type ( string type_name ) Parameter: type_name "Spooler.Variable_set", "Hostware.Dyn_obj" oder "Hostware.Record". 3.11.10 priority Aufträge mit höherer Priorität werden zuerst verarbeitet Syntax: order. priority = int Syntax: int order. priority 3.11.11 remove_from_job_chain Syntax: order. remove_from_job_chain () Wenn der Auftrag gerade von einer Task ausgeführt wird, liefert die Eigenschaft Order.job_chain weiterhin die Jobkette, aus der der Auftrag mit diesem Aufruf entfernt worden ist. Erst wenn die Ausführung beendet ist, liefert Software- and Organisations-Service GmbH März 2015 Javascript API 150 die Eigenschaft null (außer der Auftrag ist wieder in eine Jobkette eingetragen worden). Damit bleibt die Eigenschaft job_chain während der Ausführung durch die Task stabil. 3.11.12 run_time <run_time> zur periodischen Wiederholung des Auftrags Syntax: Run_time order. run_time Beispiel: order.run_time.xml = "<run_time><at at='2006-05-23 11:43:00'/></run_time>"; Siehe <run_time> . Das Kommando <modify_order at="now"> lässt einen wegen run_time wartenden Auftrag sofort anlaufen. Rückgabe: Run_time 3.11.13 setback Stellt den Auftrag eine Zeitlang zurück Syntax: order. setback () Der Auftrag wird zurückgestellt und nach der mit <delay_order_after_setback> oder Job.delay_order_after_setback eingestellten Frist wiederholt. Bei einer Wiederholung wird nur die Funktion spooler_process() des Jobs wiederholt. Wenn in spooler_process() die Funktion order.setback() aufgerufen wurde, bleibt der Rückgabewert von spooler_process() ohne Wirkung. Der Auftrag zählt aufeinander folgende Aufrufe dieser Methode, was von <delay_order_after_setback> berücksichtigt wird. Der Zähler wird auf 0 gestellt, wenn spooler_process() ohne diesen Aufruf zu Ende ausgeführt worden ist. Beim Start des Schedulers sind alle Zähler 0. Das Kommando <modify_order at="now"> lässt einen zugestellten Auftrag sofort anlaufen. 3.11.14 setback_count Wie oft ist der Auftrag zurückgestellt worden? Syntax: int order. setback_count Siehe <delay_order_after_setback> . Software- and Organisations-Service GmbH März 2015 Javascript API 151 3.11.15 state Zustand des Auftrags Syntax: order. state = var Syntax: var order. state Wenn der Auftrag in einer Jobkette ist, muss der Zustand in der Jobkette vorhanden sein. Wenn der Auftrag gerade von einem Job ausgeführt wird, wird der in der Jobkette festgelegte Folgezustand ( < job_chain_node next_state=""> ) wirkungslos. Die Rückgabewerte von spooler_process() und Monitor_impl.spooler_process_after() sind ohne Bedeutung. Mit Order.state kann also ein Job den Folgezustand frei bestimmen. Der Auftrag wird in die Auftragswarteschlange des Jobs eingereiht, der dem Zustand zugeordnet ist (s. < job_chain_node> ). Die Ausführung durch diesen Job wird solange verzögert, bis der jetzt ausführende Job den Auftrag ausgeführt hat. 3.11.16 state_text Freier Text für den Zustand des Auftrags Syntax: order. state_text = string Syntax: string order. state_text Der Text wird auf der HTML-Oberfläche gezeigt. Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen. 3.11.17 string_next_start_time Nächste Startzeit des Auftrags bei Verwendung von <run_time> Syntax: string order. string_next_start_time Rückgabe: string "yyyy-mm-dd HH:MM:SS.MMM" oder "now" oder "never". 3.11.18 suspended Ausgesetzer Auftrag Syntax: order. suspended = boolean Syntax: boolean order. suspended Software- and Organisations-Service GmbH März 2015 Javascript API 152 Ein ausgesetzter Auftrag wird nicht ausgeführt. Wenn der Auftrag gerade von einer Task ausgeführt wird, wird der Schritt ( spooler_process() ) noch zu Ende ausgeführt und der Auftrag nach den gewohnten Regeln in den Folgezustand versetzt, bevor er tatsächlich ausgesetzt wird. Damit kann ein Auftrag in einen Endzustand ausgesetzt werden, womit verhindet wird, dass er entfernt wird. Erst wenn die Aussetzung eines solchen Auftrags aufgehoben wird, ( order.suspended=false), entfernt der JobScheduler den Auftrag. Ein ausgesetzter Auftrag im Endzustand kann mit Order.state in einen Zustand versetzt werden, der einem Job zugeordnet ist. Der Auftrag bleibt dennoch ausgesetzt. 3.11.19 title Der Titel ist ein Klartext, der den Auftrag bezeichnet Syntax: order. title = string Syntax: string order. title 3.11.20 web_service Der Webdienst, der dem Auftrag zugeordnet ist Syntax: Web_service order. web_service Wenn der Auftrag keinem Webdienst zugeordnet ist, liefert der Aufruf den Fehler SCHEDULER-240 . Siehe auch Order.web_service_or_null . Rückgabe: Web_service 3.11.21 web_service_operation Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist Syntax: Web_service_operation order. web_service_operation Software- and Organisations-Service GmbH März 2015 Javascript API 153 Beispiel: in java public boolean spooler_process() throws Exception { Order order = spooler_task.order(); Web_service_operation web_service_operation = order.web_service_operation(); Web_service_request request = web_service_operation.request(); // Decode request data String request_string = new String( request.binary_content(), request.charset_name() ); process request_string ...; String response_string = "This is my response"; String charset_name = "UTF-8"; ByteArrayOutputStream byos = new ByteArrayOutputStream(); // Encode response data Writer writer = new OutputStreamWriter( byos, charset_name ); writer.write( response_string ); writer.close(); // Respond Web_service_response response = web_service_operation.response(); response.set_content_type( "text/plain" ); response.set_charset_name( charset_name ); response.set_binary_content( byos.toByteArray() ); response.send(); // Web service operation has finished return true; } Siehe <web_service> , Web_service_operation und Order.web_service_operation_or_null , Rückgabe: Web_service_operation 3.11.22 web_service_operation_or_null Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist, oder null Syntax: Web_service_operation order. web_service_operation_or_null Siehe Order.web_service_operation , Web_service_operation und <web_service> . Rückgabe: Web_service_operation Software- and Organisations-Service GmbH März 2015 Javascript API 154 3.11.23 web_service_or_null Der Web-Dienst, der dem Auftrag zugeordnet ist, oder null. Syntax: Web_service order. web_service_or_null Siehe auch Order.web_service . Rückgabe: Web_service 3.11.24 xml Auftrag in XML: <order>...</order> Syntax: string order. xml Rückgabe: string Siehe <order> 3.11.25 xml_payload XML-Nutzlast, also Parameter des Auftrags. Syntax: order. xml_payload = string xml Syntax: string order. xml_payload Zusätzlich zur Eigenschaft Order.params kann diese Eigenschaft ein XML-Dokument aufnehmen. <xml_payload> enthält das Wurzelelement des XML-Dokuments (statt in #PCDATA-codierter Form). 3.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs Ein auftragsgesteuerter Job ( <job order="yes"> hat eine Auftragswarteschlange, die die vom Job zu verarbeitenden Aufträge aufnimmt. Die Aufträge sind nach Priorität und Zeitpunkt des Eintreffens geordnet. Verarbeiten bedeutet, dass der JobScheduler die Methode spooler_process() einer Task des Jobs aufruft. Die Methode kann über Task.order auf den Auftrag zugreifen. Endet spooler_process() ohne Fehler (ohne Exception), entfernt der JobScheduler den Auftrag aus der Auftragswarteschlange. Ist der Auftrag in einer Jobkette, dann rückt der Auftrag an die nächste Position der Jobkette. Software- and Organisations-Service GmbH März 2015 Javascript API 155 3.12.1 length Anzahl der Aufträge in der Auftragswarteschlange Syntax: int q. length 3.13 Process_class Siehe auch <process_class name=""> . Beispiel: var process_classs = spooler.process_classs; var process_class = process_classs.create_process_class(); process_class.name = "my_process_class"; process_classs.add_process_class( process_class ); 3.13.1 max_processes Anzahl der Prozesse Syntax: process_class. max_processes = int Syntax: int process_class. max_processes Die Voreinstellung ist 10. Siehe auch <process_class max_processes=""> . 3.13.2 name Name der Prozessklasse Syntax: process_class. name = string Syntax: string process_class. name Der Name kann nur einmal gesetzt und nicht geändert werden. Siehe auch <process_class name=""> . 3.13.3 remote_scheduler Adresse des fernen Schedulers, der die Prozesse ausführen soll Syntax: process_class. remote_scheduler = string Software- and Organisations-Service GmbH März 2015 Javascript API 156 Syntax: string process_class. remote_scheduler Beispiel: spooler.process_classes.process_class( "my_process_class" ).remote_scheduler = "host:4444"; Siehe auch <process_class remote_scheduler=""> . Parameter: Die Adresse wird als " host : portnumber" angegeben. Beim Lesen wird (derzeit) zusätzlich die IP-Nummer geliefert: " hostname / ipnumber : portnumber" Rückgabe: string Die Adresse wird als " host : portnumber" angegeben. Beim Lesen wird (derzeit) zusätzlich die IP-Nummer geliefert: " hostname / ipnumber : portnumber" 3.13.4 remove Entfernt die Prozessklasse Syntax: process_class. remove () Beispiel: spooler.process_classs.process_class( "my_process_class" ).remove(); Wenn noch Tasks in der Prozessklasse laufen, verzögert der JobScheduler das Löschen bis die letzte Task geendet hat. Solange werden keine neuen Tasks gestartet. Siehe auch <process_class.remove> . 3.14 Process_classes 3.14.1 add_process_class Fügt dem JobScheduler eine Prozessklasse hinzu Syntax: process_classs. add_process_class ( Process_class pc ) Software- and Organisations-Service GmbH März 2015 Javascript API 157 3.14.2 create_process_class Legt eine neue Prozesklasse ein Syntax: Process_class process_classs. create_process_class () Liefert eine neues Process_class . Diese Prozessklasse kann mit Process_classes.add_process_class() dem JobScheduler hinzugefügt werden. Rückgabe: Process_class 3.14.3 process_class Liefert eine Prozessklasse Syntax: Process_class process_classs. process_class ( string process_class_name ) Wenn die Prozessklasse nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Process_class 3.14.4 process_class_or_null Liefert eine Prozessklasse Syntax: Process_class process_classs. process_class_or_null ( string process_class_name ) Rückgabe: Process_class null, wenn die Prozessklasse nicht bekannt ist. 3.15 Run_time - Laufzeit Siehe <run_time> , Order , Schedule . Beispiel: var order = spooler_task.order; // Repeat order daily at 15:00 order.run_time.xml = "<run_time><period single_start='15:00'/></run_time>"; Software- and Organisations-Service GmbH März 2015 Javascript API 158 3.15.1 schedule <schedule> Syntax: Schedule run_time. schedule Rückgabe: Schedule 3.15.2 xml <run_time> Syntax: run_time. xml = string Verwirft die bisherige Einstellung und setzt Run_time neu. Parameter: XML-Dokument als String 3.16 Schedule - Laufzeit Siehe <schedule> , <run_time> , Spooler.schedule , Run_time . Beispiel: spooler.schedule( "my_schedule" ).xml = "<schedule><period single_start='15:00'/>< /schedule>"; 3.16.1 xml <schedule> Syntax: schedule. xml = string Syntax: string schedule. xml Verwirft die bisherige Einstellung und setzt Schedule neu. Parameter: XML-Dokument als String Rückgabe: string XML-Dokument als String Software- and Organisations-Service GmbH März 2015 Javascript API 159 3.17 Spooler Von dieser Klasse gibt es nur ein Objekt: spooler . 3.17.1 abort_immediately Bricht den JobScheduler augenblicklich ab Syntax: spooler. abort_immediately () Bricht den JobScheduler augenblicklich ab. Kein Job hat Gelegenheit, darauf zu reagieren. Der JobScheduler 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 JobScheduler Dokumentation. 3.17.2 abort_immediately_and_restart Bricht den JobScheduler augenblicklich ab und startet ihn neu. Syntax: spooler. abort_immediately_and_restart () Wie Spooler.abort_immediately() , nur dass der JobScheduler sich erneut startet. Dabei verwendet er die Kommandozeilenparameter wieder. Siehe <modify_spooler cmd="abort_immediately_and_restart"> und JobScheduler Dokumentation. 3.17.3 add_job_chain Syntax: spooler. add_job_chain ( Job_chain chain ) Bei Job_chain.orders_recoverable =true lädt der JobScheduler die Aufträge der Jobkette aus der Datenbank. Siehe Spooler.create_job_chain() und <job_chain> . Software- and Organisations-Service GmbH März 2015 Javascript API 160 3.17.4 configuration_directory Pfad des Konfigurationsverzeichnisses Syntax: string spooler. configuration_directory <config configuration_directory="…"> 3.17.5 create_job_chain Syntax: 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 JobScheduler hinzugefügt werden Siehe <job_chain> . Rückgabe: Job_chain 3.17.6 create_order Syntax: Order spooler. create_order () Erzeugt einen neuen Auftrag. Dieser Auftrag kann mit Job_chain.add_order() einer Jobkette übergeben werden. Rückgabe: Order 3.17.7 create_variable_set Syntax: Variable_set spooler. create_variable_set () Rückgabe: Variable_set 3.17.8 create_xslt_stylesheet Syntax: Xslt_stylesheet spooler. create_xslt_stylesheet ( string xml (optional) ) Parameter: xml XSLT-Stylesheet als XML-String Software- and Organisations-Service GmbH März 2015 Javascript API 161 Rückgabe: Xslt_stylesheet 3.17.9 db_history_table_name Name der Datenbanktabelle für die Historie Syntax: string spooler. db_history_table_name Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) wird damit überschrieben. 3.17.10 db_name Hostware-Pfad der Datenbank Syntax: string spooler. db_name Verbindungszeichenfolge der Datenbank für die Historienführung. Der JobScheduler 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 JobScheduler verwendet dann eine Microsoft MS-Access Datenbank dieses Namens, die im Protokollverzeichnis (s. Option -log-dir ) liegt. Der JobScheduler richtet die Datei ein, wenn sie fehlt. Der JobScheduler richtet die Tabellen selbständig ein. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db=…) wird damit überschrieben. 3.17.11 db_order_history_table_name Name der Datenbanktabelle für die Auftragshistorie Syntax: string spooler. db_order_history_table_name Die Einstellung factory.ini überschrieben. (Abschnitt [spooler], Eintrag db_order_history_table=…) wird damit Software- and Organisations-Service GmbH März 2015 Javascript API 162 3.17.12 db_orders_table_name Name der Datenbanktabelle für die Aufträge Syntax: string spooler. db_orders_table_name Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_orders_table=…) wird damit überschrieben. 3.17.13 db_tasks_table_name Name der Datenbanktabelle für die Tasks Syntax: string spooler. db_tasks_table_name Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_tasks_table=…) wird damit überschrieben. 3.17.14 db_variables_table_name Name der Datenbanktabelle für interne Variablen des Schedulers Syntax: string spooler. db_variables_table_name Der JobScheduler 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. 3.17.15 directory Das Arbeitsverzeichnis beim Start des Schedulers Syntax: string spooler. directory Ändert das Arbeitsverzeichnis. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Die Option -cd hat Vorrang. Software- and Organisations-Service GmbH März 2015 Javascript API 163 Eine auf einem entfernten JobScheduler 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 "\". 3.17.16 execute_xml Führt ein XML-Kommando aus Syntax: string spooler. execute_xml ( string xml ) Beispiel: spooler_log.info( spooler.execute_xml( "<show_state/>" ) ); Fehler werden als XML-Antwort <ERROR> geliefert. Parameter: xml Siehe JobScheduler Dokumentation. Rückgabe: string Liefert die XML-Antwort des ausgeführten Kommandos. 3.17.17 hostname Name des Rechners, auf dem der JobScheduler läuft. Syntax: string spooler. hostname 3.17.18 id Wert der Kommandozeilenoption -id= Syntax: string spooler. id Der JobScheduler 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 JobScheduler das XML-Attribut spooler_id= nicht und wählt alle Elemente der XML-Konfiguration aus. Software- and Organisations-Service GmbH März 2015 Javascript API 164 Siehe z.B. <config> . Die Option -id hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag id=…) wird damit überschrieben. 3.17.19 include_path Liefert die Kommandozeilenoption -include-path=. Syntax: string spooler. include_path Verzeichnis der Dateien, die mit <include> eingezogen werden. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen). Die Option -include-path hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag include_path=…) wird damit überschrieben. <config include_path="…"> Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. 3.17.20 ini_path Wert der Option -ini= (Dateiname der factory.ini) Syntax: string spooler. ini_path Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Siehe -ini , JobScheduler Dokumentation 3.17.21 is_service Syntax: boolean spooler. is_service Rückgabe: Software- and Organisations-Service GmbH März 2015 Javascript API 165 boolean true, genau dann wenn der JobScheduler als Dienst (in Windows) oder als Daemon (in Unix) läuft. 3.17.22 job Liefert einen Job Syntax: Job spooler. job ( string job_name ) Wenn der Jobname nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Job 3.17.23 job_chain Liefert eine Jobkette Syntax: Job_chain spooler. job_chain ( string name ) Wenn der Name der Jobkette nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Job_chain 3.17.24 job_chain_exists Syntax: boolean spooler. job_chain_exists ( string name ) 3.17.25 let_run_terminate_and_restart Syntax: spooler. let_run_terminate_and_restart () Sobald alle Aufträge abgearbeitet sind, beendet der JobScheduler alle Tasks (durch Aufruf von Job_impl ) und beendet dann sich selbst. Ein neuer JobScheduler mit unveränderten Kommandozeilenparametern wird gestartet. Siehe <modify_spooler cmd="let_run_terminate_and_restart"> und JobScheduler Dokumentation. 3.17.26 locks Liefert die Locks Software- and Organisations-Service GmbH März 2015 Javascript API 166 Syntax: Locks spooler. locks Rückgabe: Locks 3.17.27 log Das Hauptprotokoll Syntax: Log spooler. log Normalerweise wird man spooler_log() verwenden. Rückgabe: Log 3.17.28 log_dir Verzeichnis der Protokolle Syntax: string spooler. log_dir In dieses Verzeichnis schreibt der JobScheduler seine Protokolle. log_dir= *stderr lässt den JobScheduler die Protokollausgabe nach stderr (auf den Bildschirm) schreiben. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen). Die Option -log-dir hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_dir=…) wird damit überschrieben. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. 3.17.29 param Kommandozeilenoption -param= Syntax: string spooler. param Software- and Organisations-Service GmbH März 2015 Javascript API 167 Zur freien Verwendung. Der Parameter ist in den Skripten über spooler.param lesbar. Die Option -param hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag param=…) wird damit überschrieben. 3.17.30 process_classes Liefert die Prozessklassen Syntax: Process_classes spooler. process_classes Rückgabe: Process_classes 3.17.31 schedule Liefert den benannten Schedule oder null Syntax: Schedule spooler. schedule ( string path ) Rückgabe: Schedule 3.17.32 supervisor_client Liefert den Supervisor_client oder null Syntax: Supervisor_client spooler. supervisor_client Rückgabe: Supervisor_client 3.17.33 tcp_port HTTP- und TCP-Port für Kommandos an den JobScheduler Syntax: int spooler. tcp_port Der JobScheduler 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. Software- and Organisations-Service GmbH März 2015 Javascript API 168 Über denselben Port betreibt der JobScheduler einen HTTP/HTML-Server, so dass er über einen Browser ansprechbar ist, z.B. http://localhost:4444. Bei tcp_port=0 (voreingestellt) ist der JobScheduler nicht über TCP oder HTTP ansprechbar. Damit kann die Steuerung des JobSchedulers per TCP-Kommando, z.B. über eine Web-Seite, unterbunden werden. Die Option -tcp-port hat Vorrang. <config tcp_port="…"> Rückgabe: int 0, wenn kein Port geöffnet ist. 3.17.34 terminate JobScheduler mit allen Tasks ordentlich beenden Syntax: 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 JobScheduler 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 JobScheduler Dokumentation. Parameter: timeout Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen Parameter wartet der JobScheduler endlos auf die Tasks. restart restart=true lässt den JobScheduler nach Beendigung neu starten. all_schedu all_schedulers=true beendet alle JobScheduler im Cluster (s. -exclusive ) Das kann eine lers Minute dauern. continue_e continue_exclusive_operation=true lässt einen anderen Scheuler im Cluster (s. -exclusive ) xclusive_o den Betrieb fortsetzen. peration 3.17.35 terminate_and_restart JobScheduler mit allen Tasks ordentlich beenden und erneut starten Syntax: spooler. terminate_and_restart ( int timeout (optional) ) Wie Spooler.terminate() , aber der JobScheduler startet sich neu. Siehe <modify_spooler cmd="terminate_and_restart"> und JobScheduler Dokumentation. Software- and Organisations-Service GmbH März 2015 Javascript API 169 Parameter: time Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der out JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen Parameter wartet der JobScheduler endlos auf die Tasks. 3.17.36 udp_port UDP-Port für Kommandos an den JobScheduler Syntax: int spooler. udp_port Auch über UDP kann der JobScheduler Kommandos entgegennehmen. Hier wird die Portnummer angegeben. Ein Kommando muss in eine Nachricht passen. Der JobScheduler schickt keine Antwort. Bei udp_port=0 (voreingestellt) öffnet der JobScheduler keinen UDP-Port. Die Option -udp-port hat Vorrang. <config udp_port="…"> Rückgabe: int 0, wenn kein Port geöffnet ist. 3.17.37 variables Die Scheduler-weiten Variablen als Variable_set Syntax: Variable_set spooler. variables Die Variablen können in der Konfigurationsdatei eingestellt werden mit <config> . Rückgabe: Variable_set 3.18 Spooler_program - Für den Java-Debugger Startet den JobScheduler über Java, so dass in Java geschriebene Jobs debuggt werden können (z.B. mit Eclipse). Zu den Methoden siehe Javadoc. Der JobScheduler wird als Windows-Applikation, nicht als Konsol-Programm gestartet. Ausgaben nach stderr gehen verloren. -log-dir liefert keine Ausgabe. Software- and Organisations-Service GmbH März 2015 Javascript API 170 Siehe JobScheduler Dokumentation. Beispiel: C:\>java -Djava.library.path=… -classpath …\sos.spooler.jar sos.spooler.Spooler_program configuration.scheduler -log-dir=c:\tmp\scheduler Mit -Djava.library.path=… geben Sie das Verzeichnis der scheduler.dll an, wenn es nicht bereits in %PATH% aufgeführt ist. 3.19 Subprocess Ein Subprozess ist irgendein Prozess, der mit Task.create_subprocess() oder Subprocess.start() gestartet werden kann. Beispiel: system() - Einfache Ausführung eines Kommandos exit_code = my_system( "backup /" ); function system( cmd, timeout ) { var subprocess = spooler_task.create_subprocess(); try { if( timeout ) subprocess.timeout = timeout; subprocess.start( cmd ); subprocess.wait_for_termination(); return subprocess.exit_code; } finally { subprocess.close(); } } Beispiel: var subprocess = spooler_task.create_subprocess(); subprocess.environment( "test1" ) = "one"; subprocess.environment( "test2" ) = "two"; subprocess.ignore_error = true; subprocess.start( "sleep 20" ); spooler_log.info( "pid=" + subprocess.pid ); subprocess.timeout = 10; spooler_log.info( "wait_for_termination ..." ); var ok = subprocess.wait_for_termination( 10 ); spooler_log.info( "wait_for_termination ok=" + ok ); if( subprocess.terminated ) { spooler_log.info( "exit code=" + subprocess.exit_code ); spooler_log.info( "termination signal=" + subprocess.termination_signal ); } Software- and Organisations-Service GmbH März 2015 Javascript API 171 3.19.1 close Gibt die System-Ressourcen frei Syntax: subprocess. close () Sollte in Sprachen mit Garbage Collector (Java, JavaScript) gerufen werden, außer die Task beendet sich sofort. Der Subprocess ist danach unbrauchbar. 3.19.2 env Umgebungsvariablen als Variable_set Syntax: Variable_set subprocess. env Beispiel: var subprocess = spooler_task.create_subprocess(); subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) ); subprocess.wait_for_termination(); Liefert ein Variable_set der Umgebungsvariablen. Anfänglich ist die Umgebung mit den Umgebungsvariablen des startenden Prozesses gefüllt. Umgebungsvariablen können entfernt werden, indem sie auf "" gesetzt werden. Der Aufruf Subprocess.start() übergibt die Umgebungsvariablen dem Subprozess. Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden. Nach dem Start des Subprozesses haben Änderungen an den Umgebungsvariablen keine Wirkung. Auch können vom Prozess geänderte Umgebungsvariablen nicht gelesen werden. Das Objekt lässt sich nicht anderen Objekten übergeben (denn es befindet sich im Prozess der Task, während die meisten anderen Objekte sich im Prozess des Schedulers befinden). Rückgabe: Variable_set 3.19.3 environment Umgebungsvariablen Syntax: subprocess. environment ( string name ) = string value Software- and Organisations-Service GmbH März 2015 Javascript API 172 Beispiel: // The following two statements have the same effect subprocess.environment( "my_variable" ) = "my_value" subprocess.env.value( "my_variable" ) = "my_value" Die hier gesetzten Variablen werden zusammen mit den übrigen Umgebungsvariablen des laufenden Prozesses dem neuen Subprozess übergeben. Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden. Siehe auch Subprocess.env . 3.19.4 exit_code Syntax: int subprocess. exit_code Erst aufrufen, wenn Subprocess.terminated == true. 3.19.5 ignore_error Verhindert, dass bei exit_code != 0 der Job stoppt Syntax: subprocess. ignore_error = boolean Syntax: boolean subprocess. ignore_error Verhindert, dass der Job stoppt, wenn der Subprozess bei Task-Ende mit Subprocess.exit_code != 0 geendet hat. Wenn das Ende des Subprocesses nicht mit Subprocess.wait_for_termination abgewartet worden ist, tut das der JobScheduler bei Task-Ende. Wenn dann der Subprocess mit Subprocess.exit_code != 0 endet, stoppt der Job mit Fehler. Mit ignore_error kann das verhindert werden. 3.19.6 ignore_signal Verhindert, dass bei einem Abbruch des Prozesses mit Signal der Job stoppt Syntax: subprocess. ignore_signal = int Syntax: int subprocess. ignore_signal Wirkt nicht unter Windows, weil es hier keine Signale gibt. Software- and Organisations-Service GmbH März 2015 Javascript API 173 3.19.7 kill Bricht den Subprozess ab Syntax: subprocess. kill ( int signal (optional) ) Parameter: signal Nur unter Unix: Das Signal für kill(). 0 wird als 9 (SIGKILL, sofortiges Ende) interpretiert. 3.19.8 own_process_group Subprozess als Prozessgruppe Syntax: subprocess. own_process_group = boolean Syntax: boolean subprocess. own_process_group Nur unter Unix. Der Default kann mit factory.ini (Abschnitt [spooler], Eintrag subprocess.own_process_group=…) eingestellt werden. own_process_group lässt den Subprozess in einer eigenen Prozessgruppe starten, indem der Systemaufruf setpgid(0,0) ausgeführt wird. Wenn der JobScheduler den Subprozess abbricht, bricht er die ganze Prozessgruppe ab. 3.19.9 pid Prozesskennung Syntax: int subprocess. pid 3.19.10 priority Prozess-Priorität Syntax: subprocess. priority = int Syntax: int subprocess. priority Beispiel: subprocess.priority = +5; // Unix: Priorität etwas verschlechtern Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht werden. Software- and Organisations-Service GmbH März 2015 Javascript API 174 Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13 "high" (andere Werte werden abgerundet). Siehe auch Task.priority_class . Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Subprocess.priority_class . Siehe auch Task.priority . 3.19.11 priority_class Prioritätsklasse Syntax: subprocess. priority_class = string Syntax: string subprocess. priority_class Beispiel: subprocess.priority_class = "below_normal"; Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix entsprechen: Prioritätsklasse Windows Unix "idle" 4 16 "below_normal" 6 6 "normal" 8 0 "above_normal" 10 -6 "high" 13 -16 Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelndem Recht, führt das nicht zu einem Fehler. Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Siehe auch Subprocess.priority , Task.priority_class und Microsoft® Windows® Scheduling Priorities. 3.19.12 start Startet den Prozess Syntax: subprocess. start ( string|string[] command_line ) Windows erkennt sofort, wenn das Programm nicht ausführbar ist. Die Methode liefert dann einen Fehler. Unter Unix wird stattdessen Subprocess.exit_code auf 99 gesetzt. Vorher muss das Ende des Prozesses abgewartet werden mit Subprocess.wait_for_termination() . Software- and Organisations-Service GmbH März 2015 Javascript API 175 Shell-Operatoren wie |, && und > werden nicht interpretiert. Verwenden Sie dazu die Programme /bin/sh bzw. c:\windows\system32\cmd.exe (das Verzeichnis ist installations-abhängig). Der Prozess wird unter Unix mit execvp() und unter Windows mit CreateProcess() gestartet. 3.19.13 terminated Syntax: boolean subprocess. terminated Prüft, ob der Prozess geendet hat. Wenn er geendet hat, kann anschließend Subprocess.exit_code und Subprocess.termination_signal gerufen werden. 3.19.14 termination_signal Signal, mit dem sich der Prozess beendet hat (nur Unix) Syntax: int subprocess. termination_signal Erst aufrufen, wenn Subprocess.terminated == true. 3.19.15 timeout Frist für den Subprozess Syntax: subprocess. timeout = double seconds Nach Ablauf der Zeit bricht der JobScheduler den Subprozess ab (Unix: mit SIGKILL). Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht. 3.19.16 wait_for_termination Syntax: subprocess. wait_for_termination () Syntax: boolean subprocess. wait_for_termination ( double seconds ) Parameter: seconds Wartezeit. Fehlt der Parameter, dann wartet der Aufruf bis der Subprozess geendet hat. Rückgabe: boolean true, wenn der Subprozess geendet hat. false, wenn der Subprozess nach Ablauf der Wartezeit noch läuft. Software- and Organisations-Service GmbH März 2015 Javascript API 176 3.20 Supervisor_client Spooler.supervisor_client liefert dieses Objekt. Beispiel: var supervisor_hostname = spooler.supervisor_client.hostname; 3.20.1 hostname Name oder IP-Nummer des Rechners, auf dem der Supervisor läuft Syntax: string supervisor_client. hostname Siehe auch <config supervisor=""> . 3.20.2 tcp_port TCP-Port des Supervisors Syntax: int supervisor_client. tcp_port Siehe auch <config supervisor=""> . 3.21 Task Eine Task ist eine laufende Instanz eines Jobs. Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen. 3.21.1 add_pid Macht dem JobScheduler einen abhängigen, befristeten Prozess bekannt Syntax: spooler_task. add_pid ( int pid, string|double|int timeout (optional) ) Mit dem Aufruf kann die Laufzeit von abhängigen Prozessen eingeschränkt werden. Bei Task-Ende bricht der JobScheduler noch laufende abhängigen Prozesse in jedem Fall ab. Wenn der JobScheduler einen Prozess abbricht, gibt es einen Eintrag ins Protokoll. Die Task erfährt davon nichts. Der Aufruf <kill_task> bricht alle mit add_pid() bekannt gemachten Prozesse ab. Software- and Organisations-Service GmbH März 2015 Javascript API 177 Unter Unix kann eine Prozessgruppen-Id als negative pid übergeben werden. Ein kill bricht dann die ganze Prozessgruppe ab. Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht. 3.21.2 call_me_again_when_locks_available Wiederholt spooler_open() oder spooler_process(), sobald Sperren verfügbar Syntax: spooler_task. call_me_again_when_locks_available () Ve r a n l a s s t den S c h e d u l e r, nach erfolglosem Task.try_hold_lock() oder Task.try_hold_lock_non_exclusive() den Aufruf von spooler_open() bzw. spooler_process() zu wiederholen, sobald die angeforderten Sperren verfügbar sind. Der JobScheduler wiederholt dann den Aufruf mit gehaltenen Sperren, so dass die erstgenannten Aufrufe Erfolg haben werden. Nach dem Aufruf hat der Rückgabewert von spooler_open() bzw. spooler_process() (true/false) keine Wirkung. Einen Auftrag Task.order belässt der JobScheduler in seinem Zustand. 3.21.3 changed_directories Die Verzeichnisse, deren Änderung den Start der Task veranlasst haben Syntax: string spooler_task. changed_directories Siehe Job.start_when_directory_changed() , Task.trigger_files . Rückgabe: string Die Verzeichnisnamen sind durch Semikolon getrennt. "", wenn kein Verzeichnis geändert ist. 3.21.4 create_subprocess Start eines überwachten Subprozesses Syntax: Subprocess spooler_task. create_subprocess ( string|string[] filename_and_arguments (optional) ) Rückgabe: Subprocess Software- and Organisations-Service GmbH März 2015 Javascript API 178 3.21.5 delay_spooler_process Verzögert den nächsten Aufruf von spooler_process() Syntax: spooler_task. delay_spooler_process = string|double|int seconds_or_hhmm_ss Wirkt nur in spooler_process() . 3.21.6 end Beendet die Task Syntax: spooler_task. end () Der JobScheduler ruft nicht mehr spooler_process() auf. Statt dessen ruft er spooler_close() auf. Der Aufruf kann verwendet werden, um beim Task-Ende den Versand des Task-Protokolls zu veranlassen, siehe Log . 3.21.7 error Setzt einen Fehler und stoppt den Job Syntax: spooler_task. error = string Syntax: Error spooler_task. error Der lesende Aufruf liefert den letzten Fehler dieser Task. Wenn kein Fehler vorliegt, wird ein Error -Objekt zurückgeliefert, dessen Eigenschaft is_error false liefert. Sie können eine Fehlermeldung auch mit Log.error() ins Task-Protokoll schreiben. Rückgabe: string Error 3.21.8 exit_code Exit-Code Syntax: spooler_task. exit_code = int Syntax: int spooler_task. exit_code Beispiel: spooler_log.error( "This call of spooler_log.error() sets the exit code to 1" ); spooler_task.exit_code = 0; // Reset the exit code Software- and Organisations-Service GmbH März 2015 Javascript API 179 Der Exit-Code ist anfänglich 0 und wird bei einem Fehler auf 1 gesetzt. Das ist, wenn der JobScheduler eine Zeile mit [ERROR] ins Task-Protokoll schreibt: • • • Aufruf von Log.error() Setzen von Task.error Das Skript liefert eine Exception. Der Job kann anschließend, z.B. in spooler_on_error() , den Task.exit_code neu setzen. Der Exit-Code des (Betriebssystem-)Prozesses, der die Task ausführt, ist ohne Belang und wird nicht übernommen, im Gegensatz zu Jobs mit <process> oder <script language="shell"> . Der Exit-Code entscheidet über die anschließend auszuführenden Kommandos. Siehe hierzu <job> <commands on_exit_code=""> . Der Exit-Code hat keinen Einfluss darauf, ob der Job gestoppt wird (eine Fehlermeldung der Task lässt den Job stoppen). 3.21.9 history_field Ein Feld in der Task-Historie Syntax: spooler_task. history_field ( string name ) = var value Beispiel: spooler_task.history_field( "extra" ) = 4711; Die Datenbanktabelle (s. factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) muss eine Spalte mit dem Namen haben und diese Spalte muss in der Datei factory.ini (Abschnitt [job], Eintrag history_columns=…) deklariert sein. 3.21.10 id Die Task-Kennung Syntax: int spooler_task. id Jede Task hat eine Scheduler-weit eindeutige numerische Kennung. 3.21.11 job Der Job, zu dem die Task gehört Syntax: Job spooler_task. job Rückgabe: Job Software- and Organisations-Service GmbH März 2015 Javascript API 180 3.21.12 order Der zu verarbeitende Auftrag Syntax: Order spooler_task. order Beispiel: var order = spooler_task.order; spooler_log.info( "order.id=" + order.id + ", order.title=" + order.title ); Rückgabe: Order null, wenn kein Auftrag vorliegt. 3.21.13 params Die Parameter der Task Syntax: Variable_set spooler_task. params Beispiel: var value = spooler_task.params.value( "parameter3" ); Beispiel: var parameters = spooler_task.params; if( parameters.count > 0 ) spooler_log.info( "Parameters given" ); var value1 = parameters.value( "parameter1" ); var value2 = parameters.value( "parameter2" ); Eine Task kann Parameter haben. Die Parameter können gesetzt werden mit • • • In der Konfigurationsdatei im Element <job> mit <params> , Job.start() und <start_job> . Rückgabe: Variable_set != null Software- and Organisations-Service GmbH März 2015 Javascript API 181 3.21.14 priority Priorität der laufenden Task Syntax: spooler_task. priority = int Syntax: int spooler_task. priority Beispiel: spooler_task.priority = +5; // Unix: Priorität etwas verschlechtern Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht werden. Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13 "high" (andere Werte werden abgerundet). Siehe auch Task.priority_class . Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Task.priority_class . 3.21.15 priority_class Prioritätsklasse der laufenden Task Syntax: spooler_task. priority_class = string Syntax: string spooler_task. priority_class Beispiel: spooler_task.priority_class = "below_normal"; Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix entsprechen: Prioritätsklasse Windows Unix "idle" 4 16 "below_normal" 6 6 "normal" 8 0 "above_normal" 10 -6 "high" 13 -16 Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelnden Rechts, führt das nicht zu einem Fehler. Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Software- and Organisations-Service GmbH März 2015 Javascript API 182 Siehe auch Task.priority , Subprocess.priority_class und Microsoft® Windows® Scheduling Priorities. 3.21.16 remove_pid Gegenstück zu add_pid() Syntax: spooler_task. remove_pid ( int pid ) Es gibt keinen Fehler, wenn die Pid nicht mit Task hinzugefügt worden ist. Siehe Task.add_pid() . 3.21.17 repeat Startet erneut eine Task nach der eingestellten Zeit Syntax: spooler_task. repeat = double (Diese Methode gehört eigentlich in die Klasse Job . Sie hat nichts mit der gerade laufenden Task zu tun.) Wenn nach Ablauf der angegebenen Zeit keine Task des Jobs läuft, startet der JobScheduler eine Task. Dabei wird die <run_time> berücksichtigt. <period repeat=""> der aktuellen Periode wird vorläufig außer Kraft gesetzt. Job.delay_after_error hat Vorrang, wenn die Task einen Fehler liefert. 3.21.18 stderr_path Der Pfadname der stderr-Ausgabe der Task Syntax: string spooler_task. stderr_path Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: string "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 3.21.19 stderr_text Der bisher vom Prozess der Task nach stderr geschriebene Text Syntax: string spooler_task. stderr_text Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Software- and Organisations-Service GmbH März 2015 Javascript API 183 Rückgabe: string "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 3.21.20 stdout_path Der Pfadname der stdout-Ausgabe der Task Syntax: string spooler_task. stdout_path Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: string "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 3.21.21 stdout_text Der bisher vom Prozess der Task nach stdout geschriebene Text Syntax: string spooler_task. stdout_text Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: string "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 3.21.22 trigger_files Pfade der Dateien in mit regex überwachten Verzeichnissen Syntax: string spooler_task. trigger_files Liefert die Pfade der Dateien aus überwachten Verzeichnissen ( Job.start_when_directory_changed() oder < start_when_directory_changed> ) zum Zeitpunkt des Starts der Task. Nur die Verzeichnisse, für die ein Regulärer Ausdruck (regex) angegeben ist, werden berücksichtigt. Die Pfade werden aus dem Verzeichnispfad, wie er in Job.start_when_directory_changed() oder < start_when_directory_changed> angegeben ist und dem Dateinamen zusammengesetzt. Nicht-API-Jobs ( <process> und <script language="shell"> ) steht der Inhalt von Task.trigger_files in der Umgebungsvariablen SCHEDULER_TASK_TRIGGER_FILES zur Verfügung. Siehe Job.start_when_directory_changed() , Task.changed_directories() . Software- and Organisations-Service GmbH März 2015 Javascript API 184 Rückgabe: string Die Dateipfade durch Semikolon getrennt. "" sonst 3.21.23 try_hold_lock Versucht, eine Sperre zu halten Syntax: boolean spooler_task. try_hold_lock ( string lock_path ) Beispiel: function spooler_process() { var result = false; if( spooler_task.try_hold_lock( "Georgien" ) && spooler_task.try_hold_lock_non_exlusive( "Venezuela" ) ) { // Task is holding the two locks. Insert processing code here. result = ... } else { spooler_task.call_me_again_when_locks_available(); } return result; } try_lock_hold() versucht, die angegebene Sperre ( Lock ) zu halten, und kann aufgerufen werden • • in spooler_open() : die Sperre wird für die Task gehalten und erst nach Beendigung freigegeben, in spooler_process() : die Sperre wird für nur für diesen Jobschritt gehalten und nach dessen Beendigung freigegeben, also beim Verlassen von spooler_process(). Wenn die Sperre nicht verfügbar ist, ein Aufruf also false liefert, kann entweder • • • mit Task.call_me_again_when_locks_available() der JobScheduler veranlasst werden, den Aufruf spooler_open() bzw. spooler_process() zu wiederholen, sobald die Sperren verfügbar sind, oder spooler_open() bzw. spooler_process() ohne vorgenannten Aufruf mit false beendet werden, mit der üblichen Wirkung, aber nicht mit true beendet werden, das wird als Fehler angesehen und führt zur Warnung SCHEDULER-469 . Siehe auch <lock.use> . Rückgabe: boolean true, wenn die Task die Sperre hält. Software- and Organisations-Service GmbH März 2015 Javascript API 185 3.21.24 try_hold_lock_non_exclusive Versucht, eine Sperre nicht-exklusiv zu halten Syntax: boolean spooler_task. try_hold_lock_non_exclusive ( string lock_path ) Es gelten dieselben Bedingungen wie für Task.try_hold_lock() . Siehe auch <lock.use exclusive="no"> . Rückgabe: boolean true, wenn die Task die Sperre hält. 3.21.25 web_service Der Webdienst, der der Task zugeordnet ist Syntax: Web_service spooler_task. web_service Wenn die Task keinem Webdienst zugeordnet ist, liefert der Aufruf eine Exception. Siehe auch Task.web_service_or_null . Rückgabe: Web_service 3.21.26 web_service_or_null Der Webdienst, der der Task zugeordnet ist, oder null. Syntax: Web_service spooler_task. web_service_or_null Siehe auch Task.web_service . Rückgabe: Web_service 3.22 Variable_set - Variablenmenge zur Übergabe von Parametern Variablenmengen werden gebraucht für die Scheduler-weiten Variablen und Task-Parameter. Eine neue Variablenmenge wird mit Spooler.create_variable_set() angelegt. Die Großschreibung der Variablennamen ist nicht relevant. Software- and Organisations-Service GmbH März 2015 Javascript API 186 In COM (JavaScript, VBScript, Perl) ist ein Variablenwert ein Variant. Weil die Variablen in der Regel in die Scheduler-Datenbank geschrieben werden, sollten nur nach String konvertierbare Variant-Werte verwendet werden (d.h. es sollten keine Objekte verwendet werden). In Java ist ein Variablenwert ein String. Wenn die Variable mit COM als Variant gesetzt worden ist, wird beim Lesen der nach String konvertierte Wert zurückgegeben. Null und Empty werden als null zurückgeliefert. Wenn ein Variant-Wert nicht konvertierbar ist, wird eine Exception ausgelöst. Siehe auch <params> und <sos.spooler.variable_set> . 3.22.1 count Anzahl der Variablen Syntax: int variable_set. count 3.22.2 merge Mischt eine andere Variablenmenge ein Syntax: variable_set. merge ( Variable_set vs ) Gleichnamige Variablen werden überschrieben. 3.22.3 names Alle Variablennamen durch Semikolon getrennt Syntax: string variable_set. names Beispiel: var variable_set = spooler.create_variable_set(); spooler_log.info( '"' + variable_set.names + '"' ); // ==> "" variable_set( "variable_1" ) = "edno"; variable_set( "variable_2" ) = "dwa"; spooler_log.info( '"' + variable_set.names + '"' ); "variable_1;variable_2" // ==> var names = variable_set.names.split( ";" ); for( var i in names ) spooler_log.info( names[i] + "=" + variable_set( names[i] ) ); Rückgabe: string Die Namen aller Variablen durch Semikolon getrennt. Software- and Organisations-Service GmbH März 2015 Javascript API 187 3.22.4 set_var Setzt eine Variable Syntax: variable_set. set_var ( string name, var value ) 3.22.5 substitute Ersetzt $-Variablen in einem String Syntax: string variable_set. substitute ( string sustitution_string ) Beispiel: subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) ); Im Beispiel wird Subprocess.env verwendet. Referenzen der Form $ name und ${ name } im String werden durch Variablenwerte ersetzt, siehe auch . Rückgabe: string Die Zeichenkette mit den ersetzten $-Variablen 3.22.6 value Eine Variable Syntax: variable_set. value ( string name ) = var value Syntax: var variable_set. value ( string name ) Parameter: name value empty, wenn die Variable nicht vorhanden ist. Rückgabe: var empty, wenn die Variable nicht vorhanden ist. 3.22.7 xml Variable_set als XML-Dokument Syntax: variable_set. xml = string Software- and Organisations-Service GmbH März 2015 Javascript API 188 Syntax: string variable_set. xml Beispiel: var variable_set = spooler.create_variable_set(); spooler_log.info( variable_set.xml ); // Liefert <?xml version='1.0'?>< sos.spooler.variable_set/> variable_set.xml= "<?xml version='1.0'?>" + "<params>" + "<param name='nachname' value='Meier'/>" + "<param name='vorname' value='Hans'/>" + "</params>"; spooler_log.info( variable_set.xml ); spooler_log.info( "nachname=" + variable_set.value( "nachname" ) ); spooler_log.info( "vorname =" + variable_set.value( "vorname" ) ); Siehe <sos.spooler.variable_set> , <params> . Parameter: XML-Dokument als String. Liefert < sos.spooler.variable_set> . Beim Setzen wird der Name des Wurzelelements nicht beachtet, <params> oder <sos.spooler.variable_set> kann übergeben werden. Rückgabe: string XML-Dokument als String. Liefert <sos.spooler.variable_set> . Beim Setzen wird der Name des Wurzelelements nicht beachtet, <params> oder <sos.spooler.variable_set> kann übergeben werden. 3.23 Web_service Siehe auch <web_service> 3.23.1 forward_xslt_stylesheet_path Pfad des XSLT-Stylesheets fürs Forwarding Syntax: string web_service. forward_xslt_stylesheet_path Siehe auch <web_service forward_xslt_stylesheet=""> 3.23.2 name Name des Web-Dienstes im Scheduler Syntax: string web_service. name Software- and Organisations-Service GmbH März 2015 Javascript API 189 Siehe auch <web_service name=""> 3.23.3 params Parameter zur freien Verwendung Syntax: Variable_set web_service. params Die Parameter des Web-Services können mit <web_service> eingestellt werden. Rückgabe: Variable_set 3.24 Web_service_operation Siehe auch <web_service> 3.24.1 peer_hostname Hostname der Gegenstelle Syntax: string web_service_operation. peer_hostname Rückgabe: string "", wenn der Name nicht ermittelt werden kann. 3.24.2 peer_ip IP-Adresse der Gegenstelle Syntax: string web_service_operation. peer_ip 3.24.3 request Anforderung Syntax: Web_service_request web_service_operation. request Software- and Organisations-Service GmbH März 2015 Javascript API 190 Rückgabe: Web_service_request 3.24.4 response Antwort Syntax: Web_service_response web_service_operation. response Rückgabe: Web_service_response 3.24.5 web_service Syntax: Web_service web_service_operation. web_service Rückgabe: Web_service 3.25 Web_service_request Siehe Web_service_operation . 3.25.1 binary_content Nutzdaten als Byte-Array (nur Java) Syntax: web_service_request. binary_content Die Eigenschaft steht nur unter Java zur Verfügung. Wie der binäre Inhalt zu interpretieren ist, sollte der Client in im Header-Feld Content-Type mitgeteilt haben (siehe HTTP/1.1 14.17 Content-Type und Web_service_request.charset_name ). 3.25.2 charset_name Zeichencodierung Syntax: string web_service_request. charset_name Software- and Organisations-Service GmbH März 2015 Javascript API 191 Beispiel: var request = spooler_task.order.web_service_operation.request; spooler_log.info( request.header( "Content-Type" ) ); spooler_log.info( request.content_type ); spooler_log.info( request.charset_name ); // ==> text/xml; charset=utf-8 // ==> text/xml // ==> utf-8 Liefert den Parameter charset= aus dem Kopfeintrag Content-Type:. 3.25.3 content_type Content-Type (ohne Parameter) Syntax: string web_service_request. content_type Liefert den Kopfeintrag Content-Type: ohne Parameter, z.B. "text/plain". 3.25.4 header Eintrag im Kopf Syntax: string web_service_request. header ( string name ) Beispiel: spooler_log.info( "Content-Type: " + spooler_task.order.web_service_operation.request.header( "Content-Type" ) ); Parameter: name Die Großschreibung spielt keine Rolle. Rückgabe: string Für einen unbekannten Eintrag wird "" geliefert 3.25.5 string_content Nutzdaten als Text Syntax: string web_service_request. string_content Die Zeichen-Codierung wird dem Parameter charset aus headers( "Content-Type" ) entnommen (siehe HTTP/1.1 14.17 Content-Type). Fehlt der Parameter, wird ISO-8859-1 angenommen. Software- and Organisations-Service GmbH März 2015 Javascript API 192 Folgende Zeichen-Codierungen (Charset) werden erkannt: • • ISO-8859-1 UTF-8 (nur Windows und beschränkt auf den Zeichenvorrat von ISO-8859-1) Siehe auch Web_service_request.binary_content . 3.25.6 url Uniform Resource Locator Syntax: string web_service_request. url url = "http://" + header( "Host" ) + url_pfad 3.26 Web_service_response Die Eigenschaft binary_content steht nur unter Java zur Verfügung. Siehe auch <web_service> 3.26.1 charset_name Zeichencodierung Syntax: string web_service_response. charset_name Beispiel: var request = spooler_task.order.web_service_operation.request; spooler_log.info( request.header( "Content-Type" ) ); spooler_log.info( request.content_type ); spooler_log.info( request.charset_name ); // ==> text/xml; charset=utf-8 // ==> text/xml // ==> utf-8 Zugriff auf den Parameter charset= aus dem Kopfeintrag Content-Type:. 3.26.2 content_type Content-Type (ohne Parameter) Syntax: string web_service_response. content_type Zugriff auf den Kopfeintrag Content-Type: ohne dazugehörige Parameter (z.B. charset=). Software- and Organisations-Service GmbH März 2015 Javascript API 193 3.26.3 header Eintrag im Kopf Syntax: web_service_response. header ( string name ) = string value Syntax: string web_service_response. header ( string name ) Beispiel: spooler_log.info( "Content-Type: " + spooler_task.order.web_service_operation.header( "Content-Type" ) ); Parameter: value Für einen umbekannten Eintrag wird "" verwendet name Die Großschreibung spielt keine Rolle. Rückgabe: string Für einen umbekannten Eintrag wird "" verwendet 3.26.4 send Antwort senden Syntax: web_service_response. send () 3.26.5 status_code HTTP-Status-Code Syntax: web_service_response. status_code = int Voreingestellt ist 200 (OK). 3.26.6 string_content Nutzdaten als Text Syntax: web_service_response. string_content = string text Software- and Organisations-Service GmbH März 2015 Javascript API 194 Beispiel: var response = spooler_task.order.web_service_operation.response; response.content_type = "text/plain"; response.charset_name = "iso-8859-1"; response.string_content = "This is the answer"; response.send(); Zuvor muss header( "Content-Type" ) mit dem Parameter charset gesetzt sein, zum Beispiel header( "Content-Type" ) = "text/plain; charset=iso-8859-1"; Der Text wird nach dem Parameter charset codiert. Fehlt der Parameter, wird ISO-8859-1 angenommen. Zu den hier zulässigen Zeichen-Codierungen (Charset) siehe Web_service_request.string_content Siehe Web_service_response.charset_name . 3.27 Xslt_stylesheet Mit einem XSLT-Stylesheet wird die Konvertierung eines XML-Dokuments in ein anderes beschrieben. Der XSLT-Prozessor ist mit libxslt implementiert. 3.27.1 apply_xml Wendet das Stylesheet auf ein XML-Dokument an. Syntax: string x. apply_xml ( string xml ) 3.27.2 close Gibt die Ressourcen des Stylesheets frei Syntax: x. close () 3.27.3 load_file Lädt das Stylesheet aus einer XML-Datei Syntax: x. load_file ( string path ) Software- and Organisations-Service GmbH März 2015 Javascript API 195 3.27.4 load_xml Lädt das Stylesheet aus einem XML-Dokument Syntax: x. load_xml ( string xml ) Software- and Organisations-Service GmbH März 2015 Perl API 196 4 Perl API Für Perl stehen die folgenden Klassen zur Verfügung: 4.1 Error 4.1.1 code Der Fehlercode Syntax: BSTR $error-> code 4.1.2 is_error true, wenn ein Fehler vorliegt Syntax: Boolean $error-> is_error 4.1.3 text Fehlertext (mit Fehlercode) Syntax: BSTR $error-> text 4.2 Job Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen. 4.2.1 clear_delay_after_error Nimmt alle delay_after_error zurück Syntax: $spooler_job-> clear_delay_after_error( 4.2.2 clear_when_directory_changed Nimmt alle start_when_directory_changed() zurück Software- and Organisations-Service GmbH März 2015 Perl API 197 Syntax: $spooler_job-> clear_when_directory_changed( 4.2.3 configuration_directory Verzeichnis der Konfigurationsdatei des Jobs Syntax: BSTR $spooler_job-> configuration_directory "", wenn der Job nicht aus einem Konfigurationsverzeichnis stammt. 4.2.4 delay_after_error Verzögert erneuten Jobstart nach Fehler Syntax: $spooler_job->LetProperty( 'delay_after_error', int error_steps, double|int|BSTR seconds_or_hhmm_ss ) Beispiel: $spooler_job->LetProperty( 'delay_after_error', 2, 10 ); aufeinanderfolgenden Fehler um 10 Sekunden verzögern $spooler_job->LetProperty( 'delay_after_error', 5, '00:01' ); aufeinanderfolgenden Fehler um eine Minute verzögern $spooler_job->LetProperty( 'delay_after_error', 10, '24:00' ); aufeinanderfolgenden Fehler um einen Tag verzögern $spooler_job->LetProperty( 'delay_after_error', 20, 'STOP' ); aufeinanderfolgenden Fehler den Job stoppen # Ab dem 2. # Ab dem 5. # Ab dem 10. # Beim 20. Nach einem Fehler wiederholt der JobScheduler den Job sofort. Nach dem zweiten bis zum vierten Fehler verzögert der JobScheduler den Job um 10 Sekunden, nach dem fünften bis zum neunten Fehler um eine Minute, nach dem zehnten bis zum neunzehnten um 24 Stunden, nach dem zwanzigsten aufeinanderfolgenden Fehler schließlich stoppt der Job. Für verschiedene Anzahlen aufeinanderfolgender Fehler kann eine Verzögerung eingestellt werden. Der Job wird dann nicht gestoppt, sondern die angegebene Zeit verzögert und erneut gestartet. Der Aufruf kann für verschiedene Anzahlen wiederholt werden. Man wird jeweils eine längere Verzögerung angeben. Wenn Sie den Parameter seconds_or_hhmm_ss als String übergeben, können Sie auch "STOP" angeben. Der Job stoppt, wenn er die angegebene Anzahl aufeinanderfolgende Fehler erreicht hat. Eine gute Stelle für die Aufrufe ist spooler_init() . Siehe <delay_after_error> . Parameter: error_steps Anzahl der aufeinanderfolgenden Jobfehler, ab der die Verzögerung gilt Software- and Organisations-Service GmbH März 2015 Perl API 198 seconds_or_hhmm_ss Frist, nach der der Job wiederholt wird 4.2.5 delay_order_after_setback Stellt Aufträge nach Fehler zurück Syntax: $spooler_job->LetProperty( 'delay_order_after_setback', int setback_count, double|int| BSTR seconds_or_hhmm_ss ) Beispiel: $spooler_job->LetProperty( 'delay_order_after_setback', 1 , 60 ); # 1. bis 2. aufeinderfolgende Rückstellung desselben Auftrags: # Auftrag um 60s verzögern. $spooler_job->LetProperty( 'delay_order_after_setback', 3 , '01:00' ); # Ab 3. aufeinanderfolgender Rückstellung desselben Auftrags: # Auftrag um eine Stunde verzögern. $spooler_job->LetProperty( 'max_order_setbacks', 5 ); # Die 5. Rückstellung versetzt den Auftrag in den Fehlerzustand Ein Auftragsjob kann einen Auftrag, den er gerade ausführt, mit Order.setback() zurückstellen. Er wird dann an eine hintere Stelle der Auftragswarteschlange des Jobs eingereiht und kommt nach der eingestellten Zeit erneut zur Ausführung. Die aufeinanderfolgenden Rückstellungen eines Auftrags werden gezählt. Mit delay_order_after_setback können Sie verschiedene Fristen für wiederholte Rückstellungen festlegen. Siehe <delay_order_after_setback> , Order.setback() , Job.max_order_setbacks , Job_chain.add_job() , Job.delay_after_error() . Parameter: setback_coun t Für die 1., 2. usw. aufeinanderfolgende Rückstellung desselben Auftrags können verschiedene Fristen eingestellt werden. seconds_or_h hmm_ss Frist für die Rückstellung. Nach Ablauf der Frist kommt der Auftrag erneut in diesem Job zur Ausführung. 4.2.6 folder_path Pfad des Ordners, in dem der Job sich befindet. Syntax: BSTR $spooler_job-> folder_path "", wenn der Job nicht aus dem lokalen Konfigurationsverzeichnis ( <config configuration_directory=""> ) stammt. Liefert den Pfad des Jobs relativ zum Live-Directory. Der Pfad beginnt mit einem "/", alle Bestandteile eines Pfads sind durch "/" getrennt Beispiele: Software- and Organisations-Service GmbH März 2015 Perl API • • • 199 für einen Job c:\scheduler\config\live\somewhere\excel\sample.job.xml wird "/somewhere/excel" zurückgeliefert für einen Job c:\scheduler\config\live\sample.xml wird "/" zurückgeliefert für einen Job außerhalb des Live-Verzeichnisses wird "" (Leerstring) zurückgeliefert 4.2.7 include_path Wert der Option -include-path= Syntax: BSTR $spooler_job-> include_path Siehe -include-path . 4.2.8 max_order_setbacks Begrenzt die Anzahl der Rückstellungen eines Auftrags Syntax: $spooler_job->LetProperty( 'max_order_setbacks', int ) Wenn derselbe Auftrag mehr als hier angegeben aufeinderfolgend zurückgesetzt worden ist (s. Order.setback() ), gerät er in den Fehlerzustand (s. Job_chain_node.error_state ). Siehe Job.delay_order_after_setback und <delay_order_after_setback is_maximum="yes"> . 4.2.9 name Pfad des Jobs ohne beginnenden Schrägstrich Syntax: BSTR $spooler_job-> name Siehe <job name=""> . 4.2.10 order_queue Auftragswarteschlange des Jobs Syntax: Order_queue $spooler_job-> order_queue Beispiel: $spooler_log->info( 'order=' . ( defined $spooler_job->order_queue ? "yes" : "no" ) ); Ein Auftragsjob ( <job order="yes"> ) hat eine Auftragswarteschlange. Die Auftragswarteschlange wird über eine Jobkette, in der der Job eingetragen ist, gefüllt. Software- and Organisations-Service GmbH März 2015 Perl API 200 Siehe Job_chain.add_order() , Job_chain.add_job() . Rückgabe: Order_queue null, wenn der Job keine Auftragswarteschlange hat (bei <job order="no"> ). 4.2.11 process_class Die Prozessklasse Syntax: Process_class $spooler_job-> process_class Siehe <job process_class=""> . Rückgabe: Process_class 4.2.12 remove Entfernt den Job Syntax: $spooler_job-> remove( Der Job wird gestoppt, d.h. laufende Tasks werden beendet, keine neuen werden gestartet. Sobald keine Task mehr läuft, wird der Job entfernt. Tasks in der Warteschlange werden ignoriert. Wenn keine Task des Jobs läuft, entfernt remove() den Job sofort. Auftragsjobs ( <job order="yes"> ) können nicht entfernt werden. Siehe <modify_job cmd="remove"> . 4.2.13 setback_max Wie oft kann ein Auftrag zurückgestellt werden? Syntax: $spooler_job->LetProperty( 'setback_max', int ) Syntax: int $spooler_job-> setback_max Siehe <delay_order_after_setback is_maximum="yes"> . Software- and Organisations-Service GmbH März 2015 Perl API 201 4.2.14 start Erzeugt eine neue Task und reiht sie in die Task-Warteschlange ein Syntax: Task $spooler_job-> start( Variable_set variables (optional) ) Beispiel: $spooler->job( 'job_a' )->start(); my $parameters = $spooler->create_variable_set(); $parameters->LetProperty( 'var', 'my_parameter', 'my_value' ); $parameters->LetProperty( 'var', 'other_parameter', 'other_value' ); $spooler->job( 'job_a' )->start( $parameters ); Die Parameter stehen der Task mit Task.params zur Verfügung. Zwei besondere Parameter können angegeben werden: "spooler_task gibt der Task einen Namen, der in den Statusanzeigen erscheint. _name" "spooler_star gibt eine Zeit in Sekunden (reelle Zahl) an, nach deren Ablauf die Task zu starten ist. Dabei wird t_after" <run_time> nicht beachtet. Siehe Spooler.create_variable_set() , Spooler.job , Variable_set.value . Rückgabe: Task 4.2.15 start_when_directory_changed Überwacht ein Verzeichnis und lässt bei Änderung eine Task starten Syntax: $spooler_job-> start_when_directory_changed( BSTR directory_path, BSTR filename_pattern (optional) ) Beispiel: $spooler_job->start_when_directory_changed( 'c:/tmp' ); # Nur Dateien beachten, deren Name nicht auf "~" endet. $spooler_job->start_when_directory_changed( 'c:/tmp', '^.*[^~]$' ); Wenn keine Task des Jobs läuft und sich das Verzeichnis geändert hat (eine Datei hinzukommt, umbenannt oder entfernt wird), startet der JobScheduler innerhalb der <run_time> eine Task. Um mehrere Verzeichnisse zu überwachen, kann der Aufruf wiederholt werden. Ein Aufruf mit einem bereits ange gebenen Verzeichnis erneuert die Überwachung. Der Aufruf kann im Scheduler-Skript oder in spooler_init() des Jobs codiert werden. Im letzteren Fall muss der Job zu Beginn einmal starten, damit der Aufruf wirksam wird. Verwenden Sie dazu die Einstellung <run_time once="yes"> . Der Job sollte mit <run_time repeat=""> periodisch gestartet und mit <delay_after_error> versehen werden. Software- and Organisations-Service GmbH März 2015 Perl API 202 Dieselbe Einstellung können Sie auch in der XML-Konfiguration mit <start_when_directory_changed> vornehmen. Siehe auch JobScheduler Dokumentation. Parameter: directory_path Pfad des zu überwachenden Verzeichnisses filename_patter Beschränkt die Überwachung auf Dateinamen, die dem Regulären Ausdruck entsprechen. n 4.2.16 state_text Freier Text für den Zustand des Jobs Syntax: $spooler_job->LetProperty( 'state_text', BSTR ) Beispiel: $spooler_job->LetProperty( 'state_text', 'Step C succeeded' ); Der Text wird in der HTML-Oberfläche gezeigt. Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen. 4.2.17 title Titel des Jobs Syntax: BSTR $spooler_job-> title Beispiel: $spooler_log->info( 'Job title=' . $spooler_job->title ); Siehe <job title=""> . 4.2.18 wake Veranlasst den Start einer Task Syntax: $spooler_job-> wake( Wenn der Job im Zustand pending oder stopped ist (also keine Task läuft), startet der Aufruf eine Task. Siehe Job.start() . Software- and Organisations-Service GmbH März 2015 Perl API 203 4.3 Job_chain - Jobkette zur Auftragsverarbeitung Eine Jobkette (Job_chain) ist eine Kette von Jobs (Jobkettenknoten oder Stellen). Diese Kette wird von Aufträgen ( Order ) durchlaufen. Jeder Stelle in der Jobkette ist ein Zustand und ein Job zugeordnet. Wenn ein Auftrag der Jobkette hinzugefügt wird, setzt der JobScheduler ihn an die seinem Zustand entsprechende Stelle. Der dieser Stelle zugeordnete Job führt den Auftrag aus. Jede Stelle hat außerdem einen Folgezustand und einen Fehlerzustand. Nach der Verarbeitung eines Auftrags durch einen Jobschritt ändert der JobScheduler den Zustand des Auftrags. Wenn der Jobschritt (spooler_process) true liefert, stellt der JobScheduler den Folgezustand, sonst den Fehlerzustand ein. Der Auftrag rutscht damit an eine andere Stelle der Jobkette, die dem neuen Zustand zugeordnet ist. Das gilt nicht, wenn der Zustand während der Ausführung mit Order.state verändert worden ist. Sie erzeugen eine Jobkette mit Spooler.create_job_chain() , füllen sie mit Job_chain.add_job() und Job_chain.add_end_state() und machen sie schließlich mit Spooler.add_job_chain() bekannt. Jeder Knoten ist eindeutig einem Zustand zugeordnet. Für jeden Zustand muss genau einmal Job_chain.add_job() oder Job_chain.add_end_state() aufgerufen werden. Beispiel: my $my_job_chain = $spooler->create_job_chain(); $my_job_chain->LetProperty( 'name', 'Jobkette' ); $my_job_chain->add_job( 'job_100', 100, 200, 999 ); $my_job_chain->add_job( 'job_200', 200, 1000, 999 ); $my_job_chain->add_end_state( 999 ); $my_job_chain->add_end_state( 1000 ); $spooler->add_job_chain( $my_job_chain ); 4.3.1 add_end_state Fügt der Jobkette einen Endknoten hinzu Syntax: $job_chain-> add_end_state( Variant state ) Diesem Knoten ist kein Job zugeordnet. Ein Auftrag, der einen Endknoten erreicht, hat die Jobkette durchlaufen und wird vom JobScheduler aus ihr entfernt. 4.3.2 add_job Erweitert die Jobkette um einen Job Syntax: $job_chain-> add_job( BSTR job_name, Variant input_state, Variant output_state, Variant error_state ) Software- and Organisations-Service GmbH März 2015 Perl API 204 4.3.3 add_or_replace_order Gibt einen Auftrag in die Jobkette und ersetzt ggfs. einen mit gleicher Kennung Syntax: $job_chain-> add_or_replace_order( Order order ) Hat die Jobkette bereits einen Auftrag mit gleicher Kennung, dann wird dieser ersetzt. Genauer: Er wird aus der Jobkette entfernt, und der neue Auftrag wird hinzugefügt. Solange eine Task den vorhandenen Auftrag ausführt, sind im JobScheduler zwei Aufträge mit gleicher Kennung vorhanden. Allerdings ist der vorhandene Auftrag aus der Jobkette und aus der Datenbank bereits entfernt. Er ist nur noch für die Task nutzbar und verschwindet nach der Ausführung. In diesem Fall wartet der JobScheduler die Ausführung des neuen Auftrags ab, bis die Ausführung des alten Auftrags beendet ist. Siehe Job_chain.add_order() und Order.remove_from_job_chain() 4.3.4 add_order Gibt einen Auftrag in die Jobkette Syntax: Order $job_chain-> add_order( Order |BSTR order_or_payload ) Wenn der Auftrag in einer anderen Jobkette enthalten ist, entfernt der JobScheduler ihn daraus. Der Auftrag wird in die Auftragswarteschlange des Jobs, der seinem Zustand entspricht, gemäß seiner Priorität eingeordnet. Die Jobkette mit muss <job_chain> oder Spooler.add_job_chain() dem JobScheduler bekannt gemacht worden sein. Wenn die Jobkette bereits einen Auftrag mit gleicher Order.id enthält, wird eine Exception mit Fehlercode SCHEDULER-186 geliefert. Siehe aber Job_chain.add_or_replace_order() . Rückgabe: Order 4.3.5 name Name der Jobkette Syntax: $job_chain->LetProperty( 'name', BSTR ) Syntax: BSTR $job_chain-> name Beispiel: my $job_chain = $spooler->create_job_chain(); $job_chain->LetProperty( 'name', 'Jobkette' ); Software- and Organisations-Service GmbH März 2015 Perl API 205 4.3.6 node Der Jobkettenknoten zum angegebenen Zustand Syntax: Job_chain_node $job_chain-> node( Variant state ) Rückgabe: Job_chain_node 4.3.7 order_count Anzahl der Aufträge in der Jobkette Syntax: int $job_chain-> order_count 4.3.8 order_queue = node(state).job().order_queue() Syntax: Order_queue $job_chain-> order_queue( Variant state ) Liefert die Auftragswarteschlange des Jobs, der dem angegebenen Zustand zugeordnet ist. Rückgabe: Order_queue 4.3.9 orders_recoverable Syntax: $job_chain->LetProperty( 'orders_recoverable', Boolean ) Syntax: Boolean $job_chain-> orders_recoverable Siehe <job_chain orders_recoverable=""> . 4.3.10 remove Entfernt die Jobkette Syntax: $job_chain-> remove( Wenn gerade Aufträge der Jobkette verarbeitet werden (in spooler_process() ), dann entfernt der JobScheduler die Jobkette, sobald der letzte Auftrag verarbeitet worden ist. Software- and Organisations-Service GmbH März 2015 Perl API 206 Die Aufträge bleiben in der Datenbank erhalten. Wenn später eine Jobkette mit gleichen Namen hinzugefügt wird ( Spooler.add_job_chain() ), dann lädt der JobScheduler diese Aufträge erneut. Die Zustände der Aufträge müssen in der erneuerten Jobkette vorhanden sein. 4.3.11 title Syntax: $job_chain->LetProperty( 'title', BSTR ) Syntax: BSTR $job_chain-> title Siehe <job_chain title=""> . 4.4 Job_chain_node Ein Jobkettenknoten beschreibt eine Stelle in einer Jobkette ( Job_chain ). Einem Jobkettenknoten sind zugeordnet: ein Zustand, ein Job, ein Folgezustand und ein Fehlerzustand. Ein Jobkettenknoten wird mit Job_chain.add_job() oder mit Job_chain.add_end_state() erzeugt. 4.4.1 action Jobkettenknoten stoppen oder überspringen Syntax: $node->LetProperty( 'action', BSTR ) Syntax: BSTR $node-> action Beispiel: my $job_chain_node = $spooler->job_chain( 'my_job_chain' )->node( 100 ); $job_chain_node->LetProperty( 'action', 'next_state' ); Für eine verteilte Jobkette nicht möglich. Mögliche Angaben sind action="process" Das ist die Voreinstellung. Aufträge werden ausgeführt. action="stop" Aufträge werden nicht ausgeführt, sie sammeln sich in der Auftragswarteschlange an. action="next_state" Aufträge werden sofort dem mit next_state bestimmten Folgeknoten übergeben. Siehe auch <job_chain_node.modify action=""> . In Java sind für Zeichenketten Konstanten definiert: Software- and Organisations-Service GmbH März 2015 Perl API • • • 207 Job_chain_node.ACTION_PROCESS Job_chain_node.ACTION_STOP Job_chain_node.ACTION_NEXT_STATE 4.4.2 error_node Nächster Knoten in der Jobkette für den Fehlerfall Syntax: Job_chain_node $node-> error_node Beispiel: my $job_chain_node = $spooler->job_chain( 'Jobkette' )->node( 100 ); $spooler_log->debug( 'error state=' . $job_chain_node->error_node->state ); # "state=999" Rückgabe: Job_chain_node null, wenn es keinen Fehler-Knoten gibt (Fehlerzustand ist nicht angegeben) 4.4.3 error_state Zustand in der Jobkette für den Fehlerfall Syntax: Variant $node-> error_state Beispiel: my $job_chain_node = $spooler->job_chain( 'Jobkette' )->node( 100 ); $spooler_log->debug( 'error state=' . $job_chain_node->error_node->state ); "error state=999" # 4.4.4 job Job, der dem Knoten zugeordnet ist Syntax: Job $node-> job Beispiel: my $job_chain_node = $spooler->job_chain( 'Jobkette' )->node( 100 ); $spooler_log->debug( 'job=' . $job_chain_node->job->name ); "job=job_100" # Rückgabe: Job Software- and Organisations-Service GmbH März 2015 Perl API 208 4.4.5 next_node Syntax: Job_chain_node $node-> next_node Rückgabe: Job_chain_node 4.4.6 next_state Zustand in der Jobkette für den Erfolgsfall Syntax: Variant $node-> next_state Beispiel: my $job_chain_node = $spooler->job_chain( 'Jobkette' )->node( 100 ); $spooler_log->debug( 'next_state=' . $job_chain_node->next_state ); "state=200" # 4.4.7 state Zustand, für den dieser Jobkettenknoten gilt Syntax: Variant $node-> state Beispiel: my $job_chain_node = $spooler->job_chain( 'Jobkette' )->node( 100 ); $spooler_log->info( 'state=' . $job_chain_node->state ); "state=100" # 4.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript Der Methoden eines Jobs werden in folgender Reihenfolge aufgerufen. spooler_init() spooler_open() spooler_process() spooler_process() ... spooler_close() spooler_on_success() oder spooler_on_error() spooler_exit() Software- and Organisations-Service GmbH März 2015 Perl API 209 Keine dieser Methoden muss implementiert werden. In der Regel wird wenigstens spooler_process() implementiert. Ein Fehler beim Ausführen des Job-Skripts während des Ladens oder in spooler_init() führt zum Aufruf von spooler_on_error() . Der Job wird gestoppt. spooler_exit() wird gerufen (obwohl spooler_init() nicht gerufen worden ist!) und das Skript entladen. spooler_on_error() muss also auch mit Fehlern umgehen, die beim Laden oder in spooler_init() auftreten. spooler_exit() wird gerufen, auch wenn spooler_init() nicht gerufen worden ist. 4.5.1 spooler Das allgemeine Objekt des Schedulers Syntax: Spooler spooler Beispiel: $spooler_log->debug( 'The working directory of the JobScheduler is ' . $spooler-> directory ); Rückgabe: Spooler 4.5.2 spooler_close Task-Ende Syntax: spooler_close( Wird am Ende eines Joblaufs gerufen. Gegenstück zu spooler_open() . 4.5.3 spooler_exit Destruktor Syntax: spooler_exit( Wird als allerletzte Methode gerufen, bevor das Skript entladen wird. Hier kann z.B. eine Datenbank-Verbindung geschlossen werden. 4.5.4 spooler_init Initialisierung Syntax: Boolean spooler_init( Software- and Organisations-Service GmbH März 2015 Perl API 210 Der JobScheduler ruft diese Methode nach dem Konstruktor und vor spooler_open() genau einmal auf. Gegenstück ist spooler_exit() . Die Methode ist geeignet, um die Task zu initialisieren (z.B. um eine Datenbank-Verbindung aufzubauen). Rückgabe: Boolean false beendet die Task. Der JobScheduler setzt mit spooler_exit() fort. Wenn die Task einen Auftrag verarbeiten soll, wird die Task mit Fehler beendet, was den Job stoppt (wenn nicht Job.delay_after_error gesetzt ist). 4.5.5 spooler_job Das Objekt des Jobs Syntax: Job spooler_job Beispiel: $spooler_log->info( 'The name of this job is ' . $spooler_job->name ); Rückgabe: Job 4.5.6 spooler_log Zum Protokollieren Syntax: Log spooler_log Beispiel: $spooler_log->info( 'Something has happened' ); Rückgabe: Log 4.5.7 spooler_on_error Bei Task-Ende im Fehlerfall Syntax: spooler_on_error( Wird als letzte Funktion eines Joblaufs gerufen, wenn ein Fehler aufgetreten ist (nach spooler_close() und vor spooler_exit() ). Software- and Organisations-Service GmbH März 2015 Perl API 211 4.5.8 spooler_on_success Bei Task-Ende im Erfolgsfall Syntax: spooler_on_success( Wird nach spooler_close() , vor spooler_exit() aufgerufen, wenn kein Fehler aufgetreten ist. 4.5.9 spooler_open Task-Beginn Syntax: Boolean spooler_open( Wird zu Beginn einer Task gerufen. Die Methode wird direkt nach spooler_init() gerufen, es gibt derzeit keinen Unterschied. Gegenstück ist spooler_close() . 4.5.10 spooler_process Jobschritt oder Ausführung eines Auftrags Syntax: Boolean spooler_process( Führt einen Jobschritt aus. Ein Auftragsjob erhält in Task.order den auszuführenden Auftrag. Die Default-Implementierung gibt false zurück. Ein Auftragsjob versetzt aber einen Auftrag in den Folgezustand. Rückgabe: Boolean Bei <job order="no"> : false beendet den Joblauf. Bei <job order="yes"> : false versetzt den Auftrag in den Fehlerzustand (s. Job_chain_node und < job_chain_node> ). Das gilt nicht, wenn der Zustand während der Ausführung mit Order.state verändert worden ist. 4.5.11 spooler_task Das Objekt der Task Syntax: Task spooler_task Beispiel: $spooler_log->info( 'The task id is ' . $spooler_task->id ); Software- and Organisations-Service GmbH März 2015 Perl API 212 Rückgabe: Task 4.6 Lock Siehe auch <lock name=""> . Beispiel: my $locks = $spooler->locks; my $lock = $locks->create_lock(); $lock->LetProperty( 'name', 'my_lock' ); $locks->add_lock( $lock ); 4.6.1 max_non_exclusive Begrenzung der nicht-exklusiven Belegungen Syntax: $lock->LetProperty( 'max_non_exclusive', int ) Syntax: int $lock-> max_non_exclusive Die Voreinstellung ist unbegrenzt (231-1), es können also mit <lock.use exclusive="no"> beliebig viele nicht-exklusive Tasks gestartet werden (aber nur eine exklusive). Die Zahl kann nicht kleiner sein als die Zahl der nicht-exklusiven Belegungen. Siehe auch <lock max_non_exclusive=""> . 4.6.2 name Name der Sperre Syntax: $lock->LetProperty( 'name', BSTR ) Syntax: BSTR $lock-> name Der Name kann nur einmal gesetzt und nicht geändert werden. Siehe auch <lock name=""> . 4.6.3 remove Entfernt die Sperre Syntax: $lock-> remove( Software- and Organisations-Service GmbH März 2015 Perl API 213 Beispiel: $spooler->locks->lock( 'my_lock' )->remove(); Die Sperre kann nur gelöscht werden, wenn sie von keiner Task belegt und von keinem Job gebraucht ( <lock.use > ) wird. Siehe auch <lock.remove> . 4.7 Locks 4.7.1 add_lock Fügt dem JobScheduler eine Sperre hinzu Syntax: $locks-> add_lock( Lock lck ) 4.7.2 create_lock Richtet eine neue Sperre ein Syntax: Lock $locks-> create_lock( Liefert eine neues Lock . Diese Sperre kann mit Locks.add_lock() dem JobScheduler hinzugefügt werden. Rückgabe: Lock 4.7.3 lock Liefert eine Sperre Syntax: Lock $locks-> lock( BSTR lock_name ) Wenn die Sperre nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Lock Software- and Organisations-Service GmbH März 2015 Perl API 214 4.7.4 lock_or_null Liefert eine Sperre Syntax: Lock $locks-> lock_or_null( BSTR lock_name ) Rückgabe: Lock null, wenn die Sperre nicht bekannt ist. 4.8 Log - Protokollierung In einem Job oder im Scheduler-Skript stellt spooler_log die hier beschriebenen Methoden bereit. eMail-Versand Am Ende einer Task kann der JobScheduler das Task-Protokoll per eMail versenden. In es versendet werden soll, geben diese Eigenschaften an: • • • • • Log.mail_on_error , Log.mail_on_warning , Log.mail_on_process , Log.mail_on_success und Log.mail_it Nur das Ende der Task, nicht das Ende einer Auftragsausführung (also spooler_process() ) führt zum eMail-Versand. Siehe aber Task.end() . Log.mail stellt ein Mail -Objekt bereit, das die Adressierung übernimmt. Beispiel: $spooler_log->info( "Something for the Log" ); $spooler_log->LetProperty( 'mail_on_warning', 1 ); $spooler_log->mail->LetProperty( 'from', '[email protected]' ); $spooler_log->mail->LetProperty( 'to', '[email protected]' ); $spooler_log->mail->LetProperty( 'subject', 'ended' ); 4.8.1 debug Debug-Meldung (Level -1) Syntax: $spooler_log-> debug( BSTR line ) 4.8.2 debug1 Debug-Meldung (Level -1) Software- and Organisations-Service GmbH März 2015 Perl API 215 Syntax: $spooler_log-> debug1( BSTR line ) 4.8.3 debug2 Debug-Meldung (Level -2) Syntax: $spooler_log-> debug2( BSTR line ) 4.8.4 debug3 Debug-Meldung (Level -3) Syntax: $spooler_log-> debug3( BSTR line ) 4.8.5 debug4 Debug-Meldung (Level -4) Syntax: $spooler_log-> debug4( BSTR line ) 4.8.6 debug5 Debug-Meldung (Level -5) Syntax: $spooler_log-> debug5( BSTR line ) 4.8.7 debug6 Debug-Meldung (Level -6) Syntax: $spooler_log-> debug6( BSTR line ) 4.8.8 debug7 Debug-Meldung (Level -7) Syntax: $spooler_log-> debug7( BSTR line ) Software- and Organisations-Service GmbH März 2015 Perl API 216 4.8.9 debug8 Debug-Meldung (Level -8) Syntax: $spooler_log-> debug8( BSTR line ) 4.8.10 debug9 Debug-Meldung (Level -9) Syntax: $spooler_log-> debug9( BSTR line ) 4.8.11 error Fehlermeldung (Level 1) Syntax: $spooler_log-> error( BSTR line ) Wenn die Fehlermeldung ins Task-Protokoll ( spooler_log ) geschrieben wird und nicht <job stop_on_error="no"> eingestellt ist, stoppt der Job nach Ende der Task. 4.8.12 filename Dateiname des Protokolls Syntax: BSTR $spooler_log-> filename 4.8.13 info Informationsmeldung (Level 0) Syntax: $spooler_log-> info( BSTR line ) 4.8.14 last Letzte Ausgabe des angegebenen Levels Syntax: BSTR $spooler_log-> last( int|BSTR level ) Software- and Organisations-Service GmbH März 2015 Perl API 217 4.8.15 last_error_line Die zuletzt mit Level 2 (error) ausgegebene Zeile Syntax: BSTR $spooler_log-> last_error_line 4.8.16 level Protokollausgaben beschränken Syntax: $spooler_log->LetProperty( 'level', int ) Syntax: int $spooler_log-> level Legt fest, ab welcher Stufe der JobScheduler Protokollzeilen ausgibt. Jede Protokollzeile ist auf einer der folgenden Stufen: error, warn, info, debug1 bis debug9 (debug1 ist dasselbe wie debug). Nur Meldungen ab dem Level werden ausgegeben. Dabei bedeutet die numerische Angabe: -9 bis -2: debug9 bis debug2 -1: debug 0: info 1: warn 2: error Die Option -log-level hat Vorrang. Die Einstellung factory.ini (Abschnitt [job], Eintrag log_level=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_level=…) wird damit überschrieben. Nur Meldungen ab dem Level werden ausgegeben. Dabei bedeutet die numerische Angabe: -9 bis -2: debug9 bis debug2 -1: debug 0: info 1: warn 2: error Software- and Organisations-Service GmbH März 2015 Perl API 218 4.8.17 log Syntax: $spooler_log-> log( int level, BSTR line ) 4.8.18 log_file Protokolliert den Inhalt der Datei Syntax: $spooler_log-> log_file( BSTR path ) Protokolliert den Inhalt der Datei mit Level 0 (info). Ein Fehler beim Zugriff auf die Datei wird als Warnung protokolliert. Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wird die Datei vom Dateisystem des Schedulers, nicht der Task, gelesen. 4.8.19 mail Im Mail-Objekt können Sie Einstellungen zur eMail vornehmen Syntax: $spooler_log->LetProperty( 'mail', Mail ) Syntax: Mail $spooler_log-> mail Rückgabe: Mail 4.8.20 mail_it Versand erzwingen Syntax: $spooler_log->LetProperty( 'mail_it', Boolean ) Bei true wird das Protokoll bei Task-Ende verschickt unabhängig von den Einstellungen Log.mail_on_error , Log.mail_on_warning , Log.mail_on_success , Log.mail_on_process und Log.mail_on_error . 4.8.21 mail_on_error Mit Fehler beendete Task verschickt eMail Syntax: $spooler_log->LetProperty( 'mail_on_error', Boolean ) Syntax: Boolean $spooler_log-> mail_on_error Software- and Organisations-Service GmbH März 2015 Perl API 219 Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_error=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_error=…) wird damit überschrieben. 4.8.22 mail_on_process Task mit spooler_process() verschickt eMail Syntax: $spooler_log->LetProperty( 'mail_on_process', int ) Syntax: int $spooler_log-> mail_on_process Veranlasst den Versand des Task-Protokolls, wenn die Task wenigstens die angegebene Anzahl Schritte, also Aufrufe von spooler_process() , ausgeführt hat. Weil Nicht-API-Tasks keine Schritte haben, zählt der JobScheduler für sie immer einen Schritt. Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_process=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_process=…) wird damit überschrieben. 4.8.23 mail_on_success Erfolgreich gelaufende Task verschickt eMail Syntax: $spooler_log->LetProperty( 'mail_on_success', Boolean ) Syntax: Boolean $spooler_log-> mail_on_success Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_success=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_success=…) wird damit überschrieben. 4.8.24 mail_on_warning Wenn eine Warnung ausgegeben worden ist, wird am Task-Ende eine eMail verschickt Syntax: $spooler_log->LetProperty( 'mail_on_warning', Boolean ) Syntax: Boolean $spooler_log-> mail_on_warning Damit im Fehlerfall eine Mail verschickt wird, ist mail_on_error=yes explizit zu setzen. Software- and Organisations-Service GmbH März 2015 Perl API 220 Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_warning=…) wird damit überschrieben. 4.8.25 new_filename Neuer Dateiname fürs Protokoll Syntax: $spooler_log->LetProperty( 'new_filename', BSTR ) Syntax: BSTR $spooler_log-> new_filename Setzt den Dateinamen fürs Protokoll. Wenn das Protokoll geschlossen wird, kopiert der JobScheduler es in diese Datei. Die Datei steht dann der Anwendung zur Verfügung. 4.8.26 start_new_file Nur fürs Hauptprotokoll: Schließt das bisherige und beginnt ein neues Protokoll Syntax: $spooler_log-> start_new_file( 4.8.27 warn Warnung (Level 2) Syntax: $spooler_log-> warn( BSTR line ) 4.9 Mail - eMail-Versand Siehe Log.mail . 4.9.1 add_file Fügt einen Anhang hinzu Syntax: $mail-> add_file( BSTR path, BSTR filename_for_mail (optional) , BSTR content_type (optional) , BSTR enconding (optional) ) Beispiel: $spooler_log->mail->add_file( 'c:/tmp/1.txt', '1.txt', 'text/plain', 'quoted-printable' ); Software- and Organisations-Service GmbH März 2015 Perl API 221 Parameter: path Pfadname der anzuhängenden Datei filename_for_mail Dateiname, der in der Nachricht erscheinen soll content_type "text/plain" ist voreingestellt. enconding Z.B. "quoted-printable" 4.9.2 add_header_field Fügt dem eMail-Kopf ein Feld hinzu Syntax: $mail-> add_header_field( BSTR field_name, BSTR value ) 4.9.3 bcc Unsichtbarer Empfänger einer Kopie der Nachricht, blind carbon copy Syntax: $mail->LetProperty( 'bcc', BSTR ) Syntax: BSTR $mail-> bcc Beispiel: $spooler_log->mail->LetProperty( 'bcc', '[email protected]' ); Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_bcc=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_bcc=…) wird damit überschrieben. Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). 4.9.4 body Inhalt der Nachricht Syntax: $mail->LetProperty( 'body', BSTR ) Syntax: BSTR $mail-> body Software- and Organisations-Service GmbH März 2015 Perl API 222 Beispiel: $spooler_log->mail->LetProperty( 'body', 'Job succeeded' ); Codieren Sie Zeilenwechsel mit \n (in VBScript mit chr(10)). 4.9.5 cc Empfänger einer Kopie der Nachricht, carbon copy Syntax: $mail->LetProperty( 'cc', BSTR ) Syntax: BSTR $mail-> cc Beispiel: $spooler_log->mail->LetProperty( 'cc', '[email protected]' ); Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_cc=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_cc=…) wird damit überschrieben. Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). 4.9.6 dequeue Nachrichten aus dem Verzeichnis queue_dir erneut versuchen zu versenden Syntax: int $mail-> dequeue( Siehe Mail.dequeue_log , factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…). Rückgabe: int Zahl der versandten Nachrichten Software- and Organisations-Service GmbH März 2015 Perl API 223 4.9.7 dequeue_log Protokoll von dequeue() Syntax: BSTR $mail-> dequeue_log Beispiel: my $count = $spooler_log->mail->dequeue(); $spooler_log->info( $count . ' messages from mail queue sent' ); $spooler_log->info( $spooler_log->mail->dequeue_log ); Siehe Mail.dequeue() . 4.9.8 from Absender Syntax: $mail->LetProperty( 'from', BSTR ) Syntax: BSTR $mail-> from Beispiel: $spooler_log->mail->LetProperty( 'from', '[email protected]' ); Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_from=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_from=…) wird damit überschrieben. 4.9.9 queue_dir Verzeichnis der nicht versendbaren eMails Syntax: $mail->LetProperty( 'queue_dir', BSTR path ) Syntax: BSTR $mail-> queue_dir eMails, die der JobScheduler nicht verschicken kann (weil z.B. der SMTP-Server nicht erreichbar ist), werden hier abgelegt. Um diese eMails später zu verschicken, muss ein Job geschrieben werden, der die Methode Mail.dequeue() aufruft. Software- and Organisations-Service GmbH März 2015 Perl API 224 Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag queue_dir=…). Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen). Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_queue_dir=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…) wird damit überschrieben. Die Einstellung sos.ini (Abschnitt [mail], Eintrag queue_dir=…) wird damit überschrieben. 4.9.10 smtp Name des SMTP-Servers Syntax: $mail->LetProperty( 'smtp', BSTR ) Syntax: BSTR $mail-> smtp Beispiel: $spooler_log->mail->LetProperty( 'smtp', 'mail.company.com' ); Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag smtp=…). Die Einstellung factory.ini (Abschnitt [job], Eintrag smtp=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag smtp=…) wird damit überschrieben. Die Einstellung sos.ini (Abschnitt [mail], Eintrag smtp=…) wird damit überschrieben. 4.9.11 subject Betreff Syntax: $mail->LetProperty( 'subject', BSTR ) Syntax: BSTR $mail-> subject Beispiel: $spooler_log->mail->LetProperty( 'subject', 'Job succeeded' ); Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_subject=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_subject=…) wird damit überschrieben. Software- and Organisations-Service GmbH März 2015 Perl API 225 4.9.12 to Empfänger Syntax: $mail->LetProperty( 'to', BSTR ) Syntax: BSTR $mail-> to Beispiel: $spooler_log->mail->LetProperty( 'to', '[email protected]' ); Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_to=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_to=…) wird damit überschrieben. Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). 4.9.13 xslt_stylesheet XSLT-Stylesheet für eMail-Aufbereitung Syntax: Xslt_stylesheet $mail-> xslt_stylesheet Rückgabe: Xslt_stylesheet Das XSLT-Stylesheet als String 4.9.14 xslt_stylesheet_path XSLT-Stylesheet für eMail-Aufbereitung Syntax: $mail->LetProperty( 'xslt_stylesheet_path', BSTR path ) Beispiel: $spooler_log->mail->LetProperty( 'xslt_stylesheet_path', 'c:/stylesheets/mail.xslt' ); Software- and Organisations-Service GmbH März 2015 Perl API 226 Der Pfad eines XSLT-Stylesheets. Der JobScheduler verwendet das XSLT-Stylesheet zum Aufbereiten der eMails. (Die Dokumentation hierzu ist noch nicht geschrieben.) <config mail_xslt_stylesheet="…"> Parameter: path Der Pfad der Datei, die das XSLT-Stylesheet enthält 4.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs Mit <monitor> können Sie einem Job einen Monitor geben. Ein Monitor kann folgende Methoden bereitstellen: Monitor_impl.spooler_task_before() Vor dem Start der Task, kann den Start verhindern. Monitor_impl.spooler_task_after() Nach dem Ende der Task. Monitor_impl.spooler_process_before() Vor spooler_process() , kann diesen Aufruf verhinden. Monitor_impl.spooler_process_after() Nach spooler_process() , kann dessen Rückgabewert ändern. 4.10.1 spooler Das allgemeine Objekt des Schedulers Syntax: Spooler spooler Beispiel: $spooler_log->debug( 'The working directory of the JobScheduler is ' . $spooler-> directory ); Wie dasselbe Objekt in der Klasse Job_impl: spooler . Rückgabe: Spooler 4.10.2 spooler_job Das Objekt des Jobs Syntax: Job spooler_job Software- and Organisations-Service GmbH März 2015 Perl API 227 Beispiel: $spooler_log->info( 'The name of this job is ' . $spooler_job->name ); Wie dasselbe Objekt in der Klasse Job_impl: spooler_job . Rückgabe: Job 4.10.3 spooler_log Zum Protokollieren Syntax: Log spooler_log Beispiel: $spooler_log->info( 'Something has happened' ); Wie dasselbe Objekt in der Klasse Job_impl: spooler_log . Rückgabe: Log 4.10.4 spooler_process_after Nach spooler_process() Syntax: Boolean spooler_process_after( Boolean spooler_process_result ) Beispiel: in java public boolean spooler_task_after( boolean spooler_process_result ) throws Exception { spooler_log.info( "SPOOLER_TASK_BEFORE()" ); spooler_log.info( "spooler_process() didn't throw an exception and delivered " + spooler_process_result ); return spooler_process_result; // Unchanged result } Der JobScheduler ruft diese Methode nach jedem spooler_process() auf. Parameter: spooler_process_ result Rückgabewert von spooler_process() oder false, wenn spooler_process() mit einer Exception geendet hat. Rückgabe: Software- and Organisations-Service GmbH März 2015 Perl API 228 Boolean Ersetzt den Rückgabewert von spooler_process() . 4.10.5 spooler_process_before Vor spooler_process() Syntax: Boolean spooler_process_before( Beispiel: in java public boolean spooler_process_before() throws Exception { spooler_log.info( "SPOOLER_PROCESS_BEFORE()" ); return true; // spooler_process() will be executed } Beispiel: in java public boolean spooler_process_before() throws Exception { boolean continue_with_spooler_process = true; if( !are_needed_ressources_available() ) { spooler_task.order().setback(); continue_with_spooler_process = false; } return continue_with_spooler_process; } Der JobScheduler ruft diese Methode vor jedem spooler_process() auf. Rückgabe: Boolean false verhindert den folgenden Aufruf von spooler_process() . Der JobScheduler setzt fort, als hätte spooler_process() false geliefert. 4.10.6 spooler_task Das Objekt der Task Syntax: Task spooler_task Beispiel: $spooler_log->info( 'The task id is ' . $spooler_task->id ); Software- and Organisations-Service GmbH März 2015 Perl API 229 Wie dasselbe Objekt in der Klasse Job_impl: spooler_task . Rückgabe: Task 4.10.7 spooler_task_after Nach dem Ende der Task Syntax: spooler_task_after( Beispiel: in java public void spooler_task_after() throws Exception { spooler_log.info( "SPOOLER_TASK_AFTER()" ); } Der JobScheduler ruft diese Methode, nachdem die Task geendet hat. 4.10.8 spooler_task_before Vor Start der Task Syntax: Boolean spooler_task_before( Beispiel: in java public boolean spooler_task_before() throws Exception { spooler_log.info( "SPOOLER_TASK_BEFORE()" ); return true; // Task will be started //return false; // Task will not be started } Vor dem Laden der Task ruft der JobScheduler diese Methode auf. Rückgabe: Boolean false lässt die Task nicht starten. Monitor_impl.spooler_task_after() wird nicht gerufen. 4.11 Order - Auftrag Siehe JobScheduler Dokumentation, Spooler.create_order() , Job_chain.add_order() , Task.order . Software- and Organisations-Service GmbH März 2015 Perl API 230 Dateiauftrag Ein Dateiauftrag ist ein Auftrag mit dem Parameter scheduler_file_path: Order.params . Variable_set.value() . Siehe JobScheduler Dokumentation. Beispiel: Auftrag mit einfacher Nutzlast # Create order: { my $order = $spooler->create_order(); $order->LetProperty( 'id' , 1234 ); $order->LetProperty( 'title' , 'This is my order' ); $order->LetProperty( 'state_text', 'This is my state text' ); $order->LetProperty( 'payload' , 'This is my payload' ); $spooler->job_chain( 'my_job_chain' )->add_order( $order ); } ... # Process order: sub spooler_process() { my $order = $spooler_task->order; $spooler_log->info( 'order.payload=" + $order->payload ); return 1; } Beispiel: Erzeugen eines Auftrags mit Variable_set als Nutzlast # Create order: { my $variable_set = $spooler->create_variable_set(); $variable_set->set_var( 'param_one', 111 ); $variable_set->set_var( 'param_two', 222 ); my $order = $spooler->create_order(); $order->LetProperty( 'id' , 1234 ); $order->LetProperty( 'payload', $variable_set ); $spooler->job_chain( 'my_job_chain' )->add_order( $order ); } ... # Process order: sub spooler_process() { my $order = $spooler_task->order; my $variable_set = $order->payload; $spooler_log->info( 'param_one=' . $variable_set->value( 'param_one' ) ); $spooler_log->info( 'param_two=' . $variable_set->value( 'param_two' ) ); return 1; } 4.11.1 at Start-Zeitpunkt des Auftrags Syntax: $order->LetProperty( 'at', BSTR|DATE ) Software- and Organisations-Service GmbH März 2015 Perl API 231 Beispiel: $order->LetProperty( 'at', "now+60" ); $spooler->job_chain( "my_job_chain" )->add_order( $order ); Setzt den Start-Zeitpunkt bevor der Auftrag in eine Auftragswarteschlange eingereiht wird. Als String kann angegeben werden: • • • • "now" "yyyy-mm-dd HH:MM[:SS]" "now + HH:MM[:SS]" "now + seconds" Die Einstellung ändert die von Order.run_time oder Order.setback() vorgegebene Startzeit. Siehe <add_order at=""> . 4.11.2 end_state Zustand, vor dessen erfolgreichen Verlassen der Auftrag enden soll Syntax: $order->LetProperty( 'end_state', Variant ) Syntax: Variant $order-> end_state Wenn ein Auftrag einen eigenen End-Zustand hat (end_state ungleich ""), endet der Auftrag, bevor er diesen Zustand erfolgreich verlassen würde, also nach Ausführung des dem End-Zustand zugeordneten Jobs (siehe < job_chain_node> ). Der Zustand muss in der Jobkette bekannt sein. 4.11.3 id Kennung des Auftrags Syntax: $order->LetProperty( 'id', Variant ) Syntax: Variant $order-> id Jeder Auftrag hat eine (innerhalb der Jobkette oder der Auftragswarteschlange des Jobs eindeutige) Kennung. Diese Kennung sollte den zu verarbeitenden Daten entsprechen. Üblicherweise wird der Schlüssel eines Datenbanksatzes verwendet. Wenn Sie die id nicht setzen, vergibt Job_chain.add_order() eine Kennung. 4.11.4 job_chain Jobkette, in der der Auftrag enthalten ist Software- and Organisations-Service GmbH März 2015 Perl API 232 Syntax: Job_chain $order-> job_chain Rückgabe: Job_chain 4.11.5 job_chain_node Jobkettenknoten, der dem Zustand des Auftrags entspricht Syntax: Job_chain_node $order-> job_chain_node Rückgabe: Job_chain_node 4.11.6 log Auftragsprotokoll Syntax: Log $order-> log Beispiel: spooler_task.order.log.info( "Only for order log, not for task log" ); spooler_log.info( "For both order log and task log" ); Beispiel: $spooler_task->order->log->info( 'Only for order log, not for task log' ); $spooler_log->info( 'For both order log and task log' ); Rückgabe: Log 4.11.7 params Parameter des Auftrags Syntax: $order->LetProperty( 'params', Variable_set ) Syntax: Variable_set $order-> params params wird in Order.payload gehalten, letzteres kann also nicht zusammen mit params verwendet werden. Siehe <add_order> . Rückgabe: Software- and Organisations-Service GmbH März 2015 Perl API 233 Variable_set 4.11.8 payload Nutzlast, also Parameter des Auftrags. Syntax: $order->LetProperty( 'payload', Variable_set |BSTR|int|… payload ) Syntax: Variable_set |BSTR|int|… $order-> payload Statt dieser Eigenschaft wird die Verwendung von Order.params empfohlen (was (Variable_set)order.payload entspricht). Neben der Auftragskennung Order.id , die den Auftrag identifiziert, können Sie hier zusätzliche Angaben machen. Siehe Order.params und Order.xml_payload . Parameter: payload Kann ein String oder ein Variable_set sein. Rückgabe: Variable_set |BSTR|int|… Kann ein String oder ein Variable_set sein. 4.11.9 payload_is_type Prüft den COM-Typ der Nutzlast Syntax: Boolean $order-> payload_is_type( BSTR type_name ) Parameter: type_name "Spooler.Variable_set", "Hostware.Dyn_obj" oder "Hostware.Record". 4.11.10 priority Aufträge mit höherer Priorität werden zuerst verarbeitet Syntax: $order->LetProperty( 'priority', int ) Syntax: int $order-> priority 4.11.11 remove_from_job_chain Software- and Organisations-Service GmbH März 2015 Perl API 234 Syntax: $order-> remove_from_job_chain( Wenn der Auftrag gerade von einer Task ausgeführt wird, liefert die Eigenschaft Order.job_chain weiterhin die Jobkette, aus der der Auftrag mit diesem Aufruf entfernt worden ist. Erst wenn die Ausführung beendet ist, liefert die Eigenschaft null (außer der Auftrag ist wieder in eine Jobkette eingetragen worden). Damit bleibt die Eigenschaft job_chain während der Ausführung durch die Task stabil. 4.11.12 run_time <run_time> zur periodischen Wiederholung des Auftrags Syntax: Run_time $order-> run_time Beispiel: $order->run_time->LetProperty( "xml", "<run_time><at at='2006-05-23 11:43:00'/>< /run_time>" ); Siehe <run_time> . Das Kommando <modify_order at="now"> lässt einen wegen run_time wartenden Auftrag sofort anlaufen. Rückgabe: Run_time 4.11.13 setback Stellt den Auftrag eine Zeitlang zurück Syntax: $order-> setback( Der Auftrag wird zurückgestellt und nach der mit <delay_order_after_setback> oder Job.delay_order_after_setback eingestellten Frist wiederholt. Bei einer Wiederholung wird nur die Funktion spooler_process() des Jobs wiederholt. Wenn in spooler_process() die Funktion order.setback() aufgerufen wurde, bleibt der Rückgabewert von spooler_process() ohne Wirkung. Der Auftrag zählt aufeinander folgende Aufrufe dieser Methode, was von <delay_order_after_setback> berücksichtigt wird. Der Zähler wird auf 0 gestellt, wenn spooler_process() ohne diesen Aufruf zu Ende ausgeführt worden ist. Beim Start des Schedulers sind alle Zähler 0. Das Kommando <modify_order at="now"> lässt einen zugestellten Auftrag sofort anlaufen. 4.11.14 setback_count Wie oft ist der Auftrag zurückgestellt worden? Syntax: int $order-> setback_count Software- and Organisations-Service GmbH März 2015 Perl API 235 Siehe <delay_order_after_setback> . 4.11.15 state Zustand des Auftrags Syntax: $order->LetProperty( 'state', Variant ) Syntax: Variant $order-> state Wenn der Auftrag in einer Jobkette ist, muss der Zustand in der Jobkette vorhanden sein. Wenn der Auftrag gerade von einem Job ausgeführt wird, wird der in der Jobkette festgelegte Folgezustand ( < job_chain_node next_state=""> ) wirkungslos. Die Rückgabewerte von spooler_process() und Monitor_impl.spooler_process_after() sind ohne Bedeutung. Mit Order.state kann also ein Job den Folgezustand frei bestimmen. Der Auftrag wird in die Auftragswarteschlange des Jobs eingereiht, der dem Zustand zugeordnet ist (s. < job_chain_node> ). Die Ausführung durch diesen Job wird solange verzögert, bis der jetzt ausführende Job den Auftrag ausgeführt hat. 4.11.16 state_text Freier Text für den Zustand des Auftrags Syntax: $order->LetProperty( 'state_text', BSTR ) Syntax: BSTR $order-> state_text Der Text wird auf der HTML-Oberfläche gezeigt. Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen. 4.11.17 string_next_start_time Nächste Startzeit des Auftrags bei Verwendung von <run_time> Syntax: BSTR $order-> string_next_start_time Rückgabe: BSTR "yyyy-mm-dd HH:MM:SS.MMM" oder "now" oder "never". Software- and Organisations-Service GmbH März 2015 Perl API 236 4.11.18 suspended Ausgesetzer Auftrag Syntax: $order->LetProperty( 'suspended', Boolean ) Syntax: Boolean $order-> suspended Ein ausgesetzter Auftrag wird nicht ausgeführt. Wenn der Auftrag gerade von einer Task ausgeführt wird, wird der Schritt ( spooler_process() ) noch zu Ende ausgeführt und der Auftrag nach den gewohnten Regeln in den Folgezustand versetzt, bevor er tatsächlich ausgesetzt wird. Damit kann ein Auftrag in einen Endzustand ausgesetzt werden, womit verhindet wird, dass er entfernt wird. Erst wenn die Aussetzung eines solchen Auftrags aufgehoben wird, ( order.suspended=false), entfernt der JobScheduler den Auftrag. Ein ausgesetzter Auftrag im Endzustand kann mit Order.state in einen Zustand versetzt werden, der einem Job zugeordnet ist. Der Auftrag bleibt dennoch ausgesetzt. 4.11.19 title Der Titel ist ein Klartext, der den Auftrag bezeichnet Syntax: $order->LetProperty( 'title', BSTR ) Syntax: BSTR $order-> title 4.11.20 web_service Der Webdienst, der dem Auftrag zugeordnet ist Syntax: Web_service $order-> web_service Wenn der Auftrag keinem Webdienst zugeordnet ist, liefert der Aufruf den Fehler SCHEDULER-240 . Siehe auch Order.web_service_or_null . Rückgabe: Web_service 4.11.21 web_service_operation Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist Syntax: Web_service_operation $order-> web_service_operation Software- and Organisations-Service GmbH März 2015 Perl API 237 Beispiel: in java public boolean spooler_process() throws Exception { Order order = spooler_task.order(); Web_service_operation web_service_operation = order.web_service_operation(); Web_service_request request = web_service_operation.request(); // Decode request data String request_string = new String( request.binary_content(), request.charset_name() ); process request_string ...; String response_string = "This is my response"; String charset_name = "UTF-8"; ByteArrayOutputStream byos = new ByteArrayOutputStream(); // Encode response data Writer writer = new OutputStreamWriter( byos, charset_name ); writer.write( response_string ); writer.close(); // Respond Web_service_response response = web_service_operation.response(); response.set_content_type( "text/plain" ); response.set_charset_name( charset_name ); response.set_binary_content( byos.toByteArray() ); response.send(); // Web service operation has finished return true; } Siehe <web_service> , Web_service_operation und Order.web_service_operation_or_null , Rückgabe: Web_service_operation 4.11.22 web_service_operation_or_null Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist, oder null Syntax: Web_service_operation $order-> web_service_operation_or_null Siehe Order.web_service_operation , Web_service_operation und <web_service> . Rückgabe: Web_service_operation Software- and Organisations-Service GmbH März 2015 Perl API 238 4.11.23 web_service_or_null Der Web-Dienst, der dem Auftrag zugeordnet ist, oder null. Syntax: Web_service $order-> web_service_or_null Siehe auch Order.web_service . Rückgabe: Web_service 4.11.24 xml Auftrag in XML: <order>...</order> Syntax: BSTR $order-> xml Rückgabe: BSTR Siehe <order> 4.11.25 xml_payload XML-Nutzlast, also Parameter des Auftrags. Syntax: $order->LetProperty( 'xml_payload', BSTR xml ) Syntax: BSTR $order-> xml_payload Zusätzlich zur Eigenschaft Order.params kann diese Eigenschaft ein XML-Dokument aufnehmen. <xml_payload> enthält das Wurzelelement des XML-Dokuments (statt in #PCDATA-codierter Form). 4.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs Ein auftragsgesteuerter Job ( <job order="yes"> hat eine Auftragswarteschlange, die die vom Job zu verarbeitenden Aufträge aufnimmt. Die Aufträge sind nach Priorität und Zeitpunkt des Eintreffens geordnet. Verarbeiten bedeutet, dass der JobScheduler die Methode spooler_process() einer Task des Jobs aufruft. Die Methode kann über Task.order auf den Auftrag zugreifen. Endet spooler_process() ohne Fehler (ohne Exception), entfernt der JobScheduler den Auftrag aus der Auftragswarteschlange. Ist der Auftrag in einer Jobkette, dann rückt der Auftrag an die nächste Position der Jobkette. Software- and Organisations-Service GmbH März 2015 Perl API 239 4.12.1 length Anzahl der Aufträge in der Auftragswarteschlange Syntax: int $q-> length 4.13 Process_class Siehe auch <process_class name=""> . Beispiel: my $process_classs = $spooler->process_classes; my $process_class = $process_classs->create_process_class(); $process_class->LetProperty( 'name', 'my_process_class' ); $process_classs->add_process_class( $process_class ); 4.13.1 max_processes Anzahl der Prozesse Syntax: $process_class->LetProperty( 'max_processes', int ) Syntax: int $process_class-> max_processes Die Voreinstellung ist 10. Siehe auch <process_class max_processes=""> . 4.13.2 name Name der Prozessklasse Syntax: $process_class->LetProperty( 'name', BSTR ) Syntax: BSTR $process_class-> name Der Name kann nur einmal gesetzt und nicht geändert werden. Siehe auch <process_class name=""> . 4.13.3 remote_scheduler Adresse des fernen Schedulers, der die Prozesse ausführen soll Software- and Organisations-Service GmbH März 2015 Perl API 240 Syntax: $process_class->LetProperty( 'remote_scheduler', BSTR ) Syntax: BSTR $process_class-> remote_scheduler Beispiel: $spooler->process_classes->process_class( 'my_process_class' )->remote_scheduler( 'host:4444' ); Siehe auch <process_class remote_scheduler=""> . Parameter: Die Adresse wird als " host : portnumber" angegeben. Beim Lesen wird (derzeit) zusätzlich die IP-Nummer geliefert: " hostname / ipnumber : portnumber" Rückgabe: BSTR Die Adresse wird als " host : portnumber" angegeben. Beim Lesen wird (derzeit) zusätzlich die IP-Nummer geliefert: " hostname / ipnumber : portnumber" 4.13.4 remove Entfernt die Prozessklasse Syntax: $process_class-> remove( Beispiel: $spooler->process_classs->process_class( 'my_process_class' )->remove(); Wenn noch Tasks in der Prozessklasse laufen, verzögert der JobScheduler das Löschen bis die letzte Task geendet hat. Solange werden keine neuen Tasks gestartet. Siehe auch <process_class.remove> . 4.14 Process_classes 4.14.1 add_process_class Fügt dem JobScheduler eine Prozessklasse hinzu Syntax: $process_classs-> add_process_class( Process_class pc ) Software- and Organisations-Service GmbH März 2015 Perl API 241 4.14.2 create_process_class Legt eine neue Prozesklasse ein Syntax: Process_class $process_classs-> create_process_class( Liefert eine neues Process_class . Diese Prozessklasse kann mit Process_classes.add_process_class() dem JobScheduler hinzugefügt werden. Rückgabe: Process_class 4.14.3 process_class Liefert eine Prozessklasse Syntax: Process_class $process_classs-> process_class( BSTR process_class_name ) Wenn die Prozessklasse nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Process_class 4.14.4 process_class_or_null Liefert eine Prozessklasse Syntax: Process_class $process_classs-> process_class_or_null( BSTR process_class_name ) Rückgabe: Process_class null, wenn die Prozessklasse nicht bekannt ist. 4.15 Run_time - Laufzeit Siehe <run_time> , Order , Schedule . Beispiel: my $order = $spooler_task->order; # Repeat order daily at 15:00 $order->run_time->LetProperty( "xml", "<run_time><period single_start='15:00'/>< /run_time>" ); Software- and Organisations-Service GmbH März 2015 Perl API 242 4.15.1 schedule <schedule> Syntax: Schedule $run_time-> schedule Rückgabe: Schedule 4.15.2 xml <run_time> Syntax: $run_time->LetProperty( 'xml', BSTR ) Verwirft die bisherige Einstellung und setzt Run_time neu. Parameter: XML-Dokument als String 4.16 Schedule - Laufzeit Siehe <schedule> , <run_time> , Spooler.schedule , Run_time . Beispiel: $spooler->schedule( 'my_schedule' )->LetProperty( "xml", " " ); 4.16.1 xml <schedule> Syntax: $schedule->LetProperty( 'xml', BSTR ) Syntax: BSTR $schedule-> xml Verwirft die bisherige Einstellung und setzt Schedule neu. Parameter: XML-Dokument als String Rückgabe: Software- and Organisations-Service GmbH März 2015 Perl API 243 BSTR XML-Dokument als String 4.17 Spooler Von dieser Klasse gibt es nur ein Objekt: spooler . 4.17.1 abort_immediately Bricht den JobScheduler augenblicklich ab Syntax: $spooler-> abort_immediately( Bricht den JobScheduler augenblicklich ab. Kein Job hat Gelegenheit, darauf zu reagieren. Der JobScheduler 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 JobScheduler Dokumentation. 4.17.2 abort_immediately_and_restart Bricht den JobScheduler augenblicklich ab und startet ihn neu. Syntax: $spooler-> abort_immediately_and_restart( Wie Spooler.abort_immediately() , nur dass der JobScheduler sich erneut startet. Dabei verwendet er die Kommandozeilenparameter wieder. Siehe <modify_spooler cmd="abort_immediately_and_restart"> und JobScheduler Dokumentation. 4.17.3 add_job_chain Syntax: $spooler-> add_job_chain( Job_chain chain ) Bei Job_chain.orders_recoverable =true lädt der JobScheduler die Aufträge der Jobkette aus der Datenbank. Siehe Spooler.create_job_chain() und <job_chain> . Software- and Organisations-Service GmbH März 2015 Perl API 244 4.17.4 configuration_directory Pfad des Konfigurationsverzeichnisses Syntax: BSTR $spooler-> configuration_directory <config configuration_directory="…"> 4.17.5 create_job_chain Syntax: 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 JobScheduler hinzugefügt werden Siehe <job_chain> . Rückgabe: Job_chain 4.17.6 create_order Syntax: Order $spooler-> create_order( Erzeugt einen neuen Auftrag. Dieser Auftrag kann mit Job_chain.add_order() einer Jobkette übergeben werden. Rückgabe: Order 4.17.7 create_variable_set Syntax: Variable_set $spooler-> create_variable_set( Rückgabe: Variable_set 4.17.8 create_xslt_stylesheet Syntax: Xslt_stylesheet $spooler-> create_xslt_stylesheet( BSTR xml (optional) ) Software- and Organisations-Service GmbH März 2015 Perl API 245 Parameter: xml XSLT-Stylesheet als XML-String Rückgabe: Xslt_stylesheet 4.17.9 db_history_table_name Name der Datenbanktabelle für die Historie Syntax: BSTR $spooler-> db_history_table_name Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) wird damit überschrieben. 4.17.10 db_name Hostware-Pfad der Datenbank Syntax: BSTR $spooler-> db_name Verbindungszeichenfolge der Datenbank für die Historienführung. Der JobScheduler 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 JobScheduler verwendet dann eine Microsoft MS-Access Datenbank dieses Namens, die im Protokollverzeichnis (s. Option -log-dir ) liegt. Der JobScheduler richtet die Datei ein, wenn sie fehlt. Der JobScheduler richtet die Tabellen selbständig ein. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db=…) wird damit überschrieben. 4.17.11 db_order_history_table_name Name der Datenbanktabelle für die Auftragshistorie Syntax: BSTR $spooler-> db_order_history_table_name Die Einstellung factory.ini überschrieben. Software- and Organisations-Service GmbH (Abschnitt [spooler], Eintrag db_order_history_table=…) wird damit März 2015 Perl API 246 4.17.12 db_orders_table_name Name der Datenbanktabelle für die Aufträge Syntax: BSTR $spooler-> db_orders_table_name Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_orders_table=…) wird damit überschrieben. 4.17.13 db_tasks_table_name Name der Datenbanktabelle für die Tasks Syntax: BSTR $spooler-> db_tasks_table_name Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_tasks_table=…) wird damit überschrieben. 4.17.14 db_variables_table_name Name der Datenbanktabelle für interne Variablen des Schedulers Syntax: BSTR $spooler-> db_variables_table_name Der JobScheduler 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. 4.17.15 directory Das Arbeitsverzeichnis beim Start des Schedulers Syntax: BSTR $spooler-> directory Ändert das Arbeitsverzeichnis. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Software- and Organisations-Service GmbH März 2015 Perl API 247 Die Option -cd hat Vorrang. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Rückgabe: BSTR Der Pfad endet unter Unix mit "/" und unter Windows mit "\". 4.17.16 execute_xml Führt ein XML-Kommando aus Syntax: BSTR $spooler-> execute_xml( BSTR xml ) Beispiel: $spooler_log->info( $spooler->execute_xml( '<show_state/>' ) ); Fehler werden als XML-Antwort <ERROR> geliefert. Parameter: xml Siehe JobScheduler Dokumentation. Rückgabe: BSTR Liefert die XML-Antwort des ausgeführten Kommandos. 4.17.17 hostname Name des Rechners, auf dem der JobScheduler läuft. Syntax: BSTR $spooler-> hostname 4.17.18 id Wert der Kommandozeilenoption -id= Syntax: BSTR $spooler-> id Der JobScheduler wählt nur die Elemente der XML-Konfiguration aus, deren Attribut spooler_id leer ist oder denselben Wert wie in dieser Einstellung enthält. Software- and Organisations-Service GmbH März 2015 Perl API 248 Wenn die Scheduler-ID nicht angegeben ist, beachtet der JobScheduler das XML-Attribut spooler_id= nicht und wählt alle Elemente der XML-Konfiguration aus. Siehe z.B. <config> . Die Option -id hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag id=…) wird damit überschrieben. 4.17.19 include_path Liefert die Kommandozeilenoption -include-path=. Syntax: BSTR $spooler-> include_path Verzeichnis der Dateien, die mit <include> eingezogen werden. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen). Die Option -include-path hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag include_path=…) wird damit überschrieben. <config include_path="…"> Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. 4.17.20 ini_path Wert der Option -ini= (Dateiname der factory.ini) Syntax: BSTR $spooler-> ini_path Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Siehe -ini , JobScheduler Dokumentation 4.17.21 is_service Syntax: Boolean $spooler-> is_service Software- and Organisations-Service GmbH März 2015 Perl API 249 Rückgabe: Boolean true, genau dann wenn der JobScheduler als Dienst (in Windows) oder als Daemon (in Unix) läuft. 4.17.22 job Liefert einen Job Syntax: Job $spooler-> job( BSTR job_name ) Wenn der Jobname nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Job 4.17.23 job_chain Liefert eine Jobkette Syntax: Job_chain $spooler-> job_chain( BSTR name ) Wenn der Name der Jobkette nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Job_chain 4.17.24 job_chain_exists Syntax: Boolean $spooler-> job_chain_exists( BSTR name ) 4.17.25 let_run_terminate_and_restart Syntax: $spooler-> let_run_terminate_and_restart( Sobald alle Aufträge abgearbeitet sind, beendet der JobScheduler alle Tasks (durch Aufruf von Job_impl ) und beendet dann sich selbst. Ein neuer JobScheduler mit unveränderten Kommandozeilenparametern wird gestartet. Siehe <modify_spooler cmd="let_run_terminate_and_restart"> und JobScheduler Dokumentation. Software- and Organisations-Service GmbH März 2015 Perl API 250 4.17.26 locks Liefert die Locks Syntax: Locks $spooler-> locks Rückgabe: Locks 4.17.27 log Das Hauptprotokoll Syntax: Log $spooler-> log Normalerweise wird man spooler_log() verwenden. Rückgabe: Log 4.17.28 log_dir Verzeichnis der Protokolle Syntax: BSTR $spooler-> log_dir In dieses Verzeichnis schreibt der JobScheduler seine Protokolle. log_dir= *stderr lässt den JobScheduler die Protokollausgabe nach stderr (auf den Bildschirm) schreiben. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen). Die Option -log-dir hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_dir=…) wird damit überschrieben. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. 4.17.29 param Kommandozeilenoption -param= Software- and Organisations-Service GmbH März 2015 Perl API 251 Syntax: BSTR $spooler-> param Zur freien Verwendung. Der Parameter ist in den Skripten über spooler.param lesbar. Die Option -param hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag param=…) wird damit überschrieben. 4.17.30 process_classes Liefert die Prozessklassen Syntax: Process_classes $spooler-> process_classes Rückgabe: Process_classes 4.17.31 schedule Liefert den benannten Schedule oder null Syntax: Schedule $spooler-> schedule( BSTR path ) Rückgabe: Schedule 4.17.32 supervisor_client Liefert den Supervisor_client oder null Syntax: Supervisor_client $spooler-> supervisor_client Rückgabe: Supervisor_client 4.17.33 tcp_port HTTP- und TCP-Port für Kommandos an den JobScheduler Syntax: int $spooler-> tcp_port Software- and Organisations-Service GmbH März 2015 Perl API 252 Der JobScheduler 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 JobScheduler einen HTTP/HTML-Server, so dass er über einen Browser ansprechbar ist, z.B. http://localhost:4444. Bei tcp_port=0 (voreingestellt) ist der JobScheduler nicht über TCP oder HTTP ansprechbar. Damit kann die Steuerung des JobSchedulers per TCP-Kommando, z.B. über eine Web-Seite, unterbunden werden. Die Option -tcp-port hat Vorrang. <config tcp_port="…"> Rückgabe: int 0, wenn kein Port geöffnet ist. 4.17.34 terminate JobScheduler mit allen Tasks ordentlich beenden Syntax: $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 JobScheduler 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 JobScheduler Dokumentation. Parameter: timeout Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen Parameter wartet der JobScheduler endlos auf die Tasks. restart restart=true lässt den JobScheduler nach Beendigung neu starten. all_schedu all_schedulers=true beendet alle JobScheduler im Cluster (s. -exclusive ) Das kann eine lers Minute dauern. continue_e continue_exclusive_operation=true lässt einen anderen Scheuler im Cluster (s. -exclusive ) xclusive_o den Betrieb fortsetzen. peration 4.17.35 terminate_and_restart JobScheduler mit allen Tasks ordentlich beenden und erneut starten Syntax: $spooler-> terminate_and_restart( int timeout (optional) ) Software- and Organisations-Service GmbH März 2015 Perl API 253 Wie Spooler.terminate() , aber der JobScheduler startet sich neu. Siehe <modify_spooler cmd="terminate_and_restart"> und JobScheduler Dokumentation. Parameter: time Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der out JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen Parameter wartet der JobScheduler endlos auf die Tasks. 4.17.36 udp_port UDP-Port für Kommandos an den JobScheduler Syntax: int $spooler-> udp_port Auch über UDP kann der JobScheduler Kommandos entgegennehmen. Hier wird die Portnummer angegeben. Ein Kommando muss in eine Nachricht passen. Der JobScheduler schickt keine Antwort. Bei udp_port=0 (voreingestellt) öffnet der JobScheduler keinen UDP-Port. Die Option -udp-port hat Vorrang. <config udp_port="…"> Rückgabe: int 0, wenn kein Port geöffnet ist. 4.17.37 var Zugriff auf Scheduler-weite Variablen Syntax: $spooler->LetProperty( 'var', BSTR name, Variant ) Syntax: Variant $spooler-> var( BSTR name ) Die Variablen sind überall im JobScheduler benutzbar. 4.17.38 variables Die Scheduler-weiten Variablen als Variable_set Syntax: Variable_set $spooler-> variables Die Variablen können in der Konfigurationsdatei eingestellt werden mit <config> . Software- and Organisations-Service GmbH März 2015 Perl API 254 Rückgabe: Variable_set 4.18 Spooler_program - Für den Java-Debugger Startet den JobScheduler über Java, so dass in Java geschriebene Jobs debuggt werden können (z.B. mit Eclipse). Zu den Methoden siehe Javadoc. Der JobScheduler wird als Windows-Applikation, nicht als Konsol-Programm gestartet. Ausgaben nach stderr gehen verloren. -log-dir liefert keine Ausgabe. Siehe JobScheduler Dokumentation. Beispiel: C:\>java -Djava.library.path=… -classpath …\sos.spooler.jar sos.spooler.Spooler_program configuration.scheduler -log-dir=c:\tmp\scheduler Mit -Djava.library.path=… geben Sie das Verzeichnis der scheduler.dll an, wenn es nicht bereits in %PATH% aufgeführt ist. 4.19 Subprocess Ein Subprozess ist irgendein Prozess, der mit Task.create_subprocess() oder Subprocess.start() gestartet werden kann. Software- and Organisations-Service GmbH März 2015 Perl API 255 Beispiel: my_system() - Einfache Ausführung eines Kommandos sub my_system { # Executes the command without processing of shell characters my $cmd = shift; my $timeout = shift; my $subprocess = $spooler_task->create_subprocess(); $subprocess->LetProperty( "timeout", $timeout ) $subprocess->start( $cmd ); $subprocess->wait_for_termination(); return $subprocess->exit_code; if defined $timeout; } sub shell { # Executes the command under the shell (Unix only) my $cmd = shift; my $timeout = shift; my $subprocess = $spooler_task->create_subprocess(); $subprocess->LetProperty( "timeout", $timeout ) if defined $timeout; $subprocess->start( [ "/bin/sh", "-c", $cmd ] ); $subprocess->wait_for_termination(); return $subprocess->exit_code; } 4.19.1 close Gibt die System-Ressourcen frei Syntax: $subprocess-> close( Sollte in Sprachen mit Garbage Collector (Java, JavaScript) gerufen werden, außer die Task beendet sich sofort. Der Subprocess ist danach unbrauchbar. 4.19.2 env Umgebungsvariablen als Variable_set Syntax: Variable_set $subprocess-> env Beispiel: my $subprocess = $spooler_task->create_subprocess(); $subprocess->LetProperty( 'start', $subprocess->env->substitute( '${MY_HOME}/my_program' ) ); $subprocess->wait_for_termination(); Software- and Organisations-Service GmbH März 2015 Perl API 256 Liefert ein Variable_set der Umgebungsvariablen. Anfänglich ist die Umgebung mit den Umgebungsvariablen des startenden Prozesses gefüllt. Umgebungsvariablen können entfernt werden, indem sie auf "" gesetzt werden. Der Aufruf Subprocess.start() übergibt die Umgebungsvariablen dem Subprozess. Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden. Nach dem Start des Subprozesses haben Änderungen an den Umgebungsvariablen keine Wirkung. Auch können vom Prozess geänderte Umgebungsvariablen nicht gelesen werden. Das Objekt lässt sich nicht anderen Objekten übergeben (denn es befindet sich im Prozess der Task, während die meisten anderen Objekte sich im Prozess des Schedulers befinden). Rückgabe: Variable_set 4.19.3 environment Umgebungsvariablen Syntax: $subprocess->LetProperty( 'environment', BSTR name, BSTR value ) Beispiel: // The following two statements have the same effect $subprocess->LetProperty( 'environment', 'my_variable', 'my_value' ) $subprocess->env->LetProperty( 'value', 'my_variable', 'my_value' ) Die hier gesetzten Variablen werden zusammen mit den übrigen Umgebungsvariablen des laufenden Prozesses dem neuen Subprozess übergeben. Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden. Siehe auch Subprocess.env . 4.19.4 exit_code Syntax: int $subprocess-> exit_code Erst aufrufen, wenn Subprocess.terminated == true. 4.19.5 ignore_error Verhindert, dass bei exit_code != 0 der Job stoppt Syntax: $subprocess->LetProperty( 'ignore_error', Boolean ) Software- and Organisations-Service GmbH März 2015 Perl API 257 Syntax: Boolean $subprocess-> ignore_error Verhindert, dass der Job stoppt, wenn der Subprozess bei Task-Ende mit Subprocess.exit_code != 0 geendet hat. Wenn das Ende des Subprocesses nicht mit Subprocess.wait_for_termination abgewartet worden ist, tut das der JobScheduler bei Task-Ende. Wenn dann der Subprocess mit Subprocess.exit_code != 0 endet, stoppt der Job mit Fehler. Mit ignore_error kann das verhindert werden. 4.19.6 ignore_signal Verhindert, dass bei einem Abbruch des Prozesses mit Signal der Job stoppt Syntax: $subprocess->LetProperty( 'ignore_signal', int ) Syntax: int $subprocess-> ignore_signal Wirkt nicht unter Windows, weil es hier keine Signale gibt. 4.19.7 kill Bricht den Subprozess ab Syntax: $subprocess-> kill( int signal (optional) ) Parameter: signal Nur unter Unix: Das Signal für kill(). 0 wird als 9 (SIGKILL, sofortiges Ende) interpretiert. 4.19.8 own_process_group Subprozess als Prozessgruppe Syntax: $subprocess->LetProperty( 'own_process_group', Boolean ) Syntax: Boolean $subprocess-> own_process_group Nur unter Unix. Der Default kann mit factory.ini (Abschnitt [spooler], Eintrag subprocess.own_process_group=…) eingestellt werden. own_process_group lässt den Subprozess in einer eigenen Prozessgruppe starten, indem der Systemaufruf setpgid(0,0) ausgeführt wird. Wenn der JobScheduler den Subprozess abbricht, bricht er die ganze Prozessgruppe ab. Software- and Organisations-Service GmbH März 2015 Perl API 258 4.19.9 pid Prozesskennung Syntax: int $subprocess-> pid 4.19.10 priority Prozess-Priorität Syntax: $subprocess->LetProperty( 'priority', int ) Syntax: int $subprocess-> priority Beispiel: $spooler_task->priority( +5 ); // UNIX: reduce the priority a little Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht werden. Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13 "high" (andere Werte werden abgerundet). Siehe auch Task.priority_class . Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Subprocess.priority_class . Siehe auch Task.priority . 4.19.11 priority_class Prioritätsklasse Syntax: $subprocess->LetProperty( 'priority_class', BSTR ) Syntax: BSTR $subprocess-> priority_class Beispiel: $subprocess->priority_class( 'below_normal' ); Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix entsprechen: Prioritätsklasse Windows Unix "idle" 4 16 "below_normal" 6 6 Software- and Organisations-Service GmbH März 2015 Perl API 259 "normal" 8 0 "above_normal" 10 -6 "high" 13 -16 Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelndem Recht, führt das nicht zu einem Fehler. Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Siehe auch Subprocess.priority , Task.priority_class und Microsoft® Windows® Scheduling Priorities. 4.19.12 start Startet den Prozess Syntax: $subprocess-> start( BSTR|BSTR command_line ) Windows erkennt sofort, wenn das Programm nicht ausführbar ist. Die Methode liefert dann einen Fehler. Unter Unix wird stattdessen Subprocess.exit_code auf 99 gesetzt. Vorher muss das Ende des Prozesses abgewartet werden mit Subprocess.wait_for_termination() . Shell-Operatoren wie |, && und > werden nicht interpretiert. Verwenden Sie dazu die Programme /bin/sh bzw. c:\windows\system32\cmd.exe (das Verzeichnis ist installations-abhängig). Der Prozess wird unter Unix mit execvp() und unter Windows mit CreateProcess() gestartet. 4.19.13 terminated Syntax: Boolean $subprocess-> terminated Prüft, ob der Prozess geendet hat. Wenn er geendet hat, kann anschließend Subprocess.exit_code und Subprocess.termination_signal gerufen werden. 4.19.14 termination_signal Signal, mit dem sich der Prozess beendet hat (nur Unix) Syntax: int $subprocess-> termination_signal Erst aufrufen, wenn Subprocess.terminated == true. Software- and Organisations-Service GmbH März 2015 Perl API 260 4.19.15 timeout Frist für den Subprozess Syntax: $subprocess->LetProperty( 'timeout', double seconds ) Nach Ablauf der Zeit bricht der JobScheduler den Subprozess ab (Unix: mit SIGKILL). Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht. 4.19.16 wait_for_termination Syntax: $subprocess-> wait_for_termination( Syntax: Boolean $subprocess-> wait_for_termination( double seconds ) Parameter: seconds Wartezeit. Fehlt der Parameter, dann wartet der Aufruf bis der Subprozess geendet hat. Rückgabe: Boolean true, wenn der Subprozess geendet hat. false, wenn der Subprozess nach Ablauf der Wartezeit noch läuft. 4.20 Supervisor_client Spooler.supervisor_client liefert dieses Objekt. Beispiel: my $supervisor_hostname = $spooler->supervisor_client->hostname; 4.20.1 hostname Name oder IP-Nummer des Rechners, auf dem der Supervisor läuft Syntax: BSTR $supervisor_client-> hostname Siehe auch <config supervisor=""> . 4.20.2 tcp_port TCP-Port des Supervisors Software- and Organisations-Service GmbH März 2015 Perl API 261 Syntax: int $supervisor_client-> tcp_port Siehe auch <config supervisor=""> . 4.21 Task Eine Task ist eine laufende Instanz eines Jobs. Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen. 4.21.1 add_pid Macht dem JobScheduler einen abhängigen, befristeten Prozess bekannt Syntax: $spooler_task-> add_pid( int pid, BSTR|double|int timeout (optional) ) Mit dem Aufruf kann die Laufzeit von abhängigen Prozessen eingeschränkt werden. Bei Task-Ende bricht der JobScheduler noch laufende abhängigen Prozesse in jedem Fall ab. Wenn der JobScheduler einen Prozess abbricht, gibt es einen Eintrag ins Protokoll. Die Task erfährt davon nichts. Der Aufruf <kill_task> bricht alle mit add_pid() bekannt gemachten Prozesse ab. Unter Unix kann eine Prozessgruppen-Id als negative pid übergeben werden. Ein kill bricht dann die ganze Prozessgruppe ab. Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht. 4.21.2 call_me_again_when_locks_available Wiederholt spooler_open() oder spooler_process(), sobald Sperren verfügbar Syntax: $spooler_task-> call_me_again_when_locks_available( Ve r a n l a s s t den S c h e d u l e r, nach erfolglosem Task.try_hold_lock() oder Task.try_hold_lock_non_exclusive() den Aufruf von spooler_open() bzw. spooler_process() zu wiederholen, sobald die angeforderten Sperren verfügbar sind. Der JobScheduler wiederholt dann den Aufruf mit gehaltenen Sperren, so dass die erstgenannten Aufrufe Erfolg haben werden. Nach dem Aufruf hat der Rückgabewert von spooler_open() bzw. spooler_process() (true/false) keine Wirkung. Einen Auftrag Task.order belässt der JobScheduler in seinem Zustand. 4.21.3 changed_directories Die Verzeichnisse, deren Änderung den Start der Task veranlasst haben Software- and Organisations-Service GmbH März 2015 Perl API 262 Syntax: BSTR $spooler_task-> changed_directories Siehe Job.start_when_directory_changed() , Task.trigger_files . Rückgabe: BSTR Die Verzeichnisnamen sind durch Semikolon getrennt. "", wenn kein Verzeichnis geändert ist. 4.21.4 create_subprocess Start eines überwachten Subprozesses Syntax: Subprocess $spooler_task-> create_subprocess( BSTR|BSTR filename_and_arguments (optional) ) Rückgabe: Subprocess 4.21.5 delay_spooler_process Verzögert den nächsten Aufruf von spooler_process() Syntax: $spooler_task->LetProperty( 'delay_spooler_process', BSTR|double|int seconds_or_hhmm_ss ) Wirkt nur in spooler_process() . 4.21.6 end Beendet die Task Syntax: $spooler_task-> end( Der JobScheduler ruft nicht mehr spooler_process() auf. Statt dessen ruft er spooler_close() auf. Der Aufruf kann verwendet werden, um beim Task-Ende den Versand des Task-Protokolls zu veranlassen, siehe Log . 4.21.7 error Setzt einen Fehler und stoppt den Job Syntax: $spooler_task->LetProperty( 'error', BSTR ) Software- and Organisations-Service GmbH März 2015 Perl API 263 Syntax: Error $spooler_task-> error Der lesende Aufruf liefert den letzten Fehler dieser Task. Wenn kein Fehler vorliegt, wird ein Error -Objekt zurückgeliefert, dessen Eigenschaft is_error false liefert. Sie können eine Fehlermeldung auch mit Log.error() ins Task-Protokoll schreiben. Rückgabe: BSTR Error 4.21.8 exit_code Exit-Code Syntax: $spooler_task->LetProperty( 'exit_code', int ) Syntax: int $spooler_task-> exit_code Beispiel: $spooler_log->error( 'This call of spooler_log.error() sets the exit code to 1' ); $spooler_task->LetProperty( 'exit_code', 0 ); # Reset the exit code Der Exit-Code ist anfänglich 0 und wird bei einem Fehler auf 1 gesetzt. Das ist, wenn der JobScheduler eine Zeile mit [ERROR] ins Task-Protokoll schreibt: • • • Aufruf von Log.error() Setzen von Task.error Das Skript liefert eine Exception. Der Job kann anschließend, z.B. in spooler_on_error() , den Task.exit_code neu setzen. Der Exit-Code des (Betriebssystem-)Prozesses, der die Task ausführt, ist ohne Belang und wird nicht übernommen, im Gegensatz zu Jobs mit <process> oder <script language="shell"> . Der Exit-Code entscheidet über die anschließend auszuführenden Kommandos. Siehe hierzu <job> <commands on_exit_code=""> . Der Exit-Code hat keinen Einfluss darauf, ob der Job gestoppt wird (eine Fehlermeldung der Task lässt den Job stoppen). 4.21.9 history_field Ein Feld in der Task-Historie Syntax: $spooler_task->LetProperty( 'history_field', BSTR name, Variant value ) Beispiel: $spooler_task->LetProperty( 'history_field', 'extra', 4711 ); Software- and Organisations-Service GmbH März 2015 Perl API 264 Die Datenbanktabelle (s. factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) muss eine Spalte mit dem Namen haben und diese Spalte muss in der Datei factory.ini (Abschnitt [job], Eintrag history_columns=…) deklariert sein. 4.21.10 id Die Task-Kennung Syntax: int $spooler_task-> id Jede Task hat eine Scheduler-weit eindeutige numerische Kennung. 4.21.11 job Der Job, zu dem die Task gehört Syntax: Job $spooler_task-> job Rückgabe: Job 4.21.12 order Der zu verarbeitende Auftrag Syntax: Order $spooler_task-> order Beispiel: my $order = $spooler_task->order(); $spooler_log->info( 'order.id=' . $order->id . ', order.title=' . $order->title ); Rückgabe: Order null, wenn kein Auftrag vorliegt. 4.21.13 params Die Parameter der Task Syntax: Variable_set $spooler_task-> params Software- and Organisations-Service GmbH März 2015 Perl API 265 Beispiel: my $value = $spooler_task->params->var( "parameter3" ); my $parameters = $spooler_task->params; my $value1 = $parameters->var( "parameter1" ); my $value2 = $parameters->var( "parameter2" ); Eine Task kann Parameter haben. Die Parameter können gesetzt werden mit • • • In der Konfigurationsdatei im Element <job> mit <params> , Job.start() und <start_job> . Rückgabe: Variable_set != null 4.21.14 priority Priorität der laufenden Task Syntax: $spooler_task->LetProperty( 'priority', int ) Syntax: int $spooler_task-> priority Beispiel: $spooler_task->LetProperty('priority', +5 ); # Unix: Priorität etwas verschlechtern Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht werden. Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13 "high" (andere Werte werden abgerundet). Siehe auch Task.priority_class . Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Task.priority_class . 4.21.15 priority_class Prioritätsklasse der laufenden Task Syntax: $spooler_task->LetProperty( 'priority_class', BSTR ) Syntax: BSTR $spooler_task-> priority_class Software- and Organisations-Service GmbH März 2015 Perl API 266 Beispiel: $spooler_task->LetProperty('priority_class', 'below_normal' ); Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix entsprechen: Prioritätsklasse Windows Unix "idle" 4 16 "below_normal" 6 6 "normal" 8 0 "above_normal" 10 -6 "high" 13 -16 Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelnden Rechts, führt das nicht zu einem Fehler. Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Siehe auch Task.priority , Subprocess.priority_class und Microsoft® Windows® Scheduling Priorities. 4.21.16 remove_pid Gegenstück zu add_pid() Syntax: $spooler_task-> remove_pid( int pid ) Es gibt keinen Fehler, wenn die Pid nicht mit Task hinzugefügt worden ist. Siehe Task.add_pid() . 4.21.17 repeat Startet erneut eine Task nach der eingestellten Zeit Syntax: $spooler_task->LetProperty( 'repeat', double ) (Diese Methode gehört eigentlich in die Klasse Job . Sie hat nichts mit der gerade laufenden Task zu tun.) Wenn nach Ablauf der angegebenen Zeit keine Task des Jobs läuft, startet der JobScheduler eine Task. Dabei wird die <run_time> berücksichtigt. <period repeat=""> der aktuellen Periode wird vorläufig außer Kraft gesetzt. Job.delay_after_error hat Vorrang, wenn die Task einen Fehler liefert. Software- and Organisations-Service GmbH März 2015 Perl API 267 4.21.18 stderr_path Der Pfadname der stderr-Ausgabe der Task Syntax: BSTR $spooler_task-> stderr_path Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: BSTR "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 4.21.19 stderr_text Der bisher vom Prozess der Task nach stderr geschriebene Text Syntax: BSTR $spooler_task-> stderr_text Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: BSTR "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 4.21.20 stdout_path Der Pfadname der stdout-Ausgabe der Task Syntax: BSTR $spooler_task-> stdout_path Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: BSTR "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 4.21.21 stdout_text Der bisher vom Prozess der Task nach stdout geschriebene Text Syntax: BSTR $spooler_task-> stdout_text Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: Software- and Organisations-Service GmbH März 2015 Perl API 268 BSTR "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 4.21.22 trigger_files Pfade der Dateien in mit regex überwachten Verzeichnissen Syntax: BSTR $spooler_task-> trigger_files Liefert die Pfade der Dateien aus überwachten Verzeichnissen ( Job.start_when_directory_changed() oder < start_when_directory_changed> ) zum Zeitpunkt des Starts der Task. Nur die Verzeichnisse, für die ein Regulärer Ausdruck (regex) angegeben ist, werden berücksichtigt. Die Pfade werden aus dem Verzeichnispfad, wie er in Job.start_when_directory_changed() oder < start_when_directory_changed> angegeben ist und dem Dateinamen zusammengesetzt. Nicht-API-Jobs ( <process> und <script language="shell"> ) steht der Inhalt von Task.trigger_files in der Umgebungsvariablen SCHEDULER_TASK_TRIGGER_FILES zur Verfügung. Siehe Job.start_when_directory_changed() , Task.changed_directories() . Rückgabe: BSTR Die Dateipfade durch Semikolon getrennt. "" sonst 4.21.23 try_hold_lock Versucht, eine Sperre zu halten Syntax: boolean $spooler_task-> try_hold_lock( BSTR lock_path ) Software- and Organisations-Service GmbH März 2015 Perl API 269 Beispiel: in javascript function spooler_process() { var result = false; if( spooler_task.try_hold_lock( "Georgien" ) && spooler_task.try_hold_lock_non_exlusive( "Venezuela" ) ) { // Task is holding the two locks. Insert processing code here. result = ... } else { spooler_task.call_me_again_when_locks_available(); } return result; } try_lock_hold() versucht, die angegebene Sperre ( Lock ) zu halten, und kann aufgerufen werden • • in spooler_open() : die Sperre wird für die Task gehalten und erst nach Beendigung freigegeben, in spooler_process() : die Sperre wird für nur für diesen Jobschritt gehalten und nach dessen Beendigung freigegeben, also beim Verlassen von spooler_process(). Wenn die Sperre nicht verfügbar ist, ein Aufruf also false liefert, kann entweder • • • mit Task.call_me_again_when_locks_available() der JobScheduler veranlasst werden, den Aufruf spooler_open() bzw. spooler_process() zu wiederholen, sobald die Sperren verfügbar sind, oder spooler_open() bzw. spooler_process() ohne vorgenannten Aufruf mit false beendet werden, mit der üblichen Wirkung, aber nicht mit true beendet werden, das wird als Fehler angesehen und führt zur Warnung SCHEDULER-469 . Siehe auch <lock.use> . Rückgabe: boolean true, wenn die Task die Sperre hält. 4.21.24 try_hold_lock_non_exclusive Versucht, eine Sperre nicht-exklusiv zu halten Syntax: boolean $spooler_task-> try_hold_lock_non_exclusive( BSTR lock_path ) Es gelten dieselben Bedingungen wie für Task.try_hold_lock() . Siehe auch <lock.use exclusive="no"> . Rückgabe: boolean true, wenn die Task die Sperre hält. Software- and Organisations-Service GmbH März 2015 Perl API 270 4.21.25 web_service Der Webdienst, der der Task zugeordnet ist Syntax: Web_service $spooler_task-> web_service Wenn die Task keinem Webdienst zugeordnet ist, liefert der Aufruf eine Exception. Siehe auch Task.web_service_or_null . Rückgabe: Web_service 4.21.26 web_service_or_null Der Webdienst, der der Task zugeordnet ist, oder null. Syntax: Web_service $spooler_task-> web_service_or_null Siehe auch Task.web_service . Rückgabe: Web_service 4.22 Variable_set - Variablenmenge zur Übergabe von Parametern Variablenmengen werden gebraucht für die Scheduler-weiten Variablen und Task-Parameter. Eine neue Variablenmenge wird mit Spooler.create_variable_set() angelegt. Die Großschreibung der Variablennamen ist nicht relevant. In COM (JavaScript, VBScript, Perl) ist ein Variablenwert ein Variant. Weil die Variablen in der Regel in die Scheduler-Datenbank geschrieben werden, sollten nur nach String konvertierbare Variant-Werte verwendet werden (d.h. es sollten keine Objekte verwendet werden). In Java ist ein Variablenwert ein String. Wenn die Variable mit COM als Variant gesetzt worden ist, wird beim Lesen der nach String konvertierte Wert zurückgegeben. Null und Empty werden als null zurückgeliefert. Wenn ein Variant-Wert nicht konvertierbar ist, wird eine Exception ausgelöst. Siehe auch <params> und <sos.spooler.variable_set> . 4.22.1 count Anzahl der Variablen Syntax: int $variable_set-> count Software- and Organisations-Service GmbH März 2015 Perl API 271 4.22.2 merge Mischt eine andere Variablenmenge ein Syntax: $variable_set-> merge( Variable_set vs ) Gleichnamige Variablen werden überschrieben. 4.22.3 names Alle Variablennamen durch Semikolon getrennt Syntax: BSTR $variable_set-> names Beispiel: my $variable_set = $spooler->create_variable_set(); $spooler_log->info( '"' . $variable_set->names . '"' ); # ==> "" $variable_set->( "variable_1", "edno"); $variable_set->( "variable_2", "dwa"; $spooler_log->info( '"' . $variable_set->names . '"' ); "variable_1;variable_2" # ==> my @names = $variable_set->names->split( ";" ); foreach my $name(@names){$spooler_log->info( $name . " = " . $variable_set( $name ) ); Rückgabe: BSTR Die Namen aller Variablen durch Semikolon getrennt. 4.22.4 set_var Setzt eine Variable Syntax: $variable_set-> set_var( BSTR name, Variant value ) 4.22.5 substitute Ersetzt $-Variablen in einem String Syntax: BSTR $variable_set-> substitute( BSTR sustitution_string ) Software- and Organisations-Service GmbH März 2015 Perl API 272 Beispiel: in javascript subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) ); Im Beispiel wird Subprocess.env verwendet. Referenzen der Form $ name und ${ name } im String werden durch Variablenwerte ersetzt, siehe auch . Rückgabe: BSTR Die Zeichenkette mit den ersetzten $-Variablen 4.22.6 value Eine Variable Syntax: $variable_set->LetProperty( 'value', BSTR name, Variant value ) Syntax: Variant $variable_set-> value( BSTR name ) Parameter: name value empty, wenn die Variable nicht vorhanden ist. Rückgabe: Variant empty, wenn die Variable nicht vorhanden ist. 4.22.7 var Eine Variable Syntax: $variable_set->LetProperty( 'var', BSTR name, Variant value ) Syntax: Variant $variable_set-> var( BSTR name ) Verwenden Sie Variable_set.value , das ist in allen Sprachen verfügbar. Parameter: name value empty, wenn die Variable nicht vorhanden ist. Rückgabe: Variant empty, wenn die Variable nicht vorhanden ist. Software- and Organisations-Service GmbH März 2015 Perl API 273 4.22.8 xml Variable_set als XML-Dokument Syntax: $variable_set->LetProperty( 'xml', BSTR ) Syntax: BSTR $variable_set-> xml Beispiel: my $variable_set = $spooler->create_variable_set(); $spooler_log->info( $variable_set->xml ); // Liefert <?xml version='1.0'?>< sos.spooler.variable_set/> my $variable_set->LetProperty( 'xml', '<?xml version='1.0'?>' . '<params>' . '<param name='nachname' value='Meier'/>' . '<param name='vorname' value='Hans'/>' . '</params>'; $spooler_log->info( $variable_set->xml ); $spooler_log->info( 'nachname=' . $variable_set->value( 'nachname' ) ); $spooler_log->info( 'vorname =' . $variable_set->value( 'vorname' ) ); Siehe <sos.spooler.variable_set> , <params> . Parameter: XML-Dokument als String. Liefert < sos.spooler.variable_set> . Beim Setzen wird der Name des Wurzelelements nicht beachtet, <params> oder <sos.spooler.variable_set> kann übergeben werden. Rückgabe: BSTR XML-Dokument als String. Liefert <sos.spooler.variable_set> . Beim Setzen wird der Name des Wurzelelements nicht beachtet, <params> oder <sos.spooler.variable_set> kann übergeben werden. 4.23 Web_service Siehe auch <web_service> 4.23.1 forward_xslt_stylesheet_path Pfad des XSLT-Stylesheets fürs Forwarding Syntax: BSTR $web_service-> forward_xslt_stylesheet_path Software- and Organisations-Service GmbH März 2015 Perl API 274 Siehe auch <web_service forward_xslt_stylesheet=""> 4.23.2 name Name des Web-Dienstes im Scheduler Syntax: BSTR $web_service-> name Siehe auch <web_service name=""> 4.23.3 params Parameter zur freien Verwendung Syntax: Variable_set $web_service-> params Die Parameter des Web-Services können mit <web_service> eingestellt werden. Rückgabe: Variable_set 4.24 Web_service_operation Siehe auch <web_service> 4.24.1 peer_hostname Hostname der Gegenstelle Syntax: BSTR $web_service_operation-> peer_hostname Rückgabe: BSTR "", wenn der Name nicht ermittelt werden kann. 4.24.2 peer_ip IP-Adresse der Gegenstelle Syntax: BSTR $web_service_operation-> peer_ip Software- and Organisations-Service GmbH März 2015 Perl API 275 4.24.3 request Anforderung Syntax: Web_service_request $web_service_operation-> request Rückgabe: Web_service_request 4.24.4 response Antwort Syntax: Web_service_response $web_service_operation-> response Rückgabe: Web_service_response 4.24.5 web_service Syntax: Web_service $web_service_operation-> web_service Rückgabe: Web_service 4.25 Web_service_request Siehe Web_service_operation . 4.25.1 binary_content Nutzdaten als Byte-Array (nur Java) Syntax: $web_service_request-> binary_content Die Eigenschaft steht nur unter Java zur Verfügung. Wie der binäre Inhalt zu interpretieren ist, sollte der Client in im Header-Feld Content-Type mitgeteilt haben (siehe HTTP/1.1 14.17 Content-Type und Web_service_request.charset_name ). Software- and Organisations-Service GmbH März 2015 Perl API 276 4.25.2 charset_name Zeichencodierung Syntax: BSTR $web_service_request-> charset_name Beispiel: my $request = $spooler_task->order->web_service_operation->request; $spooler_log->info( $request->header( 'Content-Type' ) ); charset=utf-8 $spooler_log->info( $request->content_type ); $spooler_log->info( $request->charset_name ); # ==> text/xml; # ==> text/xml # ==> utf-8 Liefert den Parameter charset= aus dem Kopfeintrag Content-Type:. 4.25.3 content_type Content-Type (ohne Parameter) Syntax: BSTR $web_service_request-> content_type Liefert den Kopfeintrag Content-Type: ohne Parameter, z.B. "text/plain". 4.25.4 header Eintrag im Kopf Syntax: BSTR $web_service_request-> header( BSTR name ) Beispiel: $spooler_log->info( 'Content-Type: ' . $spooler_task->order->web_service_operation-> request->header( 'Content-Type' ) ); Parameter: name Die Großschreibung spielt keine Rolle. Rückgabe: BSTR Für einen unbekannten Eintrag wird "" geliefert Software- and Organisations-Service GmbH März 2015 Perl API 277 4.25.5 string_content Nutzdaten als Text Syntax: BSTR $web_service_request-> string_content Die Zeichen-Codierung wird dem Parameter charset aus headers( "Content-Type" ) entnommen (siehe HTTP/1.1 14.17 Content-Type). Fehlt der Parameter, wird ISO-8859-1 angenommen. Folgende Zeichen-Codierungen (Charset) werden erkannt: • • ISO-8859-1 UTF-8 (nur Windows und beschränkt auf den Zeichenvorrat von ISO-8859-1) Siehe auch Web_service_request.binary_content . 4.25.6 url Uniform Resource Locator Syntax: BSTR $web_service_request-> url url = "http://" + header( "Host" ) + url_pfad 4.26 Web_service_response Die Eigenschaft binary_content steht nur unter Java zur Verfügung. Siehe auch <web_service> 4.26.1 charset_name Zeichencodierung Syntax: BSTR $web_service_response-> charset_name Beispiel: my $request = $spooler_task->order->web_service_operation->request; $spooler_log->info( $request->header( 'Content-Type' ) ); charset=utf-8 $spooler_log->info( $request->content_type ); $spooler_log->info( $request->charset_name ); // ==> text/xml; // ==> text/xml // ==> utf-8 Zugriff auf den Parameter charset= aus dem Kopfeintrag Content-Type:. Software- and Organisations-Service GmbH März 2015 Perl API 278 4.26.2 content_type Content-Type (ohne Parameter) Syntax: BSTR $web_service_response-> content_type Zugriff auf den Kopfeintrag Content-Type: ohne dazugehörige Parameter (z.B. charset=). 4.26.3 header Eintrag im Kopf Syntax: $web_service_response->LetProperty( 'header', BSTR value, BSTR name ) Syntax: BSTR $web_service_response-> header( BSTR name ) Beispiel: $spooler_log->info( 'Content-Type: ' . $spooler_task->order->web_service_operation-> header( 'Content-Type' ) ); Parameter: value Für einen umbekannten Eintrag wird "" verwendet name Die Großschreibung spielt keine Rolle. Rückgabe: BSTR Für einen umbekannten Eintrag wird "" verwendet 4.26.4 send Antwort senden Syntax: $web_service_response-> send( 4.26.5 status_code HTTP-Status-Code Syntax: $web_service_response->LetProperty( 'status_code', int ) Voreingestellt ist 200 (OK). Software- and Organisations-Service GmbH März 2015 Perl API 279 4.26.6 string_content Nutzdaten als Text Syntax: $web_service_response->LetProperty( 'string_content', BSTR text ) Beispiel: my $response = $spooler_task->order->web_service_operation->response; $response->LetProperty( 'content_type', 'text/plain' ); $response->LetProperty( 'charset_name', 'iso-8859-1' ); $response->LetProperty( 'string_content', 'This is the answer' ); $response->send(); Zuvor muss header( "Content-Type" ) mit dem Parameter charset gesetzt sein, zum Beispiel header( "Content-Type" ) = "text/plain; charset=iso-8859-1"; Der Text wird nach dem Parameter charset codiert. Fehlt der Parameter, wird ISO-8859-1 angenommen. Zu den hier zulässigen Zeichen-Codierungen (Charset) siehe Web_service_request.string_content Siehe Web_service_response.charset_name . 4.27 Xslt_stylesheet Mit einem XSLT-Stylesheet wird die Konvertierung eines XML-Dokuments in ein anderes beschrieben. Der XSLT-Prozessor ist mit libxslt implementiert. 4.27.1 apply_xml Wendet das Stylesheet auf ein XML-Dokument an. Syntax: BSTR $x-> apply_xml( BSTR xml ) 4.27.2 close Gibt die Ressourcen des Stylesheets frei Syntax: $x-> close( 4.27.3 load_file Lädt das Stylesheet aus einer XML-Datei Software- and Organisations-Service GmbH März 2015 Perl API 280 Syntax: $x-> load_file( BSTR path ) 4.27.4 load_xml Lädt das Stylesheet aus einem XML-Dokument Syntax: $x-> load_xml( BSTR xml ) Software- and Organisations-Service GmbH März 2015 VBScript API 281 5 VBScript API Für VBScript stehen die folgenden Klassen zur Verfügung: 5.1 Error 5.1.1 code Der Fehlercode Syntax: String error. code 5.1.2 is_error true, wenn ein Fehler vorliegt Syntax: Boolean error. is_error 5.1.3 text Fehlertext (mit Fehlercode) Syntax: String error. text 5.2 Job Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen. 5.2.1 clear_delay_after_error Nimmt alle delay_after_error zurück Syntax: spooler_job. clear_delay_after_error () 5.2.2 clear_when_directory_changed Nimmt alle start_when_directory_changed() zurück Software- and Organisations-Service GmbH März 2015 VBScript API 282 Syntax: spooler_job. clear_when_directory_changed () 5.2.3 configuration_directory Verzeichnis der Konfigurationsdatei des Jobs Syntax: String spooler_job. configuration_directory "", wenn der Job nicht aus einem Konfigurationsverzeichnis stammt. 5.2.4 delay_after_error Verzögert erneuten Jobstart nach Fehler Syntax: spooler_job. delay_after_error ( Integer error_steps ) = Double|Integer|String seconds_or_hhmm_ss Beispiel: in javascript spooler_job.delay_after_error( 2 Fehler um 10 Sekunden verzögern spooler_job.delay_after_error( 5 Fehler um eine Minute verzögern spooler_job.delay_after_error( 10 Fehler um einen Tag verzögern spooler_job.delay_after_error( 20 Fehler den Job stoppen ) = 10; // Ab dem 2. aufeinanderfolgenden ) = "00:01"; // Ab dem 5. aufeinanderfolgenden ) = "24:00"; // Ab dem 10. aufeinanderfolgenden ) = "STOP"; // Beim 20. aufeinanderfolgenden Nach einem Fehler wiederholt der JobScheduler den Job sofort. Nach dem zweiten bis zum vierten Fehler verzögert der JobScheduler den Job um 10 Sekunden, nach dem fünften bis zum neunten Fehler um eine Minute, nach dem zehnten bis zum neunzehnten um 24 Stunden, nach dem zwanzigsten aufeinanderfolgenden Fehler schließlich stoppt der Job. Für verschiedene Anzahlen aufeinanderfolgender Fehler kann eine Verzögerung eingestellt werden. Der Job wird dann nicht gestoppt, sondern die angegebene Zeit verzögert und erneut gestartet. Der Aufruf kann für verschiedene Anzahlen wiederholt werden. Man wird jeweils eine längere Verzögerung angeben. Wenn Sie den Parameter seconds_or_hhmm_ss als String übergeben, können Sie auch "STOP" angeben. Der Job stoppt, wenn er die angegebene Anzahl aufeinanderfolgende Fehler erreicht hat. Eine gute Stelle für die Aufrufe ist spooler_init() . Siehe <delay_after_error> . Parameter: error_steps Anzahl der aufeinanderfolgenden Jobfehler, ab der die Verzögerung gilt Software- and Organisations-Service GmbH März 2015 VBScript API 283 seconds_or_hhmm_ss Frist, nach der der Job wiederholt wird 5.2.5 delay_order_after_setback Stellt Aufträge nach Fehler zurück Syntax: spooler_job. delay_order_after_setback ( Integer setback_count ) = Double|Integer|String seconds_or_hhmm_ss Beispiel: in javascript spooler_job.delay_order_after_setback( 1 ) = 60; Rückstellung desselben Auftrags: // 1. bis 2. aufeinderfolgende // Auftrag um 60s verzögern. spooler_job.delay_order_after_setback( 3 ) = "01:00"; Rückstellung desselben Auftrags: // Ab 3. aufeinanderfolgender // Auftrag um eine Stunde verzögern. spooler_job.max_order_setbacks = 5; versetzt den Auftrag in den Fehlerzustand // Die 5. Rückstellung Ein Auftragsjob kann einen Auftrag, den er gerade ausführt, mit Order.setback() zurückstellen. Er wird dann an eine hintere Stelle der Auftragswarteschlange des Jobs eingereiht und kommt nach der eingestellten Zeit erneut zur Ausführung. Die aufeinanderfolgenden Rückstellungen eines Auftrags werden gezählt. Mit delay_order_after_setback können Sie verschiedene Fristen für wiederholte Rückstellungen festlegen. Siehe <delay_order_after_setback> , Order.setback() , Job.max_order_setbacks , Job_chain.add_job() , Job.delay_after_error() . Parameter: setback_coun t Für die 1., 2. usw. aufeinanderfolgende Rückstellung desselben Auftrags können verschiedene Fristen eingestellt werden. seconds_or_h hmm_ss Frist für die Rückstellung. Nach Ablauf der Frist kommt der Auftrag erneut in diesem Job zur Ausführung. 5.2.6 folder_path Pfad des Ordners, in dem der Job sich befindet. Syntax: String spooler_job. folder_path "", wenn der Job nicht aus dem lokalen Konfigurationsverzeichnis ( <config configuration_directory=""> ) stammt. Liefert den Pfad des Jobs relativ zum Live-Directory. Der Pfad beginnt mit einem "/", alle Bestandteile eines Pfads sind durch "/" getrennt Software- and Organisations-Service GmbH März 2015 VBScript API 284 Beispiele: • • • für einen Job c:\scheduler\config\live\somewhere\excel\sample.job.xml wird "/somewhere/excel" zurückgeliefert für einen Job c:\scheduler\config\live\sample.xml wird "/" zurückgeliefert für einen Job außerhalb des Live-Verzeichnisses wird "" (Leerstring) zurückgeliefert 5.2.7 include_path Wert der Option -include-path= Syntax: String spooler_job. include_path Siehe -include-path . 5.2.8 max_order_setbacks Begrenzt die Anzahl der Rückstellungen eines Auftrags Syntax: spooler_job. max_order_setbacks = Integer Wenn derselbe Auftrag mehr als hier angegeben aufeinderfolgend zurückgesetzt worden ist (s. Order.setback() ), gerät er in den Fehlerzustand (s. Job_chain_node.error_state ). Siehe Job.delay_order_after_setback und <delay_order_after_setback is_maximum="yes"> . 5.2.9 name Pfad des Jobs ohne beginnenden Schrägstrich Syntax: String spooler_job. name Siehe <job name=""> . 5.2.10 order_queue Auftragswarteschlange des Jobs Syntax: Order_queue spooler_job. order_queue Beispiel: in javascript spooler_log.info( 'order=' + ( spooler_job.order_queue ? "yes" : "no" ) ); Software- and Organisations-Service GmbH März 2015 VBScript API 285 Ein Auftragsjob ( <job order="yes"> ) hat eine Auftragswarteschlange. Die Auftragswarteschlange wird über eine Jobkette, in der der Job eingetragen ist, gefüllt. Siehe Job_chain.add_order() , Job_chain.add_job() . Rückgabe: Order_queue null, wenn der Job keine Auftragswarteschlange hat (bei <job order="no"> ). 5.2.11 process_class Die Prozessklasse Syntax: Process_class spooler_job. process_class Siehe <job process_class=""> . Rückgabe: Process_class 5.2.12 remove Entfernt den Job Syntax: spooler_job. remove () Der Job wird gestoppt, d.h. laufende Tasks werden beendet, keine neuen werden gestartet. Sobald keine Task mehr läuft, wird der Job entfernt. Tasks in der Warteschlange werden ignoriert. Wenn keine Task des Jobs läuft, entfernt remove() den Job sofort. Auftragsjobs ( <job order="yes"> ) können nicht entfernt werden. Siehe <modify_job cmd="remove"> . 5.2.13 setback_max Wie oft kann ein Auftrag zurückgestellt werden? Syntax: spooler_job. setback_max = Integer Syntax: Integer spooler_job. setback_max Siehe <delay_order_after_setback is_maximum="yes"> . Software- and Organisations-Service GmbH März 2015 VBScript API 286 5.2.14 start Erzeugt eine neue Task und reiht sie in die Task-Warteschlange ein Syntax: Task spooler_job. start ( Variable_set variables (optional) ) Beispiel: spooler.job( "job_a" ).start Dim parameters Set parameters = spooler.create_variable_set() parameters.var( "my_parameter" ) = "my_value" parameters.var( "other_parameter" ) = "other_value" spooler.job( "job_a" ).start( parameters ) Die Parameter stehen der Task mit Task.params zur Verfügung. Zwei besondere Parameter können angegeben werden: "spooler_task gibt der Task einen Namen, der in den Statusanzeigen erscheint. _name" "spooler_star gibt eine Zeit in Sekunden (reelle Zahl) an, nach deren Ablauf die Task zu starten ist. Dabei wird t_after" <run_time> nicht beachtet. Siehe Spooler.create_variable_set() , Spooler.job , Variable_set.value . Rückgabe: Task 5.2.15 start_when_directory_changed Überwacht ein Verzeichnis und lässt bei Änderung eine Task starten Syntax: spooler_job. start_when_directory_changed filename_pattern (optional) ) ( String directory_path, String Beispiel: in javascript spooler_job.start_when_directory_changed( "c:/tmp" ); // Nur Dateien beachten, deren Name nicht auf "~" endet. spooler_job.start_when_directory_changed( "c:/tmp", "^.*[^~]$" ); Wenn keine Task des Jobs läuft und sich das Verzeichnis geändert hat (eine Datei hinzukommt, umbenannt oder entfernt wird), startet der JobScheduler innerhalb der <run_time> eine Task. Um mehrere Verzeichnisse zu überwachen, kann der Aufruf wiederholt werden. Ein Aufruf mit einem bereits angegebenen Verzeichnis erneuert die Überwachung. Der Aufruf kann im Scheduler-Skript oder in spooler_init() des Jobs codiert werden. Im letzteren Fall muss der Job zu Beginn einmal starten, damit der Aufruf wirksam wird. Verwenden Sie dazu die Einstellung <run_time once="yes"> . Der Job sollte mit <run_time repeat=""> periodisch gestartet und mit <delay_after_error> versehen werden. Software- and Organisations-Service GmbH März 2015 VBScript API 287 Dieselbe Einstellung können Sie auch in der XML-Konfiguration mit <start_when_directory_changed> vornehmen. Siehe auch JobScheduler Dokumentation. Parameter: directory_path Pfad des zu überwachenden Verzeichnisses filename_patter Beschränkt die Überwachung auf Dateinamen, die dem Regulären Ausdruck entsprechen. n 5.2.16 state_text Freier Text für den Zustand des Jobs Syntax: spooler_job. state_text = String Beispiel: in javascript spooler_job.state_text = "Step C succeeded"; Der Text wird in der HTML-Oberfläche gezeigt. Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen. 5.2.17 title Titel des Jobs Syntax: String spooler_job. title Beispiel: in javascript spooler_log.info( "Job title=" + spooler_job.title ); Siehe <job title=""> . 5.2.18 wake Veranlasst den Start einer Task Syntax: spooler_job. wake () Wenn der Job im Zustand pending oder stopped ist (also keine Task läuft), startet der Aufruf eine Task. Siehe Job.start() . Software- and Organisations-Service GmbH März 2015 VBScript API 288 5.3 Job_chain - Jobkette zur Auftragsverarbeitung Eine Jobkette (Job_chain) ist eine Kette von Jobs (Jobkettenknoten oder Stellen). Diese Kette wird von Aufträgen ( Order ) durchlaufen. Jeder Stelle in der Jobkette ist ein Zustand und ein Job zugeordnet. Wenn ein Auftrag der Jobkette hinzugefügt wird, setzt der JobScheduler ihn an die seinem Zustand entsprechende Stelle. Der dieser Stelle zugeordnete Job führt den Auftrag aus. Jede Stelle hat außerdem einen Folgezustand und einen Fehlerzustand. Nach der Verarbeitung eines Auftrags durch einen Jobschritt ändert der JobScheduler den Zustand des Auftrags. Wenn der Jobschritt (spooler_process) true liefert, stellt der JobScheduler den Folgezustand, sonst den Fehlerzustand ein. Der Auftrag rutscht damit an eine andere Stelle der Jobkette, die dem neuen Zustand zugeordnet ist. Das gilt nicht, wenn der Zustand während der Ausführung mit Order.state verändert worden ist. Sie erzeugen eine Jobkette mit Spooler.create_job_chain() , füllen sie mit Job_chain.add_job() und Job_chain.add_end_state() und machen sie schließlich mit Spooler.add_job_chain() bekannt. Jeder Knoten ist eindeutig einem Zustand zugeordnet. Für jeden Zustand muss genau einmal Job_chain.add_job() oder Job_chain.add_end_state() aufgerufen werden. Beispiel: in javascript var my_job_chain = spooler.create_job_chain(); my_job_chain.name = "Jobkette"; my_job_chain.add_job( "job_100", 100, 200, 999 ); my_job_chain.add_job( "job_200", 200, 1000, 999 ); my_job_chain.add_end_state( 999 ); my_job_chain.add_end_state( 1000 ); spooler.add_job_chain( my_job_chain ); 5.3.1 add_end_state Fügt der Jobkette einen Endknoten hinzu Syntax: job_chain. add_end_state ( Variant state ) Diesem Knoten ist kein Job zugeordnet. Ein Auftrag, der einen Endknoten erreicht, hat die Jobkette durchlaufen und wird vom JobScheduler aus ihr entfernt. 5.3.2 add_job Erweitert die Jobkette um einen Job Syntax: job_chain. add_job ( String job_name, Variant input_state, Variant output_state, Variant error_state ) Software- and Organisations-Service GmbH März 2015 VBScript API 289 5.3.3 add_or_replace_order Gibt einen Auftrag in die Jobkette und ersetzt ggfs. einen mit gleicher Kennung Syntax: job_chain. add_or_replace_order ( Order order ) Hat die Jobkette bereits einen Auftrag mit gleicher Kennung, dann wird dieser ersetzt. Genauer: Er wird aus der Jobkette entfernt, und der neue Auftrag wird hinzugefügt. Solange eine Task den vorhandenen Auftrag ausführt, sind im JobScheduler zwei Aufträge mit gleicher Kennung vorhanden. Allerdings ist der vorhandene Auftrag aus der Jobkette und aus der Datenbank bereits entfernt. Er ist nur noch für die Task nutzbar und verschwindet nach der Ausführung. In diesem Fall wartet der JobScheduler die Ausführung des neuen Auftrags ab, bis die Ausführung des alten Auftrags beendet ist. Siehe Job_chain.add_order() und Order.remove_from_job_chain() 5.3.4 add_order Gibt einen Auftrag in die Jobkette Syntax: Order job_chain. add_order ( Order |String order_or_payload ) Wenn der Auftrag in einer anderen Jobkette enthalten ist, entfernt der JobScheduler ihn daraus. Der Auftrag wird in die Auftragswarteschlange des Jobs, der seinem Zustand entspricht, gemäß seiner Priorität eingeordnet. Die Jobkette mit muss <job_chain> oder Spooler.add_job_chain() dem JobScheduler bekannt gemacht worden sein. Wenn die Jobkette bereits einen Auftrag mit gleicher Order.id enthält, wird eine Exception mit Fehlercode SCHEDULER-186 geliefert. Siehe aber Job_chain.add_or_replace_order() . Rückgabe: Order 5.3.5 name Name der Jobkette Syntax: job_chain. name = String Syntax: String job_chain. name Beispiel: in javascript var job_chain = spooler.create_job_chain(); job_chain.name = "Jobkette"; Software- and Organisations-Service GmbH März 2015 VBScript API 290 5.3.6 node Der Jobkettenknoten zum angegebenen Zustand Syntax: Job_chain_node job_chain. node ( Variant state ) Rückgabe: Job_chain_node 5.3.7 order_count Anzahl der Aufträge in der Jobkette Syntax: Integer job_chain. order_count 5.3.8 order_queue = node(state).job().order_queue() Syntax: Order_queue job_chain. order_queue ( Variant state ) Liefert die Auftragswarteschlange des Jobs, der dem angegebenen Zustand zugeordnet ist. Rückgabe: Order_queue 5.3.9 orders_recoverable Syntax: job_chain. orders_recoverable = Boolean Syntax: Boolean job_chain. orders_recoverable Siehe <job_chain orders_recoverable=""> . 5.3.10 remove Entfernt die Jobkette Syntax: job_chain. remove () Wenn gerade Aufträge der Jobkette verarbeitet werden (in spooler_process() ), dann entfernt der JobScheduler die Jobkette, sobald der letzte Auftrag verarbeitet worden ist. Software- and Organisations-Service GmbH März 2015 VBScript API 291 Die Aufträge bleiben in der Datenbank erhalten. Wenn später eine Jobkette mit gleichen Namen hinzugefügt wird ( Spooler.add_job_chain() ), dann lädt der JobScheduler diese Aufträge erneut. Die Zustände der Aufträge müssen in der erneuerten Jobkette vorhanden sein. 5.3.11 title Syntax: job_chain. title = String Syntax: String job_chain. title Siehe <job_chain title=""> . 5.4 Job_chain_node Ein Jobkettenknoten beschreibt eine Stelle in einer Jobkette ( Job_chain ). Einem Jobkettenknoten sind zugeordnet: ein Zustand, ein Job, ein Folgezustand und ein Fehlerzustand. Ein Jobkettenknoten wird mit Job_chain.add_job() oder mit Job_chain.add_end_state() erzeugt. 5.4.1 action Jobkettenknoten stoppen oder überspringen Syntax: node. action = String Syntax: String node. action Beispiel: in javascript var job_chain_node = spooler.job_chain( "my_job_chain" ).node( 100 ); job_chain_node.action = "next_state"; Für eine verteilte Jobkette nicht möglich. Mögliche Angaben sind action="process" Das ist die Voreinstellung. Aufträge werden ausgeführt. action="stop" Aufträge werden nicht ausgeführt, sie sammeln sich in der Auftragswarteschlange an. action="next_state" Aufträge werden sofort dem mit next_state bestimmten Folgeknoten übergeben. Siehe auch <job_chain_node.modify action=""> . In Java sind für Zeichenketten Konstanten definiert: Software- and Organisations-Service GmbH März 2015 VBScript API • • • 292 Job_chain_node.ACTION_PROCESS Job_chain_node.ACTION_STOP Job_chain_node.ACTION_NEXT_STATE 5.4.2 error_node Nächster Knoten in der Jobkette für den Fehlerfall Syntax: Job_chain_node node. error_node Beispiel: in javascript var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.debug( "error state=" + job_chain_node.error_node.state ); "state=999" // Rückgabe: Job_chain_node null, wenn es keinen Fehler-Knoten gibt (Fehlerzustand ist nicht angegeben) 5.4.3 error_state Zustand in der Jobkette für den Fehlerfall Syntax: Variant node. error_state Beispiel: in javascript var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.debug( "error state=" + job_chain_node.error_node.state ); state=999" // "error 5.4.4 job Job, der dem Knoten zugeordnet ist Syntax: Job node. job Beispiel: in javascript var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.debug( "job=" + job_chain_node.job.name ); "job=job_100" // Rückgabe: Job Software- and Organisations-Service GmbH März 2015 VBScript API 293 5.4.5 next_node Syntax: Job_chain_node node. next_node Rückgabe: Job_chain_node 5.4.6 next_state Zustand in der Jobkette für den Erfolgsfall Syntax: Variant node. next_state Beispiel: in javascript var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.debug( "next_state=" + job_chain_node.next_state ); "state=200" // 5.4.7 state Zustand, für den dieser Jobkettenknoten gilt Syntax: Variant node. state Beispiel: in javascript var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 ); spooler_log.info( "state=" + job_chain_node.state ); "state=100" // 5.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript Der Methoden eines Jobs werden in folgender Reihenfolge aufgerufen. spooler_init() spooler_open() spooler_process() spooler_process() ... spooler_close() spooler_on_success() oder spooler_on_error() spooler_exit() Software- and Organisations-Service GmbH März 2015 VBScript API 294 Keine dieser Methoden muss implementiert werden. In der Regel wird wenigstens spooler_process() implementiert. Ein Fehler beim Ausführen des Job-Skripts während des Ladens oder in spooler_init() führt zum Aufruf von spooler_on_error() . Der Job wird gestoppt. spooler_exit() wird gerufen (obwohl spooler_init() nicht gerufen worden ist!) und das Skript entladen. spooler_on_error() muss also auch mit Fehlern umgehen, die beim Laden oder in spooler_init() auftreten. spooler_exit() wird gerufen, auch wenn spooler_init() nicht gerufen worden ist. 5.5.1 spooler Das allgemeine Objekt des Schedulers Syntax: Spooler spooler Beispiel: in javascript spooler_log.debug( "The working directory of the JobScheduler is " + spooler.directory ); Rückgabe: Spooler 5.5.2 spooler_close Task-Ende Syntax: spooler_close () Wird am Ende eines Joblaufs gerufen. Gegenstück zu spooler_open() . 5.5.3 spooler_exit Destruktor Syntax: spooler_exit () Wird als allerletzte Methode gerufen, bevor das Skript entladen wird. Hier kann z.B. eine Datenbank-Verbindung geschlossen werden. 5.5.4 spooler_init Initialisierung Syntax: Boolean spooler_init () Software- and Organisations-Service GmbH März 2015 VBScript API 295 Der JobScheduler ruft diese Methode nach dem Konstruktor und vor spooler_open() genau einmal auf. Gegenstück ist spooler_exit() . Die Methode ist geeignet, um die Task zu initialisieren (z.B. um eine Datenbank-Verbindung aufzubauen). Rückgabe: Boolean false beendet die Task. Der JobScheduler setzt mit spooler_exit() fort. Wenn die Task einen Auftrag verarbeiten soll, wird die Task mit Fehler beendet, was den Job stoppt (wenn nicht Job.delay_after_error gesetzt ist). 5.5.5 spooler_job Das Objekt des Jobs Syntax: Job spooler_job Beispiel: in javascript spooler_log.info( "The name of this job is " + spooler_job.name ); Rückgabe: Job 5.5.6 spooler_log Zum Protokollieren Syntax: Log spooler_log Beispiel: in java spooler_log.info( "Something has happend" ); Rückgabe: Log 5.5.7 spooler_on_error Bei Task-Ende im Fehlerfall Syntax: spooler_on_error () Wird als letzte Funktion eines Joblaufs gerufen, wenn ein Fehler aufgetreten ist (nach spooler_close() und vor spooler_exit() ). Software- and Organisations-Service GmbH März 2015 VBScript API 296 5.5.8 spooler_on_success Bei Task-Ende im Erfolgsfall Syntax: spooler_on_success () Wird nach spooler_close() , vor spooler_exit() aufgerufen, wenn kein Fehler aufgetreten ist. 5.5.9 spooler_open Task-Beginn Syntax: Boolean spooler_open () Wird zu Beginn einer Task gerufen. Die Methode wird direkt nach spooler_init() gerufen, es gibt derzeit keinen Unterschied. Gegenstück ist spooler_close() . 5.5.10 spooler_process Jobschritt oder Ausführung eines Auftrags Syntax: Boolean spooler_process () Führt einen Jobschritt aus. Ein Auftragsjob erhält in Task.order den auszuführenden Auftrag. Die Default-Implementierung gibt false zurück. Ein Auftragsjob versetzt aber einen Auftrag in den Folgezustand. Rückgabe: Boolean Bei <job order="no"> : false beendet den Joblauf. Bei <job order="yes"> : false versetzt den Auftrag in den Fehlerzustand (s. Job_chain_node und < job_chain_node> ). Das gilt nicht, wenn der Zustand während der Ausführung mit Order.state verändert worden ist. 5.5.11 spooler_task Das Objekt der Task Syntax: Task spooler_task Beispiel: in javascript spooler_log.info( "The task id is " + spooler_task.id ); Software- and Organisations-Service GmbH März 2015 VBScript API 297 Rückgabe: Task 5.6 Lock Siehe auch <lock name=""> . Beispiel: in javascript var locks = spooler.locks; var lock = locks.create_lock(); lock.name = "my_lock"; locks.add_lock( lock ); 5.6.1 max_non_exclusive Begrenzung der nicht-exklusiven Belegungen Syntax: lock. max_non_exclusive = Integer Syntax: Integer lock. max_non_exclusive Die Voreinstellung ist unbegrenzt (231-1), es können also mit <lock.use exclusive="no"> beliebig viele nicht-exklusive Tasks gestartet werden (aber nur eine exklusive). Die Zahl kann nicht kleiner sein als die Zahl der nicht-exklusiven Belegungen. Siehe auch <lock max_non_exclusive=""> . 5.6.2 name Name der Sperre Syntax: lock. name = String Syntax: String lock. name Der Name kann nur einmal gesetzt und nicht geändert werden. Siehe auch <lock name=""> . 5.6.3 remove Entfernt die Sperre Syntax: lock. remove () Software- and Organisations-Service GmbH März 2015 VBScript API 298 Beispiel: in javascript spooler.locks.lock( "my_lock" ).remove(); Die Sperre kann nur gelöscht werden, wenn sie von keiner Task belegt und von keinem Job gebraucht ( <lock.use > ) wird. Siehe auch <lock.remove> . 5.7 Locks 5.7.1 add_lock Fügt dem JobScheduler eine Sperre hinzu Syntax: locks. add_lock ( Lock lck ) 5.7.2 create_lock Richtet eine neue Sperre ein Syntax: Lock locks. create_lock () Liefert eine neues Lock . Diese Sperre kann mit Locks.add_lock() dem JobScheduler hinzugefügt werden. Rückgabe: Lock 5.7.3 lock Liefert eine Sperre Syntax: Lock locks. lock ( String lock_name ) Wenn die Sperre nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Lock Software- and Organisations-Service GmbH März 2015 VBScript API 299 5.7.4 lock_or_null Liefert eine Sperre Syntax: Lock locks. lock_or_null ( String lock_name ) Rückgabe: Lock null, wenn die Sperre nicht bekannt ist. 5.8 Log - Protokollierung In einem Job oder im Scheduler-Skript stellt spooler_log die hier beschriebenen Methoden bereit. eMail-Versand Am Ende einer Task kann der JobScheduler das Task-Protokoll per eMail versenden. In es versendet werden soll, geben diese Eigenschaften an: • • • • • Log.mail_on_error , Log.mail_on_warning , Log.mail_on_process , Log.mail_on_success und Log.mail_it Nur das Ende der Task, nicht das Ende einer Auftragsausführung (also spooler_process() ) führt zum eMail-Versand. Siehe aber Task.end() . Log.mail stellt ein Mail -Objekt bereit, das die Adressierung übernimmt. Beispiel: in javascript spooler_log.info( "Something for the Log" ); spooler_log.mail_on_warning = true; spooler_log.mail.from = "[email protected]"; spooler_log.mail.to = "[email protected]"; spooler_log.mail.subject = "ended"; 5.8.1 debug Debug-Meldung (Level -1) Syntax: spooler_log. debug ( String line ) 5.8.2 debug1 Debug-Meldung (Level -1) Software- and Organisations-Service GmbH März 2015 VBScript API 300 Syntax: spooler_log. debug1 ( String line ) 5.8.3 debug2 Debug-Meldung (Level -2) Syntax: spooler_log. debug2 ( String line ) 5.8.4 debug3 Debug-Meldung (Level -3) Syntax: spooler_log. debug3 ( String line ) 5.8.5 debug4 Debug-Meldung (Level -4) Syntax: spooler_log. debug4 ( String line ) 5.8.6 debug5 Debug-Meldung (Level -5) Syntax: spooler_log. debug5 ( String line ) 5.8.7 debug6 Debug-Meldung (Level -6) Syntax: spooler_log. debug6 ( String line ) 5.8.8 debug7 Debug-Meldung (Level -7) Syntax: spooler_log. debug7 ( String line ) Software- and Organisations-Service GmbH März 2015 VBScript API 301 5.8.9 debug8 Debug-Meldung (Level -8) Syntax: spooler_log. debug8 ( String line ) 5.8.10 debug9 Debug-Meldung (Level -9) Syntax: spooler_log. debug9 ( String line ) 5.8.11 error Fehlermeldung (Level 1) Syntax: spooler_log. error ( String line ) Wenn die Fehlermeldung ins Task-Protokoll ( spooler_log ) geschrieben wird und nicht <job stop_on_error="no"> eingestellt ist, stoppt der Job nach Ende der Task. 5.8.12 filename Dateiname des Protokolls Syntax: String spooler_log. filename 5.8.13 info Informationsmeldung (Level 0) Syntax: spooler_log. info ( String line ) 5.8.14 last Letzte Ausgabe des angegebenen Levels Syntax: String spooler_log. last ( Integer|String level ) Software- and Organisations-Service GmbH März 2015 VBScript API 302 5.8.15 last_error_line Die zuletzt mit Level 2 (error) ausgegebene Zeile Syntax: String spooler_log. last_error_line 5.8.16 level Protokollausgaben beschränken Syntax: spooler_log. level = Integer Syntax: Integer spooler_log. level Legt fest, ab welcher Stufe der JobScheduler Protokollzeilen ausgibt. Jede Protokollzeile ist auf einer der folgenden Stufen: error, warn, info, debug1 bis debug9 (debug1 ist dasselbe wie debug). Nur Meldungen ab dem Level werden ausgegeben. Dabei bedeutet die numerische Angabe: -9 bis -2: debug9 bis debug2 -1: debug 0: info 1: warn 2: error Die Option -log-level hat Vorrang. Die Einstellung factory.ini (Abschnitt [job], Eintrag log_level=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_level=…) wird damit überschrieben. Nur Meldungen ab dem Level werden ausgegeben. Dabei bedeutet die numerische Angabe: -9 bis -2: debug9 bis debug2 -1: debug 0: info 1: warn 2: error Software- and Organisations-Service GmbH März 2015 VBScript API 303 5.8.17 log Syntax: spooler_log. log ( Integer level, String line ) 5.8.18 log_file Protokolliert den Inhalt der Datei Syntax: spooler_log. log_file ( String path ) Protokolliert den Inhalt der Datei mit Level 0 (info). Ein Fehler beim Zugriff auf die Datei wird als Warnung protokolliert. Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wird die Datei vom Dateisystem des Schedulers, nicht der Task, gelesen. 5.8.19 mail Im Mail-Objekt können Sie Einstellungen zur eMail vornehmen Syntax: spooler_log. mail = Mail Syntax: Mail spooler_log. mail Rückgabe: Mail 5.8.20 mail_it Versand erzwingen Syntax: spooler_log. mail_it = Boolean Bei true wird das Protokoll bei Task-Ende verschickt unabhängig von den Einstellungen Log.mail_on_error , Log.mail_on_warning , Log.mail_on_success , Log.mail_on_process und Log.mail_on_error . 5.8.21 mail_on_error Mit Fehler beendete Task verschickt eMail Syntax: spooler_log. mail_on_error = Boolean Syntax: Boolean spooler_log. mail_on_error Software- and Organisations-Service GmbH März 2015 VBScript API 304 Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_error=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_error=…) wird damit überschrieben. 5.8.22 mail_on_process Task mit spooler_process() verschickt eMail Syntax: spooler_log. mail_on_process = Integer Syntax: Integer spooler_log. mail_on_process Veranlasst den Versand des Task-Protokolls, wenn die Task wenigstens die angegebene Anzahl Schritte, also Aufrufe von spooler_process() , ausgeführt hat. Weil Nicht-API-Tasks keine Schritte haben, zählt der JobScheduler für sie immer einen Schritt. Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_process=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_process=…) wird damit überschrieben. 5.8.23 mail_on_success Erfolgreich gelaufende Task verschickt eMail Syntax: spooler_log. mail_on_success = Boolean Syntax: Boolean spooler_log. mail_on_success Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_success=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_success=…) wird damit überschrieben. 5.8.24 mail_on_warning Wenn eine Warnung ausgegeben worden ist, wird am Task-Ende eine eMail verschickt Syntax: spooler_log. mail_on_warning = Boolean Syntax: Boolean spooler_log. mail_on_warning Damit im Fehlerfall eine Mail verschickt wird, ist mail_on_error=yes explizit zu setzen. Software- and Organisations-Service GmbH März 2015 VBScript API 305 Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_warning=…) wird damit überschrieben. 5.8.25 new_filename Neuer Dateiname fürs Protokoll Syntax: spooler_log. new_filename = String Syntax: String spooler_log. new_filename Setzt den Dateinamen fürs Protokoll. Wenn das Protokoll geschlossen wird, kopiert der JobScheduler es in diese Datei. Die Datei steht dann der Anwendung zur Verfügung. 5.8.26 start_new_file Nur fürs Hauptprotokoll: Schließt das bisherige und beginnt ein neues Protokoll Syntax: spooler_log. start_new_file () 5.8.27 warn Warnung (Level 2) Syntax: spooler_log. warn ( String line ) 5.9 Mail - eMail-Versand Siehe Log.mail . 5.9.1 add_file Fügt einen Anhang hinzu Syntax: mail. add_file ( String path, String filename_for_mail (optional) , String content_type (optional) , String enconding (optional) ) Beispiel: in javascript spooler_log.mail.add_file( "c:/tmp/1.txt", "1.txt", "text/plain", "quoted-printable" ); Parameter: path Pfadname der anzuhängenden Datei Software- and Organisations-Service GmbH März 2015 VBScript API 306 filename_for_mail Dateiname, der in der Nachricht erscheinen soll content_type "text/plain" ist voreingestellt. enconding Z.B. "quoted-printable" 5.9.2 add_header_field Fügt dem eMail-Kopf ein Feld hinzu Syntax: mail. add_header_field ( String field_name, String value ) 5.9.3 bcc Unsichtbarer Empfänger einer Kopie der Nachricht, blind carbon copy Syntax: mail. bcc = String Syntax: String mail. bcc Beispiel: in javascript spooler_log.mail.bcc = "[email protected]"; Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_bcc=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_bcc=…) wird damit überschrieben. Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). 5.9.4 body Inhalt der Nachricht Syntax: mail. body = String Syntax: String mail. body Beispiel: in javascript spooler_log.mail.body = "Job succeeded"; Software- and Organisations-Service GmbH März 2015 VBScript API 307 Codieren Sie Zeilenwechsel mit \n (in VBScript mit chr(10)). 5.9.5 cc Empfänger einer Kopie der Nachricht, carbon copy Syntax: mail. cc = String Syntax: String mail. cc Beispiel: in javascript spooler_log.mail.cc = "[email protected]"; Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_cc=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_cc=…) wird damit überschrieben. Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). 5.9.6 dequeue Nachrichten aus dem Verzeichnis queue_dir erneut versuchen zu versenden Syntax: Integer mail. dequeue () Siehe Mail.dequeue_log , factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…). Rückgabe: Integer Zahl der versandten Nachrichten 5.9.7 dequeue_log Protokoll von dequeue() Syntax: String mail. dequeue_log Software- and Organisations-Service GmbH März 2015 VBScript API 308 Beispiel: in javascript var count = spooler_log.mail.dequeue(); spooler_log.info( count + " messages from mail queue sent" ); spooler_log.info( spooler_log.mail.dequeue_log ); Siehe Mail.dequeue() . 5.9.8 from Absender Syntax: mail. from = String Syntax: String mail. from Beispiel: in javascript spooler_log.mail.from = "[email protected]"; Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_from=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_from=…) wird damit überschrieben. 5.9.9 queue_dir Verzeichnis der nicht versendbaren eMails Syntax: mail. queue_dir = String path Syntax: String mail. queue_dir eMails, die der JobScheduler nicht verschicken kann (weil z.B. der SMTP-Server nicht erreichbar ist), werden hier abgelegt. Um diese eMails später zu verschicken, muss ein Job geschrieben werden, der die Methode Mail.dequeue() aufruft. Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag queue_dir=…). Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen). Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_queue_dir=…) wird damit überschrieben. Software- and Organisations-Service GmbH März 2015 VBScript API 309 Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…) wird damit überschrieben. Die Einstellung sos.ini (Abschnitt [mail], Eintrag queue_dir=…) wird damit überschrieben. 5.9.10 smtp Name des SMTP-Servers Syntax: mail. smtp = String Syntax: String mail. smtp Beispiel: in javascript spooler_log.mail.smtp = "mail.company.com"; Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag smtp=…). Die Einstellung factory.ini (Abschnitt [job], Eintrag smtp=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag smtp=…) wird damit überschrieben. Die Einstellung sos.ini (Abschnitt [mail], Eintrag smtp=…) wird damit überschrieben. 5.9.11 subject Betreff Syntax: mail. subject = String Syntax: String mail. subject Beispiel: in javascript spooler_log.mail.subject = "Job succeeded"; Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_subject=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_subject=…) wird damit überschrieben. Software- and Organisations-Service GmbH März 2015 VBScript API 310 5.9.12 to Empfänger Syntax: mail. to = String Syntax: String mail. to Beispiel: in javascript spooler_log.mail.to = "[email protected]"; Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_to=…) wird damit überschrieben. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_to=…) wird damit überschrieben. Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma getrennt angeben. Siehe javax.mail.InternetAddress.parse(String). 5.9.13 xslt_stylesheet XSLT-Stylesheet für eMail-Aufbereitung Syntax: Xslt_stylesheet mail. xslt_stylesheet Rückgabe: Xslt_stylesheet Das XSLT-Stylesheet als String 5.9.14 xslt_stylesheet_path XSLT-Stylesheet für eMail-Aufbereitung Syntax: mail. xslt_stylesheet_path = String path Beispiel: in javascript spooler_log.mail.xslt_stylesheet_path = "c:/stylesheets/mail.xslt"; Software- and Organisations-Service GmbH März 2015 VBScript API 311 Der Pfad eines XSLT-Stylesheets. Der JobScheduler verwendet das XSLT-Stylesheet zum Aufbereiten der eMails. (Die Dokumentation hierzu ist noch nicht geschrieben.) <config mail_xslt_stylesheet="…"> Parameter: path Der Pfad der Datei, die das XSLT-Stylesheet enthält 5.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs Mit <monitor> können Sie einem Job einen Monitor geben. Ein Monitor kann folgende Methoden bereitstellen: Monitor_impl.spooler_task_before() Vor dem Start der Task, kann den Start verhindern. Monitor_impl.spooler_task_after() Nach dem Ende der Task. Monitor_impl.spooler_process_before() Vor spooler_process() , kann diesen Aufruf verhinden. Monitor_impl.spooler_process_after() Nach spooler_process() , kann dessen Rückgabewert ändern. 5.10.1 spooler Das allgemeine Objekt des Schedulers Syntax: Spooler spooler Beispiel: in javascript spooler_log.debug( "The working directory of the JobScheduler is " + spooler.directory ); Wie dasselbe Objekt in der Klasse Job_impl: spooler . Rückgabe: Spooler 5.10.2 spooler_job Das Objekt des Jobs Syntax: Job spooler_job Software- and Organisations-Service GmbH März 2015 VBScript API 312 Beispiel: in javascript spooler_log.info( "The name of this job is " + spooler_job.name ); Wie dasselbe Objekt in der Klasse Job_impl: spooler_job . Rückgabe: Job 5.10.3 spooler_log Zum Protokollieren Syntax: Log spooler_log Beispiel: in java spooler_log.info( "Something has happend" ); Wie dasselbe Objekt in der Klasse Job_impl: spooler_log . Rückgabe: Log 5.10.4 spooler_process_after Nach spooler_process() Syntax: Boolean spooler_process_after ( Boolean spooler_process_result ) Beispiel: in java public boolean spooler_task_after( boolean spooler_process_result ) throws Exception { spooler_log.info( "SPOOLER_TASK_BEFORE()" ); spooler_log.info( "spooler_process() didn't throw an exception and delivered " + spooler_process_result ); return spooler_process_result; // Unchanged result } Der JobScheduler ruft diese Methode nach jedem spooler_process() auf. Parameter: spooler_process_ result Rückgabewert von spooler_process() oder false, wenn spooler_process() mit einer Exception geendet hat. Rückgabe: Software- and Organisations-Service GmbH März 2015 VBScript API 313 Boolean Ersetzt den Rückgabewert von spooler_process() . 5.10.5 spooler_process_before Vor spooler_process() Syntax: Boolean spooler_process_before () Beispiel: in java public boolean spooler_process_before() throws Exception { spooler_log.info( "SPOOLER_PROCESS_BEFORE()" ); return true; // spooler_process() will be executed } Beispiel: in java public boolean spooler_process_before() throws Exception { boolean continue_with_spooler_process = true; if( !are_needed_ressources_available() ) { spooler_task.order().setback(); continue_with_spooler_process = false; } return continue_with_spooler_process; } Der JobScheduler ruft diese Methode vor jedem spooler_process() auf. Rückgabe: Boolean false verhindert den folgenden Aufruf von spooler_process() . Der JobScheduler setzt fort, als hätte spooler_process() false geliefert. 5.10.6 spooler_task Das Objekt der Task Syntax: Task spooler_task Beispiel: in javascript spooler_log.info( "The task id is " + spooler_task.id ); Software- and Organisations-Service GmbH März 2015 VBScript API 314 Wie dasselbe Objekt in der Klasse Job_impl: spooler_task . Rückgabe: Task 5.10.7 spooler_task_after Nach dem Ende der Task Syntax: spooler_task_after () Beispiel: in java public void spooler_task_after() throws Exception { spooler_log.info( "SPOOLER_TASK_AFTER()" ); } Der JobScheduler ruft diese Methode, nachdem die Task geendet hat. 5.10.8 spooler_task_before Vor Start der Task Syntax: Boolean spooler_task_before () Beispiel: in java public boolean spooler_task_before() throws Exception { spooler_log.info( "SPOOLER_TASK_BEFORE()" ); return true; // Task will be started //return false; // Task will not be started } Vor dem Laden der Task ruft der JobScheduler diese Methode auf. Rückgabe: Boolean false lässt die Task nicht starten. Monitor_impl.spooler_task_after() wird nicht gerufen. 5.11 Order - Auftrag Siehe JobScheduler Dokumentation, Spooler.create_order() , Job_chain.add_order() , Task.order . Software- and Organisations-Service GmbH März 2015 VBScript API 315 Dateiauftrag Ein Dateiauftrag ist ein Auftrag mit dem Parameter scheduler_file_path: Order.params . Variable_set.value() . Siehe JobScheduler Dokumentation. Beispiel: Auftrag mit einfacher Nutzlast, in javascript // Create order: { var order = spooler.create_order(); order.id = 1234; order.title = "This is my order"; order.state_text = "This is my state text"; order.payload = "This is my payload"; spooler.job_chain( "my_job_chain" ).add_order( order ); } ... // Process order: function spooler_process() { var order = spooler_task.order; spooler_log.info( "order.payload=" + order.payload ); return true; } Beispiel: Erzeugen eines Auftrags mit Variable_set als Nutzlast, in javascript // Create order: { var variable_set = spooler.create_variable_set(); variable_set.value( "param_one" ) = "11111"; variable_set.value( "param_two" ) = "22222"; var order = spooler.create_order(); order.id = 1234; order.payload = variable_set; spooler.job_chain( "my_job_chain" ).add_order( order ); } ... // Process order: function spooler_process() { var order = spooler_task.order; var variable_set = order.payload; spooler_log.info( "param_one=" + variable_set.value( "param_one" ) ); spooler_log.info( "param_two=" + variable_set.value( "param_two" ) ); return true; } 5.11.1 at Start-Zeitpunkt des Auftrags Syntax: order. at = String|DATE Software- and Organisations-Service GmbH März 2015 VBScript API 316 Beispiel: in javascript order.at = "now+65"; spooler.job_chain( "my_job_chain" ).add_order( order ); Setzt den Start-Zeitpunkt bevor der Auftrag in eine Auftragswarteschlange eingereiht wird. Als String kann angegeben werden: • • • • "now" "yyyy-mm-dd HH:MM[:SS]" "now + HH:MM[:SS]" "now + seconds" Die Einstellung ändert die von Order.run_time oder Order.setback() vorgegebene Startzeit. Siehe <add_order at=""> . 5.11.2 end_state Zustand, vor dessen erfolgreichen Verlassen der Auftrag enden soll Syntax: order. end_state = Variant Syntax: Variant order. end_state Wenn ein Auftrag einen eigenen End-Zustand hat (end_state ungleich ""), endet der Auftrag, bevor er diesen Zustand erfolgreich verlassen würde, also nach Ausführung des dem End-Zustand zugeordneten Jobs (siehe < job_chain_node> ). Der Zustand muss in der Jobkette bekannt sein. 5.11.3 id Kennung des Auftrags Syntax: order. id = Variant Syntax: Variant order. id Jeder Auftrag hat eine (innerhalb der Jobkette oder der Auftragswarteschlange des Jobs eindeutige) Kennung. Diese Kennung sollte den zu verarbeitenden Daten entsprechen. Üblicherweise wird der Schlüssel eines Datenbanksatzes verwendet. Wenn Sie die id nicht setzen, vergibt Job_chain.add_order() eine Kennung. 5.11.4 job_chain Jobkette, in der der Auftrag enthalten ist Software- and Organisations-Service GmbH März 2015 VBScript API 317 Syntax: Job_chain order. job_chain Rückgabe: Job_chain 5.11.5 job_chain_node Jobkettenknoten, der dem Zustand des Auftrags entspricht Syntax: Job_chain_node order. job_chain_node Rückgabe: Job_chain_node 5.11.6 log Auftragsprotokoll Syntax: Log order. log Beispiel: spooler_task.order.log.info( "Only for order log, not for task log" ); spooler_log.info( "For both order log and task log" ); Rückgabe: Log 5.11.7 params Parameter des Auftrags Syntax: order. params = Variable_set Syntax: Variable_set order. params params wird in Order.payload gehalten, letzteres kann also nicht zusammen mit params verwendet werden. Siehe <add_order> . Rückgabe: Variable_set Software- and Organisations-Service GmbH März 2015 VBScript API 318 5.11.8 payload Nutzlast, also Parameter des Auftrags. Syntax: order. payload = Variable_set |String|Integer|… payload Syntax: Variable_set |String|Integer|… order. payload Statt dieser Eigenschaft wird die Verwendung von Order.params empfohlen (was (Variable_set)order.payload entspricht). Neben der Auftragskennung Order.id , die den Auftrag identifiziert, können Sie hier zusätzliche Angaben machen. Siehe Order.params und Order.xml_payload . Parameter: payload Kann ein String oder ein Variable_set sein. Rückgabe: Variable_set |String|Integer|… Kann ein String oder ein Variable_set sein. 5.11.9 payload_is_type Prüft den COM-Typ der Nutzlast Syntax: Boolean order. payload_is_type ( String type_name ) Parameter: type_name "Spooler.Variable_set", "Hostware.Dyn_obj" oder "Hostware.Record". 5.11.10 priority Aufträge mit höherer Priorität werden zuerst verarbeitet Syntax: order. priority = Integer Syntax: Integer order. priority 5.11.11 remove_from_job_chain Syntax: order. remove_from_job_chain () Wenn der Auftrag gerade von einer Task ausgeführt wird, liefert die Eigenschaft Order.job_chain weiterhin die Jobkette, aus der der Auftrag mit diesem Aufruf entfernt worden ist. Erst wenn die Ausführung beendet ist, liefert Software- and Organisations-Service GmbH März 2015 VBScript API 319 die Eigenschaft null (außer der Auftrag ist wieder in eine Jobkette eingetragen worden). Damit bleibt die Eigenschaft job_chain während der Ausführung durch die Task stabil. 5.11.12 run_time <run_time> zur periodischen Wiederholung des Auftrags Syntax: Run_time order. run_time Beispiel: in javascript order.run_time.xml = "<run_time><at at='2006-05-23 11:43:00'/></run_time>"; Siehe <run_time> . Das Kommando <modify_order at="now"> lässt einen wegen run_time wartenden Auftrag sofort anlaufen. Rückgabe: Run_time 5.11.13 setback Stellt den Auftrag eine Zeitlang zurück Syntax: order. setback () Der Auftrag wird zurückgestellt und nach der mit <delay_order_after_setback> oder Job.delay_order_after_setback eingestellten Frist wiederholt. Bei einer Wiederholung wird nur die Funktion spooler_process() des Jobs wiederholt. Wenn in spooler_process() die Funktion order.setback() aufgerufen wurde, bleibt der Rückgabewert von spooler_process() ohne Wirkung. Der Auftrag zählt aufeinander folgende Aufrufe dieser Methode, was von <delay_order_after_setback> berücksichtigt wird. Der Zähler wird auf 0 gestellt, wenn spooler_process() ohne diesen Aufruf zu Ende ausgeführt worden ist. Beim Start des Schedulers sind alle Zähler 0. Das Kommando <modify_order at="now"> lässt einen zugestellten Auftrag sofort anlaufen. 5.11.14 setback_count Wie oft ist der Auftrag zurückgestellt worden? Syntax: Integer order. setback_count Siehe <delay_order_after_setback> . Software- and Organisations-Service GmbH März 2015 VBScript API 320 5.11.15 state Zustand des Auftrags Syntax: order. state = Variant Syntax: Variant order. state Wenn der Auftrag in einer Jobkette ist, muss der Zustand in der Jobkette vorhanden sein. Wenn der Auftrag gerade von einem Job ausgeführt wird, wird der in der Jobkette festgelegte Folgezustand ( < job_chain_node next_state=""> ) wirkungslos. Die Rückgabewerte von spooler_process() und Monitor_impl.spooler_process_after() sind ohne Bedeutung. Mit Order.state kann also ein Job den Folgezustand frei bestimmen. Der Auftrag wird in die Auftragswarteschlange des Jobs eingereiht, der dem Zustand zugeordnet ist (s. < job_chain_node> ). Die Ausführung durch diesen Job wird solange verzögert, bis der jetzt ausführende Job den Auftrag ausgeführt hat. 5.11.16 state_text Freier Text für den Zustand des Auftrags Syntax: order. state_text = String Syntax: String order. state_text Der Text wird auf der HTML-Oberfläche gezeigt. Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen. 5.11.17 string_next_start_time Nächste Startzeit des Auftrags bei Verwendung von <run_time> Syntax: String order. string_next_start_time Rückgabe: String "yyyy-mm-dd HH:MM:SS.MMM" oder "now" oder "never". 5.11.18 suspended Ausgesetzer Auftrag Syntax: order. suspended = Boolean Syntax: Boolean order. suspended Software- and Organisations-Service GmbH März 2015 VBScript API 321 Ein ausgesetzter Auftrag wird nicht ausgeführt. Wenn der Auftrag gerade von einer Task ausgeführt wird, wird der Schritt ( spooler_process() ) noch zu Ende ausgeführt und der Auftrag nach den gewohnten Regeln in den Folgezustand versetzt, bevor er tatsächlich ausgesetzt wird. Damit kann ein Auftrag in einen Endzustand ausgesetzt werden, womit verhindet wird, dass er entfernt wird. Erst wenn die Aussetzung eines solchen Auftrags aufgehoben wird, ( order.suspended=false), entfernt der JobScheduler den Auftrag. Ein ausgesetzter Auftrag im Endzustand kann mit Order.state in einen Zustand versetzt werden, der einem Job zugeordnet ist. Der Auftrag bleibt dennoch ausgesetzt. 5.11.19 title Der Titel ist ein Klartext, der den Auftrag bezeichnet Syntax: order. title = String Syntax: String order. title 5.11.20 web_service Der Webdienst, der dem Auftrag zugeordnet ist Syntax: Web_service order. web_service Wenn der Auftrag keinem Webdienst zugeordnet ist, liefert der Aufruf den Fehler SCHEDULER-240 . Siehe auch Order.web_service_or_null . Rückgabe: Web_service 5.11.21 web_service_operation Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist Syntax: Web_service_operation order. web_service_operation Software- and Organisations-Service GmbH März 2015 VBScript API 322 Beispiel: in java public boolean spooler_process() throws Exception { Order order = spooler_task.order(); Web_service_operation web_service_operation = order.web_service_operation(); Web_service_request request = web_service_operation.request(); // Decode request data String request_string = new String( request.binary_content(), request.charset_name() ); process request_string ...; String response_string = "This is my response"; String charset_name = "UTF-8"; ByteArrayOutputStream byos = new ByteArrayOutputStream(); // Encode response data Writer writer = new OutputStreamWriter( byos, charset_name ); writer.write( response_string ); writer.close(); // Respond Web_service_response response = web_service_operation.response(); response.set_content_type( "text/plain" ); response.set_charset_name( charset_name ); response.set_binary_content( byos.toByteArray() ); response.send(); // Web service operation has finished return true; } Siehe <web_service> , Web_service_operation und Order.web_service_operation_or_null , Rückgabe: Web_service_operation 5.11.22 web_service_operation_or_null Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist, oder null Syntax: Web_service_operation order. web_service_operation_or_null Siehe Order.web_service_operation , Web_service_operation und <web_service> . Rückgabe: Web_service_operation Software- and Organisations-Service GmbH März 2015 VBScript API 323 5.11.23 web_service_or_null Der Web-Dienst, der dem Auftrag zugeordnet ist, oder null. Syntax: Web_service order. web_service_or_null Siehe auch Order.web_service . Rückgabe: Web_service 5.11.24 xml Auftrag in XML: <order>...</order> Syntax: String order. xml Rückgabe: String Siehe <order> 5.11.25 xml_payload XML-Nutzlast, also Parameter des Auftrags. Syntax: order. xml_payload = String xml Syntax: String order. xml_payload Zusätzlich zur Eigenschaft Order.params kann diese Eigenschaft ein XML-Dokument aufnehmen. <xml_payload> enthält das Wurzelelement des XML-Dokuments (statt in #PCDATA-codierter Form). 5.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs Ein auftragsgesteuerter Job ( <job order="yes"> hat eine Auftragswarteschlange, die die vom Job zu verarbeitenden Aufträge aufnimmt. Die Aufträge sind nach Priorität und Zeitpunkt des Eintreffens geordnet. Verarbeiten bedeutet, dass der JobScheduler die Methode spooler_process() einer Task des Jobs aufruft. Die Methode kann über Task.order auf den Auftrag zugreifen. Endet spooler_process() ohne Fehler (ohne Exception), entfernt der JobScheduler den Auftrag aus der Auftragswarteschlange. Ist der Auftrag in einer Jobkette, dann rückt der Auftrag an die nächste Position der Jobkette. Software- and Organisations-Service GmbH März 2015 VBScript API 324 5.12.1 length Anzahl der Aufträge in der Auftragswarteschlange Syntax: Integer q. length 5.13 Process_class Siehe auch <process_class name=""> . Beispiel: in javascript var process_classs = spooler.process_classs; var process_class = process_classs.create_process_class(); process_class.name = "my_process_class"; process_classs.add_process_class( process_class ); 5.13.1 max_processes Anzahl der Prozesse Syntax: process_class. max_processes = Integer Syntax: Integer process_class. max_processes Die Voreinstellung ist 10. Siehe auch <process_class max_processes=""> . 5.13.2 name Name der Prozessklasse Syntax: process_class. name = String Syntax: String process_class. name Der Name kann nur einmal gesetzt und nicht geändert werden. Siehe auch <process_class name=""> . 5.13.3 remote_scheduler Adresse des fernen Schedulers, der die Prozesse ausführen soll Syntax: process_class. remote_scheduler = String Software- and Organisations-Service GmbH März 2015 VBScript API 325 Syntax: String process_class. remote_scheduler Beispiel: in javascript spooler.process_classes.process_class( "my_process_class" ).remote_scheduler = "host:4444"; Siehe auch <process_class remote_scheduler=""> . Parameter: Die Adresse wird als " host : portnumber" angegeben. Beim Lesen wird (derzeit) zusätzlich die IP-Nummer geliefert: " hostname / ipnumber : portnumber" Rückgabe: String Die Adresse wird als " host : portnumber" angegeben. Beim Lesen wird (derzeit) zusätzlich die IP-Nummer geliefert: " hostname / ipnumber : portnumber" 5.13.4 remove Entfernt die Prozessklasse Syntax: process_class. remove () Beispiel: in javascript spooler.process_classs.process_class( "my_process_class" ).remove(); Wenn noch Tasks in der Prozessklasse laufen, verzögert der JobScheduler das Löschen bis die letzte Task geendet hat. Solange werden keine neuen Tasks gestartet. Siehe auch <process_class.remove> . 5.14 Process_classes 5.14.1 add_process_class Fügt dem JobScheduler eine Prozessklasse hinzu Syntax: process_classs. add_process_class ( Process_class pc ) Software- and Organisations-Service GmbH März 2015 VBScript API 326 5.14.2 create_process_class Legt eine neue Prozesklasse ein Syntax: Process_class process_classs. create_process_class () Liefert eine neues Process_class . Diese Prozessklasse kann mit Process_classes.add_process_class() dem JobScheduler hinzugefügt werden. Rückgabe: Process_class 5.14.3 process_class Liefert eine Prozessklasse Syntax: Process_class process_classs. process_class ( String process_class_name ) Wenn die Prozessklasse nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Process_class 5.14.4 process_class_or_null Liefert eine Prozessklasse Syntax: Process_class process_classs. process_class_or_null ( String process_class_name ) Rückgabe: Process_class null, wenn die Prozessklasse nicht bekannt ist. 5.15 Run_time - Laufzeit Siehe <run_time> , Order , Schedule . Beispiel: in javascript var order = spooler_task.order; // Repeat order daily at 15:00 order.run_time.xml = "<run_time><period single_start='15:00'/></run_time>"; Software- and Organisations-Service GmbH März 2015 VBScript API 327 5.15.1 schedule <schedule> Syntax: Schedule run_time. schedule Rückgabe: Schedule 5.15.2 xml <run_time> Syntax: run_time. xml = String Verwirft die bisherige Einstellung und setzt Run_time neu. Parameter: XML-Dokument als String 5.16 Schedule - Laufzeit Siehe <schedule> , <run_time> , Spooler.schedule , Run_time . Beispiel: in javascript spooler.schedule( "my_schedule" ).xml = "<schedule><period single_start='15:00'/>< /schedule>"; 5.16.1 xml <schedule> Syntax: schedule. xml = String Syntax: String schedule. xml Verwirft die bisherige Einstellung und setzt Schedule neu. Parameter: XML-Dokument als String Rückgabe: String XML-Dokument als String Software- and Organisations-Service GmbH März 2015 VBScript API 328 5.17 Spooler Von dieser Klasse gibt es nur ein Objekt: spooler . 5.17.1 abort_immediately Bricht den JobScheduler augenblicklich ab Syntax: spooler. abort_immediately () Bricht den JobScheduler augenblicklich ab. Kein Job hat Gelegenheit, darauf zu reagieren. Der JobScheduler 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 JobScheduler Dokumentation. 5.17.2 abort_immediately_and_restart Bricht den JobScheduler augenblicklich ab und startet ihn neu. Syntax: spooler. abort_immediately_and_restart () Wie Spooler.abort_immediately() , nur dass der JobScheduler sich erneut startet. Dabei verwendet er die Kommandozeilenparameter wieder. Siehe <modify_spooler cmd="abort_immediately_and_restart"> und JobScheduler Dokumentation. 5.17.3 add_job_chain Syntax: spooler. add_job_chain ( Job_chain chain ) Bei Job_chain.orders_recoverable =true lädt der JobScheduler die Aufträge der Jobkette aus der Datenbank. Siehe Spooler.create_job_chain() und <job_chain> . Software- and Organisations-Service GmbH März 2015 VBScript API 329 5.17.4 configuration_directory Pfad des Konfigurationsverzeichnisses Syntax: String spooler. configuration_directory <config configuration_directory="…"> 5.17.5 create_job_chain Syntax: 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 JobScheduler hinzugefügt werden Siehe <job_chain> . Rückgabe: Job_chain 5.17.6 create_order Syntax: Order spooler. create_order () Erzeugt einen neuen Auftrag. Dieser Auftrag kann mit Job_chain.add_order() einer Jobkette übergeben werden. Rückgabe: Order 5.17.7 create_variable_set Syntax: Variable_set spooler. create_variable_set () Rückgabe: Variable_set 5.17.8 create_xslt_stylesheet Syntax: Xslt_stylesheet spooler. create_xslt_stylesheet ( String xml (optional) ) Parameter: xml XSLT-Stylesheet als XML-String Software- and Organisations-Service GmbH März 2015 VBScript API 330 Rückgabe: Xslt_stylesheet 5.17.9 db_history_table_name Name der Datenbanktabelle für die Historie Syntax: String spooler. db_history_table_name Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) wird damit überschrieben. 5.17.10 db_name Hostware-Pfad der Datenbank Syntax: String spooler. db_name Verbindungszeichenfolge der Datenbank für die Historienführung. Der JobScheduler 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 JobScheduler verwendet dann eine Microsoft MS-Access Datenbank dieses Namens, die im Protokollverzeichnis (s. Option -log-dir ) liegt. Der JobScheduler richtet die Datei ein, wenn sie fehlt. Der JobScheduler richtet die Tabellen selbständig ein. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db=…) wird damit überschrieben. 5.17.11 db_order_history_table_name Name der Datenbanktabelle für die Auftragshistorie Syntax: String spooler. db_order_history_table_name Die Einstellung factory.ini überschrieben. (Abschnitt [spooler], Eintrag db_order_history_table=…) wird damit Software- and Organisations-Service GmbH März 2015 VBScript API 331 5.17.12 db_orders_table_name Name der Datenbanktabelle für die Aufträge Syntax: String spooler. db_orders_table_name Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_orders_table=…) wird damit überschrieben. 5.17.13 db_tasks_table_name Name der Datenbanktabelle für die Tasks Syntax: String spooler. db_tasks_table_name Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_tasks_table=…) wird damit überschrieben. 5.17.14 db_variables_table_name Name der Datenbanktabelle für interne Variablen des Schedulers Syntax: String spooler. db_variables_table_name Der JobScheduler 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. 5.17.15 directory Das Arbeitsverzeichnis beim Start des Schedulers Syntax: String spooler. directory Ändert das Arbeitsverzeichnis. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Die Option -cd hat Vorrang. Software- and Organisations-Service GmbH März 2015 VBScript API 332 Eine auf einem entfernten JobScheduler 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 "\". 5.17.16 execute_xml Führt ein XML-Kommando aus Syntax: 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 JobScheduler Dokumentation. Rückgabe: String Liefert die XML-Antwort des ausgeführten Kommandos. 5.17.17 hostname Name des Rechners, auf dem der JobScheduler läuft. Syntax: String spooler. hostname 5.17.18 id Wert der Kommandozeilenoption -id= Syntax: String spooler. id Der JobScheduler 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 JobScheduler das XML-Attribut spooler_id= nicht und wählt alle Elemente der XML-Konfiguration aus. Software- and Organisations-Service GmbH März 2015 VBScript API 333 Siehe z.B. <config> . Die Option -id hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag id=…) wird damit überschrieben. 5.17.19 include_path Liefert die Kommandozeilenoption -include-path=. Syntax: String spooler. include_path Verzeichnis der Dateien, die mit <include> eingezogen werden. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen). Die Option -include-path hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag include_path=…) wird damit überschrieben. <config include_path="…"> Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. 5.17.20 ini_path Wert der Option -ini= (Dateiname der factory.ini) Syntax: String spooler. ini_path Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Siehe -ini , JobScheduler Dokumentation 5.17.21 is_service Syntax: Boolean spooler. is_service Rückgabe: Software- and Organisations-Service GmbH März 2015 VBScript API 334 Boolean true, genau dann wenn der JobScheduler als Dienst (in Windows) oder als Daemon (in Unix) läuft. 5.17.22 job Liefert einen Job Syntax: Job spooler. job ( String job_name ) Wenn der Jobname nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Job 5.17.23 job_chain Liefert eine Jobkette Syntax: Job_chain spooler. job_chain ( String name ) Wenn der Name der Jobkette nicht bekannt ist, wird eine Exception geliefert. Rückgabe: Job_chain 5.17.24 job_chain_exists Syntax: Boolean spooler. job_chain_exists ( String name ) 5.17.25 let_run_terminate_and_restart Syntax: spooler. let_run_terminate_and_restart () Sobald alle Aufträge abgearbeitet sind, beendet der JobScheduler alle Tasks (durch Aufruf von Job_impl ) und beendet dann sich selbst. Ein neuer JobScheduler mit unveränderten Kommandozeilenparametern wird gestartet. Siehe <modify_spooler cmd="let_run_terminate_and_restart"> und JobScheduler Dokumentation. 5.17.26 locks Liefert die Locks Software- and Organisations-Service GmbH März 2015 VBScript API 335 Syntax: Locks spooler. locks Rückgabe: Locks 5.17.27 log Das Hauptprotokoll Syntax: Log spooler. log Normalerweise wird man spooler_log() verwenden. Rückgabe: Log 5.17.28 log_dir Verzeichnis der Protokolle Syntax: String spooler. log_dir In dieses Verzeichnis schreibt der JobScheduler seine Protokolle. log_dir= *stderr lässt den JobScheduler die Protokollausgabe nach stderr (auf den Bildschirm) schreiben. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen). Die Option -log-dir hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_dir=…) wird damit überschrieben. Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den Wert des entfernten Schedulers. 5.17.29 param Kommandozeilenoption -param= Syntax: String spooler. param Software- and Organisations-Service GmbH März 2015 VBScript API 336 Zur freien Verwendung. Der Parameter ist in den Skripten über spooler.param lesbar. Die Option -param hat Vorrang. Die Einstellung factory.ini (Abschnitt [spooler], Eintrag param=…) wird damit überschrieben. 5.17.30 process_classes Liefert die Prozessklassen Syntax: Process_classes spooler. process_classes Rückgabe: Process_classes 5.17.31 schedule Liefert den benannten Schedule oder null Syntax: Schedule spooler. schedule ( String path ) Rückgabe: Schedule 5.17.32 supervisor_client Liefert den Supervisor_client oder null Syntax: Supervisor_client spooler. supervisor_client Rückgabe: Supervisor_client 5.17.33 tcp_port HTTP- und TCP-Port für Kommandos an den JobScheduler Syntax: Integer spooler. tcp_port Der JobScheduler 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. Software- and Organisations-Service GmbH März 2015 VBScript API 337 Über denselben Port betreibt der JobScheduler einen HTTP/HTML-Server, so dass er über einen Browser ansprechbar ist, z.B. http://localhost:4444. Bei tcp_port=0 (voreingestellt) ist der JobScheduler nicht über TCP oder HTTP ansprechbar. Damit kann die Steuerung des JobSchedulers per TCP-Kommando, z.B. über eine Web-Seite, unterbunden werden. Die Option -tcp-port hat Vorrang. <config tcp_port="…"> Rückgabe: Integer 0, wenn kein Port geöffnet ist. 5.17.34 terminate JobScheduler mit allen Tasks ordentlich beenden Syntax: spooler. terminate ( Integer 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 JobScheduler 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 JobScheduler Dokumentation. Parameter: timeout Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen Parameter wartet der JobScheduler endlos auf die Tasks. restart restart=true lässt den JobScheduler nach Beendigung neu starten. all_schedu all_schedulers=true beendet alle JobScheduler im Cluster (s. -exclusive ) Das kann eine lers Minute dauern. continue_e continue_exclusive_operation=true lässt einen anderen Scheuler im Cluster (s. -exclusive ) xclusive_o den Betrieb fortsetzen. peration 5.17.35 terminate_and_restart JobScheduler mit allen Tasks ordentlich beenden und erneut starten Syntax: spooler. terminate_and_restart ( Integer timeout (optional) ) Wie Spooler.terminate() , aber der JobScheduler startet sich neu. Siehe <modify_spooler cmd="terminate_and_restart"> und JobScheduler Dokumentation. Software- and Organisations-Service GmbH März 2015 VBScript API 338 Parameter: time Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der out JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen Parameter wartet der JobScheduler endlos auf die Tasks. 5.17.36 udp_port UDP-Port für Kommandos an den JobScheduler Syntax: Integer spooler. udp_port Auch über UDP kann der JobScheduler Kommandos entgegennehmen. Hier wird die Portnummer angegeben. Ein Kommando muss in eine Nachricht passen. Der JobScheduler schickt keine Antwort. Bei udp_port=0 (voreingestellt) öffnet der JobScheduler keinen UDP-Port. Die Option -udp-port hat Vorrang. <config udp_port="…"> Rückgabe: Integer 0, wenn kein Port geöffnet ist. 5.17.37 var Zugriff auf Scheduler-weite Variablen Syntax: spooler. var ( String name ) = Variant Syntax: Variant spooler. var ( String name ) Die Variablen sind überall im JobScheduler benutzbar. 5.17.38 variables Die Scheduler-weiten Variablen als Variable_set Syntax: Variable_set spooler. variables Die Variablen können in der Konfigurationsdatei eingestellt werden mit <config> . Rückgabe: Variable_set Software- and Organisations-Service GmbH März 2015 VBScript API 339 5.18 Spooler_program - Für den Java-Debugger Startet den JobScheduler über Java, so dass in Java geschriebene Jobs debuggt werden können (z.B. mit Eclipse). Zu den Methoden siehe Javadoc. Der JobScheduler wird als Windows-Applikation, nicht als Konsol-Programm gestartet. Ausgaben nach stderr gehen verloren. -log-dir liefert keine Ausgabe. Siehe JobScheduler Dokumentation. Beispiel: C:\>java -Djava.library.path=… -classpath …\sos.spooler.jar sos.spooler.Spooler_program configuration.scheduler -log-dir=c:\tmp\scheduler Mit -Djava.library.path=… geben Sie das Verzeichnis der scheduler.dll an, wenn es nicht bereits in %PATH% aufgeführt ist. 5.19 Subprocess Ein Subprozess ist irgendein Prozess, der mit Task.create_subprocess() oder Subprocess.start() gestartet werden kann. Beispiel: system() - Einfache Ausführung eines Kommandos, in javascript exit_code = my_system( "backup /" ); function system( cmd, timeout ) { var subprocess = spooler_task.create_subprocess(); try { if( timeout ) subprocess.timeout = timeout; subprocess.start( cmd ); subprocess.wait_for_termination(); return subprocess.exit_code; } finally { subprocess.close(); } } Software- and Organisations-Service GmbH März 2015 VBScript API 340 Beispiel: in javascript var subprocess = spooler_task.create_subprocess(); subprocess.environment( "test1" ) = "one"; subprocess.environment( "test2" ) = "two"; subprocess.ignore_error = true; subprocess.start( "sleep 20" ); spooler_log.info( "pid=" + subprocess.pid ); subprocess.timeout = 10; spooler_log.info( "wait_for_termination ..." ); var ok = subprocess.wait_for_termination( 10 ); spooler_log.info( "wait_for_termination ok=" + ok ); if( subprocess.terminated ) { spooler_log.info( "exit code=" + subprocess.exit_code ); spooler_log.info( "termination signal=" + subprocess.termination_signal ); } 5.19.1 close Gibt die System-Ressourcen frei Syntax: subprocess. close () Sollte in Sprachen mit Garbage Collector (Java, JavaScript) gerufen werden, außer die Task beendet sich sofort. Der Subprocess ist danach unbrauchbar. 5.19.2 env Umgebungsvariablen als Variable_set Syntax: Variable_set subprocess. env Beispiel: in javascript var subprocess = spooler_task.create_subprocess(); subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) ); subprocess.wait_for_termination(); Liefert ein Variable_set der Umgebungsvariablen. Anfänglich ist die Umgebung mit den Umgebungsvariablen des startenden Prozesses gefüllt. Umgebungsvariablen können entfernt werden, indem sie auf "" gesetzt werden. Der Aufruf Subprocess.start() übergibt die Umgebungsvariablen dem Subprozess. Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden. Software- and Organisations-Service GmbH März 2015 VBScript API 341 Nach dem Start des Subprozesses haben Änderungen an den Umgebungsvariablen keine Wirkung. Auch können vom Prozess geänderte Umgebungsvariablen nicht gelesen werden. Das Objekt lässt sich nicht anderen Objekten übergeben (denn es befindet sich im Prozess der Task, während die meisten anderen Objekte sich im Prozess des Schedulers befinden). Rückgabe: Variable_set 5.19.3 environment Umgebungsvariablen Syntax: subprocess. environment ( String name ) = String value Beispiel: in javascript // The following two statements have the same effect subprocess.environment( "my_variable" ) = "my_value" subprocess.env.value( "my_variable" ) = "my_value" Die hier gesetzten Variablen werden zusammen mit den übrigen Umgebungsvariablen des laufenden Prozesses dem neuen Subprozess übergeben. Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden. Siehe auch Subprocess.env . 5.19.4 exit_code Syntax: Integer subprocess. exit_code Erst aufrufen, wenn Subprocess.terminated == true. 5.19.5 ignore_error Verhindert, dass bei exit_code != 0 der Job stoppt Syntax: subprocess. ignore_error = Boolean Syntax: Boolean subprocess. ignore_error Verhindert, dass der Job stoppt, wenn der Subprozess bei Task-Ende mit Subprocess.exit_code != 0 geendet hat. Wenn das Ende des Subprocesses nicht mit Subprocess.wait_for_termination abgewartet worden ist, tut das der JobScheduler bei Task-Ende. Wenn dann der Subprocess mit Subprocess.exit_code != 0 endet, stoppt der Job mit Fehler. Software- and Organisations-Service GmbH März 2015 VBScript API 342 Mit ignore_error kann das verhindert werden. 5.19.6 ignore_signal Verhindert, dass bei einem Abbruch des Prozesses mit Signal der Job stoppt Syntax: subprocess. ignore_signal = Integer Syntax: Integer subprocess. ignore_signal Wirkt nicht unter Windows, weil es hier keine Signale gibt. 5.19.7 kill Bricht den Subprozess ab Syntax: subprocess. kill ( Integer signal (optional) ) Parameter: signal Nur unter Unix: Das Signal für kill(). 0 wird als 9 (SIGKILL, sofortiges Ende) interpretiert. 5.19.8 own_process_group Subprozess als Prozessgruppe Syntax: subprocess. own_process_group = Boolean Syntax: Boolean subprocess. own_process_group Nur unter Unix. Der Default kann mit factory.ini (Abschnitt [spooler], Eintrag subprocess.own_process_group=…) eingestellt werden. own_process_group lässt den Subprozess in einer eigenen Prozessgruppe starten, indem der Systemaufruf setpgid(0,0) ausgeführt wird. Wenn der JobScheduler den Subprozess abbricht, bricht er die ganze Prozessgruppe ab. 5.19.9 pid Prozesskennung Syntax: Integer subprocess. pid Software- and Organisations-Service GmbH März 2015 VBScript API 343 5.19.10 priority Prozess-Priorität Syntax: subprocess. priority = Integer Syntax: Integer subprocess. priority Beispiel: in javascript subprocess.priority = +5; // Unix: Priorität etwas verschlechtern Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht werden. Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13 "high" (andere Werte werden abgerundet). Siehe auch Task.priority_class . Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Subprocess.priority_class . Siehe auch Task.priority . 5.19.11 priority_class Prioritätsklasse Syntax: subprocess. priority_class = String Syntax: String subprocess. priority_class Beispiel: in javascript subprocess.priority_class = "below_normal"; Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix entsprechen: Prioritätsklasse Windows Unix "idle" 4 16 "below_normal" 6 6 "normal" 8 0 "above_normal" 10 -6 "high" 13 -16 Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelndem Recht, führt das nicht zu einem Fehler. Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Software- and Organisations-Service GmbH März 2015 VBScript API 344 Siehe auch Subprocess.priority , Task.priority_class und Microsoft® Windows® Scheduling Priorities. 5.19.12 start Startet den Prozess Syntax: subprocess. start ( String|String[] command_line ) Windows erkennt sofort, wenn das Programm nicht ausführbar ist. Die Methode liefert dann einen Fehler. Unter Unix wird stattdessen Subprocess.exit_code auf 99 gesetzt. Vorher muss das Ende des Prozesses abgewartet werden mit Subprocess.wait_for_termination() . Shell-Operatoren wie |, && und > werden nicht interpretiert. Verwenden Sie dazu die Programme /bin/sh bzw. c:\windows\system32\cmd.exe (das Verzeichnis ist installations-abhängig). Der Prozess wird unter Unix mit execvp() und unter Windows mit CreateProcess() gestartet. 5.19.13 terminated Syntax: Boolean subprocess. terminated Prüft, ob der Prozess geendet hat. Wenn er geendet hat, kann anschließend Subprocess.exit_code und Subprocess.termination_signal gerufen werden. 5.19.14 termination_signal Signal, mit dem sich der Prozess beendet hat (nur Unix) Syntax: Integer subprocess. termination_signal Erst aufrufen, wenn Subprocess.terminated == true. 5.19.15 timeout Frist für den Subprozess Syntax: subprocess. timeout = Double seconds Nach Ablauf der Zeit bricht der JobScheduler den Subprozess ab (Unix: mit SIGKILL). Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht. Software- and Organisations-Service GmbH März 2015 VBScript API 345 5.19.16 wait_for_termination Syntax: subprocess. wait_for_termination () Syntax: Boolean subprocess. wait_for_termination ( Double seconds ) Parameter: seconds Wartezeit. Fehlt der Parameter, dann wartet der Aufruf bis der Subprozess geendet hat. Rückgabe: Boolean true, wenn der Subprozess geendet hat. false, wenn der Subprozess nach Ablauf der Wartezeit noch läuft. 5.20 Supervisor_client Spooler.supervisor_client liefert dieses Objekt. Beispiel: in javascript var supervisor_hostname = spooler.supervisor_client.hostname; 5.20.1 hostname Name oder IP-Nummer des Rechners, auf dem der Supervisor läuft Syntax: String supervisor_client. hostname Siehe auch <config supervisor=""> . 5.20.2 tcp_port TCP-Port des Supervisors Syntax: Integer supervisor_client. tcp_port Siehe auch <config supervisor=""> . 5.21 Task Eine Task ist eine laufende Instanz eines Jobs. Software- and Organisations-Service GmbH März 2015 VBScript API 346 Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen. 5.21.1 add_pid Macht dem JobScheduler einen abhängigen, befristeten Prozess bekannt Syntax: spooler_task. add_pid ( Integer pid, String|Double|Integer timeout (optional) ) Mit dem Aufruf kann die Laufzeit von abhängigen Prozessen eingeschränkt werden. Bei Task-Ende bricht der JobScheduler noch laufende abhängigen Prozesse in jedem Fall ab. Wenn der JobScheduler einen Prozess abbricht, gibt es einen Eintrag ins Protokoll. Die Task erfährt davon nichts. Der Aufruf <kill_task> bricht alle mit add_pid() bekannt gemachten Prozesse ab. Unter Unix kann eine Prozessgruppen-Id als negative pid übergeben werden. Ein kill bricht dann die ganze Prozessgruppe ab. Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht. 5.21.2 call_me_again_when_locks_available Wiederholt spooler_open() oder spooler_process(), sobald Sperren verfügbar Syntax: spooler_task. call_me_again_when_locks_available () Ve r a n l a s s t den S c h e d u l e r, nach erfolglosem Task.try_hold_lock() oder Task.try_hold_lock_non_exclusive() den Aufruf von spooler_open() bzw. spooler_process() zu wiederholen, sobald die angeforderten Sperren verfügbar sind. Der JobScheduler wiederholt dann den Aufruf mit gehaltenen Sperren, so dass die erstgenannten Aufrufe Erfolg haben werden. Nach dem Aufruf hat der Rückgabewert von spooler_open() bzw. spooler_process() (true/false) keine Wirkung. Einen Auftrag Task.order belässt der JobScheduler in seinem Zustand. 5.21.3 changed_directories Die Verzeichnisse, deren Änderung den Start der Task veranlasst haben Syntax: String spooler_task. changed_directories Siehe Job.start_when_directory_changed() , Task.trigger_files . Rückgabe: String Die Verzeichnisnamen sind durch Semikolon getrennt. "", wenn kein Verzeichnis geändert ist. Software- and Organisations-Service GmbH März 2015 VBScript API 347 5.21.4 create_subprocess Start eines überwachten Subprozesses Syntax: Subprocess spooler_task. create_subprocess ( String|String[] filename_and_arguments (optional) ) Rückgabe: Subprocess 5.21.5 delay_spooler_process Verzögert den nächsten Aufruf von spooler_process() Syntax: spooler_task. delay_spooler_process = String|Double|Integer seconds_or_hhmm_ss Wirkt nur in spooler_process() . 5.21.6 end Beendet die Task Syntax: spooler_task. end () Der JobScheduler ruft nicht mehr spooler_process() auf. Statt dessen ruft er spooler_close() auf. Der Aufruf kann verwendet werden, um beim Task-Ende den Versand des Task-Protokolls zu veranlassen, siehe Log . 5.21.7 error Setzt einen Fehler und stoppt den Job Syntax: spooler_task. error = String Syntax: Error spooler_task. error Der lesende Aufruf liefert den letzten Fehler dieser Task. Wenn kein Fehler vorliegt, wird ein Error -Objekt zurückgeliefert, dessen Eigenschaft is_error false liefert. Sie können eine Fehlermeldung auch mit Log.error() ins Task-Protokoll schreiben. Rückgabe: String Error Software- and Organisations-Service GmbH März 2015 VBScript API 348 5.21.8 exit_code Exit-Code Syntax: spooler_task. exit_code = Integer Syntax: Integer spooler_task. exit_code Beispiel: in javascript spooler_log.error( "This call of spooler_log.error() sets the exit code to 1" ); spooler_task.exit_code = 0; // Reset the exit code Der Exit-Code ist anfänglich 0 und wird bei einem Fehler auf 1 gesetzt. Das ist, wenn der JobScheduler eine Zeile mit [ERROR] ins Task-Protokoll schreibt: • • • Aufruf von Log.error() Setzen von Task.error Das Skript liefert eine Exception. Der Job kann anschließend, z.B. in spooler_on_error() , den Task.exit_code neu setzen. Der Exit-Code des (Betriebssystem-)Prozesses, der die Task ausführt, ist ohne Belang und wird nicht übernommen, im Gegensatz zu Jobs mit <process> oder <script language="shell"> . Der Exit-Code entscheidet über die anschließend auszuführenden Kommandos. Siehe hierzu <job> <commands on_exit_code=""> . Der Exit-Code hat keinen Einfluss darauf, ob der Job gestoppt wird (eine Fehlermeldung der Task lässt den Job stoppen). 5.21.9 history_field Ein Feld in der Task-Historie Syntax: spooler_task. history_field ( String name ) = Variant value Beispiel: in javascript spooler_task.history_field( "extra" ) = 4711; Die Datenbanktabelle (s. factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) muss eine Spalte mit dem Namen haben und diese Spalte muss in der Datei factory.ini (Abschnitt [job], Eintrag history_columns=…) deklariert sein. 5.21.10 id Die Task-Kennung Syntax: Integer spooler_task. id Software- and Organisations-Service GmbH März 2015 VBScript API 349 Jede Task hat eine Scheduler-weit eindeutige numerische Kennung. 5.21.11 job Der Job, zu dem die Task gehört Syntax: Job spooler_task. job Rückgabe: Job 5.21.12 order Der zu verarbeitende Auftrag Syntax: Order spooler_task. order Beispiel: in javascript var order = spooler_task.order; spooler_log.info( "order.id=" + order.id + ", order.title=" + order.title ); Rückgabe: Order null, wenn kein Auftrag vorliegt. 5.21.13 params Die Parameter der Task Syntax: Variable_set spooler_task. params Beispiel: in javascript var value = spooler_task.params.value( "parameter3" ); Beispiel: in javascript var parameters = spooler_task.params; if( parameters.count > 0 ) spooler_log.info( "Parameters given" ); var value1 = parameters.value( "parameter1" ); var value2 = parameters.value( "parameter2" ); Eine Task kann Parameter haben. Die Parameter können gesetzt werden mit Software- and Organisations-Service GmbH März 2015 VBScript API • • • 350 In der Konfigurationsdatei im Element <job> mit <params> , Job.start() und <start_job> . Rückgabe: Variable_set != null 5.21.14 priority Priorität der laufenden Task Syntax: spooler_task. priority = Integer Syntax: Integer spooler_task. priority Beispiel: in javascript spooler_task.priority = +5; // Unix: Priorität etwas verschlechtern Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht werden. Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13 "high" (andere Werte werden abgerundet). Siehe auch Task.priority_class . Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Task.priority_class . 5.21.15 priority_class Prioritätsklasse der laufenden Task Syntax: spooler_task. priority_class = String Syntax: String spooler_task. priority_class Beispiel: in javascript spooler_task.priority_class = "below_normal"; Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix entsprechen: Prioritätsklasse Windows Unix "idle" 4 16 Software- and Organisations-Service GmbH März 2015 VBScript API 351 "below_normal" 6 6 "normal" 8 0 "above_normal" 10 -6 "high" 13 -16 Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelnden Rechts, führt das nicht zu einem Fehler. Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler. Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren. Siehe auch Task.priority , Subprocess.priority_class und Microsoft® Windows® Scheduling Priorities. 5.21.16 remove_pid Gegenstück zu add_pid() Syntax: spooler_task. remove_pid ( Integer pid ) Es gibt keinen Fehler, wenn die Pid nicht mit Task hinzugefügt worden ist. Siehe Task.add_pid() . 5.21.17 repeat Startet erneut eine Task nach der eingestellten Zeit Syntax: spooler_task. repeat = Double (Diese Methode gehört eigentlich in die Klasse Job . Sie hat nichts mit der gerade laufenden Task zu tun.) Wenn nach Ablauf der angegebenen Zeit keine Task des Jobs läuft, startet der JobScheduler eine Task. Dabei wird die <run_time> berücksichtigt. <period repeat=""> der aktuellen Periode wird vorläufig außer Kraft gesetzt. Job.delay_after_error hat Vorrang, wenn die Task einen Fehler liefert. 5.21.18 stderr_path Der Pfadname der stderr-Ausgabe der Task Syntax: String spooler_task. stderr_path Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. Software- and Organisations-Service GmbH März 2015 VBScript API 352 5.21.19 stderr_text Der bisher vom Prozess der Task nach stderr geschriebene Text Syntax: String spooler_task. stderr_text Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 5.21.20 stdout_path Der Pfadname der stdout-Ausgabe der Task Syntax: String spooler_task. stdout_path Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 5.21.21 stdout_text Der bisher vom Prozess der Task nach stdout geschriebene Text Syntax: String spooler_task. stdout_text Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert. Rückgabe: String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft. 5.21.22 trigger_files Pfade der Dateien in mit regex überwachten Verzeichnissen Syntax: String spooler_task. trigger_files Software- and Organisations-Service GmbH März 2015 VBScript API 353 Liefert die Pfade der Dateien aus überwachten Verzeichnissen ( Job.start_when_directory_changed() oder < start_when_directory_changed> ) zum Zeitpunkt des Starts der Task. Nur die Verzeichnisse, für die ein Regulärer Ausdruck (regex) angegeben ist, werden berücksichtigt. Die Pfade werden aus dem Verzeichnispfad, wie er in Job.start_when_directory_changed() oder < start_when_directory_changed> angegeben ist und dem Dateinamen zusammengesetzt. Nicht-API-Jobs ( <process> und <script language="shell"> ) steht der Inhalt von Task.trigger_files in der Umgebungsvariablen SCHEDULER_TASK_TRIGGER_FILES zur Verfügung. Siehe Job.start_when_directory_changed() , Task.changed_directories() . Rückgabe: String Die Dateipfade durch Semikolon getrennt. "" sonst 5.21.23 try_hold_lock Versucht, eine Sperre zu halten Syntax: boolean spooler_task. try_hold_lock ( String lock_path ) Beispiel: in javascript function spooler_process() { var result = false; if( spooler_task.try_hold_lock( "Georgien" ) && spooler_task.try_hold_lock_non_exlusive( "Venezuela" ) ) { // Task is holding the two locks. Insert processing code here. result = ... } else { spooler_task.call_me_again_when_locks_available(); } return result; } try_lock_hold() versucht, die angegebene Sperre ( Lock ) zu halten, und kann aufgerufen werden • • in spooler_open() : die Sperre wird für die Task gehalten und erst nach Beendigung freigegeben, in spooler_process() : die Sperre wird für nur für diesen Jobschritt gehalten und nach dessen Beendigung freigegeben, also beim Verlassen von spooler_process(). Wenn die Sperre nicht verfügbar ist, ein Aufruf also false liefert, kann entweder • mit Task.call_me_again_when_locks_available() der JobScheduler veranlasst werden, den Aufruf spooler_open() bzw. spooler_process() zu wiederholen, sobald die Sperren verfügbar sind, oder Software- and Organisations-Service GmbH März 2015 VBScript API 354 • spooler_open() bzw. spooler_process() ohne vorgenannten Aufruf mit false beendet werden, mit der • üblichen Wirkung, aber nicht mit true beendet werden, das wird als Fehler angesehen und führt zur Warnung SCHEDULER-469 . Siehe auch <lock.use> . Rückgabe: boolean true, wenn die Task die Sperre hält. 5.21.24 try_hold_lock_non_exclusive Versucht, eine Sperre nicht-exklusiv zu halten Syntax: boolean spooler_task. try_hold_lock_non_exclusive ( String lock_path ) Es gelten dieselben Bedingungen wie für Task.try_hold_lock() . Siehe auch <lock.use exclusive="no"> . Rückgabe: boolean true, wenn die Task die Sperre hält. 5.21.25 web_service Der Webdienst, der der Task zugeordnet ist Syntax: Web_service spooler_task. web_service Wenn die Task keinem Webdienst zugeordnet ist, liefert der Aufruf eine Exception. Siehe auch Task.web_service_or_null . Rückgabe: Web_service 5.21.26 web_service_or_null Der Webdienst, der der Task zugeordnet ist, oder null. Syntax: Web_service spooler_task. web_service_or_null Siehe auch Task.web_service . Rückgabe: Web_service Software- and Organisations-Service GmbH März 2015 VBScript API 355 5.22 Variable_set - Variablenmenge zur Übergabe von Parametern Variablenmengen werden gebraucht für die Scheduler-weiten Variablen und Task-Parameter. Eine neue Variablenmenge wird mit Spooler.create_variable_set() angelegt. Die Großschreibung der Variablennamen ist nicht relevant. In COM (JavaScript, VBScript, Perl) ist ein Variablenwert ein Variant. Weil die Variablen in der Regel in die Scheduler-Datenbank geschrieben werden, sollten nur nach String konvertierbare Variant-Werte verwendet werden (d.h. es sollten keine Objekte verwendet werden). In Java ist ein Variablenwert ein String. Wenn die Variable mit COM als Variant gesetzt worden ist, wird beim Lesen der nach String konvertierte Wert zurückgegeben. Null und Empty werden als null zurückgeliefert. Wenn ein Variant-Wert nicht konvertierbar ist, wird eine Exception ausgelöst. Siehe auch <params> und <sos.spooler.variable_set> . 5.22.1 count Anzahl der Variablen Syntax: Integer variable_set. count 5.22.2 merge Mischt eine andere Variablenmenge ein Syntax: variable_set. merge ( Variable_set vs ) Gleichnamige Variablen werden überschrieben. 5.22.3 names Alle Variablennamen durch Semikolon getrennt Syntax: String variable_set. names Software- and Organisations-Service GmbH März 2015 VBScript API 356 Beispiel: in javascript var variable_set = spooler.create_variable_set(); spooler_log.info( '"' + variable_set.names + '"' ); // ==> "" variable_set( "variable_1" ) = "edno"; variable_set( "variable_2" ) = "dwa"; spooler_log.info( '"' + variable_set.names + '"' ); "variable_1;variable_2" // ==> var names = variable_set.names.split( ";" ); for( var i in names ) spooler_log.info( names[i] + "=" + variable_set( names[i] ) ); Rückgabe: String Die Namen aller Variablen durch Semikolon getrennt. 5.22.4 set_var Setzt eine Variable Syntax: variable_set. set_var ( String name, Variant value ) 5.22.5 substitute Ersetzt $-Variablen in einem String Syntax: String variable_set. substitute ( String sustitution_string ) Beispiel: in javascript subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) ); Im Beispiel wird Subprocess.env verwendet. Referenzen der Form $ name und ${ name } im String werden durch Variablenwerte ersetzt, siehe auch . Rückgabe: String Die Zeichenkette mit den ersetzten $-Variablen 5.22.6 value Eine Variable Software- and Organisations-Service GmbH März 2015 VBScript API 357 Syntax: variable_set. value ( String name ) = Variant value Syntax: Variant variable_set. value ( String name ) Parameter: name value empty, wenn die Variable nicht vorhanden ist. Rückgabe: Variant empty, wenn die Variable nicht vorhanden ist. 5.22.7 var Eine Variable Syntax: variable_set. var ( String name ) = Variant value Syntax: Variant variable_set. var ( String name ) Verwenden Sie Variable_set.value , das ist in allen Sprachen verfügbar. Parameter: name value empty, wenn die Variable nicht vorhanden ist. Rückgabe: Variant empty, wenn die Variable nicht vorhanden ist. 5.22.8 xml Variable_set als XML-Dokument Syntax: variable_set. xml = String Syntax: String variable_set. xml Software- and Organisations-Service GmbH März 2015 VBScript API 358 Beispiel: in javascript var variable_set = spooler.create_variable_set(); spooler_log.info( variable_set.xml ); // Liefert <?xml version='1.0'?>< sos.spooler.variable_set/> variable_set.xml= "<?xml version='1.0'?>" + "<params>" + "<param name='nachname' value='Meier'/>" + "<param name='vorname' value='Hans'/>" + "</params>"; spooler_log.info( variable_set.xml ); spooler_log.info( "nachname=" + variable_set.value( "nachname" ) ); spooler_log.info( "vorname =" + variable_set.value( "vorname" ) ); Siehe <sos.spooler.variable_set> , <params> . Parameter: XML-Dokument als String. Liefert < sos.spooler.variable_set> . Beim Setzen wird der Name des Wurzelelements nicht beachtet, <params> oder <sos.spooler.variable_set> kann übergeben werden. Rückgabe: String XML-Dokument als String. Liefert <sos.spooler.variable_set> . Beim Setzen wird der Name des Wurzelelements nicht beachtet, <params> oder <sos.spooler.variable_set> kann übergeben werden. 5.23 Web_service Siehe auch <web_service> 5.23.1 forward_xslt_stylesheet_path Pfad des XSLT-Stylesheets fürs Forwarding Syntax: String web_service. forward_xslt_stylesheet_path Siehe auch <web_service forward_xslt_stylesheet=""> 5.23.2 name Name des Web-Dienstes im Scheduler Syntax: String web_service. name Software- and Organisations-Service GmbH März 2015 VBScript API 359 Siehe auch <web_service name=""> 5.23.3 params Parameter zur freien Verwendung Syntax: Variable_set web_service. params Die Parameter des Web-Services können mit <web_service> eingestellt werden. Rückgabe: Variable_set 5.24 Web_service_operation Siehe auch <web_service> 5.24.1 peer_hostname Hostname der Gegenstelle Syntax: String web_service_operation. peer_hostname Rückgabe: String "", wenn der Name nicht ermittelt werden kann. 5.24.2 peer_ip IP-Adresse der Gegenstelle Syntax: String web_service_operation. peer_ip 5.24.3 request Anforderung Syntax: Web_service_request web_service_operation. request Software- and Organisations-Service GmbH März 2015 VBScript API 360 Rückgabe: Web_service_request 5.24.4 response Antwort Syntax: Web_service_response web_service_operation. response Rückgabe: Web_service_response 5.24.5 web_service Syntax: Web_service web_service_operation. web_service Rückgabe: Web_service 5.25 Web_service_request Siehe Web_service_operation . 5.25.1 binary_content Nutzdaten als Byte-Array (nur Java) Syntax: web_service_request. binary_content Die Eigenschaft steht nur unter Java zur Verfügung. Wie der binäre Inhalt zu interpretieren ist, sollte der Client in im Header-Feld Content-Type mitgeteilt haben (siehe HTTP/1.1 14.17 Content-Type und Web_service_request.charset_name ). 5.25.2 charset_name Zeichencodierung Syntax: String web_service_request. charset_name Software- and Organisations-Service GmbH März 2015 VBScript API 361 Beispiel: in javascript var request = spooler_task.order.web_service_operation.request; spooler_log.info( request.header( "Content-Type" ) ); spooler_log.info( request.content_type ); spooler_log.info( request.charset_name ); // ==> text/xml; charset=utf-8 // ==> text/xml // ==> utf-8 Liefert den Parameter charset= aus dem Kopfeintrag Content-Type:. 5.25.3 content_type Content-Type (ohne Parameter) Syntax: String web_service_request. content_type Liefert den Kopfeintrag Content-Type: ohne Parameter, z.B. "text/plain". 5.25.4 header Eintrag im Kopf Syntax: String web_service_request. header ( String name ) Beispiel: in javascript spooler_log.info( "Content-Type: " + spooler_task.order.web_service_operation.request.header( "Content-Type" ) ); Parameter: name Die Großschreibung spielt keine Rolle. Rückgabe: String Für einen unbekannten Eintrag wird "" geliefert 5.25.5 string_content Nutzdaten als Text Syntax: String web_service_request. string_content Die Zeichen-Codierung wird dem Parameter charset aus headers( "Content-Type" ) entnommen (siehe HTTP/1.1 14.17 Content-Type). Fehlt der Parameter, wird ISO-8859-1 angenommen. Software- and Organisations-Service GmbH März 2015 VBScript API 362 Folgende Zeichen-Codierungen (Charset) werden erkannt: • • ISO-8859-1 UTF-8 (nur Windows und beschränkt auf den Zeichenvorrat von ISO-8859-1) Siehe auch Web_service_request.binary_content . 5.25.6 url Uniform Resource Locator Syntax: String web_service_request. url url = "http://" + header( "Host" ) + url_pfad 5.26 Web_service_response Die Eigenschaft binary_content steht nur unter Java zur Verfügung. Siehe auch <web_service> 5.26.1 charset_name Zeichencodierung Syntax: String web_service_response. charset_name Beispiel: in javascript var request = spooler_task.order.web_service_operation.request; spooler_log.info( request.header( "Content-Type" ) ); spooler_log.info( request.content_type ); spooler_log.info( request.charset_name ); // ==> text/xml; charset=utf-8 // ==> text/xml // ==> utf-8 Zugriff auf den Parameter charset= aus dem Kopfeintrag Content-Type:. 5.26.2 content_type Content-Type (ohne Parameter) Syntax: String web_service_response. content_type Zugriff auf den Kopfeintrag Content-Type: ohne dazugehörige Parameter (z.B. charset=). Software- and Organisations-Service GmbH März 2015 VBScript API 363 5.26.3 header Eintrag im Kopf Syntax: web_service_response. header ( String name ) = String value Syntax: String web_service_response. header ( String name ) Beispiel: in javascript spooler_log.info( "Content-Type: " + spooler_task.order.web_service_operation.header( "Content-Type" ) ); Parameter: value Für einen umbekannten Eintrag wird "" verwendet name Die Großschreibung spielt keine Rolle. Rückgabe: String Für einen umbekannten Eintrag wird "" verwendet 5.26.4 send Antwort senden Syntax: web_service_response. send () 5.26.5 status_code HTTP-Status-Code Syntax: web_service_response. status_code = Integer Voreingestellt ist 200 (OK). 5.26.6 string_content Nutzdaten als Text Syntax: web_service_response. string_content = String text Software- and Organisations-Service GmbH März 2015 VBScript API 364 Beispiel: in javascript var response = spooler_task.order.web_service_operation.response; response.content_type = "text/plain"; response.charset_name = "iso-8859-1"; response.string_content = "This is the answer"; response.send(); Zuvor muss header( "Content-Type" ) mit dem Parameter charset gesetzt sein, zum Beispiel header( "Content-Type" ) = "text/plain; charset=iso-8859-1"; Der Text wird nach dem Parameter charset codiert. Fehlt der Parameter, wird ISO-8859-1 angenommen. Zu den hier zulässigen Zeichen-Codierungen (Charset) siehe Web_service_request.string_content Siehe Web_service_response.charset_name . 5.27 Xslt_stylesheet Mit einem XSLT-Stylesheet wird die Konvertierung eines XML-Dokuments in ein anderes beschrieben. Der XSLT-Prozessor ist mit libxslt implementiert. 5.27.1 apply_xml Wendet das Stylesheet auf ein XML-Dokument an. Syntax: String x. apply_xml ( String xml ) 5.27.2 close Gibt die Ressourcen des Stylesheets frei Syntax: x. close () 5.27.3 load_file Lädt das Stylesheet aus einer XML-Datei Syntax: x. load_file ( String path ) Software- and Organisations-Service GmbH März 2015 VBScript API 365 5.27.4 load_xml Lädt das Stylesheet aus einem XML-Dokument Syntax: x. load_xml ( String xml ) Software- and Organisations-Service GmbH März 2015 Stichwortverzeichnis 366 Stichwortverzeichnis A Arbeitsverzeichnis 331 77, 162, 246, C -cd 78, 162, 247, 331 D Debugger 85, 169, 254, 339 E Eclipse 85, 169, 254, 339 -exclusive 83, 83, 168, 168, 252, 252, 337, 337 I -id 79, 164, 248, 333 -include-path 29, 79, 115, 164, 199, 248, 284, 333 -ini 79, 164, 248, 333 L -log-dir 76, 81, 85, 161, 166, 169, 245, 250, 254, 330, 335, 339 -log-level 48, 133, 217, 302 P -param 82, 167, 251, 336 T -tcp-port 83, 168, 252, 337 U -udp-port 84, 169, 253, 338 V Verzeichnis 77, 162, 246, 331 Software- and Organisations-Service GmbH März 2015