====== 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.). \\ \\ {{:images:maintenanceinterface.jpg|}}\\ \\ 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: * Geschlossen: Die Schnittstelle ist nicht aktiv. * Offen: eBiss Antwortet mit einer einfachen Web-Seite welche nicht viel mehr als den Text "...awaiting requests" enthält. * Alle HTTP Anfragen: Alle Anfragen werden als Web-Seite unter dem eBiss Verzeichnis „MaintenanceInfo“ zurückgegeben. Eine Vorlage finden sie unter „StandardTemplates\MaintenanceInfo“. * Ausführlich: Anfragen über den Status des eBiss System sind möglich, siehe unten. === Syntax der Aurufe: === http://:/?maintenance=1&Action=State|Processes|Help|Messages|Tasks Im Modus **Ausführlich** wird eine folgende Antwort zurückgegeben ^Aktion ^Erklärung ^ |Action=State|Eine Auflistung der Systemauslastung (CPU, RAM, etc.)| |Action=Processes|Eine Auflistung der aktuellen Prozessinstanzen| |Action=Tasks|Die Anzahl der Tasks je Knoten| |Action=Help|Eine Beschreibung der Syntax für die Wartungsschnittstelle| |Action=Messages|Anzahl der Nachricht in bestimmten Nachrichtenkörben und mit bestimmten Zustand:| ^Parameter^Beschreibung ^ |Done|true/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 | |MBoxName|Name des Nachrichtenkorbes, wobei die Wildcards * und ? verwendet werden können| |MBoxNameRegExp|Regulä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. | |MboxNameIsIn|Liste der Nachrichtenkörbe. Liste der Namen getrennt durch Komma oder Semikolon, keine Wildcards.| |MboxNameIsNotIn|Liste der Nachrichtenkörbe, die nicht beachtet werden sollen. Liste der Namen getrennt durch Komma oder Semikolon, keine Wildcards.| |Node|Der Knoten, in dem die Nachrichtenkörbe gesucht weren sollen.| |CurrentNode|Wenn auf true gesetzt, dann wird nur der aktuelle Knoten ausgewertet| |EntrydateAfter|Nachrichten, die nach einem bestimmten Datum eingetroffen sind. Der Wert kann ein festes Datum oder relativer Wert (z.B. -24h) sein.| |EntrydateBefore|Nachrichten, 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 ^Parameter^Beschreibung ^ |AttachmentContent|Wenn FirstMessages gesetzt ist die Anzahl von Zeichen des Anhangs, der ausgegeben werden soll (Shorthand: ACont)| |DocumentContent|Wenn FirstMessages gesetzt ist die Anzahl von Zeichen des Dokumentes, der ausgegeben werden soll (Shorthand: DCont)| |FirstMessages((Wird nur beim Style "xml" ausgewertet))|"-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.| |DocTName|Nur Nachrichten mit dem angegeben EntityType Namen. Es wird mit StartsWith und nicht relevanter Groß-/Kleinschreibung gesucht.| |DocTTName|Nur 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=State|Status des System: Hostname, CPU usage und RAM usage.| |http://127.0.0.1:9990/?maintenance=1&Action=Help|Gibt Beispielaufrufe aus.| |http://127.0.0.1:9990/?maintenance=1&Action=Messages&UseMBoxFilter=positive&EntryDateAfter=-24h|Alle 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 ((Groß-/Kleinschreibung ist egal, d.h. es geht dummy, oder DUMMY-Job, etc.)) um somit einen versehentlichen Jobstart bei einem versehentlichen Request zu vermeiden.