Konfiguration der Wartungsschnittstelle

Die Wartungsschnittstelle (auch MaintenanceInterface) ist eine Schnittstelle an den eBiss-PortEventListenern, mittels der Informationen über den Status des Systems abgefragt werden können (z.B. Erreichbarkeit, Auslastung etc.).



Um die Wartungsschnittstelle an einem bestimmten PortEventListener zu aktivieren, muss lediglich der Wert des Wartungsinterface-Feldes geändert werden. Mögliche Werte sind: Vordefiniert, Geschlossen, Offen, Alle HTTP Anfragen und Ausführlich. Der Werte Vordefiniert ist für zukünftige Verwendungen vorgesehen:

Syntax der Aurufe:

http://<host>:<port>/?maintenance=1&Action=State|Processes|Help|Messages|Tasks

Im Modus Ausführlich wird eine folgende Antwort zurückgegeben

Aktion Erklärung
Action=StateEine Auflistung der Systemauslastung (CPU, RAM, etc.)
Action=ProcessesEine Auflistung der aktuellen Prozessinstanzen
Action=TasksDie Anzahl der Tasks je Knoten
Action=HelpEine Beschreibung der Syntax für die Wartungsschnittstelle
Action=MessagesAnzahl der Nachricht in bestimmten Nachrichtenkörben und mit bestimmten Zustand:
ParameterBeschreibung
Donetrue/false: nur Tasks die den angegebenen Done Status haben.
UseMBoxFilter=positive|negative positive:Postive Nachrichten sind Nachrichten, die laut der Definition des Nachrichtenkorbes den erwarteten Zustand haben, d.h. die Bedingung FilterMaxState und FilterMinTaskstate erfüllen negative:Alle nicht positiven Nachrichten, d.h. Nachrichten, die laut der Definition des Nachrichtenkorbes nicht den erwarteten Zustand haben
MBoxNameName des Nachrichtenkorbes, wobei die Wildcards * und ? verwendet werden können
MBoxNameRegExpRegulärer Ausdruck zum Filtern der Nachrichtenkörbe, wobei auch nach Knoten gefiltert werden kann, z.B.:

MBoxNameRegExp=„^System/From eGate|POP3|Send$“

Dieser Ausdruck filtert Nachrichtenkörbe: die im Systemknoten liegen und mit „From eGate“ anfangen, die im Namen POP3 enthalten und die am Ende mit Send aufhören.
MboxNameIsInListe der Nachrichtenkörbe. Liste der Namen getrennt durch Komma oder Semikolon, keine Wildcards.
MboxNameIsNotInListe der Nachrichtenkörbe, die nicht beachtet werden sollen. Liste der Namen getrennt durch Komma oder Semikolon, keine Wildcards.
NodeDer Knoten, in dem die Nachrichtenkörbe gesucht weren sollen.
CurrentNodeWenn auf true gesetzt, dann wird nur der aktuelle Knoten ausgewertet
EntrydateAfterNachrichten, die nach einem bestimmten Datum eingetroffen sind. Der Wert kann ein festes Datum oder relativer Wert (z.B. -24h) sein.
EntrydateBeforeNachrichten, die vor einem bestimmten Datum eingetroffen sind. Der Wert kann ein festes Datum oder relativer Wert (z.B. -24h) sein.
HideZeroCount If true don't show message boxes with zero messages.
Style„0“: Default, „1“: More readable than style 0., „xml“: XML Style

Die folgenden Parameter werden nur mit dem Stil „xml“ ausgewertet und die Parameter DocTName sowie DocTTName zusätzlich nur, wenn FirstMessages größer als Null ist

ParameterBeschreibung
AttachmentContentWenn FirstMessages gesetzt ist die Anzahl von Zeichen des Anhangs, der ausgegeben werden soll (Shorthand: ACont)
DocumentContentWenn FirstMessages gesetzt ist die Anzahl von Zeichen des Dokumentes, der ausgegeben werden soll (Shorthand: DCont)
FirstMessages1)„-1“ für alle Nachrichten, n für die Anzahl der Nachrichten, die zurückgegben werden sollen. In dem Fall werden auch maximal soviele Nachrichten ausgewertet, d.h. die Anzahl auf dem Nachrichtenkorb kann nicht großer werden als dieser Wert, auch wenn mehr Nachrichten im Nachrichtenkorb sind.
DocTNameNur Nachrichten mit dem angegeben EntityType Namen. Es wird mit StartsWith und nicht relevanter Groß-/Kleinschreibung gesucht.
DocTTNameNur Nachrichten mit dem angegeben EntityType Typnamen. Es wird mit StartsWith und nicht relevanter Groß-/Kleinschreibung gesucht.

Beispiele:

URL Resultat
http://127.0.0.1:9990/?maintenance=1&Action=StateStatus des System: Hostname, CPU usage und RAM usage.
http://127.0.0.1:9990/?maintenance=1&Action=HelpGibt Beispielaufrufe aus.
http://127.0.0.1:9990/?maintenance=1&Action=Messages&UseMBoxFilter=positive&EntryDateAfter=-24hAlle korrekten Nachrichten, die nicht älter als 24 Stunden sind. Das sind alle fehlerfreien Nachrichten (kein Task) und Nachrichten, die den Zustand gemäß des Nachrichtenkorbes erreicht haben.
http://127.0.0.1:9990/?maintenance=1&Action=Messages&UseMBoxFilter=negative&EntryDateBefore=-4&HideZeroCount=true&Style=1 Nur Nachrichtenboxen mit Fehlern, die älter als 4 Stunden sind.
http://127.0.0.1:9990/?maintenance=1&Action=Tasks&done=false&entrydateafter=-192h&entrydatebefore=-6h&Style=1 Alle nicht als erledigt markierten Tasks der letzten 8 Tage, die älter als 6 Stunden sind.
http://127.0.0.1:9990/?maintenance=1&Action=Messages&EntryDateAfter=-24h&Style=xml&
usemboxfilter=positive&DocumentContent=2048&AttachmentContent=4096&FirstMessages=2&Node=SubNode1&
MboxName=Input&DocTName=Edifact.Desadv&DocTTName=eBiss.MappingObjects
Die ersten beiden positiven Meldungen der letzten 245 Stunden im XML-Stil mit Dokument- und Anhangsinhalt. In Knoten „SubNode1“ und Message Box „Input“ mit mindestens einem Dokument vom Typ „Edifact.Desadv*“ und technischem Typnamen „eBiss.MappingObjects*“

Best Practice:

Es ist sinnvoll für das Abfragen der Systemauslastung etc. keinen produktiven PortEventListener zu verwenden. Stattdessen sollten eine dedizierter Listener und ein Dummy-Job angelegt werden. Der Job sollte dabei das Präfix dummy haben 2) um somit einen versehentlichen Jobstart bei einem versehentlichen Request zu vermeiden.

1)
Wird nur beim Style „xml“ ausgewertet
2)
Groß-/Kleinschreibung ist egal, d.h. es geht dummy, oder DUMMY-Job, etc.