Zschimmer GmbH Impressum und Kontakt

Job Scheduler     Erste Seite

  XML     API     Register


logo

Änderungsprotokoll

2.0.223.6010  2009-06-12

Neue API-Aufrufe Order.setback_count und Job.setback_max

 

 

2.0.222.6007  2009-05-07

<job warn_if_shorter_than und warn_if_longer_than>

 

Wenn die Dauer eines Jobschritts von einer Vorgabe abweicht, gibt der Scheduler eine Warnung aus.

 

2.0.221.5985  2009-03-20

Windows: kill bricht alle Kindprozesse ab

 

Ein <kill_task> auf einen Shell-Job bricht auch alle Kind- und Kindeskind-Prozesse ab, wie bereits unter Unix.

 

2.0.221.5980  2009-03-10

Monitor für Shell-Jobs

 

Ein <monitor> kann jetzt auch für Nicht-API-Jobs angegeben werden.

 

 

Datenbankproblem mit der Stunde zwischen Winter- und Sommerzeit gelöst

 

2.0.220.5972  2009-03-02

Nach kill -9 wird Dauerauftrag nicht mehr sofort beim nächsten Scheduler-Lauf gestartet

 

 

<settings> in <job>

 

 

2.0.220.5970  2009-02-25

Scheduler als Unix-Daemon leitet stdout/stderr in Datei um

 

Wie es sich für einen Daemon gehört, schließt der Scheduler stdout und stderr und leitet die Ausgaben in die Datei scheduler.out. Diese Datei muss beschreibbar sein.

 

2.0.219.5968  2009-01-27

libhostjava.so im Scheduler für HP-UX/Itanium eingebunden

 

Im Gegensatz zu HP-UX/PA-RISC ist jetzt für Itanium die libhosthava.so in den Scheduler eingebunden. Damit tritt das "com_construct-Problem" nicht mehr auf.

 

2.0.219.5966  2009-01-21

Unter Unix mit kill abgebrochene Task führt zum Task-Fehler

 

Damit ist das Verhalten unter Unix wie unter Windows.

 

 

JS-321: Backup-Scheduler übernimmt wieder Job-, Task-, Jobketten- und Auftragseinstellungen

 

Im Betrieb mit einem Backup-Scheduler werden die Spalten cluster_member_id nicht mehr gefüllt. Die Spalten werden nur nur im Betrieb für verteilte Aufträge gefüllt, so dass die Datensätze nur dann den Cluster-Membern fest zugeordnet sind.

 

2.0.219.5963  2008-12-12

JS-305: Zurücksetzen eines Auftrags

 

 

2.0.218.5961  2008-11-18

<script language="shell">: .cmd-Datei wird in OEM-Codierung erstellt

 

Windows verlangt für Batch-Dateien die OEM-Codierung. Wenn ein Zeichen aus <script> nicht umgesetzt werden kann, bricht der Scheduler den Job mit der Meldung SCHEDULER-471 ab. Jedoch ignoriert der Scheduler schon beim Einlesen der XML-Konfiguration Zeichen, die nicht in Latin1 sind, siehe »konfiguration.xml#encoding«.

[ERROR] SCHEDULER-471 Not supported character for encoding '(1) '

 

2.0.217.5956  2008-11-12

JS-316: Neue Umgebungsvariablen für Nicht-API-Jobs

 

 

2.0.216.5953  2008-11-05

Transaktionsisolation für Sybase geändert

 

Für Sybase ist jetzt read committed eingestellt.

 

 

<start_job force="no">: Task starten, ohne Job zu entstoppen

 

 

 

Fehlermeldung Z-ASYNC-SOCKET-001 unter Windows korrigiert

 

Eine interne Sicherheitsprüfung, die nur für Unix vorgesehen ist, verhinderte unter Windows gelegentlich den Start eines Jobs.

 

 

Fehler aus 2.0.214.5927 (Jobs in der Datenbank) korrigiert

 

Außerdem die Spalten der Tabelle SCHEDULER_JOB_CHAIN_NODES verschmälert.

 

2.0.215.5938  2008-10-28

Kleine Korrektur der Log-Kategorien

 

2.0.215.5937  2008-10-22

Bei besonderem Lizenzsschlüssel liefert der Scheduler das Datenbankkennwort

 

Der Lizenzschlüssel kann per <licence.use> übergeben werden. Daraufhin unterdrückt der Scheduler nicht länger in der Antwort von <show_state> die Zeichenfolge, die mit -password= beginnt.

 

 

Allgemeines zentrales Konfigurationsverzeichnis kann gelöscht werden

 

Wenn das zentrale allgemeine Konfigurationsverzeichnis gelöscht wird, lässt der Supervisor in allen angeschlossenen Schedulern die entsprechenden Objekte löschen.

 

2.0.214.5927  2008-10-16

Gestoppte Jobs, Jobketten und Jobkettenknoten bleiben über Scheduler-Neustart hinweg gestoppt

 

Der Zustand der Jobs, Jobketten und Jobkettenknoten wird in der Datenbank gehalten. Wenn eins dieser drei Objekte gelöscht wird, wird auch der dazugehörige Datenbankeintrag gelöscht.

 

2.0.213.5922  2008-10-07

Verschachtelte Jobketten mit Großbuchstaben funktionieren

 

Großbuchstaben im Namen der übergeordneten Jobkette konnten den Scheduler abbrechen lassen. Das ist behoben. In Jobkettennamen werden große wie kleine Buchstaben angesehen.

In der Datenbank werden die Jobkettennamen in Großschreibung belassen. Aufträge werden nur wiedergefunden, wenn die Großschreibung sich nicht ändert. Jobkettennamen sollten in der Datenbank normalisiert, also kleingeschrieben, gespeichert werden.

 

2.0.213.5918  2008-10-04

Hauptprotokoll im Browser-Fenster bricht nicht mehr ab

 

Das Hauptprotokoll im Browser-Fenster bricht jetzt nicht mehr ab. Das passierte, nachdem das Hauptprotokoll wegen eines Fehler beim Scheduler-Start versendet worden ist.

 

2.0.213.5914  2008-10-02

$-Substitition mit \ abschaltbar

 

Das Zeichen »\« vor »$« liefert das Zeichen »$«, ohne eine Variable zu ersetzen.

Siehe »Einstellungen, die den Abruf von Umgebungsvariablen mit ${…} erlauben«.

 

 

<kill_task> auf Nicht-API-Prozessen unter Unix bricht alle Kindprozesse ab

 

Die Meldungen SCHEDULER-277 und SCHEDULER-282 werden nicht mehr ausgegeben.

 

 

Neue Kommandos zum Schalten der Log-Kategorien

 

 

2.0.212.5882  2008-09-11

".." ist in allen Pfaden möglich

 

Pfade, die auf ein Scheduler-Objekt verweisen (Job, Jobkette usw.) können mit ".." ins obere Verzeichnis verweisen. Zum Beispiel in

 

2.0.211.5876  2008-09-07

Implementierung der verschachtelten Jobketten überarbeitet

 

 

scheduler.log zeigt Tag des Monats in der ersten Spalte

 

 

Diagnosemeldung beim Fehlstart eines Prozesses

 

Wenn ein Nicht-API-Prozess unter Unix sich nicht starten lässt (Fehler bei execvp), gibt der Scheduler die execvp-Parameterliste und die Umgebungsvariablen aus.

 

2.0.210.5864  2008-08-22

Anpassung an verschachtelte Jobketten

 

<add_order state="…"> und <add_order end_state="…"> sind jetzt auf verschachtelte Jobketten anwendbar.

 

2.0.210.5860  2008-08-14

Perl-API unter Unix (libsosperlscript.so) verbessert

 

  • Log.level: $spooler_log->LetProperty( 'level', ... ) funktioniert.
  • Die Perl-Schnittstelle versucht jetzt, jeden unbekannten Typ als String zu erkennen, so dass auch folgende Sequenz funktioniert, deren zweite Anweisungen $a von einem SVt_IV in einen SVt_PVIV wandelt:
    my $a = 1;
    my $x = "$a";
    $spooler_log->info( $a )

 

 

Klasse Run_time für Java ermöglicht

 

Run_time kann auch in Java benutzt werden.

 

2.0.210.5838  2008-07-25

Neue Umgebungsvariable SCHEDULER_TASK_ID

 

Siehe <process>.

 

2.0.210.5837  2008-07-22

XML-Kommandos zum Setzen und Lesen der Scheduler-Parameter

 

 

 

Umgang mit Feiertagen: <period when_holiday="…">

 

Der Scheduler sieht zwanzig Jahre voraus, längstens aber bis 2038.

 

 

Wochentage, zum Beispiel Samstag und Sonntag, als Feiertage deklarierbar

 

 

 

Aufträge mit inkludierten Parameterdateien

 

<order><params><include> ist möglich. Bei einem dateibasierten Auftrag kann die inkludierte Datei überwacht werden.

 

 

<job timeout="…"> gilt auch für Nicht-API-Jobs

 

 

2.0.208.5817  2008-07-02

Dateiaufträge beschleunigt

 

Wenn der erste Job der Jobkette mehrere Tasks erlaubt (<job tasks="…">), füttert der Scheduler die Jobkette jetzt schneller mit den Dateiaufträgen..

 

2.0.208.5814  2008-06-30

Doppeltes "To:" aus Mail-Verzeichnis entfernt

 

Die im eMail-Verzeichnis (factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…)) abgelegten Dateien enthielten zur Kompatibilität mit einer alten Mail-Software eine zusätzlich "To:"-Zeile. Die Zeile wird nicht mehr eingefügt. Es sollte eine aktuelle Mail-Software (mail.jar oder w3jmail44.dll) eingesetzt werden.

 

 

Variable_set.set_value() auch in Java möglich

 

Der schreibende Aufruf von Variable_set.value ist jetzt auch in Java möglich.

Der Aufruf ist damit durchgängig eingeführt und ersetzt Variable_set.var, der in JavaScript nicht möglich ist.

 

 

spooler_log.new_filename

 

Log.new_filename kann jetzt auch unter Unix verwendet werden.

 

 

Dokumentation erweitert

 

Log.mail_on_process ergänzt; Texte aus settings.xml werden auf den API-Seiten gezeigt.

 

2.0.208.5811  2008-06-26

API um Sperren erweitert

 

 

2.0.207.5799  2008-06-09

Auf Microsoft Visual Studio 2008 umgestellt

 

2.0.206.5789  2008-05-25

spidermonkey.dll und libspidermoneky.so: Verhalten bei Boole'sch true verbessert

 

Boole'sch true wird jetzt immer als derselbe interne Wert geliefert, sodass folgender Code funktioniert:

spooler_log.mail_on_success = true;
var a = spooler_log.mail_on_success;
if( a != true )  spooler_log.error( a + "!=" + true );  // Okay ab Spidermonkey 1.7.0.5789

 

 

