Die Verfügbarkeit von oxaion sieben Tage die Woche, rund um die Uhr für den Gesch��ftsbetrieb, wird wesentlich eingeschränkt durch die sogenannte Kritische Phase in der im Rahmen der Abschlussarbeiten, vor allen Dingen die Daten für die Disposition neu aufgebaut werden (Dispositionsdatei neu aufbauen (DI53010) kurz: Disponeuaufbau). Daher wurden die Elemente der Kritischen Phase für den 24/7 Betrieb von oxaion überarbeitet.

Die neuen Möglichkeiten, die erforderlichen Laufzeiten zu verkürzen und ggf. ganz auf den kompletten Neuaufbau der Disposition zu verzichten, sind in diesem Abschnitt bezüglich Konfiguration und Anwendung beschrieben.

Parallelität

Mit oxaion open 5.1 wurde ein generisches Framework geschaffen, welches die parallele Ausführung von voneinander unabhängigen, aber gleichartigen Teilaufgaben innerhalb eines einzelnen Batchprozesses erlaubt. Ein Beispiel dafür ist die Erstellung von Planfertigungsaufträgen zu Fertigungsvorschlägen, die innerhalb des Disponeuaufbau oder des Netchange erstellt wurden. Entsprechend der verfügbaren Hardwareressourcen des Servers, insbesondere der Anzahl der Prozessorkerne, werden n-Planfertigungsaufträge gleichzeitig erstellt. Damit skaliert dieser Prozess mit der Leistungsfähigkeit der zur Verfügung stehenden Hardware. Je größer der Server, desto mehr Planfertigungsaufträge können gleichzeitig erstellt werden, desto schneller wird der Prozess ausgeführt.

Außerdem können Firmengruppen gebildet werden mit Hilfe derer die parallele Verarbeitung von ASY_PERM (ASY) Ereignissen verschiedener Firmen deutlich effizienter gesteuert werden kann. Die relevanten Gruppierungen werden mit dem Programm Firmengruppen verwalten (US50420) vorgenommen. Die Effizienz der Parallelisierung von Ereignissen wurde deutlich verbessert und kann über Planungsereignismatrix verwalten (US50406) konfiguriert werden.  

Bezüglich der Abarbeitung der Programme im Abschluss, darf die hier genannte Parallelität nicht mit der Parallelisierung der Programm verwechselt werden, die beim Abschlussarbeiten starten (US51020) angegeben werden kann.

Funktionale Beschreibung

Bestimmte Teilprozesse in den Abschlussarbeiten der Kritischen Phase können parallel ausgeführt werden. Dazu müssen im Einzelfall bestimmte Registry-Schalter gesetzt werden (vgl. Abschnitt Konfiguration). Die virtuelle Maschine ermittelt in Abhängigkeit von der Anzahl der zur Verfügung stehenden Prozessorkerne und weiteren Parametern den optimalen Grad der Parallelisierung. Messungen auf einem 8-Prozessor-System (8 Kerne), auf dem keine weiteren Prozesse laufen, ergaben, dass der Durchsatz etwa 6-fach so groß ist wie im sequentiellen Modus. 

Im Disponeuaufbau (NA) oder dem Netchange (NC) können folgende Aufgaben parallel durchgeführt werden:

  • Alle Verbuchungen (UMATBP- und dispositive Verbuchungen)
  • Erstellung von Planfertigungsaufträgen
  • Unterdeckungsrechnung
  • Verschiebung der Heutelinie (vgl. Abschnitt Funktionale Beschreibung)

Damit könnten die Elemente in der Kritischen Phase mit der passenden Hardware beliebig schnell werden. Allerdings lässt sich das Element Terminierung der Planfertigungsaufträge nicht oder nur bedingt parallelisieren. Damit wird das bestimmende Element der Laufzeit für die Kritische Phase, trotz zunehmender Anzahl Prozessorkerne, die Laufzeit für das Element Terminierung sein.

Konfiguration

