Scheduler Erste Seite |
Jobs können auf einem entfernten Job Scheduler ausgeführt werden.
Entfernt ausgeführte Jobs verhalten sich gegenüber dem aufrufenden Job Scheduler so wie lokal ausgeführte Jobs. Lediglich die Rechenlast wird auf einen anderen Job Scheduler übertragen.
Das bedeutet z.B., dass alle API-Aufrufe sich auf das lokale Job Scheduler Objekt beziehen.
Die Protokollausgaben des Jobs, sowie der Endzustand und eventuelle Fehler werden an den aufrufenden Job Scheduler geleitet.
Überwiegend werden Job Scheduler mit der Ausführung von Jobs beauftragt, die auf einem anderen physikalischen Rechner installiert sind.
Beispiele für die Verwendung:
Der lokale Job Scheduler muss den entfernten Job Scheduler erreichen können. Alle Sicherheitseinstellungen in den Firewalls müssen das berücksichtigen. Für die Kommunikation in Richtung entfernter Job Scheduler muss der Port des entfernten Rechners in der Firewall freigeschaltet sein. In der entgegengesetzten Richtung verbindet sich die Task mit dem aufrufenden Job Scheduler über einen Port <5999 abwärts zählend pro laufende Task. Entsprechend der erwarteten Anzahl Tasks müssen diese Ports in der Firewall freigeschaltet sein.
Der entfernte Job Scheduler muss im Security Element den aufrufenden Job Scheduler legitimieren.
Beispiel
<security ignore_unknown_hosts="no">
<allowed_host host="123.456.89.1" level="all"/>
</security>
Die Job-Definition steht in der Konfigurationsdatei des lokalen, aufrufenden Job Scheduler.
Um einen Job auf einem anderen Job Scheduler ausführen zu lassen, sind beim lokalen, aufrufenden Job Scheduler folgende Konfigurationen nötig:
<process_class remote_scheduler=""> gesetzt sein. Dadurch werden alle Jobs, die dieser Prozessklasse zugeordnet sind, extern ausgeführt.
<process_classes>
<process_class name="remote"
max_processes="3"
remote_scheduler="remoteHost:4445"/>
</process_classes>
<job process_class="…">
Die zu einem Job gehörenden Monitor-Scripte werden ebenfalls am entfernten Job Scheduler ausgeführt. So gibt z.B. dieses Testscript den Rechnernamen des entfernten Rechners aus.
function spooler_process_before() {
spooler_log.info("host:tcp_port:" + spooler.tcp_port);
var localhost = new java.net.InetAddress.getLocalHost();
hostname = localhost.getHostName();
ip = localhost.getHostAddress();
spooler_log.info("==>" + hostname + ":::"+ ip);
return true;
}
Alle API-Aufrufe beziehen sich auf den lokalen, aufrufenden Job Scheduler. Allerdings liefern einige Methoden Werte des entfernten Job Schedulers und nicht des aufrufenden Job Schedulers zurück:
Alle Einstellungen werden beim lokalen, aufrufenden Job Scheduler gelesen.
Einige Einstellungen werden vom entfernten statt vom lokalen, aufrufenden Job Scheduler übernommen:
Protokollausgaben werden in die Dateien des lokalen, aufrufenden Job Schedulers geschrieben. Das betrifft sowohl das Auftragsprotokoll als auch das Task-Protokoll. Ausgaben nach stdout und stderr werden in die Protokolldateien des lokalen, aufrufenden Job Schedulers übernommen. Andere Protokollausgaben, die der Job Scheduler protokolliert, werden in die Protokolldatei des entfernten Job Schedulers geschrieben.
Zuletzt geändert von fs,ur, 2007-04-20 |