Dokumentation korrigiert

 

 

2.0.206.5787  2008-05-19

Umstellung der Datenbankspalte SCHEDULER_HISTORY.END_TIME auf NULL

 

Anpassung an MySQL 5, das "0000-00-00" für fehlenden Feldwert schreibt, wenn die Spalte mit NOT NULL deklariert ist.

 

 

Order.priority wird jetzt richtig interpretiert

 

  • Order.priority: Höhere Priorität ordnet einen Auftrag vorne in die Auftragswarteschlange ein.

 

 

Verteilte Aufträge schreiben wieder nur einen Historiensatz

 

Seit Version 2.0.194.8488 (2008-01-05) schrieben verteilte Aufträge für jeden Schritt einen Historiensatz. Das ist korrigiert.

 

2.0.205.5781  2008-05-09

Order.job deleted

 

 

 

<show_state what="source"

 

 

 

<schedule.remove> entfernt ein Schedule

 

 

2.0.204.5773  2008-05-06

JS-279: Weitere Umgebungsvariablen für Nicht-API-Jobs

 

 

2.0.203.5764  2008-04-29

JS-271: XML-Dokument in einem Konfigurationsverzeichnis anlegen: <modify_hot_folder>

 

 

 

JS-245: Neues XML-Element <schedule>: Benannte <run_time>

 

 

 

JS-274: Job_chain.title

 

 

2.0.202.5728  2008-04-21

Problem beim gleichzeitigen Start zweier Cluster-Scheduler behoben

 

Beim gleichzeitigen Start zweier Scheduler desselben Clusters konnte ein Scheduler beim Start hängen bleiben. Das ist behoben.

 

2.0.202.5723  2008-04-18

JS-265: Order.end_state

 

 

2.0.201.5696  2008-04-02

Anpassungen an Sybase Adaptive Server Enterprise

 

2.0.201.5692  2008-03-31

JS-60: <script> </script> wirkt wie <script/>

 

Leere Textknoten (nur Leerzeichen, Zeilenwechsel und Tabulator) im XML-Element <script> ignoriert der Scheduler. Wenn das XML-Element <script> nur einen leeren Textknoten enthält, gilt das als nicht angegebener Quell-Code.

 

2.0.201.5684  2008-03-14

Jobprotokolldatei wird nicht mehr offengehalten

 

Wenn der Scheduler etwas ins Jobprotokoll schreibt, öffnet er die Datei zuvor und schließt sie danach wieder.

 

2.0.201.5679  2008-03-13

JS-150: Anpassung der Spalte SCHEDULER_ORDER_HISTORY.END_TIME in einer Access-Datenbank

 

Die Datenbank-Spalte SCHEDULER_ORDER_HISTORY.END_TIME muss mit JS-150 NULL aufnehmen können. Der Scheduler prüft das beim Start und ändert die Spalte. Access verlangt dazu ein besonders Verfahren: Der Scheduler legt eine Kopie der Spalte an, die er dann in die erneuerte zurückkopiert. Diese Operation, die einmal beim Start des Schedulers durchgeführt wird, sollte nicht unterbrochen werden.

 

2.0.201.5678  2008-03-07

JS-150: Neue Spalten ERROR, ERROR_CODE und ERROR_TEXT in der Auftragsschritthistorie

 

Bei einem Task-Fehler werden die neuen Felder der Tabelle SCHEDULER_ORDER_STEP_HISTORY gefüllt.

 

2.0.201.5671  2008-02-28

Attribut day= lässt bereits angegebene Tage zu

 

In <weekdays> und <monthdays> können Tage wiederholt angegeben werden. Der Scheduler mischt die Perioden. Die Meldung SCHEDULER-444 entfällt.

Beispiel  

<monthdays>
    <day day="12 13">
        <period single_start="13:12"/>
    </day>
    <day day="12">
        <period single_start="12:00"/>
    </day>
</monthdays>

Das ergibt für den 12. eines Monats zwei Startzeiten: 12:00 und 13:12.

 

2.0.200.5665  2008-02-25

<include include_path="...">: Umgebungsvariablen können abgerufen werden

 

 

 

JS-215: <params> mit <include>

 

In Dateien abgelegte Parameter können inkludiert werden. Mit einem XPath-Ausdruck lassen sich die <param> adressieren.

 

 

JS-240: <include live_file="…">

 

Das neue Attribut live_file= kann verwendet werden direkt unter

Unter <job><params> führt eine Änderung der mit live_file= angegebenen Datei zum Erneuten Lesen des Jobs.

 

 

JS-222: Neuer Aufruf job.folder_path()

 

 

2.0.199.5618  2008-02-11

JS-221: Cache für zentrale Konfiguration und parallele lokale Konfiguration

 

Eine vom Supervisor geladene zentrale Konfiguration wird im neuen Verzeichnis ./config/cache gehalten.

Der Job Scheduler mischt die zentrale mit der lokalen Konfiguration. Ein zentral konfiguriertes Objekt kann nicht lokal überschrieben werden.

Unter Windows sind wegen der weiteren Verzeichnisüberwachung noch 25 TCP-Verbindungen möglich.

[ERROR] SCHEDULER-460 object(1) is centrally defined and cannot be locally overwritten 
[warn] SCHEDULER-703 Local configuration file is ignored, the central configuration file is used instead 

 

2.0.198.5596  2008-02-04

JS-222: Neue Aufrufe Spooler.configuration_directory und Job.folder_path

 

 

2.0.197.5594  2008-02-04

JS-255: Prozessklassen auch für Nicht-API Jobs möglich

 

Nicht-API Jobs können einer Prozessklasse zugeordnet werden (Default: die Prozessklasse mit dem leeren Namen ""). D.h. die in der Prozessklasse eingestellte Begrenzung der Prozesse wirkt auch auf Nicht-API Jobs.

Die voreingestellte Begrenzung ist von 10 auf 30 erhöht worden.

 

 

JS-213: Nicht-API Jobs lassen sich unter entferntem Job Scheduler ausführen

 

Für Nicht-API Jobs lässt sich eine Prozessklasse mit entferntem Job Scheduler angeben.

 

 

JS-205: Job.name liefert den Pfad des Jobs

 

Job.name liefert nicht mehr den Namen, sondern den Pfad des Jobs.

 

 

JS-204: Zentrale Konfiguration

 

Ein als Supervisor laufender Job Scheduler kann Konfigurationsdateien und -verzeichnisse einer zentralen Konfiguration für andere Job Scheduler bereitstellen. Änderungen werden laufend übernommen.

[ERROR] SCHEDULER-456 Invalid response from supervisor 
[ERROR] SCHEDULER-457 Remote scheduler '(1) ' has not been registered 
[warn] SCHEDULER-454 Remote configuration directories '(1) ' and '(2) ' refer to the same IP number 
[warn] SCHEDULER-899 Scheduler has no UDP port, so updated configuration files on supervisor will not be noticed 
[info] SCHEDULER-455 No configuration directory for '(1)
[info] SCHEDULER-701 Replicating '(1)
[info] SCHEDULER-702 Removing '(1)

 

 

JS-203: stdout und stderr werden laufend ins Protokoll übernommen

 

Ausgaben nach stdout und stderr werden nicht mehr erst am Ende der Task, sondern laufend übernommen. Das geschieht sekündlich. Wenn keine Ausgabe kommt, verlängert sich die Periode auf zehn Sekunden.

Bei API-Jobs, deren Tasks auf einem entfernten Job Scheduler ablaufen (<process_class remote_scheduler="…">), werden Ausgaben nach Beendigung des Skripts (also kurz vor Beendigung des Prozesses) nicht übernommen.

 

 

Datenbank Adaptive Server Enterprise von Sybase wird unterstützt

 

Für alle Datenbanken sind die Spalten für Auftragskennungen und Jobkettenamen von 255 auf 250 Zeichen verkürzt worden.

 

 

JS-227: Mit <run_time> wiederholte Aufträge werden nach Mitternacht fortgesetzt

 

Bislang endeten die Aufträge um 24:00. (Eine Folge von JS-123 im Oktober 2007.)

 

2.0.196.5515  2008-01-14

Job Scheduler für AIX bereitgestellt

 

2.0.196.5515  2008-01-14

JS-219: HTML-Seiten über virtuelles Verzeichnis eines HTTP-Proxys möglich

 

2.0.196.5515  2008-01-13

JS-220: Spidermonkey 1.7

 

Das Modul libspidermonkey.so bzw. spidermonkey.dll ist auf die Version 1.7.0 umgestellt. SpiderMonkey 1.7.0 Change Log

 

2.0.195.5499  2008-01-11

JS-212: Element <params> unter <config>

 

Mit <params> unter <config> lassen sich Scheduler-weite Parameter setzen, die mit Spooler.variables abgerufen werden können.

 

2.0.194.5488  2008-01-05

JS-150: Neue Datenbanktabelle scheduler_order_step_history

 

Die Tabelle nimmt für jeden Auftragsschritt einen Satz auf. Der Satz wird zu Beginn des Schritts geschrieben und am Ende vervollständigt.

Die Tabelle scheduler_order_history wird jetzt schon mit dem ersten Auftragsschritt beschrieben und nach der Ausführung des Auftrags vervollständigt.

Die Spalte scheduler_order_history.end_time nimmt jetzt NULL auf.

Die Tabelle scheduler_order_step_history hat folgenden Aufbau (Syntax für PostgresQL):

CREATE TABLE SCHEDULER_ORDER_STEP_HISTORY 
(
    "HISTORY_ID" integer not null,          // Verweis zu SCHEDULER_ORDER_HISTORY.HISTORY_ID
    "STEP"       integer not null,          // 1, 2, 3, ...
    "TASK_ID"    integer not null,          // Verweis zu SCHEDULER_TASKS.TASK_ID
    "STATE"      varchar(100) not null,     // Auftragszustand
    "START_TIME" timestamp not null,
    "END_TIME"   timestamp,
    primary key( "HISTORY_ID", "STEP" )
)

 

2.0.194.5476  2008-01-05

Neue Datenbankspalte scheduler_history.pid

 

Die neue Datenbankspalte scheduler_history.pid nimmt die Prozesskennung des Betriebssystems auf.

Datenbank-Deklaration:

"PID" integer

 

2.0.193.5476  2008-01-02

Zentrale Konfiguration

 

<config central_configuration_directory="…">

Der Supervisor kann jetzt die lokalen Konfigurationen mit einer zentralen Konfiguration überschreiben.

 

2.0.192.5444  2007-12-21

<file_order_source> ohne regex= konnte Job Scheduler abbrechen

 