Bei der Planung der parallelen Verarbeitung ist die Serverstruktur ein ganz wichtiger Punkt. Parallelisierung bringt nur dann einen Performancezuwachs, wenn brachliegende CPU-Zeit ausgeschöpft wird. Ungenutzte CPU-Zeit entsteht zum Beispiel, wenn es mehr Prozessorkerne als sequentielle Prozesse gibt oder durch Wartezeiten beim Zugriff auf die Datenbank.

Es geht also darum, die oxaion-Prozesse geeignet auf mehrere physische oder logische Server zu verteilen. Ein (fast) maximales Beispiel ist im Folgenden abgebildet:

In der Darstellung ist der zeitliche Faktor ausgeblendet. Z.B. kann in der Nacht, wenn der zu parallelisierende Prozess laufen soll, ein Server, der im Tagesbetrieb voll ausgelastet ist, komplett unausgelastet sein.

Allgemeine Regeln sind hier schwer aufzustellen, jede konkrete Installation und Konfiguration ist daher individuell zu betrachten.

Für die parallele Verarbeitung sind folgende Registry-Einträge von Bedeutung:

Gruppe / UntergruppeSchalterFunktion
ADMIN / PARALLELPRLLL_DISPO_BUCHEN = JDispositive Verbuchung im Rahmen von NA und NC parallel ausführen
ADMIN / PARALLELPRLLL_MAWI_BUCHEN = JUMATBP-Verbuchung im Rahmen von NA und NC parallel ausführen
ADMIN / PARALLELPRLLL_PLANAUFTRAG = JPlanaufträge parallel erstellen
ADMIN / PARALLELPRLLL_DISPO_NC = JUnterdeckungsrechnung parallel durchführen
ENTW/OTHERTERMINIERUNG_NEU = J

Performanceoptimierte Terminierung ausführen

Der Parameter hat nichts mit der Parallelisierung zu tun, sollte aber unbedingt im Zusammenhang mit 24/7 Betrieb beachtet werden.

ADMIN/INTERN NEW_PW51002 = 1

Aktiviert eine restrukturierte, schnellere Einplanung

Diese neue Version ist noch nicht freigegeben.

ENTW/OTHERLOGLVL_PERFORM_DISPO

Detailliertes Performancelogging der Prozesse aktivieren mit der Angabe der Loglevel, ab welchem das Performancelogging erfolgen soll (Wert 7 = NORMAL + DEBUG + KERNEL). Kein Eintrag oder >= 4096 bewirkt kein Logging.

Nur für Analysezwecke durch oxaion zu verwenden.

Die protokollierten, detaillierten Performanceinformationen findet man im Server-Log-Verzeichnis in den Dateien Neuaufbau_Servername.log bzw. Netchange_Servername.log.

Aktivierbar ist das Logging für folgende Programme:

ProgrammBeschreibung
DI53019Disponeuaufbau im Abschluss oder Batch
DI53211fallbezogener Disponeuaufbau
DI53039Netchange im Abschluss oder Batch
DI53231fallbezogener Netchange

Permanente Disposition

Permanente Disposition bedeutet, dass auf den globalen Disponeuaufbau und des Netchange im Tagesabschluss und damit auf große Teile der Kritische Phase verzichtet wird. Anstelle dessen werden die Tripel, bestehend aus Firma, Teilenummer und Lagegruppe, bei denen das Fortschreiten der Heutelinie einen Netchange erfordert, durch einen nicht exklusiven Prozess ermittelt und in den fallbezogenen Netchange gegeben. Weiterhin überwachen zwei Agenten die Qualität der Dispodaten im Tagesbetrieb und stoßen bei Bedarf einen fallbezogenen Neuaufbau oder einen fallbezogenen Netchange an. Diese beiden Agenten stellen also den Ersatz des ungedingten Disponeuaufbaus und Netchange dar.

Es wird empfohlen, zusätzlich einmal in der Woche den klassischen Disponeuaufbau inkl. Netchange im Abschluss durchzuführen.

Funktionale Beschreibung

