Automation Engine intern > Mehr-Server-Betrieb > Serverprozesse

Serverprozesse

Die Serverprozesse werden in Arbeits- und Kommunikationsprozesse unterteilt. Alle Serverprozesse kommunizieren untereinander. Fällt ein Prozess aus, so übernehmen die verbliebenen Prozesse die anstehenden Aufgaben.
In Version 11 der Automation Engine gibt es einen dritten Prozess, den Java-Arbeitsprozess (JWP). Er ist in Java implementiert und wird dazu verwendet, spezielle Dienste zu hosten, die in Java entwickelt wurden.

Die Namen der Serverprozesse werden dynamisch aus der Startreihenfolge und den in der INI-Datei des Rechners vorgegebenen Prozessnummern gebildet. In dieser INI-Datei werden Listen mit Portnummern getrennt nach Arbeits- und Kommunikationsprozessen geführt. Dabei wird jeder Prozessnummer eine Portnummer für die Verbindung zugewiesen. Die Prozessnummern müssen für das gesamte Automation Engine System, auch über mehrere Rechner hinweg, eindeutig sein. Der Verwaltung der Prozess- und der Portnummern ist damit besondere Bedeutung beizumessen. Für die Namen der Arbeitsprozesse wird "WP" und die nächste freie Prozessnummer verwendet. Der Name der Kommunikationsprozesse beginnt mit "CP", ebenfalls gefolgt von der nächsten freien Prozessnummer. Die Namen der Log- und Tracedateien basieren auf den jeweiligen Prozessnamen.

Arbeitsprozesse

Die Arbeitsprozesse übernehmen die "eigentlichen Serverarbeiten". Die anstehenden Aufgaben werden dort aktiviert, generiert, zur Ausführung gebracht und bis zum Ende überwacht.

Für bestimmte dezidierte Aufgaben gibt es den primären Arbeitsprozess. Der primäre Arbeitsprozess führt zentrale Aufgaben der Arbeitsprozesse durch, die keine Verteilung erlauben (Zeitbasis, Verwaltung der Prozesse etc.). Beim Hochfahren des Systems wird der zuerst gestartete Arbeitsprozess zum primären Arbeitsprozess. Fällt der primäre Arbeitsprozess aus, so übernimmt einer der noch vorhandenen Arbeitsprozesse dessen Aufgabe (er wird zum primären Arbeitsprozess). Alle dafür notwendigen Informationen werden entweder laufend für alle Arbeitsprozesse aktualisiert oder sind aktuell in der Datenbank gespeichert.

Manche Aufgaben sind in der Abarbeitung umfangreicher. Damit die Performance des Automation Engine Systems nicht negativ beeinträchtigt wird, werden sie einer Serverrolle zugeteilt. Jede Serverrolle hat eine eigene Warteschlange, in der die zugehörigen Aufgaben gespeichert werden.

Serverrolle Beschreibung
"O" für Outputs
  • Speichern der Logmeldungen von Serverprozessen und Agenten in die Datenbank.
  • Speichern der Aktivierungsreports von ERP- und Java-Agenten mit der Automation Engine
"R" für Ressource-Berechnungen
  • Prüfung von Sync-Objekten
  • Berechnung von Kalender-Objekten
  • maximale Anzahl von gleichzeitigen Durchführungen eines Objektes
  • Ereignisse vom Typ "Konsole"
  • automatische Dateisystem-Ereignisse
  • Deadlockumgehungen

Jede Serverrolle wird nur einmal vergeben. Beim Start der Automation Engine erhält der primäre Arbeitsprozess beide Serverrollen. Sobald ein weiterer Arbeitsprozess gestartet wird, übergibt er ihm eine Serverrolle. Der Arbeitsprozess, der als drittes startet, enthält die zweite Serverrolle. Sollte ein Arbeitsprozess beendet werden, fällt die Serverrolle wieder dem primären Arbeitsprozess zu, der sie einem Arbeitsprozess zuteilt, der noch keine Serverrolle ausübt. Ist keiner vorhanden, behält der primäre Arbeitsprozess diese Serverrolle.

Die Systemübersicht zeigt im Bereich "Automation Engine" an, ob und welche Serverrolle ein Arbeitsprozess ausübt.

Ein Arbeitsprozess verarbeitet immer zuerst die Aufgaben seiner Serverrolle. Sind keine Aufgaben für diese Serverrolle vorhanden, nimmt er eine Aufgabe aus der allgemeinen Warteschlange für Arbeitsprozesse.

Beim Hochfahren eines Arbeitsprozesses im Kaltstart-Modus werden alle noch eingetragenen Aufträge gelöscht.

Beim Start des ersten Arbeitsprozesses (PWP) im Modus "Kaltstart" werden folgende Fehlermeldung in die Log-Datei geschrieben, die ohne Bedeutung sind und daher ignoriert werden können:

U0029108 SQL_ERROR Database-Handles DB-HENV: 6d92d0 DB-HDBC: 6d93a0
U0003591 DB error info: Opc: 'SQLExecDirect' Return code: 'ERROR'
U0003592 Status: '42S02' NativeError: '4701' Msg: 'Cannot find the object "MQCP006" because it does not exist or you do not have permissions.'
U0003594 UCUDB Ret: '3590' OpCode: 'EXEC' SQL-Stmnt: '{call UC_Truncate_Table('MQCP006')}'
U0003590 DB error: 'SQLExecDirect', 'ERROR ', '42S02', 'Cannot find the object "MQCP006" because it does not exist or you do not have permissions.'

Dialogprozesse

Eine Sonderform des Arbeitsprozesses bilden die Dialogprozesse (DWP). Sie arbeiten in der selben Weise wie "normale" Arbeitsprozesse, sind jedoch im Gegensatz zu diesen ausschließlich für UserInterface-Nachrichten zuständig (siehe auch: Dialogprozess).

AE.NonStopServer

Beim Einsatz von Nonstop-Prozessen übernimmt der Rechner auf dem sich diese befinden die Verarbeitung, wenn ein Rechner ausfällt (siehe auch: AE.NonStopServer).

Kommunikationsprozesse

Die Kommunikationsprozesse halten die Verbindungen zu den Agenten und den UserInterfaces. Die Kommunikation mit Agenten und UserInterfaces wird ausschließlich über die Kommunikationsprozesse durchgeführt. Nach dem Start wird die Verbindung zum primären Arbeitsprozess aufgebaut. 

Siehe auch:

Mehr-Server-Betrieb

Java-Arbeitsprozess

 


Automic Documentation - Tutorials - Automic Blog - Resources - Training & Services - Automic YouTube Channel - Download Center - Support

Copyright © 2016 Automic Software GmbH