Monitordienst

Der in jeder cardo Installation vorhandene Systemdienst IDUIwanCardoMonitoringService übernimmt verschiedene Aufgaben, die nicht direkt in der Umgebung der Internetinformationsdienste ausgeführt werden. Der Dienst wird beim Setup für die meisten Aufgaben automatisch konfiguriert.

Dieser Dienst ist für nachfolgende Aufgaben verantwortlich:

  • Monitoring des Systemstatus der cardo Instanz(en) (Erreichbarkeit der Webseite, Verfügbarkeit des/der Mapserver Dienste, Verfügbarkeit der cardo3 Systemdatenbank),
  • Übertragen und aggregieren der Logdatensätze des Mapservers in die cardo Logdatenbank,
  • Auswerten der Ereignisse des/der Iwan Mapservers (Verfügbarkeit von Ebenen, Ladefehler, Zeitüberschreitungen für Zeichenanforderungen),
  • Übertragen der Nachrichten des cardo Cache Managers zwischen klassischem ASP und ASP.Net sowie zwischen verschiedenen cardo und cardo.Map Instanzen und
  • Ausführung von Hintergrundaufträgen (Batchbetrieb). 
  • Löschen alter Einträge aus verschiedenen Temp-Verzeichnissen von cardo (SessionTempFolder, IkxUploadTempFolder, Misc, IkxBlobTemp) wenn diese älter als 30 Tage sind; diese Bereinigung wird aller 6h angestossen

Bei korrekter Konfiguration benachrichtigt der Dienst die in der Konfiguration eingetragenen Nutzer per E-Mail und schreibt zudem alle Vorkommnisse in das Ereignisprotokoll des Servers. Dabei wird ein eigenes Ereignisprotokoll mit dem Namen IwanCardoLog angelegt und befüllt.

Allgemeine Hinweise zur Konfiguration des Dienstes

Der Dienst  liest seine Konfiguration aus einer XML-Steuerdatei aus. Diese befindet sich, wie die Programmdateien des Dienstes selber, im Ordner:

  • cardoSystem\Prog\ICServer\.

Der Name der Datei lautet

  • Monitor.config.xml.

Im gleichen Ordner befindet sich eine Vorlagendatei mit dem Namen

  • Monitor.template.config.xml.

Diese Datei wird nicht vom Dienst verwendet, sondern enthält, kommentiert, die möglichen Einstellungen. Diese Vorlage wird bei Updates ebenfalls immer auf den neuesten Stand gebracht. Die eigentliche Steuerdatei wird bei Updates nicht modifiziert.

Das XML Format der Datei ist im XSD-Schema cardoIwanMonitorConfig.xsd beschrieben.

Hinweis: Jede Änderung an dieser Datei wird erst nach einem Neustart des Dienstes IDUIwanCardoMonitoringService wirksam.

Für das Auswerten der Iwan-Logs wird eine von Iwan befüllte SQLite-Datenbank abgearbeitet. Wo diese sich befindet, kann über ITC mit dem Befehl 'show logdb' ermittelt werden.

Konfiguration des IDUIwanCardoMonitoringService für den Batch-Betrieb

Einige Aufgaben im cardo können für die unbeaufsichtigte Hintergrundausführung für den Batch Betrieb konfiguriert werden. Dazu zählen z. Z.

  • automatisches Übertragen von Daten zu einem anderen cardo mit dem Modul cardo.c2c
  • automatisches Aktualisieren von Schattenkopien (z. B. Shape-Dateien von Netzlaufwerken lokal bereitstellen)
  • Export von Metadaten zu einem CSW (ab cardo Version 3.9.0)

Vorgehensweise:

Die Aktivierung erfolgt über das Eintragen des folgenden Konfigurationsabschnitts in der Datei monitor.config.xml.

  1. Öffnen Sie die Datei monitor.config.xml (im Ordner cardoSystem\Prog\ICServer\).
  2. Fügen Sie den unten definierten Konfigurationsabschnitt in die Datei ein.
  3. Die Position ersehen Sie durch Nachschauen in der Vorlagendatei monitor.template.config.xml oder Sie verwenden die Informationen aus der Schemadatei cardoIwanMonitorConfig.xsd
  4. Speichern Sie ihre Änderungen ab.
  5. Achtung: Beim Start des Dienstes wird das Kennwort automatisch verschlüsselt und das Attribut isEncrypted am Element cardoUserPassword wird auf "true" gesetzt. Der Parameter "enabled" wird beim Umschreiben entfernt, sofern er nicht auf "false" gesetzt war (lt. XSD ist der Standardwert  "true", daher ist diese Angabe optional).
  6. Starten Sie den Monitordienst IDUIwanCardoMonitoringService.
  7. Überprüfen Sie gegebenenfalls ihre Einstellungen, Meldungen werden im Windows-Ereignisprotokoll IwanCardoLog ausgegeben.
