Prioritätsstrategien für Klasse-A-Jobs
Die Möglichkeit, einem Job eine Priorität oder Klasse (A, B oder C) zuweisen und einen Workprozess für Klasse-A-Jobs reservieren zu können, stellt Sie vor die Wahl zwischen zwei Prioritätsstrategien für Ihre Hintergrundjobs:
Kritische Jobs (Klasse A) und zweistufige Priorität (Klasse B und C): Wenn Sie unternehmenskritische Jobs haben, deren sofortige Ausführung jederzeit gewährleistet sein muss, können Sie Klasse A als Kategorie für „kritische Jobs" einrichten. Reservieren Sie einen Workprozess für Klasse-A-Jobs und weisen Sie der Klasse A nur unternehmenskritische Jobs zu. Beispiel: Klasse B und C bieten eine sekundäre zweistufige Festlegung der Priorität. Klasse-B-Jobs erhalten vor Klasse-C-Jobs freie Workprozesse. Diese Priorität funktioniert unabhängig von kritischen Jobs der Klasse A, da Klasse-B- und Klasse-C-Jobs niemals einen Klasse-A-Job blockieren können.
Dreistufige Priorität für die Zuweisung freier Workprozesse: Sie können auch ein dreistufiges Prioritätsschema für die Zuweisung von Workprozessen verwenden. Reservieren Sie in diesem Fall keine Workprozesse für Klasse A wie in folgendem Beispiel dargestellt. Hiermit wird Klasse-A-Jobs kein offener Pfad garantiert. Die Jobs müssen u. U. warten, falls alle Workprozesse verwendet werden, selbst wenn die Workprozesse Klasse-B- oder Klasse-C-Jobs ausführen. Allerdings werden wartende Klasse-A-Jobs vor ebenfalls wartenden Klasse-B- oder Klasse-C-Jobs gestartet. Im Gegensatz zu der Strategie der „kritischen Jobs" werden keine Workprozesse für Klasse-A-Jobs freigehalten. Wenn die Klasse-A-Workload gering ist oder selten ein Engpass in der Hintergrundverarbeitung auftritt – mindestens ein Workprozess ist normalerweise frei –, bringt das Reservieren eines Workprozesses für Klasse-A-Jobs wahrscheinlich keine Vorteile. Das Reservieren führt wahrscheinlich nur dazu, dass ein Workprozess selten verwendet wird.
Beispiel 1: Ein Server wird mit drei Workprozessen für die Hintergrundverarbeitung eingerichtet. Das Feld Jobklasse A
ist auf 1 gesetzt. Damit wird immer ein Workprozess für Klasse-A-Jobs freigehalten.
Beispiel
Hintergrund-Workprozess 1: Reserviert für Klasse-A-Job
Hintergrund-Workprozess 2: Frei für beliebigen Job
Hintergrund-Workprozess 3: Frei für beliebigen Job
Wenn ein Klasse-A-Job eintrifft, läuft er in einem der drei freien Hintergrund-Workprozesse. Einer der drei Hintergrund-Workprozesse bleibt frei und ist für das Eintreffen eines weiteren Klasse-A-Jobs reserviert. Ein Workprozess bleibt für die Jobs der Klassen B und C.
Beispiel
Hintergrund-Workprozess 1: Klasse-A-Job läuft
Hintergrund-Workprozess 2: Reserviert für Klasse-A-Job
Hintergrund-Workprozess 3: Frei für beliebigen Job
Beispiel 2: Alle drei Workprozesse sind frei und vier Jobs sind startfähig: der Klasse A, ein Job der Klasse B und ein Job der Klasse C. Die zwei Jobs der Klasse A werden sofort ausgeführt. Der letzte Hintergrund-Workprozess wird für das eventuelle Eintreffen eines weiteren Klasse-A-Jobs reserviert. Die Jobs der Klassen B und C können erst starten, wenn einer der Klasse-A-Jobs beendet ist.
Beispiel
Hintergrund-Workprozess 1: Klasse-A-Job läuft
Hintergrund-Workprozess 2: Klasse-A-Job läuft
Hintergrund-Workprozess 3: Reserviert für Klasse-A-Job
Wartet auf freien Work-Prozess: Klasse-B-Job
Klasse-C-Job
Wenn einer der Klasse-A-Jobs beendet wird, kann der Klasse-B-Job starten, aber der Klasse-C-Job wartet weiterhin, da der verbleibende Workprozess für einen neuen Klasse-A-Job reserviert ist.
Beispiel
Hintergrund-Workprozess 1: Klasse-A-Job läuft
Hintergrund-Workprozess 2: Klasse-B-Job läuft
Hintergrund-Workprozess 3: Reserviert für Klasse-A-Job
Wartet auf freien Work-Prozess: Klasse-C-Job
Wenn der Klasse-B-Job beendet wird, kann der Klasse-C-Job endlich ausgeführt werden:
Beispiel
Hintergrund-Workprozess 1: Klasse-C-Job läuft
Hintergrund-Workprozess 2: Reserviert für Klasse-A-Job
Hintergrund-Workprozess 3: Frei für beliebigen Job
Wartet auf freien Work-Prozess: Keine Jobs
Beispiel: Ein Server wird mit drei Workprozessen für die Hintergrundverarbeitung eingerichtet, von denen keiner für Klasse-A-Jobs reserviert ist.
Wenn in allen drei Workprozessen Hintergrundjobs laufen und gleichzeitig aus jeder Klasse jeweils ein Job startfähig wird, kann der Klasse-A-Job nicht starten, da kein Workprozess frei ist. Sobald ein Workprozess frei wird, wird der Klasse-A-Job gestartet:
Beispiel
Hintergrund-Workprozess 1: Klasse-x-Job läuft
Hintergrund-Workprozess 2: Klasse-x-Job läuft
Hintergrund-Workprozess 3: Klasse-x-Job läuft
Wartet auf freien Work-Prozess: Klasse-A-Job
Klasse-B-Job
Klasse-C-Job
Wenn einer der Jobs beendet wird:
Beispiel
Hintergrund-Workprozess 1: Klasse-x-Job läuft
Hintergrund-Workprozess 2: Klasse-A-Job läuft
Hintergrund-Workprozess 3: Klasse-x-Job läuft
Wartet auf freien Work-Prozess: Klasse-B-Job
Klasse-C-Job
Wenn ein weiterer Klasse-A-Job startfähig wird, muss er auch warten, da alle Hintergrund-Workprozesse verwendet werden. Sobald ein Workprozess frei wird, startet der Klasse-A-Job vor den Jobs der Klassen B und C, obwohl Letztere länger gewartet haben.