Bei <file_order_source> mit leerem Attribut regex= konnte der Job Scheduler abbrechen, nachdem ein Dateiname auf die Schwarze Liste gesetzt worden ist (weil er nach Auftragsführung noch vorhanden ist). Das ist behoben.

Zwischenlösung im bisherigen Job Scheduler: regex="."

 

2.0.192.5442  2007-12-20

JS-178: Große Antwort einer API-Methode ließ Task hängen

 

Ein Aufruf von z.B. spooler.execute_xml() mit einer großen Rückgabe (etwa >100KB) konnte hängen bleiben. Das ist behoben.

 

2.0.192.5438  2007-12-19

Änderung einer Job-Konfiguration unter Unix hält Dateiaufträge nicht mehr an

 

Unter Unix hielt eine Änderung der Konfiguration des ersten Jobs der Jobkette nach <file_order_source> die Dateiauftragsquelle an. Das ist behoben.

 

 

<show_order>

 

Das Kommando <show_order> konnte den Scheduler abbrechen, wenn der Auftrag nicht mehr vorhanden war. Das ist behoben.

 

 

JS-208: modify_job cmd='reread' als Null-Operation wieder eingebaut

 

Das Kommando ist wirkungslos, weil die <include> ohnehin bei jedem Job-Start erneut gelesen werden.

 

2.0.192.5429  2007-12-11

JS-52: XML-Fehler beim Lesen des Auftrags-XML-Dokument

 

Je nach Blockung der Datenbank konnte beim Lesen eines Auftrags ein XML-Fehler auftreten. Das sollte behoben sein.

 

2.0.192.5428  2007-12-11

JS-206: <script language="perl"> meldet Fehler mit Zeilennummer und Pfad

 

Ein Fehler in einem (<script language="perl">) wird jetzt in der Regel mit Zeilennummer und Pfad (bei <include>) gemeldet.

Unter Unix erscheint die Position in der stderr-Ausgabe.

Unter Windows wird bei machen Fehlern ("undefined value") die Zeilennummer der ersten Zeile des Abschnitts, aber nicht der fehlerhaften Zeile gemeldet. Das scheint eine Besonderheit von ActivePerl zu sein.

 

2.0.192.5407  2007-11-30

Job.name liefert den ganzen Pfad

 

Job.name liefert nicht mehr den Namen, sondern den Pfad des Jobs ohne beginnenden Schrägstrich.

 

2.0.192.5402  2007-11-27

Datenbanktest auf ASCII-Zeichen reduziert

 

Weil manche PostgresQL-Installationen Latin-1 nicht unterstützen, prüft der Job Scheduler nur noch den ASCII-Zeichenvorrat (Basic Latin).

[ERROR] SCHEDULER-452 Database does not correctly store test values:
(1) (written value)
(2) (read value)

 

2.0.192.5397  2007-11-20

Variablenwerte mit Nicht-Latin1-Zeichen

 

Weil Umgebungsvariablen (z.B. ERASE) Zeichen enthalten können, die UNICODE nicht kennt, wurden interne XML-Dokumente ungültig. Solche Zeichen codiert der Scheduler jetzt hexadezimal.

 

2.0.192.5394  2007-11-18

PostgresQL wird besser unterstützt, Job Scheduler prüft Datenbank

 

Beim Start führt der Job Scheduler einfache Tests des Datenbankmoduls durch:

  • ob '\' (Backslash) korrekt behandelt wird,
  • ob der Latin1-Zeichenvorrat und die Steuerzeichen TB (0x08), CR (0x0D) und NL (0x0A) geschrieben und gelesen werden können, und
  • ob die SQL-Anweisung rollback auf die Tabelle SCHEDULER_VARIABLES wirkt.

Bei einem Fehlschlag startet der Scheduler nicht.

[ERROR] SCHEDULER-451 Database check failed, database is not useable. error(1)

[ERROR] SCHEDULER-452 Database does not correctly store test values:
(1) (written value)
(2) (read value)

[ERROR] SCHEDULER-453 Database does not respect rollback command

 

 

Entfernte Task-Ausführung: Spooler.directory, .log_dir, .ini_path und .include_path liefern Werte des entfernten Schedulers

 

 

 

JS-195: Job-Historie für Jobs in Ordnern korrigiert

 

<show_job what="task_history"> berücksichtigt jetzt den ganzen Pfad des Jobs.

 

 

JS-196: Einträge in der factory.ini auch für Jobs in Ordnern möglich

 

 

2.0.191.5386  2007-11-15

Löschen der Jobkette, auf die eine übergeordnete verweist, liefert keine Warnung mehr

 

Wenn eine Jobkette gelöscht wird, auf die eine übergeordnete Jobkette verweist, wird letztere unbrauchbar, weshalb die Warnung SCHEDULER-424 'Job_chain xxx' is being removed before 'yyy' ausgegeben wurde. Die Meldung wird jetzt als Info ausgegeben.

 

 

JS-180: Java-Quellcode kann jetzt mit Blank im Classpath übersetzt werden

 

Der Scheduler setzt dazu die Umgebungsvariable CLASSPATH.

 

 

JS-146: Jobstarts bei neuen, geänderten und gelöschen Konfigurationsdateien

 

 

2.0.190.5382  2007-11-12

JS-181: Änderung der Großschreibung einer im Quellcode angegebenen Java-Klasse

 

Unter Windows führte die Änderung der Großschreibung des Namens einer Java-Klasse zu einem Fehler, wenn deren Quell-Code direkt in <script language="java"> angegeben war. Der Scheduler löscht jetzt die generierte .java-Datei, um Windows zu der geänderten Großschreibungsweise zu zwingen.

 

2.0.190.5379  2007-11-06

Veraltetes <script process_class="..."> wird nicht mehr unterstützt

 

Verwenden Sie <job process_class="…">.

 

2.0.190.5375  2007-11-03

JS-177: Java-Methode Order.priority() korrigiert

 

Order.priority ist jetzt unter Java benutzbar.

 

2.0.190.5370  2007-10-29

JS-155: Lade- und Aktivierungsphase der dynamischen Konfiguration getrennt

 

Die Objekte der Konfigurationsverzeichnisse werden erst geladen, dann aktiviert. Damit können für <config configuration_add_event="…"> usw. Jobs aus den Konfigurationsverzeichnissen benutzt werden.

 

 

JS-155: Kurzfristiges Löschen und Wiedereinfügen einer Datei wird als Änderung angesehen

 

Wenn eine Datei in sehr kurzer Zeit gelöscht und wieder eingefügt wird, interpretiert der Job Scheduler das als Änderung, nicht als Löschen und Hinzufügen eines Objekts.

 

2.0.190.5365  2007-10-28

JS-136: Authentifizierung für SMTP-Server (eMail-Versand)

 

Der Job Scheduler unterstützt Authentifizierung für den Versand von Mail via SMTP.

Der Job Scheduler läuft nur mit der neuen Datei sos.mail.jar!

 

 

JS-153: Neues Kommando <check_folders>

 

Das Kommando veranlasst den Job Scheduler, den Inhalt von Konfigurationsverzeichnissen (Hot Folders) zu prüfen, um geänderte, hinzugefügte oder entfernte Dateien sofort zu erkennen. Unter Windows wird dies sofort erkannt, unter Unix wird dies innerhalb von max. 60s erkannt. Das Kommando ist in der HTML-Oberfläche des Job Schedulers verfügbar.

 

 

JS-149: Neues Attribut <job_chain_node on_error="setback|suspend"

 

 

2.0.189.5354  2007-10-22

JS-147: Umgebungsvariablen für Tasks einstellbar

 

 

 

JS-148: Task- und Auftrags-Parameter für Nicht-API-Jobs

 

Nicht-API-Jobs erhalten die Task- und Auftrags-Parameter als Umgebungsvariablen. Die Namen sind großgeschrieben. "SCHEDULER_PARAM_" ist den Namen vorangestellt. Auftragsparameter überschreiben gleichnamige Task-Parameter.

 

2.0.187.5325  2007-10-10

JS-134: Mehrere Job Scheduler Skripte

 

Mit dem neuen XML-Element <scheduler_script> lassen sich mehrere Job Scheduler Skripte angegeben.

 

 

JS-68: Mehrere Job-Monitor <monitor>

 

 

 

JS-121: Monate in <run_time>

 

 

 

JS-123: absolute_repeat= in <run_time>

 

 

 

JS-124: Mehrfache angaben in day=, monthday= usw.

 

 

 

Neue Voreinstellung <add_order replace='yes'>

 

 

 

JS-155: Dynamische Konfiguration

 

 

 

JS-126: HTTP-Authentifizierung wird auch für Web-Services verlangt

 

Die Authentifizierung <http.authentication> gilt auch für die über HTTP angesprochenen <web_service>.

 

 

JS-129: Datenbankspalte EXIT_CODE wird nachträglich angelegt

 

 

JS-116: <run_time> für Aufträge in verschachtelter Job-Kette

 

<run_time> wiederholt jetzt einen Auftrag korrekt, auch wenn er in einer verschachtelten Job-Kette (<job_chain_node.job_chain>) ist.

 

2.0.186.5189  2007-08-30

JS-110: Korrektur "bad allocation"

 

2.0.186.5179  2007-08-27

JS-103: HTTP-Authentifizierung eingeführt

 

Neues XML-Element <http.authentication> eingeführt. (Dank für den Algorithmus an Michael Collard, iinet.net.au).

 

 

Meldung für verspäteten Herzschlag wird als Warnung ausgegeben

 

  • [warn] SCHEDULER-827 Own heart beat is late: next_heart_beat has been announced for (1) (this is (2) seconds late)
  • [ERROR] SCHEDULER-386 Last heart beat was time(1) , (2) seconds ago. Something is delaying Scheduler execution, the Scheduler is aborted immediately
  • [ERROR] SCHEDULER-377 After own late heart beat, Scheduler member '(1) ' has taken exclusiveness

 

2.0.185.5170  2007-08-24

Änderungen an der Datenbank

 

  • Mit der Tabelle SCHEDULER_ORDER_HISTORY wird der neue Index SCHEDULER_O_HISTORY_JOB_CHAIN auf die Spalte JOB_CHAIN angelegt.
  • Der bisherige Index SCHEDULER_HISTORY_CLUSTMEMBER wird jetzt als SCHEDULER_H_CLUSTER_MEMBER angelegt.
  • Die Datenbankspalte SCHEDULER_ORDERS.SPOOLER_ID wird jetzt mit not null angelegt.
  • Für MySQL werden die Primärschlüsselfelder von SCHEDULER_ORDERS mit dem Zeichensatz Latin1 angelegt.

 

2.0.184.5167  2007-08-23

JS-92: idle_time="5" ist jetzt voreingestellt

 

 

 

JS-88: Neues Attribut max_order_history

 

 

 

JS-97: Meldungen wegen später gelöschter Dateien jetzt als debug3

 