Der klassische Ansatz, jede Nacht im Tagesabschluss einen Disponeuaufbau (NA) / Netchange (NC) durchzuführen, steht oft in keinem Verhältnis zu den tatsächlich neu ermittelten Daten für die Disposition. Das Ermitteln neuer Beschaffungsvorschläge und hier speziell die Fertigungsvorschläge zusammen mit der Einplanung der zughörigen Planfertigungsaufträge ist ressourcen- und zeitintensiv.

Die Aufgaben von NA/NC reduzieren sich mit Blick auf eine effiziente Optimierung Aufgaben in Verbindung mit dem Fortschreiten der Heutelinie und Änderungen in der Vorschlagsstruktur. Für diese Aufgaben wurde das neue Programm Verschieben der Heutelinie (DI50450) erstellt.

Die permanente Disposition arbeitet deshalb wie folgt:

  • Im Abschluss wird nur noch die Rückstandsverdichtung (wie bisher) und die Verschiebung der Heutelinie vorgenommen.
  • Für die sonstige Pflege der Dispodaten sorgen zwei Agenten, die neben dem Tagesgeschäft die Konsistenz der Dispodaten prüfen und ggf. einen fallbezogenen NA oder NC einleiten.

Konfiguration

Vor der eigentlichen Konfiguration werden zwei Forderungen hier näher beschreiben. Diese sind:

  • Forderung nach einer sauber eingestellten Disposition
  • begrenzter Bedarf an Neueinplanung von Fertigungsaufträgen im Abschluss

und werden im folgenden näher erläutert.

Die Forderung nach einer sauber eingestellten Disposition hat folgende Hintergründe:

  • die Agenten lösen bei jedem fehlerhaften Tripel den fallbezogenen Disponeuaufbau (NA) bzw. Netchange (NC) aus und erzeugen dadurch unnötige Last für den ASYPERM, was wiederum die sonst laufende permanente Planung beeinflusst
  • für Tripel, deren Teil eine tiefe DEP-Struktur besitzt, wird die Last für den ASYPERM vervielfacht

Die Optimierung der Disposition durch die permanente Disposition baut darauf, dass die Daten für die Disposition sauber definiert und das Umfeld der Disposition korrekt konfiguriert ist. Fehlerhafte Beschaffungsvorschläge sollten die Ausnahme, nicht die Regel sein, da ansonsten kein oder ein gegenteiliger Effekt entstehen könnte.

Mit dem Analyseprogramm runBatchCheckDispoNeuaufbau, dass einmal im Batch, ohne die Erzeugung von NA Ereignissen aufgerufen werden sollte, kann die Qualität der Dispostionen geprüft werden. Der Aufruf erfolgt über Jobs planen (US00310) oder Programm aufrufen (OP30050) mit dem Parameter creatorArt = "0".

Die Forderung nach begrenztem  Bedarf an Neueinplanung von Fertigungsaufträgen im Abschluss hat den Hintergrund, dass eine große Anzahl an Neueinplanungen die kritische Phase derart belastet, das der Disponeuaufbau deutlich effizienter sein kann. Dies bedeutet, dass beim täglichen Abschluss keine komplette Neueinplanung aller Fertigungsaufträge vorgesehen sein sollte und daher in Fertigungsaufträge einplanen (PW51000) nicht der Neuaufbaulauf eingestellt ist.

Wird über Fertigungsaufträge einplanen (PW51000) nur der Änderungslauf eingestellt, sollten größere Änderungen an Kapazitäten vor einem großen Disponeuaufbau erfolgen (also vor dem empfohlenen Wochenabschluss). Dabei sollte das Startdatum für die Neueinplanung leer oder in nächster Zukunft liegen, da auch dies die Zahl der notwendigen Auftragseinplanungen reduziert.

Zusammenfassung

Neben den beiden genannten Forderungen ist vor der Aktivierung der permanenten Disposition zu prüfen in welchem Umfeld und Umfang die oxaion Installation und die vorhandenen Abschlüsse eingesetzt und konfiguriert sind. Dies vor allen Dingen bei den Programmen die in der kritischen Phase integriert sind.