Hinweis: Wurden Änderungen an der monitor.config.xml durchgeführt, muss der Dienst immer neu gestartet werden.

 

Konfigurationsabschnitt:

<TriggerBatchEvents enabled="true">
  <WakeUpMinutes>30</WakeUpMinutes>
  <cardo3RootUrlxsi:nil="true"/>
  <cardo3UserName>Benutzername</cardo3UserName>
  <cardo3UserPasswordisEncrypted="false">Kennwort</cardo3UserPassword>
</TriggerBatchEvents>

 

Hinweis: Sie müssen hier den Benutzernamen zur lokalen cardo-Instanz angeben. Der Benutzer muss über ausreichende Berechtigungen für die geforderten Aktionen verfügen. Im Fall einer NT-Authentifizierung sollten Sie einen eigenen Account einrichten, achten Sie hierbei auch auf die zeitliche Gültigkeit des Kennworts.

 

Nach der allgemeinen Aktivierung des Batchbetriebes muss nun noch definiert werden, welche konkreten Tasks im Batchbetrieb aktiviert werden sollen. Zum einen gibt es Tasks, welche hier konkret per Name aktiviert werden. Zum anderen gibt es auch Tasks, welche nicht einzeln sondern unter einem Sammeltask laufen.

 

1. Tasks mit eigenem Namen und Abschnitt

Für diese Dienste gibt es jeweils einen zu aktivierenden Abschnitt unter TriggerBatchEvent.

Name und Position ersehen Sie durch Nachschauen in der Vorlagendatei monitor.template.config.xml oder Sie verwenden die Informationen aus der Schemadatei cardoIwanMonitorConfig.xsd.

Beispiele: ShadowCopiesBatch, OrfBatch, ExportToCswBatch

2. Sammeltask für weitere Dienste

Der Abschnitt TaskSchedulerBatch definiert einen Sammeltask, unter welchem verschiedenste andere Tasks laufen können. Welche das sind, entscheidet der Programmierer der jeweiligen Anwendung.

Beachten Sie, dass der Wert für WakeUpMinutes hier den 'Grundtakt' für all diese Dienste vorgibt. Der Intervall sollten also so gering gewählt werden, dass alle Dienste die nötige Ausführungsfrequenz erreichen. Die Dienste bringen eine eigene Konfiguration für den Ausführungsintervall mit. Dieser kann länger aber nie kürzer als der hier eingestellte 'Grundtakt' sein!

Prüfen der Einstellungen - IwanCardoLog

Sie sollten nach Änderungen an dieser Datei das Windows-Ereignisprotokoll anschauen (Systemsteuerung/Verwaltung/Ereignisanzeige/IwanCardoLog). Dort finden Sie ein Protokoll mit den Namen IwanCardoLog. In dieses Protokoll schreibt der Monitordienst sämtliche Aktionen. Vor allem beim Start wird für jedes Modul des Dienstes eine detaillierte Meldung/Fehlermeldung ausgegeben. Dies sollte immer die erste Anlaufstelle bei Problemen sein.

Der Monitor startet nicht, wenn die Anmeldung nicht korrekt ist.

Batch Service - weitere Analysemöglichkeiten bei (vermuteten) Problemen

Im Wesentlichen ruft der BatchMonitor den Dienst BatchServices auf. Die dort vorhandenen Methoden werden für die eigentliche Ausführung verwendet. D. h. der Dienst übernimmt hier nur die Steuerfunktion, die Arbeit wird durch cardo ausgeführt. Dies bedeutet auch, dass diese Dienste direkt aufgerufen werden können. Dieser Dienst bietet auch zusätzliche Analysemethoden.

URL für BatchServices:

http://IhrCardo/net3/services/BatchServices.asmx

Die verfügbaren Methoden sind dort kommentiert aufgeführt.

Hilfreich ist unter anderem die Methode GetAllScheduledTaskInfos, welche zu jedem Task u.a. detailiert ausgibt:

  • Letzte Ausführungszeit
  • Letzte fehlerhafte Ausführung und letzte Fehlermeldung
  • Letzte erfolgreiche Ausführung und letzte Erfolgsmeldung
  • nächste geschätzte Ausführungszeit
E-Mail aktivieren
  1. Kopieren Sie den Code für die E-Maileinstellungen aus der monitor.template.config.xml (im Ordner cardoSystem\Prog\ICServer\).
  2. Fügen Sie diese in die Datei monitor.config.xml an die im Template definierte Stelle ein.
  3. Speichern Sie ihre Änderungen.
  4. Starten Sie danach ihren Dienst erneut.