Zwei Meldung werden mit debug3 statt bisher info ausgegeben:

  • [debug3] SCHEDULER-876 Temporary files cannot be deleted. Still trying ..., paths(1)
  • [debug3] SCHEDULER-877 Temporary files have been deleted now

 

 

JS-96: HTML-codierte Protokolle über HTTP enthalten wieder die Zeichen <, > und &

 

 

JS-93: Meldung SCHEDULER-846 korrigiert

 

  • SCHEDULER-846 After task exception and due to stop_on_error='no', the order has been moved to error_state='(1) '

 

2.0.183.5153  2007-08-10

JS-48: Nicht-API-Jobs versetzen im Fehlerfall Auftrag in den Fehlerzustand

 

Im Fehlerfall eines auftragsgesteuerten Nicht-API-Jobs (<process> oder <script language="shell">) wird der ausgeführte Auftrag in den Fehlerzustand (<job_chain_node error_state="…">) versetzt. Davon unberührt stoppt der Job (außer bei <job stop_on_error="no"> oder <delay_after_error>).

 

 

JS-82: Unix: Viele <start_when_directory_changed> blockieren nicht mehr den Scheduler

 

Unter Unix konnten viele Verzeichnisüberwachungen mit <start_when_directory_changed> den Scheduler so beschäftigen, dass die Tasks nicht mehr fortgesetzt wurden. Das ist behoben.

 

 

JS-81: Date-Header fehlte beim Erzeugen der eMail mit JavaMail ohne Versand

 

EMails, die der Scheduler mit JavaMail erzeugt und im Mail-Verzeichnis abgelegt, also nicht versendet hat, haben jetzt auch einen Date-Header.

 

2.0.182.5146  2007-07-27

JS-78: Scheduler-Skript wird vor <commands> ausgeführt

 

Erst wird das Scheduler-Skript <config><script> ausgeführt, dann <config><commands>. Damit kann <run_time start_time_function="…"> berechnet werden, bevor die Aufträge in der Datenbank abgelegt werden.

 

 

JS-78: Verteilte Aufträge mit <run_time> möglich

 

Verteilte Aufträge können <run_time> nutzen.

 

2.0.181.5143  2007-07-24

JS-49: Für die Datenbank DB2 wird der Datentyp numeric(1) statt bisher boolean verwendet

 

 

JS-55: <job tasks='0'> startet keine Task mehr

 

Auch im Zustand pending prüft der Scheduler das Attribut <job tasks="…"> Bei tasks="0" startet er keine Task.

 

2.0.180.5139  2007-07-23

JS-39: scheduler.log.gz wird nicht mehr erzeugt

 

Solange nicht implementiert ist, dass der Scheduler die scheduler.log.gz im Hintergrund erzeugt, erzeugt er sie erstmal gar nicht, weil das den Start zu lange verzögern kann.

 

 

JS-41: Urls im HTML-Protokollfenster sind klickbar

 

Urls in einem über HTTP in HTML gelieferten Protokoll sind klickbar. Der Scheduler erkennt das Kennzeichen http:// und setzt den Url in ein <a href="…" target="_blank">...</a>

 

2.0.179.5136  2007-07-23

JS-52: Nicht für XML zugelassene Zeichen werden durch ¿ ersetzt

 

Die Zeichen U-0 bis U-1F (außer U-9, U-A, U-D) und U-80 bis U-9F ersetzt der Scheduler beim Erzeugen eines XML-Dokuments durch ¿, damit es nicht ungültig wird. Alle anderen Zeichen des Zeichenvorrats Latin1 (ISO-8859-1) werden weiter unterstützt.

 

2.0.178.5132  2007-07-17

JS-42: Prozess-Jobs setzen Job.state_text und Order.state_text

 

Der Scheduler füllt nach Beendigung eines Prozess-Jobs (<process> und <script language="shell">, also nicht API-Jobs) Job.state_text und Order.state_text mit der ersten Zeile von stdout, max. 100 Zeichen.

 

 

Datenbank-Indices werden automatisch angelegt

 

Der Scheduler legt jetzt zusammen mit den Datenbanktabellen auch die Indices an.

 

 

Create-tables in die Dokumentation aufgenommen

 

 

 

Umgang mit Backslash in MySQL

 

Beim Betrieb mit einer MySQL-Datenbank berücksichtigt der Scheduler die Besonderheit der Backslashs in MySQL-Strings.

 

2.0.177.5128  2007-07-13

JS-23: Tasks warten auf gesperrte temporäre Dateien für stdout und stderr

 

Nur Windows: Der Scheduler verzögert das Ende einer Task eine halbe Sekunde, bis die für stdin, stdout und stderr angelegten temporären Dateien löschbar sind. Die Dateien können von Enkelprozessen blockiert sein, die der Task-Prozess gestartet hat und die nach Task-Ende noch weiterlaufen. Oder ein Virenscanner hält die Dateien noch einen kurzen Moment fest.

[debug3] SCHEDULER-876 Temporary files cannot be deleted. Still trying ..., paths(1)

[debug3] SCHEDULER-877 Temporary files have been deleted now

[info] SCHEDULER-878 Temporary files cannot be deleted: paths(1)

 

 

JS-47: <security> in <base> nutzbar

 

<security> in oberer Konfiguration ersetzt nicht mehr die Einstellung aus der <base>-Konfiguration sondern wird mit dieser vermengt.

 

 

abort_immediately_and_restart zögert 2 Sekunden

 

<modify_spooler cmd="abort_immediately_and_restart"> schließt wie bisher die TCP-Verbindungen und wartet dann 2 Sekunden, um dem Internet Explorer die Gelegenheit zu geben, seinerseits die TCP-Verbindung zu schließen, um nicht zu blockieren.

 

 

distributed='no', Cluster-Member-ID ist nur noch für Rechnername und Port eindeutig

 

Ein Verteilter Scheduler (-distributed-orders) führt Jobs lokal im einzelnen Scheduler aus.

Für eine Job-Kette kann mit <job_chain distributed="…"> eingestellt werden, ob sie lokal im einzelnen Scheduler oder verteilt im ganzen Cluster gilt. Lokale Job-Ketten müssen im Cluster einen eindeutigen Namen haben (das wird nicht geprüft).

Bisher war die Cluster-Member-ID für jeden Lauf eines Schedulers (eines Cluster-Mitglieds) eindeutig. Jetzt wird die ID aus Scheduler-ID, Rechnernamen und TCP-Portnummer gebildet. Zwei Rechner im selben Cluster dürfen nicht denselben Rechnernamen haben.

 

2.0.176.5116  2007-07-01

Linux-Scheduler wird unter Suse 9.1 kompiliert

 

Die ausgelieferten Binär-Dateien laufen jetzt unter Suse ab Version 9.1 (bisher 8.0). Bisher ist die Linux-Software unter Suse 8.0 kompiliert worden.

 

 

orders_recoverable='no' unterdrückt nicht mehr Auftragshistorie

 

<job_chain orders_recoverable="no">.

 

2.0.176.5105  2007-06-21

Zur Laufzeit hinzugefügtes <file_order_source> wirkt

 

Eine zur Laufzeit hinzugefügte <job_chain> mit <file_order_source> hat nicht automatisch gestartet. Das ist behoben.

 

 

need_db=no nicht länger im Cluster-Betrieb erlaubt

 

 

2.0.176.5101  2007-06-18

-distributed-orders und Order.setback()

 

Ein verteilter Auftrag mit Startzeit (z.B. durch Order.setback()) konnte nach Neustart den Scheduler in eine Schleife bringen. Das ist behoben.

 

2.0.176.5087  2007-06-06

Aufträgskennungen werden in allen verschachtelten Job-Ketten auf Eindeutigkeit geprüft

 

Miteinander durch Verschachtelung verbundene Job-Ketten bilden einen gemeinsamen Order_id_space, um beim Einfügen eines Auftrags die Eindeutigkeit der Auftragskennung sicherstellen zu können.

Der Scheduler lehnt das Einfügen eines Auftrags in eine Job-Kette ab, wenn die Auftragskennung im Order_id_space bereits vergeben ist.

Beim Ersetzen eines Auftrags wird auch ein Auftrag in einer anderen Job-Kette, die demselben Order_id_space angehört, ersetzt.

[ERROR] SCHEDULER-426 'job_chain(2) ' and 'job_chain(3) ' cannot be combined, because of duplicate order id '(1) '

[info] SCHEDULER-872 New 'Job_chain(1) ' shares order IDs with job_chains(2)

[info] SCHEDULER-873 Job_chains job_chains(2) share order IDs because 'Job_chain(1) ' has been removed

[info] SCHEDULER-874 Order_id_space has been closed

[info] SCHEDULER-875 Order_id_space has been closed because 'job_chain(1) ' has been removed

 

 

-send-cmd= berücksichtigt -ip-address=

 

-send-cmd berücksichtigt <config ip_address="…">.

 

2.0.175.5045  2007-05-09

MySQL-Tabellen werden für InnoDB angelegt

 

Wenn der Scheduler eine SQL-Tabelle in einer MySQL-Datenbank automatisch anlegt, verwendet er jetzt den transaktions-sicheren Typ InnoDB.

Der Scheduler läuft nur korrekt mit transaktions-gesicherten Datenbanken.

 

 

<add_order at='...'>

 

Die mit dem Auftrag übergebene Startzeit <add_order at="…"> wird nicht mehr durch <add_order><run_time> überschrieben.

 

 

Neue Eigenschaft Order.log

 

 

 

Neue Klasse Supervisor_client

 

 

 

XML-Kommandos und API für Prozessklassen

 

 

2.0.174.5001  2007-04-27

API für Sperren

 

 

2.0.172.4983  2007-04-16

Verschachtelte Job-Ketten

 

Ein Auftrag kann nacheinander durch mehrere Job-Ketten geschleust werden. Diese Job-Ketten werden in einer eigenen, übergeordneten Job-Kette aufgeführt.

 

2.0.171.4981  2007-04-16

Mehrere Sperren und <lock.remove>

 

Ein Job kann mehrere Sperren setzen und Sperren können gelöscht werden.

 

2.0.171.4961  2007-04-09

Job-Kette und Job-Kettenknoten stoppen

 

Eine Job-Kette kann gestoppt werden, so dass keine Aufträge mehr ausgeführt werden.

Ein Job-Kettenknoten kann gestoppt werden, so dass Aufträge nicht mehr ausgeführt werden. Oder die Aufträge überspringen den Job-Kettenknoten.

 

2.0.170.4951  2007-04-03

<show_calendar>

 

Ein neues Kommando liefert die Startzeiten der Jobs und Aufträge.

 

2.0.169.4940  2007-04-01

Sperren

 