Hat der bisher eingesetzte Abschluss vorrangig die Aufgabe größere Änderungen bei dispositiven und planerischen Grundlagen vorzunehmen, dann ist die permanente Disposition nicht das geeignete Mittel für die Abarbeitung der Aufgaben.

Die Aktualisierung der Disposition durch die Agenten ist wesentlich ineffizienter als ein Disponeuaufbau und lohnt sich nur, wenn sich diese auf eine überschaubare Zahl von Fällen beschränkt.

Weitere Quellen für längere Laufzeiten

Nachfolgende Tabelle soll eine Übersicht über weitere Quellen für lange Laufzeiten der Abschlüsse geben und bezieht sich auf den Umfang der ausgelieferten Programme in der kritischen Phase.

ProgrammBeschreibung
Dispositionsgrundlagen mit/ohne Aktualisierung drucken (DI11050) Zeitintensiv wenn der Melde- oder Sicherheitsbestand Grundlage der Unterdeckungsprüfung ist (gemäß VRLD14 (Vorlaufdaten Buchen Dispositionsdatei), FRD482 (Dispositionsschlüssel)).
Kapazitätsangebot aufbauen (PZ52000)Änderungslauf oder Neuaufbaulauf ist zu unterscheiden.

Tabellen

Falls nicht vorhanden ist für DI50450 (Verschieben Heutelinie für Disposition) ein Eintrag FRDPGM (Abschlussprogramme) mit den dort angegebenen Daten zu erfassen.

Abschluss

Für den Aufbau und die Abarbeitung der Arbeiten für die Disposition, ist die Ermittlung der Dispositionsstufen über Dispositionsstufen ermitteln (PS51000) eine Voraussetzung, die im Vorfeld der kritischen Phase im Abschluss integriert sein sollte. 

Über Abschlussarbeiten verwalten (US51071) werden folgende Einträge innerhalb der kritischen Phase des bisherigen Tagesabschlusses deaktiviert:

Deaktivieren im bisherigen Tagesabschluss
AblaufprogrammProgrammbezeichnung
US50102CVerbuchen Member DISPO<FIRM> von UMATBP
DI53005RNeuaufbau der Dispositionsdatei
DI53039RNet-Change Lauf über Dispositionsdatei

Anstelle von DI53039R wird ein Eintrag für DI50450 (Verschieben Heutelinie für Disposition) erstellt, als Art der NC-Erzeugung wird "2".

Anschließend sollte der Tagesabschluss innerhalb der kritischen Phase etwa wie folgt aussehen:

Kritische Phase mit permanenter Disposition im Tagesabschluss
AblaufprogrammProgrammbezeichnung
DI53007RBeginn der kritischen Phase
DI53021RRückstandsermittlung/Periodenraster erm.
US50101CMaterialbuchungssätze verbuchen
DI53201RReorg Bestandsreservierungen
PW51001CAusw. einzuplanender Fert.Aufträge
PW51002CEinplanung Fertigungsaufträge
US50103CVerbuchen Member ASY_PERM von UMATBP
DI50451RVerschieben Heutelinie für Disposition
DI53023REnde der kritischen Phase

Der Wochenabschluss behält den (großen) Disponeuaufbau und den Netchange. Dort ist das Programm zur Verschiebung der Heutelinie (DI50450) nicht erforderlich.

Kritische Phase mit permanenter Disposition im Wochenabschluss
AblaufprogrammProgrammbezeichnung
DI53007RBeginn der kritischen Phase
DI53021RRückstandsermittlung/Periodenraster erm.
US50101CMaterialbuchungssätze verbuchen
PW51001CAusw. einzuplanender Fert.Aufträge
PW51002CEinplanung Fertigungsaufträge
US50102CVerbuchen Member DISPO<FIRM> von UMATBP
US50103CVerbuchen Member ASY_PERM von UMATBP
DI53005RNeuaufbau der Dispositionsdatei
DI53039RNet-Change Lauf über Dispositionsdatei
DI53023REnde der kritischen Phase

