<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="scheduler_job_documentation.xsl"?>
<description xmlns="http://www.sos-berlin.com/schema/scheduler_job_documentation_v1.0" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sos-berlin.com/schema/scheduler_job_documentation_v1.0 http://www.sos-berlin.com/schema/scheduler_job_documentation_v1.0.xsd">
  <job name="JobSchedulerMonitorMessageJob" title="Check Job Scheduler log file and send status message to a Network Monitor, e.g. Nagios" order="yes" tasks="1">
    <script language="java" java_class="sos.stacks.monitor.JobSchedulerMonitorMessageJob" resource="3" />
  </job>
  <releases>
    <release id="1.1" created="2007-08-20" modified="2007-08-20">
      <title>Version 1.1</title>
      <author name="Mürüvet Öksüz" email="mueruevet.oeksuez@sos-berlin.com" />
      <note language="de">
        <div xmlns="http://www.w3.org/1999/xhtml">Ausschluss von Supervisor-Meldungen und konfigurierbaren Meldungen</div>
      </note>
      <note language="en">
        <div xmlns="http://www.w3.org/1999/xhtml">Exclusion of Supervisor messages and configurable Messages</div>
      </note>
    </release>
    <release id="1.0" created="2006-04-28" modified="2006-04-28">
      <title>Version 1.0</title>
      <author name="Andreas Püschel" email="andreas.pueschel@sos-berlin.com" />
      <note language="de">
        <div xmlns="http://www.w3.org/1999/xhtml">Initiale Auslieferung</div>
      </note>
      <note language="en">
        <div xmlns="http://www.w3.org/1999/xhtml">initial release</div>
      </note>
    </release>
  </releases>
  <resources>
    <file os="all" type="java" file="sos.scheduler.jar" id="1">
      <note language="de">
        <div xmlns="http://www.w3.org/1999/xhtml">Standard-Jobs der Auslieferung</div>
      </note>
      <note language="en">
        <div xmlns="http://www.w3.org/1999/xhtml">Standard jobs in distribution</div>
      </note>
    </file>
    <file os="all" type="java" file="sos.spooler.jar" id="2">
      <note language="de">
        <div xmlns="http://www.w3.org/1999/xhtml">Klasse Job_Impl</div>
      </note>
      <note language="en">
        <div xmlns="http://www.w3.org/1999/xhtml">Class Job_Impl</div>
      </note>
    </file>
    <file os="all" type="java" file="sos.stacks.jar" id="3">
      <note language="de">
        <div xmlns="http://www.w3.org/1999/xhtml">Standard-Stacks der Auslieferung</div>
      </note>
      <note language="en">
        <div xmlns="http://www.w3.org/1999/xhtml">Standard stacks in distribution</div>
      </note>
    </file>
    <file os="all" type="java" file="sos.util.jar" id="4">
      <note language="de">
        <div xmlns="http://www.w3.org/1999/xhtml">Klassen SOSFile, SOSDate</div>
      </note>
      <note language="en">
        <div xmlns="http://www.w3.org/1999/xhtml">Classes SOSFile, SOSDate</div>
      </note>
    </file>
    <file os="all" type="java" file="sos.xml.jar" id="5">
      <note language="de">
        <div xmlns="http://www.w3.org/1999/xhtml">Klasse SOSXMLXPath</div>
      </note>
      <note language="en">
        <div xmlns="http://www.w3.org/1999/xhtml">Class SOSXMLXPath</div>
      </note>
    </file>
  </resources>
  <configuration>
    <params id="job_parameter">
      <param name="type" default_value="status" required="true">
        <note language="de">
          <div xmlns="http://www.w3.org/1999/xhtml">
            Der Parameter bestimmt, ob Nachrichten an den Netzwerk Monitor gesendet oder zurückgesetzt werden:
            es werden die Typen
            <em>status</em>
            und
            <em>reset</em>
            unterstützt.
            <br clear="none" />
            <br clear="none" />
            <ul>
              <li>
                status
                <br clear="none" />
                <br clear="none" />
                Der übliche Typ, mit dem Nachrichten versendet werden.
              </li>
              <li>
                reset
                <br clear="none" />
                <br clear="none" />
                Dieser Typ dient zum Zurücksetzen von Meldungen. Im Normalfall 
                sendet dieser Job Warnungen und Fehler wiederholt. Sie können einen zweiten Job mit dieser
                Implementierung einrichten und mit dem Parameter
                <code>type</code>
                und dem Wert
                <em>reset</em>
                starten, um die Meldung von Fehlerzuständen bewusst zurückzusetzen.
              </li>
            </ul>
          </div>
        </note>
        <note language="en">
          <div xmlns="http://www.w3.org/1999/xhtml">
            This parameter specifies the message type that is sent to the Network Monitor:
            <em>status</em>
            and
            <em>reset</em>
            are supported message types.
            <br clear="none" />
            <br clear="none" />
            <ul>
              <li>
                status
                <br clear="none" />
                <br clear="none" />
                This is the type normally used to send messages.
              </li>
              <li>
                reset
                <br clear="none" />
                <br clear="none" />
                This type is used to reset messages. Normally 
                this job repeatedly sends warnings and errors. However, a second job could be set up with this
                implementation with the parameter
                <code>type</code>
                configured with the value
                <em>reset</em>
                in order to reset repeated sending of messages.
              </li>
            </ul>
          </div>
        </note>
      </param>
      <param name="persistent" default_value="true" required="false">
        <note language="de">
          <div xmlns="http://www.w3.org/1999/xhtml">
            Der Parameter bestimmt, ob Nachrichten über Warnungen und Fehler wiederholt gesendet werden sollen.
            Dies ist relevant, da andernfalls eine Meldung genau einmal gesendet wird und 
            an der Konsole des Netzwerk Monitors ein vorheriger
            Fehlerzustand nur für kurze Dauer sichtbar ist.
          </div>
        </note>
        <note language="en">
          <div xmlns="http://www.w3.org/1999/xhtml">
            This parameter specifies whether messages with warnings and errors should be sent repeatedly.
            If this parameter is set to
            <code>false</code>
            then all messages are just sent once
            and will show up only for a short period in the Network Monitor console.
          </div>
        </note>
      </param>
      <param name="maximum_reports" required="false">
        <note language="de">
          <div xmlns="http://www.w3.org/1999/xhtml">
            Der Parameter bestimmt die maximale Anzahl, die Nachrichten
            an einen Network Monitor gesendet werden.
            <br/><br/>
            Per Voreinstellung werden Nachrichten beliebig oft wiederholt gesendet.
          </div>
        </note>
        <note language="en">
          <div xmlns="http://www.w3.org/1999/xhtml">
            This parameter specifies the maximum number of times that messages should be sent to a Network Monitor.
            <br/><br/>
            By default messages are sent for an unlimited number of times.
          </div>
        </note>
      </param>
      <param name="maximum_lifetime" required="false">
        <note language="de">
          <div xmlns="http://www.w3.org/1999/xhtml">
            Der Parameter legt die maximale
            Lebensdauer eines Fehlers oder einer Warnung für die Benachrichtigung fest. 
            Wird die hier zugewiesene Dauer zwischen dem
            Auftreten des Fehlers im Job Scheduler Protokoll und dem aktuellen Zeitpunkt des Versands an den
            Network Monitor überschritten, dann wird die Meldung nicht mehr gesendet.
            <br/><br/>
            Folgende Werte können für den Parameter angegeben werden:
            <br/><br/>
            <ul>
              <li><code>hh</code>
                Die Anzahl Stunden im 24-Stunden Format (zwei Ziffern).
              </li>
              <li><code>hh:mi</code>
                Die Anzahl Stunden und Minuten (jeweils zwei Ziffern).
              </li>
              <li><code>hh:mi:ss</code>
                Die Anzahl Stunden, Minuten und Sekunden (jeweils zwei Ziffern).
              </li>
            </ul>
            <br/>
            Per Voreinstellung werden Nachrichten beliebig lange wiederholt gesendet.
          </div>
        </note>
        <note language="en">
          <div xmlns="http://www.w3.org/1999/xhtml">
            This parameter specifies the maximum
            lifetime of an error or warning for notification. 
            Should the specified duration between the occurrance of an error
            or warning in the Job Scheduler log file and the current point in time at which it is reported
            to the Network Monitor be exceeded, then this error or warning will be cleared.
            <br/><br/>
            Values for this parameter could be specified as
            <br/><br/>
            <ul>
              <li><code>hh</code>
                The number of hours in 24 hour format (two digits).
              </li>
              <li><code>hh:mi</code>
                The number of hours and minutes (two digits each).
              </li>
              <li><code>hh:mi:ss</code>
                The number of hours, minutes and seconds (two digits each).
              </li>
            </ul>
            <br/>
            By default messages are sent for an unlimited duration.
          </div>
        </note>
      </param>
      <param name="exclude_messages" required="false">
        <note language="de">
          <div xmlns="http://www.w3.org/1999/xhtml">
            Der Parameter bestimmt Zeichenfolgen, z.B. Meldungsnummern,
            für die keine Nachrichten an einen Network Monitor gesendet werden.
            Protokollzeilen, die diese Zeichenfolge enthalten, werden ignoriert.
            <br/><br/>
            Sie geben eine Liste von Zeichenfolgen durch Semikolon getrennt an.
            <br/><br/>
            Sie können dadurch gezielt bestimmte Meldungen vom Versand ausschließen.
            Die einzelnen Meldungen find Sie in der 
            <a href="http://www.sos-berlin.com/doc/de/scheduler.doc/messages/index.xml" target="_blank">
            Liste der Meldungen des Job Schedulers</a>.
          </div>
        </note>
        <note language="en">
          <div xmlns="http://www.w3.org/1999/xhtml">
            This parameter specifies character sequences, e.g. Message IDs,
            for which no notification is sent to a Network Monitor.
            Any line in the Job Scheduler log file that contains this character sequence will be ignored.
            <br/><br/>
            Multiple character sequences are separated by semicolon.
            <br/><br/>
            With this parameter you can exclude specific messages from notification to the Network Monitor.
            See the detailed
            <a href="http://www.sos-berlin.com/doc/en/scheduler.doc/messages/index.xml" target="_blank">
            list of Job Scheduler Messages </a>.
          </div>
        </note>
      </param>
      <param name="log_messages" default_value="false" required="false">
        <note language="de">
          <div xmlns="http://www.w3.org/1999/xhtml">
            Der Parameter bestimmt, ob Meldungen, die an den Network Monitor gesendet werden,
            im Job Scheduler Protokoll ausgegeben werden sollen.
            <br/><br/>
            Solche Meldungen werden mit dem Meldungstyp <em>[info]</em> protokolliert.
          </div>
        </note>
        <note language="en">
          <div xmlns="http://www.w3.org/1999/xhtml">
            This parameter specifies if messages to a Network Monitor should be logged
            to the Job Scheduler log file. 
            <br/><br/>
            Such messages are logged with the message type <em>[info]</em>.
          </div>
        </note>
      </param>
      <param name="include_supervisor" default_value="false" required="false">
        <note language="de">
          <div xmlns="http://www.w3.org/1999/xhtml">
            Der Parameter bestimmt, ob Meldungen betreffend den Verbindungsaufbau zu
            einem überwachenden Job Scheduler (Supervisor) an einen Network Monitor gesendet werden.
            <br/><br/>
            Im Normalfall richten Sie für den Supervisor Job Scheduler einen separaten
            Überwachungs-Service im Network Monitor ein, der bemerkt, ob der Supervisor aktiv ist.
            Wenn ein überwachter Job Scheduler einen Verbindungsverlust zum Supervisor bemerkt,
            wird dies als Warnung im Job Scheduler Protokoll hinterlegt. Dieser Job schließt
            solche Meldungen vom Versand an den Network Monitor aus, damit dort keine doppelten
            Meldungen durch mehrere überwachte Job Scheduler entstehen.
            <br/><br/>
            Per Voreinstellung werden keine Nachrichten bzgl. eines Supervisor Job Schedulers gesendet.
          </div>
        </note>
        <note language="en">
          <div xmlns="http://www.w3.org/1999/xhtml">
            This parameter specifies if messages concerning connection loss to a 
            monitoring Job Scheduler (Supervisor) should be sent to a Network Monitor.
            <br/><br/>
            Usually you would configure a separate service in your Network Monitor
            to check the Supervisor Job Scheduler. Should a Job Scheduler notice 
            a connection loss to the Supervisor Job Scheduler then it would create
            a respective warning in the Job Scheduler log file. This job excludes
            such messages from notification to the Network Monitor, in order to 
            avoid duplicate messages being sent by multiple Job Schedulers.
            <br/><br/>
            By default no messages concerning a Supervisor Job Scheduler are sent to a Network Monitor.
          </div>
        </note>
      </param>
      <param name="monitor_job_name" required="false">
        <note language="de">
          <div xmlns="http://www.w3.org/1999/xhtml">
            Dieser Parameter schränkt ein, für welche Jobs Fehler und Warnungen
            aus dem Protokoll berichtet werden.
            <br/><br/>
            Sie können mehrere Job-Namen wie in <code>&lt;job name="..."&gt;</code> durch Semikolon getrennt angeben.
          </div>
        </note>
        <note language="en">
          <div xmlns="http://www.w3.org/1999/xhtml">
            This parameter restricts the jobs for which warnings and errors are reported from
            the Job Scheduler log file.
            <br/><br/>
            You could specify multiple job names as in <code>&lt;job name="..."&gt;</code> separated by semicolon.
          </div>
        </note>
      </param>
      <param name="monitor_job_chain_name" required="false">
        <note language="de">
          <div xmlns="http://www.w3.org/1999/xhtml">
            Dieser Parameter schränkt ein, für welche Job-Ketten und Aufträge Fehler und Warnungen
            aus dem Protokoll berichtet werden.
            <br/><br/>
            Sie können mehrere Job-Ketten wie in <code>&lt;job_chain name="..."&gt;</code> durch Semikolon getrennt angeben.
            Fehler und Warnungen aller Aufträge für diese Job-Ketten werden automatisch an den Network Monitor berichtet.
          </div>
        </note>
        <note language="en">
          <div xmlns="http://www.w3.org/1999/xhtml">
            This parameter restricts the job chains for which warnings and errors are reported from
            the Job Scheduler log file.
            <br/><br/>
            You could specify multiple job chain names as in <code>&lt;job_chain name="..."&gt;</code> separated by semicolon.
            Warnings and errors of orders for these job chains are included in the report to the Network Monitor.
          </div>
        </note>
      </param>
    </params>
    <payload>
      <note language="de">
        <div xmlns="http://www.w3.org/1999/xhtml">
          Die Parameter in der Sektion
          <em>Job Parameter</em>
          können bzw. müssen bei Verwendung eines
          auftragsgesteuerten Jobs in der Nutzlast (payload) des Auftrags übergeben werden.
        </div>
      </note>
      <note language="en">
        <div xmlns="http://www.w3.org/1999/xhtml">
          The parameters given in the
          <em>job parameters</em>
          section should be specified in the order's payload
          if this job is order driven.
        </div>
      </note>
      <params id="payload_parameter" reference="job_parameter" />
    </payload>
  </configuration>
  <documentation language="de">
    <div xmlns="http://www.w3.org/1999/xhtml">
      <font style="font-weight:normal">
      <b>Verwendung</b>
      <br/>
      Der Job wird als standalone Lösung eingesetzt, um die Protokolldateien des Job Schedulers
      zu prüfen und ggf. Statusnachrichten an einen Network Monitor zu senden. Nagios ist eine
      Open Source Lösung für das Network Monitoring und ist unter http://www.nagios.org verfügbar.
      <br clear="none" />
      <br clear="none" />
      Dieser Job prüft die Verarbeitungsergebnisse aller Jobs, die vom Job Scheduler ausgeführt wurden,
      und meldet sie an den Network Monitor. Sie verwenden daher
      <br/><br/>
      <ul>
        <li>Benachrichtigungen des Network Monitor per eMail, SMS etc.<br/>
          als zentrale Überwachungslösung. 
        </li>
        <li>Benachrichtigungen des Job Schedulers per eMail<br/>
          zur detaillierten Analyse von Problemen, d.h. jeder Nachricht liegen 
          eine oder mehrere Protokolldateien bei.
        </li>
      </ul> 
      Sie müssen nicht notwendigerweise Ihre eMails prüfen,
      um festzustellen, ob ein Job-Fehler aufgetreten ist, sondern erhalten an der Konsole
      des Network Monitors Warnungen und Fehler angezeigt.
      <br clear="none" />
      <br clear="none" />
      Es wird keine Client-Installation eines Network Monitors vorausgesetzt, da Statusnachrichten per HTTP-Protokoll
      von einem Web Service des Job Schedulers durch den Network Monitor abgerufen werden können.
      <br clear="none" />
      <br clear="none" />
      Zum Abrufen von Statusinformationen wird ein Nagios-Plugin bereitgestellt, das vom
      Network Monitor in regelmäßigen Intervallen gestartet wird. Das Plugin sendet einen
      SOAP-Request, mit dem ein Auftrag in einer Job-Kette für diesen Job erzeugt wird.
      Der Job liefert ggf. Warnungen und Fehler als XML Nutzlast (payload) des Auftrags zurück.
      <br clear="none" />
      <br clear="none" />
      Ergänzend zu dieser Lösung können Sie den Job Scheduler überwachen,
      indem Sie wiederholte HTTP polling requests im Network Monitor konfigurieren.
      Der Job Scheduler enthält einen eingebauten Web Server,
      der über die Adresse http://<em>host</em>:<em>port</em>angesprochen wird.
      <br/><br/>
      <b>Benachrichtigungen erzeugen</b>
      <br/>
      Der Wechsel von Protokolldateien (log rotation) wird von diesem Job berücksichtigt.
      Die Performance verschlechtert sich nicht bei Verwendung großer Protokolldateien,
      da der Job mit Dateizeigern nur die Einträge verarbeitet, die im Protokoll zwischen
      zwei Job-Starts hinzugefügt wurden.
      <br clear="none" />
      <br clear="none" />
      Der Job speichert Nachrichten und versendet sie wiederholt, damit in der Konsole des Netzwerk Monitors
      alle Warnungen und Fehler bei wiederholtem Nachrichtenversand erhalten bleiben, selbst wenn
      Fehler oder Warnungen nur einmal aufgetreten sind:
      <br/><br/>
      <ul>
        <li>
          Ein Network Monitor prüft die Verfügbarkeit eines Dienses in Wiederholungsintervallen:
          würden Warnungen und Fehler nur einmal an den Network Monitor gesendet werden,
          dann würde die Monitor Konsole kritische Fehler nur über einen kurzen Zeitraum hinweg anzeigen
          und das Ausbleiben einer Wiederholung würde als Wiederherstellung aus der Fehlersituation (recovery) interpretiert;
          in diesem Fall sehen Sie eine grüne Ampel in der Monitor Konsole obwohl Fehler oder Warnungen aufgetreten sind.
        </li>
        <li>
          Dienste wie FTP können auf höchst einfache Weise geprüft werden: der Dienst funktioniert entweder, d.h. er antwortet,
          oder eben nicht. Bei Jobs liegt das etwas anders, sie erzeugen Warnungen oder Fehler oft nur einmal und
          sind häufig nicht für automatische Job-Wiederholung konfiguriert.
        </li>
      </ul>
      <br/>
      <b>Benachrichtigungen einschränken</b>
      <br/>
      Um einzuschränken, dass Ihr Network Monitor in zuvielen Wiederholungen dieselben Nachrichten sendet, 
      stehen Ihnen folgende Optionen zur Verfügung:
      <br/><br/>
      <ul>
        <li>
          Automatisch: Wird derselbe standalone Job wiederholt gestartet ohne Fehler oder Warnungen zu erzeugen,
          dann wird er aus der Liste der Benachrichtigungen an den Network Monitor entfernt.
        </li>
        <li>
          Automatisch: Das gilt in gleicher Weise für Aufträge mit dezidierter Order ID. Aufträge mit 
          dynamischer ID, d.i. solche für die keine ID in der Konfiguration angegeben wurde, sondern für
          die der Job Scheduler eine ID aus einer Sequenz generiert, können von diesem Job nicht als
          fehlerfrei wiederholt erkannt werden, da es keine Möglichkeit gibt die Gleichheit zweier Aufträge
          zu erkennen. Dem liegt die Idee zugrunde, dass Probleme bei auftragsgesteuerten Jobs häufig
          auf Aufträge (und deren Parametrisierung) zurückzuführen sind und nicht zwangsläufig der
          Job-Implementierung. D.h. ein Auftrag kann eine Job-Kette fehlerhaft durchlaufen, ein anderer
          Auftrag durchläuft die Job-Kette ohne Fehler.
        </li>
        <li>
          Konfigurierbar: Der Parameter <code>persistent</code> dieses Jobs kann auf den Wert <em>false</em>
          eingestellt werden, um jede Meldung nur einmal zu versenden.
        </li>
        <li>
          Konfigurierbar: Der Parameter <code>maximum_reports</code> dieses Jobs kann auf die maximale
          Anzahl von Versuchen eingestellt werden, für die Meldung an den Network Monitor gesendet wird.
        </li>
        <li>
          Konfigurierbar: Der Parameter <code>maximum_lifetime</code> dieses Jobs kann auf die maximale
          Lebenszeit eines Fehlers oder einer Warnung eingestellt werden. Wird die konfigurierte Dauer zwischen dem
          Auftreten des Fehlers im Job Scheduler Protokoll und dem aktuellen Zeitpunkt des Versands an den
          Network Monitor überschritten, dann wird die Meldung nicht mehr gesendet.
        </li>
        <li>
          Konfigurierbar: Der Parameter <code>monitor_job_name</code> kann verwendet werden, um 
          den Bericht über Warnungen und Fehler auf die Liste der angegebenen Jobs einzuschränken.
        </li>
        <li>
          Konfigurierbar: Der Parameter <code>monitor_job_chain_name</code> kann eingesetzt werden,
          um den Bericht über Warnungen und Fehler auf die Liste der angegebenen Job-Ketten und 
          deren Aufträge einzuschränken.
        </li>
        <li>
          Manuell: Ein Administrator kann Warnungen und Fehler zurücksetzen: 
          ein zweiter Job kann ausgehend von derselben Implementierung eingerichtet werden,
          der den Parameter <code>type</code> mit dem Wert <em>reset</em> verwendet.
          Wird dieser Job gestartet, dann werden alle aufgelaufenen Warnungen und Fehler nicht mehr gesendet.
        </li>
        <li>
          Manuell: Ein Administrator kann das Plug-in <code>check_scheduler.pl -r</code>
          an der Kommandozeile verwenden, um Meldungen zurückzusetzen. Dies wird detaillierter
          im Bereich <em>Lösungen</em> der Job Scheduler Web-Seite erläutert.
        </li>
      </ul>
    </font>
    </div>
  </documentation>
  <documentation language="en">
    <div xmlns="http://www.w3.org/1999/xhtml">
    <font style="font-weight:normal">
      <b>Usage</b>
      <br/>
      This job is used as a standalone solution for checking Job Scheduler log files for errors and warnings
      and to send appropriate status messages to a Network Monitor. Nagios is an open source
      network monitoring solution that is available at http://www.nagios.org.
      <br clear="none" />
      <br clear="none" />
      This job checks the results of all jobs
      that have been executed by the Job Scheduler and reports their status messages to a monitor.
      You would therefore use
      <br/><br/>
      <ul>
        <li>Network Monitor notification by e-mail, sms etc.<br/>
          as an alerting solution. 
        </li>
        <li>Job Scheduler notification by e-mail<br/>
          for detailed analysis of problems, i.e. log files are attached to these mails.
        </li>
      </ul> 
      This means that it is not necessary to check e-mails in order to see if a job
      error has occurred. 
      Instead, the Network Monitor interface is used to check for errors and warnings.
      <br/><br/>
      No Network Monitor client installation is required, as all status messages are requested from
      the Job Scheduler Web Service via HTTP.
      <br clear="none" />
      <br clear="none" />
      A Nagios plug-in is available that requests status messages from the Job Scheduler. 
      This plug-in is started at regular intervals by the Network Monitor and 
      sends a SOAP-Request, which in turn creates an order in a job chain. 
      This job returns warnings and errors as the order XML payload.
      <br clear="none" />
      <br clear="none" />
      In addition to this solution, a Job Scheduler could be monitored by 
      configuring repeated HTTP polling requests in the Network Monitor.
      This would be done by using the Job Scheduler's built-in web server,
      that can be addressed by http://<em>host</em>:<em>port</em>
      <br/><br/>
      <b>Mechanisms to report messages</b>
      <br/>
      The implementation of this job takes account of the Job Scheduler's log file rotation.
      No performance penalties are imposed by large log files as this job uses
      file pointers to read entries that have been appended to the Job Scheduler log file
      between two job starts.
      <br clear="none" />
      <br clear="none" />
      This job keeps track of warnings and errors and sends them repeatedly.
      This ensures that warnings and errors are retained in the Network Monitor interface, 
      despite the fact that an error or warning occurred just once:
      <br/><br/>
      <ul>
        <li>
      		Keep in mind that a Network Monitor is used to check the availability of services in repeated intervals: 
      		If errors and warnings were sent just once to the Network Monitor then the monitor console would show 
      		critical errors only for a short period and if the message were not repeatedly sent 
      		then the monitor console would interpret this as a recovery event and therefore 
      		show a green traffic light which is not correct.      
        </li>
        <li>
          For services as FTP a simple availability check is ok: The service either works, i.e. responds, or it does not. 
          For jobs this is different, they usually create an error or warning just once and depending on the configuration 
          they are not necessarily repeated in case of errors. 
        </li>
      </ul>
      <br/>
      <b>Measures to restrict messages</b>
      <br/>
      To avoid spam from your Network Monitor sending repeatedly the same alerts, the following options are available:
      <br/><br/>
      <ul>
        <li>
          Automatically: Should the same standalone job be repeated without errors or warnings 
          then it is removed from the list of events that are reported to the Network Monitor.       
        </li>
        <li>
          Automatically: The same applies to orders with a distinct order ID. Orders with dynamic IDs, 
          i.e. for which no order ID was provided by the configuration but the Job Scheduler 
          had to fetch an ID from a sequence, cannot be recovered by this job as there is no means 
          to decide if it's the same order or not. The idea behind this is that problems are due 
          to orders (and their parameterization), not due to jobs, i.e. though one order creates an error, 
          other orders could run smoothly.        
        </li>
        <li>
          Configurable: The <code>persistent</code> parameter can be set to <em>false</em>,
          causing every message only to be sent once.
        </li>
        <li>
          Configurable: The <code>maximum_reports</code> parameter can be set to the maximum
          number of times that a message should be sent.
        </li>
        <li>
          Configurable: The <code>maximum_lifetime</code> parameter could be set to the maximum
          lifetime of an error or warning. Should the configured duration between the occurrance of an error
          or warning in the Job Scheduler log file and the current point in time at which it is reported
          to the Network Monitor be exceeded, then this error or warning will not be sent.
        </li>
        <li>
          Configurable: The <code>monitor_job_name</code> parameter can be used to restrict
          warnings and errors to the specified list of jobs.
        </li>
        <li>
          Configurable: The <code>monitor_job_chain_name</code> parameter can be used to restrict
          warnings and errors to the specified list of job chains and their respective orders.
        </li>
        <li>
          Manually: An administrator could reset warnings and error messages: a second job could be set up to do this 
          using this implementation with the <code>type</code>
          parameter configured with the value <em>reset</em>.
          Starting this second job would reset all warnings and error messages.
        </li>
        <li>
          Manually: An administrator could use the plug-in <code>check_scheduler.pl -r</code>
          from the command line in order to reset messages. This is explained in more detail in the
          solutions section of the Job Scheduler web site.
        </li>
      </ul>
      </font>
    </div>
  </documentation>
</description>