Mit Sperren kann der Ablauf von Tasks serialisiert werden, siehe Kapitel »Sperren«.

 

2.0.168.4912  2007-03-19

Ausführung von Tasks auf entferntem Scheduler

 

 

2.0.167.4877  2007-03-08

Auftragsprokolle wurden nicht immer in die Historie aufgenommen

 

Ein Fehler seit 15. Februar, ist behoben.

 

2.0.167.4861  2007-02-22

XML-Kommando <modify_order> erweitert

 

 

2.0.166.4860  2007-02-19

XML-Element <web_services> heißt jetzt <http_server>

 

 

 

mail_on_delay_after_error wirkt nur noch mit <delay_after_error>

 

factory.ini (Abschnitt [job], Eintrag mail_on_delay_after_error=…) wirkt nur, wenn für den Job auch ein <delay_after_error> gesetzt ist.

 

 

Meldung SCHEDULER-949

 

  • [info] SCHEDULER-949 Job will be executed when a process of process class '(1) ' becomes available

Die Meldung erscheint jetzt im Jobprotokoll und, wenn eine Task gestartet werden soll, mit der Task-Id.

 

 

<script> und <base>

 

Das Element <script>, in einer <base>-Konfiguration definiert, wird jetzt von der übergeordneten Konfiguration nicht mehr ersetzt, sondern erweitert. (Das funktioniert nicht mit Java wegen dessen Syntax.) Damit können in der <base>-Konfiguration Funktionen definiert werden, die in einer übergeordneten Konfiguration nutzbar sind.

 

 

Auftragsprokolle bei Scheduler-Neustart

 

l Die Protokolle nicht abgeschlossener Aufträge bleiben jetzt bei Scheuler-Neustart erhalten und werden fortgeschrieben. Dazu werden sie in der Datenbank gespeichert.

 

2.0.165.4846  2007-02-12

Order.state

 

Wenn Order.state der bisherige Wert zugewiesen wird, der Zustand also nicht verändet wird, verhindert das wie jeder andere Wert die automatische Weiterschaltung in den Folgezustand nach spooler_process(). Stattdessen durchläuft der Auftrag denselben Job noch einmal.

 

 

HTTP-Server mit Alias-Verzeichnissen

 

 

 

Verzögernde Job-Kettenknoten

 

 

 

<show_order> kann Historien-Einträge zum selben Auftrag unterscheiden

 

Damit kann die HTML-Oberfläche das richtige Protokoll zeigen, wenn ein Auftrag mehreren Historieneinträge hat.

