Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Das EOMS-Core verfügt über einen internen Zwischenpuffer für geplante [scheduled] Prozesse, den Prozess-Pool. In diesem Prozess-Pool werden einkommende Prozesse eingelagert, bevor Sie verarbeitet werden. Das EOMS-Core vergibt nur Prozesse aus dem Prozess-Pool an Worker, nicht direkt aus der Prozessdatenbank.

 


Aufbau des Prozess-Pools

...

 

Der Prozess-Pool ist ein Buffer, der dazu dient, Prozesse aus der Prozessdatenbank zwischenzuspeichernzwischen zu speichern, bevor sie an Worker vergeben werden. Einer der Vorteile dabei ist, dass Sie diesen Buffer relativ detailliert konfigurieren können. Dies gibt Ihnen eine bessere Kontrolle über die Prozessverteilung.

Der Prozess-Pool ist folgendermaßen aufgebaut: 



Abbildung A: Aufbau des Prozess-Pools.

 


Der Prozess-Pool besteht aus N Parzellen mit jeweils M Speicherplätzen. Pro Speicherplatz kann genau 1 Prozess aufgenommen werden. Im obigen Beispiel ist M = 10, jede Parzelle kann also genau 10 Prozesse zwischenspeichern. Jede Parzelle kann nur Prozesse von genau einem Typ aufnehmen, jede Parzelle ist also für einen anderen Prozess-Typ "zuständig". Im obigen Beispiel könnte z.B. Parzelle 1 für Prozesse vom Typ "Report-Writer" verantwortlich sein, Parzelle 2 für Prozesse vom Typ "rs", usw. Diese Verantwortlichkeit ist nicht fest, leere Parzellen haben keine Bestimmung bezüglich des Prozess-Typs, den sie aufnehmen können. Nur wenn mindestens 1 Prozess in einer Zelle gespeichert ist kann diese Parzelle nur noch Prozesse vom selben Typ aufnehmen. Dies führt also dazu, dass im Prozess-Pool Prozesse von maximal N verschiedenen Prozess-Typen zwischengelagert werden können. Insgesamt fasst der Prozess-Pool also N * M Prozesse. Wichtig hierbei ist aber zu beachten, dass von jedem unterschiedlichen Prozess-Typ nur maximal M Prozesse in den Prozess-Pool aufgenommen werden können. Wenn Sie also grundsätzlich nur 1 Prozess-Typ mit Ihrem EOMS verarbeiten macht es keinen Sinn, im Prozess-Pool 20 Parzellen mit jeweils 100 Speicherplätzen zu reservieren, da in diesem Fall 1900 Speicherplätze immer frei bleiben werden. 


Allgemeine

...

Funktionsweise 

Im Folgenden soll erläutert werden, welche Aufgabe der Prozess-Pool bei der Prozessverarbeitung spielt. Dieser Ablauf gilt für den Typ cluster.


Abbildung B: Ablauf Prozesseingang und -verarbeitung.

 


Abb. B zeigt auf, wie der Prozess-Pool als Zwischenspeicher für Prozesse im EOMS-Core fungiert. 

...

  1. Das Auftragssystem (z.B. Spooler oder Redaktions-System) vergibt einen Job (Prozess) an das EOMS. Dabei wird lediglich ein Prozessauftrag beim EOMS registriert, die Daten verbleiben beim Auftragssystem. Der Prozess ist hier vom Typ 2 (wir stellen hier Prozess-Typen vereinfacht als Zahlen da, real z.B. vom Prozess-Typ "ReportWriter").
  2. Das EOMS-Core schreibt den Prozess (Job) in die Datenbank.
  3. Es wird periodisch überprüft, ob im Prozess-Pool für den Prozess Platz ist. Dazu muss in Parzelle 2 (also in der passenden Parzelle für diesen Prozess-Typ) min. 1 Speicherplatz frei sein (ist hier der Fall). Ist dies der Fall, wird der Prozess im Prozess-Pool eingetragen. Ist dies nicht der Fall, verbleibt der Prozess weiter in der Datenbank und kann vorerst nicht an einen Worker vergeben werden.
  4. Der Worker fragt an, ob zu bearbeitende Prozesse für ihn verfügbar sind (der Worker muss in seiner List of Tasks den Prozess 2 definiert haben).
  5. Das EOMS vergibt den Prozess aus dem Prozess-Pool (und nicht direkt aus der Datenbank) an den Worker.
  6. Der Worker empfängt die für den Prozess benötigten Daten vom Auftragssystem.

...


Konfiguration des Prozess-Pools

...

 

Ein Vorteil des Prozess-Pools ist, dass Sie ihn relativ frei konfigurieren können. Folgende Anpassungen sind möglich: 


(Plus)  Anzahl Parzellen des Prozess-Pools

  • Bestimmt die Anzahl der Parzellen im Prozess-Pool, also wie viele unterschiedliche Prozess-Typen im Prozess-Pool gespeichert werden können.

  • Konfiguration über eoms.invoker.process-pool.nodes

...


(Plus)  Speicherplätze pro Parzelle

  • Bestimmt, wie viele Prozesse pro Parzelle gespeichert werden können, also wie viele Speicherplätze jede Parzelle zur Verfügung stellt.

  • Konfiguration über eoms.invoker.process-pool.size

...


(Plus)  Wahl der Prozess-Pool Befüllungslogik

...

  1. cluster: Für jeden Prozesstyp wird eine Parzelle im Prozesspool reserviert. Ein Prozess wird nur zum Prozesspool hinzugefügt, wenn die entsprechende Parzelle einen freien Platz hat, sonst muss der Prozess so lange warten, bis ein Prozess dieses Typs abgefertigt wurde und die Parzelle wieder Prozesse aufnehmen kann. Ist der in diesem Artikel vorgestellte Fall.

  2. default: Es werden so lange Prozesse zum Pool hinzugefügt, bis dieser voll ist, danach müssen alle Prozesse warten. Wird ein Platz frei, wird ein beliebiger Prozess in den Pool hinzugefügt. Es wird nicht nach Prozesstypen unterschieden. In diesem Fall ist der Prozess-Pool ein einfacher Puffer.

...


Es ist wichtig, den Prozess-Pool an Ihre Bedürfnisse anzupassen, um maximale Effizienz zu erreichen. Die optimale Konfiguration des Prozess-Pools hängt dabei stark von der Struktur Ihrer Prozessverteilung und von den Kapazitäten Ihres Systems ab. Prinzipielle Empfehlungen:

  • Bei wenigen Prozessen und wenigen unterschiedlichen Prozess-Typen: Standardwerte.

  • Bei vielen Prozessen, aber wenigen unterschiedlichen Prozess-Typen (< 20): size-Attribut eventuell erhöhen, nodes-Attribut Standard oder verringern oder Umstellung auf default.

  • Bei wenigen Prozessen, aber vielen unterschiedlichen Prozess-Typen (> 20): size-Attribut eventuell verringern, nodes-Attribut erhöhen.

  • Bei vielen Prozessen und vielen unterschiedlichen Prozess-Typen (> 20): size-Attribut erhöhen, nodes-Attribut erhöhen.

...


Info

Wenn Sie wenig verschiedene Prozess-Typen verarbeiten kann es Sinnvoll sein, den Prozess-Pool komplett auf default umzustellen.

...


Vergleichen Sie hierzu die Konfigurationsseite des Cores.