E-Mail Konfigurationsabschnitt:

    <GlobalEmailConfiguration>
       <MailServerConfig>
          <Adress>x.y.de</Adress>
          <Port>25</Port>
          <AllowSSL>true</AllowSSL>
          <UserName>user</UserName>
          <Password isEncrypted="false">pwd</Password>
        </MailServerConfig>
        <Recipients>Empfaenger1</Recipients>
        <Recipients>Empfaenger2</Recipients>
        <Sender>Absender</Sender>
        <SecondsBetweenNextMail>60</SecondsBetweenNextMail>
     </GlobalEmailConfiguration>

Beim Neustart des Monitors wird, wenn die Mailconfig definiert ist, eine Mail versendet, welche über den Neustart des Monitors informiert. Sollte diese Mail nicht zugestellt werden, ist in der Ereignisanzeige zu prüfen, ob es im CardoMonitorLog eine entsprechende Fehlermeldung über den gescheiterten Mailversand gibt. Ist dort das erfolgreiche Versenden der Mail vermerkt, sollten der Spamverdachtordner geprüft werden.

ITC - weiter Problemlösungen beim Monitordienst

Sind im IwanCardoLog keine Fehler vorhanden, so können Sie per ITC mit dem Befehl show server, schauen, ob unter dem Eintrag LogRecords failed Einträge stehen.

itc_monitor.png

Falls dies der Fall ist, rufen Sie den Befehl show logdb auf. Es wird Ihnen die Lage der LogDatei im Dateisystem angezeigt. Benennen Sie diese Logdatei im Dateisystem um.

ab Version 3.8.2

Die Konfiguration der Mailserver Einstellungen im cardo Monitor wurde erweitert. Es kann nun Port, Login, SSL etc. mit eingestellt werden.

Statt dem Element MailServer kann nun MailServerConfig verwendet werden.

x.y.de
25 true user
pwd

....

Erweiterte Intervalldefinition

Der Ausführungsintervall eines Tasks ergibt sich aus dem Grundtakt definiert in der Konfigurationsdatei des CardoMonitorServices und, wenn vom Programmierer vorgesehen, einem Konfigurationsdialog für einen genauer einstellbaren Ausführungsintervall. Ist dieser Konfigurationsdialog nicht vorgesehen, gibt nur der Grundtakt den Ausführungsintervall vor.

Der Dialog für die Erweiterte Intervalldefinition bietet folgende Möglichkeiten:

Parameter_Schattenkopien.PNG

  • Allgemein:
    Deaktiviert: Mit dieser Einstellung kann der Task vorübergehend deaktiviert werden und alle nachfolgenden Einstellungen werden so lange ignoriert.
  • Wann:
    Erste Ausführung: Gibt optional das Datum für die 1. Ausführung an.
    Stunde des Tages: Gibt optional die Tagestunde im 24-Stunden Format an, in der der Task ausgeführt werden soll. (0-23).
    Interval in Tagen oder...: Optional - Der Intervall in Tagen berechnet ausgehend von "Startdate" oder wenn kein Startdate definiert ist, ausgehend vom Zeitpunkt des letzten Exportvorganges. Hinweis: Wird ignoriert, wenn Wochentag eingestellt ist.
    ...Wochentage: Gibt optional die Wochentage an, an denen dieser Task ausgeführt werden soll. Hinweis: Wochentag schließt sich mit Intervall aus und wird bevorzugt verwendet.
    ...Abstand zur letzten Aktion: Wenn kein Intervall und keine Wochentage angegeben sind, dann bestimmt diese Einstellung den Takt, mit dem der Task ausgeführt wird.
    Hinweis: Bitte beachten Sie, dass der eigentliche Taktgeber im Hintergrund der Monitoring-Dienst ist.
    Mindest-Abstands-Intervalle, die kleiner als die Taktung des Monitor-Dienstes sind, haben keine praktische Relevanz.
    Erhöhen Sie ggf. die Frenquenz der Aufrufe im Monitoring-Dienst, wenn sehr kleine Zeitabstände für die Task-Ausführung benötigt werden.
Problemlösungen

Problem:

Ein Task wurde korrekt definiert, wird aber nicht im angegebenen Intervall sonder scheinbar sporadisch ausgeführt.

Mögliche Ursache(n):

Zwei cardo-Instanzen auf unterschiedlichen Servern nutzen die selbe cardo-Datenbank (z.B. wenn ein Server migriert wurde und die alte Instanz parallel noch läuft). Dann konkurrieren zwei Monitorinstanzen um die Tasks und jeweils nur eine führt den Task aus.

Lösung: Deaktivieren Sie eine der beiden Monitor-Instanzen