Das Kommando liefert jetzt auch die neuen Attribute start_time= (erste Ausführung) und end_time= (Abschluss des Auftrags). Die integrierte HTML-Oberfläche (http://host:4444/z) zeigt den Zeitpunkt der Abschlusses.

 

 

HTML-Oberfläche zeigt Zeiten genauer

 

Die integrierte HTML-Oberfläche (http://host:4444/z) zeigt Sekundenzeiten bis 99s und darüber hinaus Viertelbruchteile.

 

 

<job stop_on_error='no'> versetzt nach Exception Auftrag in Fehlerzustand

 

<job stop_on_error="no"> versetzt nach einem Abbruch der Task mit Exception den Auftrag in den Fehlerzustand (<job_chain_node error_state="…">).

Dokumentation geändert: stop_on_error="no" gilt auch für Task-Abbruch mit Exception.

[warn] SCHEDULER-845 Task ended without processing the order. The order remains in job's order queue in the same state

[warn] SCHEDULER-846 After task exception and due to stop_on_error='no', the order has been moved to error_state='(1) '

 

2.0.163.4829  2007-02-01

Address-in-use-Problem unter Windows gelöst

 

Enkel-Prozesse, die der Scheduler nicht kennt und also nicht abbrechen kann, blockierten bislang die Scheduler-Ports. Jetzt sind diese nicht mehr vererbbar und können von den Enkeln auch nicht mehr blockiert werden.

Die temporären Dateien für stdout und stderr bleiben dagegen unter Windows in einem solchen Fall stehen.

 

 

Temporäre Dateien bleiben stehen, wenn Enkel-Prozesse noch laufen

 

Windows: Enkel-Prozesse, die der Scheduler nicht kennt und also nicht abbrechen kann, blockieren die temporären Dateien für stdout und stderr und können deshalb vom Scheduler nicht gelöscht werden.

 

2.0.163.4810  2007-01-30

<file_order_sink move_to="" akzeptiert Umgebungsvariablen

 

 

2.0.163.4793  2007-01-27

Skript-Funktion für nächste Startzeit

 

Mit <run_time start_time_function="…"> kann eine Funktion aus dem Scheduler-Skript angegeben werden, die die nächste Startzeit liefert.

 

2.0.163.4792  2007-01-25

Wochentag im Monat: <monthdays><weekday>

 

<run_time> ist erweitert: Mit <weekday day="…"> können bestimmte Wochentage im Monat ausgewählt werden.

Mit <run_time start_time_function="…"> kann eine Funktion aus dem Scheduler-Skript angegeben werden, die die nächste Startzeit liefert.

 

 

Solaris: Neue Module libstdc++.so.6.0.8 und libgcc_s.so.1

 

Weil der Scheduler für Solaris jetzt mit gcc 4.1.1 übersetzt wird, werden die neuen Module libstdc++.so.6.0.8 und libgcc_s.so.1 benötigt. Ein symbolischer Link muss eingerichtet werden:

ln -s libstdc++.so.6.0.8 libstd++.so.6

 

2.0.163.4781  2007-01-22

Order.params initialisiert sich automatisch

 

Order.params initialisiert sich beim ersten Zugriff automatisch mit einer Variable_set.

 

 

Spooler.terminate() mit Parametern für Cluster-Betrieb

 

 

 

Jobs ohne <run_time> berücksichtigen jetzt die <holidays>

 

 

 

Verwaltung der Feiertage in externer Datei: <holidays> mit <include>

 

 

2.0.163.4758  2007-01-19

Cluster: Fristen zur Überwachung des Herzschlags sind einstellbar

 

 

 

<file_order_source> lässt Umgebungsvariablen zu

 

 

 

Neue Einstellung mail_on_delay_after_error

 

 

 

Optionen -?, -h und -V

 

  • -? zeigt die möglichen Optionen
  • -h zeigt ebenfalls möglichen Optionen
  • -V zeigt die Versionsnummer.

Wenn keine anderen Optionen angegeben sind, beendet sich der Scheduler sofort.

 

 

Speicherleck in Java geschlossen

 

Ein winziges, aber stetiges Speicherleck ist abgedichtet. Insbesondere bei jeder Datenbankoperation (über JDBC) blieben einige Bytes übrig.

 

 

Speicherleck bei stdout/stderr-Dateien geschlossen

 

Unter Unix wurden temporäre Dateien nicht korrekt geschlossen, wenn eine Task etwas nach stdout oder stderr geschrieben hat. Das ist behoben.

 

2.0.162.4730  2007-01-12

Cluster: Backup-Scheduler und verteilte Aufträge (noch nicht für Produktion)

 

 

 

debug9 protokolliert SQL-Kommandos

 

Bei -log-level=debug9 schreibt der Scheduler seine SQL-Kommandos ins Hauptprotokoll.

 

 

Order.xml_payload akzeptiert ISO-8859-1

 

Order.xml_payload akzeptiert jetzt den Zeichensatz ISO-8859-1 auch im Datenbankbetrieb.

 

 

setback() funktioniert korrekt

 

Korrektur der fehlerhaften Version 2.0.160.4598 2006-11-22.

 

2.0.161.4619  2006-12-04

<config ip_address="...">

 

Die IP-Adresse für TCP und UDP kann angegeben werden.

 

 

Wartende Aufträge fortsetzen>

 

<modify_order at="now"> setzt einen wegen Order.run_time oder Order.setback() wartenden Auftrag fort.

 

 

Order.suspend()

 

Aufträge können angehalten werden.

 

 

<copy_params from="order">

 

<copy_params from="order"> akzeptiert jetzt auch Aufträge ohne Parameter.

 

2.0.160.4598  2006-11-22

Order.setback()

 

Order.setback() bricht in dieser Version den Scheduler ab (korrigiert in 2.0.162.4705 von 2007-01-05).

 

 

<show_order what="log">

 

Das Kommando liefert jetzt auch das Protokoll ausgeführten Auftrags aus der Auftragshistorie.

 

 

Order.state und Order.run_time

 

Eine Änderung des Zustands eines Auftrags (Order.state) führt nicht mehr zur sofortigen Ausführung desselben, wenn seine Order.run_time eine spätere Startzeit vorschreibt.

 

2.0.160.4592  2006-10-06

<show_state what="job_params">

 

Die XML-Kommandos können jetzt die <params> eines <job> liefern.

 

2.0.160.4591  2006-10-03

Auftrag ohne Parameter in der Datenbank ließ Scheduler abbrechen

 

Der Fehler ist mit den Dateiaufträgen (Version 2.0.158.4484 2006-09-13) in den Scheduler gelangt und jetzt behoben.

 

 

Scheduler braucht seit 26. September 2006 eine aktuelle sos.mail.jar

 

Die Datei sos.mail.jar sollte nicht älter als Version 1.6.131.4555 (Dateidatum 2006-09-25 09:00) sein.

 

2.0.160.4586  2006-10-30

<modify_order><run_time>

 

Die <run_time> eines Auftrags kann für den nächsten Durchlauf neu gesetzt werden.

 

 

<job replace="yes">

 

Ein Job kann ersetzt werden.

 

2.0.159.4578  2006-10-16

Variablenersetzung verfeinert

 

Alleinstehende $ bleiben stehen. Das Zeichen wird nur dann ersetzt, wenn ein Buchstabe oder ein Unterstrich folgt. Damit kann ein Dollarzeichen in Windows-Freigaben ("\\HOST\C$") und vielen Regulären Ausdrücken (".txt$", "[a-z$]", aber nicht "[$a-z]") verwendet werden.

 

 

<modify_order setback="no" state="…">

 

 

2.0.158.4569  2006-10-11

<show_order what='payload'/>

 

<show_order what="payload"> liefert die Parameter des Auftrags.

 

 

Protokolldateien werden früher gelöscht

 

Der neue Scheduler entfernt die Protokolldateien früher, auch wenn das entsprechende Objekt (in der Regel ein Order) noch gehalten wird.

Mit einem Javascript-Job konnte folgendes passieren: Wenn dieselbe Task nacheinander zwei Aufträge mit derselben Id bekam, hielt sie wegen des noch nicht angelaufenen Garbage Collectors die zwei Aufträge offen. Erst beim Beenden der Task wurden die zwei Auftragsobjekte geschlossen, also die Destruktoren gerufen, die die Protokolldateien löschten. Das führte zu einem Fehler, weil beide Protokolldateien wegen derselben Auftragskennung dieselben Dateinamen haben.

 

2.0.158.4559  2006-10-04

Änderungen in den Dokumentationsdateien

 

  • Die Datei ersetzung_von_umgebungsvariablen.xml ist ersetzt worden durch variable_substitution.xml. Die Seite enthält ein Verzeichnis aller Attribute und .ini-Einstellungen, in denen Umgebungsvariablen verwendet werden können.
  • Das generierte Register steht jetzt in register_data.xml. Die Datei register.xml enthält jetzt einen Text.

 

 

Beim Beenden des Schedulers werden <process>-Prozesse abgewartet

 

Bei <terminate> wartete der Scheduler das Ende von <process>-Tasks nicht ab. Jetzt tut er das.

 

 

Variable_set.substitute

 

Neue Methode zum Ersetzen von $-Variablen in einem String.

 

 

Subprocess.env

 

Die Umgebungsvariablen des zu startenden Subprozesses werden in einem Variable_set gehalten. Damit kann die neue Methode Variable_set.substitute() genutzt werden.

Der Subprozess erbt die Umgebungsvariablen vom laufenden Prozess zum Zeitpunkt des Aufrufs von spooler_task.create_subprocess().

 

2.0.158.4555  2006-09-26

Umgebungsvariablen in <add_order><params> und <start_job><params>

 

Innerhalb von <add_order> und <start_job> können in in <param value="…"> Umgebungsvariablen abgerufen werden.

 

2.0.158.4551  2006-09-24

add_pid() für Prozessgruppe

 

spooler_task.add_pid() akzeptiert die Pid auch negativ, um eine Prozessgruppe zu bezeichnen. Unter Unix wird dann bei einem kill die Prozessgruppe abgebrochen. Unter Windows hat eine negative Pid zurzeit keine besondere Wirkung.

 

 

Mehrere <commands> aus Basiskonfigurationen werden zusammengefügt

 

Alle <commands> aus der Konfiguration mit den <base>-Konfigurationen werden ausgeführt, <base> zuerst.

 

2.0.158.4533  2006-09-20

Tabellenspalten werden verbreitert

 

Der Scheduler prüft beim Start die Spaltenbreiten von scheduler_orders.id und scheduler_order_history.order_id und erweitert sie ggfs. auf 255 Zeichen, damit die Auftragskennungen der Dateiaufträge Platz finden. Ein Fehler dabei wird ignoriert.

 

 

Dateiaufträge mit zu langen Pfaden

 

Mit den neuen Datenbankspaltenbreiten verarbeitet der Scheduler Pfade bis 255 Zeichen Länge. Längere Pfade werden mit Warnung ignoriert. Der Scheduler merkt sie sich, um die Fehlermeldung nicht zu wiederholen.

 

 

Mail-Versand nur in Dateiverzeichnis

 

Die neue Einstellung verhindert den Versand und stellt die Nachricht in das mit sos.ini (Abschnitt [mail], Eintrag queue_dir=…) eingestellte Verzeichnis.

Ebenso queue_only in der Datei sos.ini.

 

 

start_when_directory_changed robuster gemacht

 

Die Windows-Verzeichnisüberwachung wird bei jedem Aufruf (bei <start_when_directory_changed> am Ende der Task) erneuert, ohne das ein Signal verloren geht.

Wenn unter Unix ein Regulärer Ausdruck angegeben ist, startet start_when_directory_changed den Job nur noch, wenn eine Datei hinzugefügt, aber nicht, wenn eine Datei entfernt worden ist.

 

2.0.158.4505  2006-09-14

Subprocess.own_process_group

 

Unter Unix wird der kill() auf Prozesse jetzt zusätzlich mit negativer Pid ausgeführt, um die ganze Prozessgruppe zu beenden.

 

2.0.158.4484  2006-09-13

Doppelte Einträge in spooler_task.changed_directories

 

Task konnte mehrfache Einträge enthalten, wenn der Scheduler mehrfache Änderungen desselben Verzeichnisses bemerkte, bevor die Task gestartet werden konnte. Jetzt wird jedes Verzeichnis nur einmal eingetragen.

 

 

<process> gibt bei Prozessstart Kommandozeile aus

 

 

 

spooler_log.mail.to etc. liefern Default-Werte

 

Folgende Aufruf liefern die Default-Werte aus den .ini-Dateien:

 

 

Web_service_operation.peer_ip und .peer_hostname

 

Zwei neue Aufrufe:

 

 

Dateiaufträge

 

In <job_chain> können zwei neue XML-Elemente angegeben werden, und ein Kommando liefert die Schwarze Liste:

 

2.0.157.4442  2006-08-30

<show_state what="job_commands" liefert alle <commands>

 

Bisher lieferte der Scheduler nur das erste <commands> eines Jobs.

 

2.0.157.4439  2006-08-25

-send-cmd=... liefert Ausgabe ohne Null-Byte

 

  • -send-cmd gibt die Antwort des Schedulers ohne das über TCP übertragene Nullbyte aus. Damit wird nach stdout ein wohlgeformtes XML-Dokument geschrieben.

 

2.0.157.4436  2006-08-25

Subprocess.start( String[] ) für Java funktioniert

 

 

2.0.157.4424  2006-08-18

<job stop_on_error="no">

 

 

 

spooler_task.trigger_files

 

 

 

<environment>: Originalgroßschreibung der Umgebungsvariablennamen

 

Der Scheduler setzte die Umgebungsvariablennamen in Kleinschreibung. Jetzt verwendet er die Schreibung wie in <environment> angegeben. Unter Windows hat das keine Auswirkung, weil die Schreibung keine Rolle spielt.

 

 

Aufträge mit <period repeat="...">: jeder zweite Tag wurde ausgelassen

 

Wenn der Scheduler als nächsten Startzeit mit repeat= eine Startzeit errechnete, die außerhalb der Periode lag (immer nach Mitternacht), dann nahm er die auf die errechnete Startzeit folgende Periode, die aber nicht die nächste, sondern die übernächste ist.

Bei einem einfachen <run_time period="300"> führte das um Mitternacht zum Überspringen des folgenden Tags. Das ist korrigiert. Der Scheduler ermittelt die folgende Periode aus der Endzeit der aktuellen Periode.

 

2.0.156.4406  2006-08-09

Signal einer abgebrochenen Task wird auch bei nicht <process>-Jobs zum negativen Exit code

 

Nur Unix: Bisher ist das Signal einer abgebrochenen Task nur bei <process>-Jobs als negativer Exit-Code übernommen worden. Jetzt gilt das für alle Jobs.

 

 

<job ignore_signals="...">

 

Eine Task, die mit Signal endet (durch kill oder Absturz), muss nicht mehr zum Stopp des Jobs führen.

 

 

<commands on_exit_code="SIGTERM">

 

Nur Unix: Die Signalnamen können aufgeführt werden.

 

2.0.155.4396  2006-07-27

<show_job what="job_commands">

 

Mit dem Attribut what="job_commands" liefern die Kommandos, die das Element <job> zeigen, auch das Element <commands> der Job-Konfiguration.

 

2.0.154.4393  2006-07-27

Datenbankzugriffe auf die Tabelle scheduler_orders

 

Der Primärschlüssel der Tabelle SCHEDULER_ORDERS ist um SPOOLER_ID erweitert. Alle Where-Klauseln auf diese Tabelle sind um SPOOLER_ID und JOB_CHAIN ergänzt worden.

Clob RUN_TIME wird nur noch bei gefüllter run_time gesetzt.

 

2.0.154.4390  2006-06-30

Java-Job ohne Konstruktor

 

Ein Java-Job ohne parameterlosen Konstruktor führte zum Abbruch des Prozesses statt zur Exception java.lang.NoSuchMethodError.

 

 

<config java_class_path="">

 

Das Attribut java_class_path wurde im Betrieb mit Prozessklassen nicht ausgewertet.

 

2.0.154.4379  2006-06-20

history_on_process verhält sich jetzt wie dokumentiert

 

Eine falsche Angabe wird nicht mehr ignoriert, sondern führt zum Fehler.

 

2.0.154.4366  2006-06-19

Ein paar Verbesserungen in der internen Ereignisverarbeitung

 

Neues Attribut wait_until liefert den Zeitpunkt der nächsten geplanten Aktion. Nach etwa 20 Minuten Nichtstun gibt der Scheduler eine Meldung aus, bis wann und worauf er wartet.

 

 

<show_state> lieferte Fehler bei beendeten Subprozess, deshalb evt. keine eMail

 

<show_state> und andere Kommandos, die den Task-Zustand zeigen, lieferte einen Fehler, wenn ein Subprozess oder der Task-Prozess selbst beendet war und der Scheduler dies noch nicht zur Kenntnis genommmen hatte. Grund: Der Systemaufruf zum Lesen der Priorität liefert einen Fehler.

Das konnte insbesondere bei <kill_task> mit Subprozess dazu führen, dass die eMail am Ende der Task nicht versendet und statt dessen der Fehler SCHEDULER-302 ausgegeben wird.

 

2.0.154.4352  2006-06-16

<process param="">: Task-Parameter werden ersetzt

 

Im Attribut param= ersetzt der Scheduler jetzt auch Task-Parameter. Die haben Vorrang vor den Umgebungsvariablen. Damit kann für jede Task eine andere Parameterzeile übergeben werden.

 

 

Neue Eigenschaft Order.at

 

 

 

Strg-C bricht nicht mehr die Prozesse ab

 

Strg-C wirkt nur noch auf den Scheduler-Prozess, aber nicht mehr auf die Task-Prozesse (außer unter Windows <process> und <script>). Damit kann der Scheduler nach Strg-C die Tasks ordentlich beenden. Ein zweites Strg-C führt nach wie vor zum sofortigen Ende aller Tasks und des Schedulers.

 

2.0.154.4339  2006-06-06

-env= korrigiert (Windows)

 

-env= hat die Variablen für Kindprozesse gesetzt, aber nicht für den eigenen. (Das wird nämlich von Microsofts C unterschieden.)

 

 

<add_order replace="yes">

 

Das XML-Schema erlaubt jetzt replace="yes".

 

 

Neue Option -expand-classpath=

 

Expandiert den als Parameter angegebenen Java-Classpath, d.h. die Joker werden verarbeitet wie in sos.ini (Abschnitt [java], Eintrag class_path=…).

 

 

<commands on_exit_code="0">

 

  • Neue Eigenschaft Task.exit_code (int), anfänglich 0. spooler_log.error(), spooler_task.error() oder eine Exception der Task setzen spooler_task.exit_code=1. exit_code kann auch vom Job selbst gesetzt werden, wird aber unter den oben aufgeführten Bedingungen vom Scheduler überschrieben. Damit liefert jede im Scheduler mögliche Task am Ende einen exit_code.
  • Der exit_code wird in die Datenbanktabelle scheduler_history in die neue Spalte exit_code geschrieben, die der Scheduler automatisch anlegt.
  • Unter Unix liefert ein abgebrochener Prozess die Nummer des Signals negativ als Exit-Code.
  • <job> wird um <commands on_exit_code="…"> erweitert. Für das Attribut on_exit_code kann eine Folge von Exit-Codes, "success" (dasselbe wie 0) oder "error" angegeben werden. Letztere Einstellung gilt für alle Exit-Codes außer 0, die nicht in anderen <commands on_exit_code="…"> aufgeführt sind. Jedem Exit-Code ist damit nicht mehr als ein <commands> zugeordnet.
  • Ein Fehler bei der Kommando-Ausführung verhindert die Ausführung der folgenden Kommandos und wird zur Task protokolliert. Der Job wird gestoppt.
  • <commands> darf leer sein.

 

 

<copy_params>

 

<params> erhält das neue Kind-Element <copy_params from="…">. Es kann nur unter <job><commands> in <start_job><params> und <add_order><params> verwendet werden und kopiert an seine Stelle die Parameter der Task oder des Auftrags.

<copy_params from="order"> ist ein Fehler, wenn es keinen Auftrag gibt.

 

 

Aufträge mit Startzeit

 

Aufträge können einen Startzeit haben, die in der Datenbank gespeichert wird und somit bei Scheduler-Neustart erhalten bleibt. Ein noch nicht ausgeführter Auftrag mit verstrichener Startzeit wird sofort gestartet (sofern die <run_time> des Jobs dies erlaubt).

Das entspricht dem Verhalten von <start_job at="…">.

 

 

Relative Zeitangabe mit now+HH:MM

 

Mögliche Angaben sind:

  • now
  • now + seconds
  • now + hh:mm
  • now + hh:mm:ss
  • yyyy-mm-dd HH:MM
  • yyyy-mm-dd HH:MM:SS

 

 

language="perl" unter Windows

 

Unter Windows übergab der Scheduler nur bei <script language="perlscript"> die folgende Anweisung:

Win32::OLE->Option( Warn => 3 );

<script language="perl"> hat jetzt dasselbe Verhalten. Damit ignoriert Perl nicht länger einen Fehler bei einem Aufruf einer Scheduler-Methode.

 

2.0.153.4313  2006-05-29

Joker im Java-Classpath

 

class_path = c:\directory\sos.*.jar;...

 

2.0.151.4305  2006-05-26

Umgebungsvariablen mit ${name}

 

Dort, wo Umgebungsvariablen mit $name aufgerufen werden können, kann jetzt auch ${name} geschrieben werden. Damit ist die Trennung zum anschließenden Text deutlicher.

 

 

In <base file=""> und <include file=""> lassen sich Umgebungsvariablen nutzen

 

 

 

Umgebungsvariablen mit ${name}

 

Dort, wo bisher Umgebungsvariablen mit $name aufgerufen werden können, kann jetzt auch ${name} geschrieben werden. Damit ist die Trennung zum anschließenden Text deutlicher.

 

 

spooler_task.params korrigiert

 

Der Aufruf konnte zum Abbruch des Schedulers führen.

 

2.0.151.4304  2006-05-26

<job min_tasks=...>

 

Der Scheduler kann dafür sorgen, dass eine minimale Anzahl Tasks läuft.

 

 

Subprocess.wait_for_termination(int) funktioniert jetzt unter Unix

 

Unter Unix wurde der Parameter für die Wartezeit ignoriert. Das ist behoben.

 

 

Perl-Schnittstelle unter Unix um Objekt- und Array-Parameter erweitert

 

Die Perl-Schnittstelle nimmt damit auch unter Unix die folgenden Aufrufe an:

Betrifft die Datei libsosperlscript.so.

 

 

Neuer Auftrag mit Startzeit weckt schlafende Task

 

Ein Auftrag mit Startzeit weckt jetzt eine schlafende Task (im Zustand running_waiting_for_order), sodass der Auftrag sofort zur Startzeit ausgeführt wird.

 

2.0.151.4254  2006-04-13

Neue Option -env=NAME=WERT

 

 

 

Verhalten bei Fehler von <start_when_directory_changed> geändert

 

Bisher wurde die Verzeichnisüberwachung beim Start jeder Task wiederholt. Bei einem Fehler in der Verzeichnisüberwachung (z.B. weil das Verzeichnis entfernt worden war) wurde der Job gestoppt, während die Task zuende laufen konnte, und keine weitere Task wurde mehr gestartet.

Jetzt stoppt der Scheduler den Job nicht mehr direkt. Die Verzeichnisüberwachung wird am Ende der Task (nach spooler_exit()) wiederholt. Ein Fehler dabei führt zum Stopp des Jobs, der aber mit <delay_after_error> abgefangen werden kann.

 

 

Web-Service-Parameter werden in XSLT-Stylesheets übernommen

 

Parameter, die Apostroph und Anführungszeichen enthalten, werden mit Warnung abgewiesen, da offenbar solche Werte libxslt nicht übergeben werden können.

 

2.0.151.4253  2006-04-12

Neue Eigenschaft Order.params

 

 

 

Web-Service-Parameter werden in XSLT-Stylesheets übernommen

 

Parameter, die Apostroph und Anführungszeichen enthalten, werden mit Warnung abgewiesen, da offenbar solche Werte libxslt nicht übergeben werden können.

 

2.0.150.4240  2006-04-06

Schema erlaubt wieder <delay_after_error delay="stop">

 

 

2.0.150.4233  2006-04-04

command_line.xml neu strukturiert

 

scheduler_client entfällt wieder. Die Optionen sind im Programm scheduler integriert. Die verschiedenen Aufrufe des Schedulers sind jetzt dokumentiert, siehe z.B. "Laufendem Scheduler einen Job übergeben".

 

2.0.150.4225  2006-03-31

scheduler.xsd auf ISO-8859-1 begrenzt

 

XML-Kommandos können nur Zeichen aus ISO-8859-1 enthalten.

 

 

Prozess-Prioritäten

 

 

2.0.149.4218  2006-03-25

scheduler_client

 

Das neue Programm scheduler_client kann dem Scheduler Jobs und Aufträge übergeben.

Start eines Jobs, dessen Skript über stdin übergeben wird:

scheduler_client -scheduler=host:port   -language=script_language   -process_class=process_class   -at="yyyy-mm-dd HH:MM"  

Übergabe eines Auftrags:

scheduler_client -scheduler=host:port   -job-chain=job_chain   -order-id=order_id   -at="yyyy-mm-dd HH:MM"   parameter=value

 

 

<job temporary="true">

 

Ein temporärer Job wird erst gelöscht, wenn die <run_time> keine Startzeit mehr vorsieht und die Task-Warteschlange leer ist.

 

 

<script language="shell">

 

Neue Skript-Sprache "shell" erlaubt es, Shell-Jobs in der XML-Konfiguration anzugeben. (Für scheduler_client)

 

 

Neue Angabe für <run_time>: <at>

 

 

2.0.148.4199  2006-03-17

Der Scheduler läuft wieder unter Windows 2000

 

Die fehlerhafte Routine SafeArrayGetVartype() in Windows 2000 wird umgegangen.

 

2.0.148.4178  2006-03-10

<web_service> mit <params>

 

Einem Web-Service lassen sich Parameter geben, die in den Jobs gelesen werden können.

 

 

Meldungen ins Englische übersetzt und mit Codes versehen

 

Die Meldungen (außer einige Debug-Meldungen) sind jetzt codiert, wie z.B. "SCHEDULER-900 Scheduler is starting ...".

 

 

Neue Eigenschaften Request|Response.content_type und .charset_name

 

 

2.0.148.4155  2006-03-05

<job_chain orders_recoverable="no">

 

 

 

<script java_class="–"> ist überschreibbar

 

 

2.0.148.4126  2006-03-01

Neuer C++-Compiler für Windows

 

Ab Revision 4126 ist alle Software für Windows mit Microsoft Visual Studio 2005 C++ übersetzt. Es sollte keine Änderung bemerkbar sein.

 

 

XML-Schema eingeführt

 

Die XML-Konfiguration und die XML-Kommandos werden gegen ein eingebautes XML-Schema geprüft. Die neue Option -show-xml-schema liefert das XML-Schema. Zum Test ist eine aktuelle Version übers Internet erreichbar: http://www.zschimmer.com/2006/scheduler.xsd.

Neue Kommandozeilen-Optionen:

 

 

Neue Eigenschaft order.xml_payload

 

Zusätzlich zur payload kann Order.xml_payload ein XML-Dokument aufnehmen.

Eine neue Eigenschaft und ein neues XML-Element:

 

 

<web_service job_chain=''>

 

Ein Web-Service kann mit einer Job-Kette implementiert werden.

Neue XML-Elemente, neue Attribute:

Neue Klassen und Methoden:

 

2.0.147.4100  2006-02-21

Dateityp jdbc löscht temporäre Dateien unter Windows

 

Beim Schreiben eines LOBs wurde die temporäre Dateien nicht gelöscht, weil FileInputStream.close() nicht gerufen wurde. Gilt nicht für Oracle. Das ist korrigiert.

 

2.0.147.4099  2006-02-20

HTTP-Server korrigiert

 

2.0.147.4091  2006-02-09

Variable_set.names

 

Variable_set.names liefert die Variablennamen, durch Semikolon getrennt.

 

2.0.146.4073  2006-02-02

factory.ini queue_dir=

 

queue_dir kann wieder in der Datei factory.ini eingestellt werden. Betrifft Scheduler ab 2.0.139.3889 (2005-09-15).

Die beste Stelle für diese Einstellung bleibt in der Datei sos.ini (Abschnitt [mail], Eintrag queue_dir=…).

 

2.0.146.4061  2006-01-30

Web-Dienste

 

Neue XML-Elemente, neue Attribute:

Neue Klassen und Methoden:

 

2.0.145.4049  2006-01-15

Job_chain.remove()

 

Neue Kommandos Job_chain.remove() und <remove_job_chain>.

 

2.0.144.4038  2005-12-15

Order.setback() und Job.set_max_order_setbacks() jetzt auch in Java verfügbar

 

Siehe Order.setback() und Job.max_order_setbacks.

 

2.0.144.4036  2005-12-08

eMail-Einstellungen aus factory.ini [job ...] werden wieder berücksichtigt

 

Wenn eine Task mit Fehler oder Warnung endet, überschreibt der Scheduler die Einstellung von log_mail_subject. Das eMail-Stylesheet kann dies ändern.

 

2.0.144.4026  2005-11-11

Auftrag mit <run_time> weckt jetzt auf Auftrag wartende Task

 

Bislang hat der Scheduler einen wegen run_time wiederholten Auftrag verschlafen, wenn bereits eine Task auf den Auftrag wartete (im Zustand running_waiting_for_order).

 

2.0.144.4015  2005-11-08

SQL-Tabellenamen ohne ""; Große order.payload möglich

 

Die SQL-Anweisungen des Schedulers verwenden die Tabellennamen großgeschrieben ohne Anführungszeichen. (Ausnahme: Zugriffe über den Dateityp sql).

Die Order.payload wird mit dem Hostware-Mechanismus als CLOB geschrieben und kann damit beliebig groß sein. Das ist gut für Variable_set.

 

 

HPUX: Hostjava ist im Scheduler eingebunden

 

Weil es ein Problem mit gcc 3.2 beim Nachladen der libhostjava.sl gibt (die statischen Variablen werden nicht initialisiert), ist Hostjava auf HP-UX fest eingebunden.

system_information() implementiert für HP-UX die Plattenplatz-Funktionen bereit.

 

 

Tabelle scheduler_variables geändert

 

Die Spalte "wert" ist jetzt ein Integer. Die neue Spalte Textwert ist ein Varchar(250) (wird vom Scheduler zurzeit nicht verwendet).

 

2.0.143.4005  2005-11-07

<security ignore_unknown_hosts="yes">

 

<security ignore_unknown_hosts="yes"> funktioniert wieder.

 

2.0.142.4003  2005-11-03

<job java_options=>

 

Siehe <job java_options="…">.

Außerdem wirkt <config java_options="…"> jetzt auch, wenn ein Job in einem eigenen Prozess läuft.

 

2.0.140.3999  2005-10-31

Job-<script> ist überschreibbar

 

Siehe <script>.

Die Attribute (language= etc.) sind nicht änderbar. Nur der Skript-Code mit <include> ist änderbar. Die nächste Task verwendet den neuen Skript-Code.

 

2.0.140.3995  2005-10-30

Monitor zur Überwachung eines Jobs

 

Siehe <monitor>.

Für Monitoren in Javascript muss die aktuelle spidermonkey.dll bzw. libspidermonkey.so eingesetzt werden.

 

 

Neues XML-Element <job_chains>

 

Siehe <job_chains>.

 

 

Neues XML-Element <start_when_directory_changed>

 

Siehe <start_when_directory_changed>.

 

 

Neues XML-Element <delay_after_error>

 

Siehe <delay_after_error>.

 

 

Neues XML-Element <delay_order_after_setback>

 

Siehe <delay_order_after_setback>.

 

2.0.140.3943  2005-09-25

Wegen <run_time> wiederholter Auftrag erzeugt eigenen Historieneintrag

 

Wenn ein Auftrag mit den Endzustand erreicht hat und dessen Order.run_time einen weiteren Termin vorsieht, dann

 

2.0.140.3939  2005-09-24

Windows: Doppeltes Ctrl-C bricht alle Prozesse ab

 

Das erste Ctrl-C beendet den Scheduler wie <modify_spooler cmd="terminate">.

Das zweite Ctrl-C führt dann zum Abbruch aller Prozesse.

Erst das dritte lässt das Betriebssystem den Scheduler abbrechen.

 

 

Terminate mit Frist

 

Der Scheduler kann jetzt mit Frist beendet werden. Wenn innerhalb der Frist die Tasks nicht enden, bricht der Scheduler die Prozesse der Tasks ab, und wartet dann längstens weitere 30s auf die Tasks, bevor er sich beendet.

Siehe <modify_spooler cmd="terminate"> und Spooler.terminate().

 

2.0.139.3925  2005-09-21

Fehlerhaftes <include> im <description> eines Jobs führt zur Warnung im Jobprotokoll

 

(Bisher gab's einen Fehler nur im Hauptprotokoll.)

Siehe <description>.

 

2.0.139.3889  2005-09-15

Neue Behandlung der Voreinstellungen für den eMail-Versand

 

2.0.138.3866  2005-09-07

spooler_log.debug1() bis spooler_log.debug9() im Scheduler-Skript werden nicht mehr unterdrückt

 

 

Datenbanktabellen werden mit varchar statt char angelegt

 

2.0.138.3851  2005-09-06

Option -pid-file wird bei Installation als Windows-Dienst übernommen

 

Siehe -pid-file

 

 

XSLT-eMail erhält <order>-Element

 

Das Element <order> wird bei einem Abbruch der Task im Element <task> geliefert.

 

2.0.137.3844  2005-08-24

-sos.ini= akzeptiert Leerzeichen im Dateinamen

 

2.0.137.3839  2005-08-21

Neue Methode Job.remove(), neues XML-Kommando <modify_job cmd="remove">

 

Siehe Job.remove() und <modify_job cmd="remove">.

 

 

<remove_order> wirkt sofort auf Datenbank

 

 

Fehler-eMails jetzt mit richtigem Nachrichtentext

 

2.0.136.3836  2005-08-12

Neue Methoden Task.stdout_path und Task.stderr_path

 

Siehe Task.stdout_path und Task.stderr_path.

 

 

<remove_order> wirkt sofort auf Datenbank

 

 

Fehler-eMails jetzt mit richtigem Nachrichtentext

 

2.0.136.3834  2005-08-12

Fehler bei SQL-Insert für neue Task führt nicht mehr zur eMail-Flut

 

2.0.134.3832  2005-08-12

Änderung der <run_time> eines Auftrags wirkt nur am Beginn der Job-Kette

 

Eine Änderung der <run_time> eines Auftrags wirkt nur, wenn er am Anfang der Job-Kette steht und noch nicht ausgeführt wird. Sonst wird die Wirkung verzögert, bis der Auftrag einen Endzustand erreicht hat.

 

2.0.135.3824  2005-08-10

Kommando <modify_order> kann <run_time> ändern

 

In <modify_order> kann jetzt <run_time> gesetzt werden.

 

 

Methode Job_chain.add_or_replace_order() neu

 

Job_chain.add_or_replace_order() wirkt wie Job_chain.add_order(), wenn die Job-Kette keinen Auftrag mit gleicher Kennung hat.

Hat die Job-Kette bereits einen Auftrag mit gleicher Kennung, dann wird dieser ersetzt. Genauer: er wird aus der Job-Kette entfernt (wie mit Order.remove_from_job_chain()), und der neue Auftrag wird hinzugefügt.

Falls der ersetzte Auftrag gerade von einer Task ausgeführt wird, dann wartet der Scheduler die Ausführung ab, bevor der neue Auftrag ausgeführt werden kann.

Der ersetzte Auftrag erscheint in der XML-Antwort als <order replaced="yes">. Dies nur innerhalb von <task>, (nicht von <order_queue>), denn der Auftrag ist nicht mehr in der Auftragswarteschlange.

Der neue, ersetzende Auftrag erscheint in der XML-Antwort als <order replacement="yes">.

Siehe auch <add_order replace="yes">.

 

 

Methode Order.remove_from_job_chain() geändert

 

(Order.remove_from_job_chain() wirkt wie <remove_order>.)

Wenn der Auftrag gerade von einer Task ausgeführt wird, liefert die Eigenschaft Order.job_chain weiterhin die Job-Kette, aus der der Auftrag gerade entfernt wird. Erst wenn die Ausführung beendet ist, liefert die Eigenschaft null (außer der Auftrag ist wieder in eine Job-Kette eingetragen worden). Damit bleibt die Eigenschaft job_chain während der Ausführung durch die Task stabil.

Der entfernte, aber noch ausgeführte Auftrag erscheint in der XML-Antwort als <order removed="yes">. Dies nur innerhalb von <task>, (nicht von <order_queue>), denn der Auftrag ist nicht mehr in der Auftragswarteschlange.

 

 

Java-Methode sos.spooler.id() liefert auch Integer als String

 

Statt einem Cast (String) wird jetzt .toString() gerufen, so dass auch eine Auftragskennung, die als Integer-Variant (o.dgl.) gespeichert ist, in Java als String geliefert wird. (Bisher gab es eine ClassCastException.)

 

 

let_run_terminate_and_restart beendet Tasks im Zustand running_waiting_for_order

 

Siehe <modify_spooler cmd="let_run_terminate_and_restart">.

 

2.0.134.3818  2005-08-04

Klasse sos.spooler.Mail unter Unix/Java funktionsfähig

 

Unter Unix in Java war die Klasse sos.spooler.Mail nicht benutzbar (Fehlercode COM-80020009  DISP_E_EXCEPTION).

 

2.0.134.3817  2005-08-03

Order <period single_start> korrigiert

 

Der nächste Single_start bei einem Auftrag mit <period> wird jetzt korrekt ausgeführt.

 

2.0.134.3814  2005-08-01

Subprocess.termination_signal

 

Subprocess.termination_signal liefert unter Unix 0 oder die Nummer des Signals, mit dem der Subprozess endete.

Unter Windows liefert die Methode 0.

 

2.0.134.3812  2005-07-30

delay_after_error erzeugt neue Task

 

Eine Task, für die nach einem Fehler Job.delay_after_error wirksam wird, fügt der Scheduler jetzt (mit neuer Kennung) erneut in die Task-Warteschlange ein. Dabei werden die Task-Parameter übernommen.

Das gilt nicht für Auftragsjobs. Für die wird wie bisher keine neue Task gestartet, denn der Start wird durch den evtl. anstehenden Auftrag angestossen.

 

 

Neues Attribut delayed_after_error_task im Antwort-XML-Element <task>

 

Siehe <task delayed_after_error_task="…">.

 

 

Neue Attribute delay_after_error= und in_period= im Antwort-XML-Element <job>

 

Siehe <job delay_after_error="…">
und <job in_period="…">.

 

2.0.133.3786  2005-07-04

XSLT-Stylesheets für eMails

 

Mail.xslt_stylesheet_path setzt das XSLT-Stylesheet für eMails.

 

 

Neue Klasse Xslt_stylesheet

 

Spooler.create_xslt_stylesheet() liefert ein Xslt_stylesheet.

 

2.0.132.3743  2005-06-25

<order_queue> liefert Attribut next_start_time

 

2.0.130.3742  2005-06-24

Fehlendes <run_time> wird wieder wie leeres <run_time/> interpretiert

 

2.0.129.3696  2005-06-08

Auftragsjob stoppt bei return false in spooler_init() oder spooler_open()

 

Ein Auftragsjob, der false in spooler_init() oder spooler_open() liefert, wird mit Fehlermeldung gestoppt.

Das Stoppen kann mit Job.delay_after_error verhindert werden.

Der Auftrag bleibt in der Auftragswarteschlange des Jobs und wird beim nächsten erfolgreichen Start des Jobs verarbeitet.

 


Software- und Organisations-Service GmbH

Zuletzt geändert von Joacim Zschimmer, 2009-06-12