Agenten

Die beiden Agenten für die Prüfung auf NA- und NC-Würdigkeit werden über Jobs planen (US00310) geplant. Die Jobs der Agenten sollten dabei idealerweise nach dem Verschiebung der Heutelinie (DI50450) und Phasen gestartet werden, in denen trotz 24/7 Betrieb wenig Last auf den ASY_PERM (ASY) vorhanden ist.

Parameter der Agenten runAgentCheckNetchange und runAgentCheckDispoNeuaufbau

Es findet keine Prüfung der angegebenen Parameter statt.

ParameterBeschreibung
periodInSeconds

Angabe der Sekunden, bis der Agent zur Abarbeitung des nächsten Blocks an Tripeln startet.

Richtwert: Gewünschter Zeitraum der Bearbeitung in Sekunden / (Anzahl Tripel in DDKPFP / 100)

numberOfRepeat

Anzahl der Wiederholungen (Blöcke) die bearbeitet werden sollen.

Richtwert: Anzahl Tripel in DDKPFP / 100 

isParallel

Parallele Abarbeitung

WertBeschreibung
0Keine parallele Abarbeitung
1Parallele Abarbeitung

Beachtet werden muss die Beschreibung unter Parallelität-Konfiguration und die folgende Beschreibung zur Bestimmung der Parameter periodInSeconds und numberOfRepeat.

creatorArt

Festlegung im welcher Art der Agent aufgerufen und aktiviert sein wird.

Agent runAgentCheckDispoNeuaufbau
WertAktion
0keine Aktion (Agent loggt nur, vgl. Interaktiver Aufruf der Agenten)
1

synchron (fallbezogener NA wird sofort im gleichen Prozess ausgeführt, kein NC)

Dies ist für Diagnosezwecke sinnvoll.

2

asynchron (fallbezogener NA + NC im ASY_PERM)

Empfohlene Einstellung.

3asynchron (nicht implementiert, reserviert für Arbeitsvorrat ASY_PERM)
Agent runAgentCheckNetchange
WertAktion
0keine Aktion (Agent loggt nur, vgl. Interaktiver Aufruf der Agenten )
1

synchron (fallbezogener NC wird sofort im gleichen Prozess ausgeführt)

Dies ist für Diagnosezwecke sinnvoll.

2

asynchron (fallbezogener NC im ASY_PERM)

Empfohlene Einstellung.

Bestimmung der Parameter periodInSeconds und numberOfRepeat

Ziel ist üblicherweise die Kontrolle jedes vorhandenen Tripels aus der Kopfdatei Disposition (DDKPFP) zumindest einmal am Tag. Damit werden die im Tagesabschluss inaktivierten Programme kompensiert. Je Zyklus arbeiten die Agenten einen Block von 100 Tripeln ab. 

Beispiel

Auf Grund der Auslastung Hardwareressourcen soll die Abarbeitung der Agenten im Zeitraum von 02:00 Uhr und 09:00 Uhr erfolgen.

Es sind 50.000 Tripel in der DDKPFP für den Mandanten vorhanden.

Damit würden sich folgende Richtwerte ergeben:

periodInSeconds =  7 Stunden * 3.600 / (50.000 / 100) = 50

numberOfRepeat = 50.000 / 100 = 500

Diese Einstellungen würde die Kontrolle aller Tripel auch ohne aktiver paralleler Verarbeitung erlauben.

Wenn eine größere Zahl an Tripel vorhanden ist oder die Überprüfung in einer kürzeren Zeit erfolgen soll, kann selbst bei relativ schwacher Hardware die Periode ohne Probleme auf 15 Sekunden reduziert werden, wenn man dabei den Parallelmodus aktiviert. Allerdings sollte dabei immer die Konkurrenz um Hardwareressourcen zwischen den Agenten und anderen Batch- oder interaktiven Jobs berücksichtigt werden.

Für das Beispiel würden sich also folgende Einträge unter Jobs planen (US00310) ergeben, wenn der Wochenabschluss am Sonntag durchgeführt wird:

BezeichnungJobwarteschlangeZeitintervallZeitintervall-DatenStartuhrzeitJava-KlasseJob-Daten
Agent: Prüfe Dispo-NC*ASYNCHRONDAILY2 3 4 5 6 722.00.00runAgentCheckNetchange<creatorArt>2</creatorArt><isParallel>0</isParallel><periodInSeconds>50</periodInSeconds><numberOfRepeat>500</numberOfRepeat>
Agent: Prüfe Dispo-NA*ASYNCHRONDAILY2 3 4 5 6 722.00.00runAgentCheckDispoNeuaufbau<creatorArt>2</creatorArt><isParallel>0</isParallel><periodInSeconds>50</periodInSeconds><numberOfRepeat>500</numberOfRepeat>

Als Alternative zu den Agenten, die mit den zuvor beschriebenen Parametern als Jobs arbeiten, können diese auch als Variante in klassischen Batchjobs mit Protokollierung eingerichtet werden. Deren Einstellungen finden sich unter Batchjob für runBatchCheckNetchange / runBatchCheckDispoNeuaufbau.

Technische Hinweise

Protokollierung von Auffälligkeiten

Beide Agenten loggen alle NA- bzw. NC-würdigen Tripel im server.log. Dazu ist der Debuglevel CmdLog. DEBUG erforderlich. 

Interaktiver Aufruf der Agenten zu Diagnosezwecke

Zu Diagnosezwecken können die Agenten auch interaktiv über Programm aufrufen (OP30050) mit den Programmnamen runAgentTestDispoNeuaufbau bzw. runAgentTestDispoNetchange ausgeführt werden.

Parameter der Programme runAgentTestDispoNeuaufbau und runAgentTestDispoNetchange

Es findet keine Prüfung der angegebenen Parameter statt.

ParameterBeschreibung
idnr

Teilenummer die analysiert werden soll.

lagr

Lagergruppe die analysiert werden soll. 

creatorArt

Festlegung im welcher Art der Agent aufgerufen und aktiviert sein wird.

Nur bei Programm runAgentTestDispoNeuaufbau 
WertAktion
0keine Aktion (Agent loggt nur, vgl. Interaktiver Aufruf der Agenten)
1

synchron (fallbezogener NA wird sofort im gleichen Prozess ausgeführt, kein NC)

Dies ist für Diagnosezwecke sinnvoll.

2

asynchron (fallbezogener NA + NC im ASY_PERM)

Empfohlene Einstellung.

3asynchron (nicht implementiert, reserviert für Arbeitsvorrat ASY_PERM)

Diese Seite befindet sich im Aufbau und dient derzeit lediglich als Ziel.

Batchjob für runBatchCheckNetchange / runBatchCheckDispoNeuaufbau

Um ohne die Vorgaben bei den Agenten die Funktion der permanenten Disposition zu nutzen, kann die Funktionalität der Agenten als klassischer Batchjob eingerichtet werden. Die hierfür zu verwenden Programme heißen runBatchCheckNetchange (als Ersatz für runAgentCheckNetchange) bzw. runBatchCheckDispoNeuaufbau (als Ersatz für runAgentCheckDispoNeuaufbauerfolgen).

Parameter der Programme runBatchCheckNetchange und runBatchCheckDispoNeuaufbau 

Es findet keine Prüfung der angegebenen Parameter statt.

ParameterBeschreibung
creatorArt

Festlegung im welcher Art der Job aufgerufen wird.

WertAktion
0keine Aktion (Job loggt nur, vgl. Interaktiver Aufruf der Agenten)
1

synchron (fallbezogener NA wird sofort im gleichen Prozess ausgeführt, kein NC)

Dies ist für Diagnosezwecke sinnvoll.

2

asynchron (fallbezogener NA + NC im ASY_PERM)

Empfohlene Einstellung.

3asynchron (nicht implementiert, reserviert für Arbeitsvorrat ASY_PERM)
  • Keine Stichwörter