Click or drag to resize

Konfiguration und Parameter

Das Verhalten von Vishnu kann über diverse Parameter eingestellt werden. Diese Parameter können beim Aufruf von Vishnu über die Kommandozeile mitgegeben werden, sie können aber auch über die Vishnu.exe.config.user, das Environment, oder die Registry eingestellt werden. Vishnu leitet dabei auch ihm unbekannte "anonyme" Parameter an Jobs und Checker weiter, sofern sie an den Vishnu bekannten Stellen abgelegt wurden.

Vishnu-Jobs und deren Elemente wie zum Beispiel Checker können über verschiedene Parameter in der JobDescription.xml gesteuert werden. Eine Liste von Parametereinstellungen für Jobs und deren Elemente finden Sie weiter unten in diesem Kapitel bei Job Parameter.

Vishnu Parameter

Vishnu-Parameter können, wie eingangs schon erwähnt, auf verschiedenen Wegen eingestellt werden. In welcher Form das zu erfolgen hat, sehen Sie beispielhaft in der nachfolgenden Auflistung.

  • Kommandozeile

    Parameterübergaben an Vishnu über die Kommandozeile folgen immer dem Schema Vishnu [anonyme Parameter] [Vishnu-Parameter]. Die eckigen Klammern werden nicht mit eingegeben. Sie symbolisieren, dass die jeweiligen Parameter optonal sind, d.h. nicht vorkommen müssen.

    Beispiel: Vishnu "irgendwas" -job="DemoJobs\CheckAll"

    Hinweis  Hinweis

    Es gibt zusätzlich noch einen fortgeschrittenen Weg zur Übergabe von anonymen Parametern. Sie können Ihre Parameter über eigene Parameter-Reader einsteuern. Vishnu berücksichtigt bei der Parametersuche vorrangig einen User-eigenen Parameter-Reader, dessen Pfad über den Parameter UserParameterReaderPath konfiguriert wurde.

  • Vishnu.exe.config.user

    Vishnu.exe.config.user ist die zentrale Konfigurationsdatei für Ihre eigenen Vishnu-Einstellungen. Hier finden Sie einige voreingestellte Parameter. Sie können diese ändern, aber auch eigene hinzufügen. Sie finden die Vishnu.exe.config.user nach dem ersten Start von Vishnu im Pfad %LOCALAPPDATA%\Vishnu\Vishnu.exe.config.user, wobei LOCALAPPDATA eine Einstellung der Windows-Umgebung (Environment) ist und üblicherweise auf C:\Users\<Benutzer>\AppData\Local verweist.

    Beispiel: <add key="Job" value="DemoJobs\CheckAll">

    Hinweis  Hinweis

    Die Reihenfolge der Parameterangaben ist in der Vishnu.exe.config.user unerheblich. Sie müssen sich nur innerhalb von <appSettings> und </appSettings> befinden.

  • Environment (Windows Umgebung)

    Beispiel: SET Job="DemoJobs\CheckAll"

  • Registry: Vishnu selbst nutzt die Registry nicht, unterstützt aber die Ablage von Parametereinstellungen im Pfad RegistryBasePath. RegistryBasePath ist ein konfigurierbarer Parameter und per Default auf den Registry-Key HKEY_LOCAL_MACHINE\SOFTWARE\Vishnu voreingestellt. Vishnu sucht unterhalb von RegistryBasePath nach String-Werten.

    Beispiel: Key HKEY_LOCAL_MACHINE\SOFTWARE\Vishnu\Job mit Wert "DemoJobs\CheckAll"

In der folgenden Liste haben wir für Sie eine Auswahl wesentlicher Vishnu-Parameter zusammengestellt.

Hinweis  Hinweis

Eine vollständige Liste aller Vishnu-Parameter finden Sie unter Vishnu.InterchangeAppSettings.

  • AppConfigUser

    Über den Parameter AppConfigUser wird der Pfad zur Datei Vishnu.exe.config.user festgelegt. Diese Einstellung sollte normalerweise nicht geändert werden müssen.

    Achtung  Achtung

    Falls Sie doch einmal die Notwendigkeit für eine Änderung von AppConfigUser sehen, denken Sie daran, dass dieser Parameter nicht in der Vishnu.exe.config.user selbst definiert werden kann.

  • Job

    Über diesen Parameter kann der Pfad zum Job oder zu einem Zip-Archiv, welches das Job-Verzeichnis enthält (dann ohne ".zip"-Extension), festgelegt werden. Der Pfad kann absolut oder relativ zum übergeordneten Job bzw. zum Vishnu-Installationsverzeichnis angegeben werden. Gültige Pfadangaben sind z.B. DemoJobs\CheckAll oder auch c:\Users\%UserName%\AppData\Local\Apps\Vishnu\CheckAll.

  • DemoModus

    Vishnu wird bei Erstinstallation im Demo-Modus mit einem Demo-Job gestartet. Dies ist in der Vishnu.exe.config.user so voreingestellt. Um die Anzeige "-DEMO-" im Vishnu-Fenster loszuwerden, können Sie DemoModus auf "false" setzen oder den Parameter ganz herausnehmen.

  • Autostart

    Wird Autostart auf "true" eingestellt, beginnt Vishnu nach dem Programmstart direkt mit der Verarbeitung der Jobs. Dies ist auch die Voreinstellung.

  • SingleInstance

    Dieser Parameter steht in der Grundeinstellung auf "False". Das bedeutet, dass Vishnu mehrmals gleichzeitig auf einem Rechner gestartet werden kann. Wenn Sie wollen, dass Vishnu nur einmal auf einem Rechner starten kann, setzen Sie diesen Parameter auf "True". Ein weiterer Startversuch holt dann nur noch das schon laufende Vishnu-Programm (Instanz) in den Vordergrund.

  • WorkingDirectory

    KillWorkingDirectoryAtShutdown

    Das WorkingDirectory ist das Vishnu-Arbeitsverzeichnis. Hier legt Vishnu Logfiles und Momentaufnahmen seines Zustandes (Snapshots) ab, wenn für diese keine anderen Ablageverzeichnisse definiert wurden. Die Default-Einstellung ist %TempDirectory%\Vishnu.%MainJobName%.

    Per Default lässt Vishnu das WorkingDirectory am Ende der Verarbeitung stehen. Wenn Sie wollen, dass Vishnu am Ende der Verarbeitung wieder aufräumt, d.h. das Arbeitsverzeichnis wieder löscht, können Sie den Parameter KillWorkingDirectoryAtShutdown auf "true" stellen.

    Hinweis  Hinweis

    Selbstverständlich löscht Vishnu nur Verzeichnisse, die von Vishnu vorher auch angelegt wurden.

  • DebugFile

    Das DebugFile ist die Vishnu-Log-Datei. Hier hinein schreibt Vishnu alle Verarbeitungsfehler und ggf. auch alle seine Konfigurationsparameter mit Quellen und plus eine Liste aller geladenen Assemblies.

    Auch alle Ausgaben der eventuell von Ihnen in der JobDescription.xml definierten Logger landen im DebugFile.

    Die Vishnu-Log-Datei ist per Default %TempDirectory%\Vishnu.%MainJobName%\Vishnu.log.

    Hinweis  Hinweis

    Nähere Informationen zu Loggern finden Sie unter Vishnu Akteure.

  • DumpAppSettings

    DumpLoadedAssemblies

    Diese beiden Parameter können, wie schon oben angesprochen, zur Fehlersuche genutzt werden. bedeutet jeweils in die Log-Datei schreiben, bei wird nichts geloggt. Der Default ist für beide Parameter .

  • RegistryBasePath

    Vishnu sucht in der Windows-Registry unterhalb von RegistryBasePath nach Parametern (Key) und ihren Werten (Value). Default-Einstellung ist HKEY_LOCAL_MACHINE\SOFTWARE\Vishnu.

  • UserAssemblyDirectory

    UserParameterReaderPath

    Über den Parameter UserAssemblyDirectory kann ein Verzeichnis gesetzt werden, in dem Vishnu zusätzlich zu den jeweweiligen Job-Verzeichnissen nach Ihren eingenen Checker-DLLs, eigenen UserControls oder auch Ihrem eigenen Parameter-Reader sucht. Der Default-Name für dieses Verzeichnis ist UserAssemblies und der zugehörige Pfad wird von Vishnu in der Regel schon so belegt, dass man den Parameter UserAssemblyDirectory nicht selbst setzen muss. Ein eventueller eigener Parameter-Reader muss allerdings zusätzlich über den Parameter UserParameterReaderPath entsprechend eingestellt worden sein, zum Beispiel auf "%UserAssemblyDirectory%\DemoParameterProvider.dll".

  • SnapshotDirectory

    Über den Parameter SnapshotDirectory kann ein Verzeichnis gesetzt werden, in dem Vishnu nach abgespeicherten Momentaufnahmen von Vishnu-Jobs sucht. Das SnapshotDirectory ist immer relativ zum aktuellen Job-Verzeichnis und per Default auf "..\Snapshots" eingestellt.

    Hinweis  Hinweis

    Wofür Snapshots genau gut sind und wie sie konfiguriert werden, wird in einem eigenen Kapitel Snapshots beschrieben.

Hinweis  Hinweis

Die Parameterübergabe erfolgt für alle Parametereinstellungen gleich. Eine entsprechende Beschreibung finden Sie am Anfang dieses Abschnitts.

Job Parameter

Das oberste Element einer Vishnu-Verarbeitung ist immer der Job. Wie der Job auszusehen hat und was er tun soll, wird in einer Datei JobDescription.xml festgelegt.

Jobs können beliebig geschachtelt werden. Wir werden dann zukünftig von (Haupt-)Job und SubJobs sprechen, obwohl Vishnu alle Jobs gleich behandelt, zumal ein SubJob ja wiederum "Haupt"-Job für weitere SubJobs sein kann.

Ein Beispiel für eine funktionierende JobDescription.xml finden Sie unter Inline SubJobs.

Hinweis  Hinweis

In der JobDescription.xml können auch für Vishnu unbekannte ("anonyme") Anwender-Parameter für die Übergabe an Ihre Checker oder Worker wieder aufgelöst werden. Wozu das gut ist und wie das genau funktioniert, können Sie im Kapitel Vishnu Parameter-Ersetzung nachlesen.

Die nachfolgende Liste enthält alle wesentlichen Parameter, die innerhalb einer JobDescription.xml gesetzt werden können. Dies betrifft nicht nur Jobs sondern auch alle Job-Elemente wie Checker, Trigger, Worker, etc.

Job-Parameter

Strukturansicht

  • LogicalName

    Alle Jobs, Checker, SubJobs, Snapshots und benannte Trigger und Logger haben einen LogicalName, über den sie von Vishnu verarbeitet werden können. Außerdem wird dieser LogicalName bei Jobs, Snapshots und Checkern von Vishnu auf dem Bildschirm angezeigt.

    Beispiel: <LogicalName>Check All</LogicalName>

    Achtung  Achtung

    Dieser LogicalName muss gleich dem Namen sein, unter dem der Knoten in der LogicalExpression (siehe unten) angesprochen wird, sonst kann Vishnu die Zuordnung zur Laufzeit nicht auflösen. Denken Sie daran, wenn Sie einen LogicalName mal ändern wollen.

    Hinweis  Hinweis

    Wenn ein Job einen anderen als SubJob lädt, erhält der SubJob den LogicalName mit dem er im Haupt-Job benannt wird. Vishnu sorgt ggf. intern für die Anpassung von Referenzen im SubJob.

  • LogicalExpression

    Alle Jobs und SubJobs werden über eine LogicalExpression beschrieben. Über die LogicalExpression legen Sie fest, wie die Beziehungen der Knoten des Jobs zueinander sind und welche Struktur der Job letzten Endes auf dem Bildschirm hat.

    Hinweis  Hinweis

    LogicalExpressions können auf zwei leicht unterschiedliche Arten formuliert werden, siehe folgendes Beispiel:

    1. <LogicalExpression>(Google AND Heise) AND (Local OR Local_Backup)</LogicalExpression>

    2. <LogicalExpression><![CDATA[(Google AND Heise) AND (Local OR Local_Backup)]]></LogicalExpression>

    Die zweite Form, in der der logische Ausdruck noch zusätzlich in "<![CDATA[" und "]]>" eingeschlossen ist, hat den Vorteil, dass im logischen Ausdruck auch Sonderzeichen vorkommen dürfen. Das ermöglicht, Operatoren in ihrer Kurzform verwenden zu können. Details dazu werden im Kapitel Vishnu Logik erklärt.

  • PhysicalPath

    Jeder Job wird über seinen PhysicalPath gefunden. Der PhysicalPath gehört nicht zur Job-Definition selbst, sondern muss außerhalb der JobDescription.xml im Moment des Ladens festgelegt sein. Dies wird bei einem Haupt-Job über den Vishnu-Parameter Job gesteuert, für SubJobs muss der PhysicalPath in der JobDescription.xml des ladenden, übergeordneten Jobs gesetzt werden.

    Checker,Trigger,Logger, Worker und ValueModifier werden ebenfalls über den PhysicalPath geladen, sofern sie nicht einen anderen Knoten oder TreeEvents referenzieren (siehe hierzu auch benannte Trigger und Logger und TreeEvents).

    Beispiel: <PhysicalPath>..\SubJob</PhysicalPath>

  • Parameters

    Der Abschnitt Parameters dient dazu, Übergabeparameter für Ihre eigenen Checker, Trigger, Worker oder Logger in der JobDescription.xml zu hinterlegen. Vishnu reicht diese von Ihnen formulierten Parameter dann später beim Aufruf Ihrer eigenen Checker, Trigger, Worker oder Logger an diese weiter.

    Die Form und Syntax der übergebenen Parameter ist nicht festgelegt. Sie können hierüber völlig frei bestimmen. Entscheidend ist nur, dass Ihr eigenes Element (DLL) das Format versteht, welches Sie in der JobDescription.xml hinterlegt haben.

    Hinweis  Hinweis

    Wie auch bei LogicalExpression können Parameter im erweiterten Format übergeben werden, wie zum Beispiel Folgende bei einem Worker: <Parameters><![CDATA[Fehler|%Timestamp%: %MachineName% MyChecker %Event% von %Source% in %Sender%]]></Parameters>

  • Reference

    Über Reference wird in besonderen Fällen auf andere Vishnu-Elemente verwiesen.

    Der sicherlich häufigste Anwendungsfall findet sich bei ValueModifiern. Hier wird mithilfe von <Reference>Checkername</Reference> der Checker angegeben, dessen Result über den ValueModifier verändert werden soll. Beispiele hierzu finden Sie unter Vishnu Akteure und eigene ValueModifier.

    Eine weitere Anwendung findet sich bei Trigger- und Logger-Zuweisungen, welche vorher definierte Trigger und Logger referenzieren, siehe dazu auch benannte Trigger und Logger.

  • StartCollapsed

    Alle Jobs werden qua Grundeinstellung ausgeklappt dargestellt, d.h. Unterelemente wie z.B. Checker oder weitere Jobs sind erstmal sichtbar. Um dieses Verhalten zu ändern, können Sie StartCollapsed auf true setzen.

    Hinweis  Hinweis

    Noch weitergehende Möglichkeiten haben Sie durch das Abspeichern einer aktuellen Anordnung eines Vishnu-Trees zur Laufzeit, siehe Vishnu Steuerung. Die Darstellung ist übrigens auf jedem Arbeitsplatz individuell speicherbar.

  • ThreadLocked

    LockName

    Vishnu arbeitet hoch parallel, d.h. dass alle Elemente wie zum Beispiel Checker, Trigger, etc. gleichzeitig arbeiten können. Vishnu ist dafür von vornherein ausgelegt (threadsafe). Es kann aber sein, dass ein von Ihnen erstellter Checker-Typ Probleme bekommt, wenn mehrere gleichartige Checker in einem Tree konfiguriert sind und gleichzeitig laufen.

    Achtung  Achtung

    Die Fehler, die dann unter Umständen auftreten, können sehr unangenehm und kaum zu ermitteln sein.
    Setzen Sie in einer solchen Situation auf Job-Ebene oder auf Checker-Ebene den Schalter ThreadLocked auf true. Vishnu stellt dann sicher, dass derart gekennzeichnete Checker nacheinander und nicht gleichzeitig ausgeführt werden.
    Um verschiedene Checker-Typen dabei noch differenziert behandeln zu können, nutzen Sie das optionale Zusatzattribut Lockname.
    Hier ein Beispiel: <ThreadLocked LockName="ConcurrentSQL">true</ThreadLocked>

  • UserControlPath

    JobListUserControlPath

    NodeListUserControlPath

    SingleNodeUserControlPath

    ConstantNodeUserControlPath

    JobConnectorUserControlPath

    SnapshotUserControlPath

    Die hier zusammengefassten Einstellungen dienen alle zur Festlegung alternativer Darstellungen (Views) von Vishnu-Elementen. Mit ihrer Hilfe können Sie in der JobDescription.xml optional relative Pfade zu eigenen Views (DLLs) vorgeben.

    Der Parameter UserControlPath bezieht sich dabei nur auf das Element, bei dem er in der JobDescription.xml gesetzt wird. Die anderen Parameter können auf Job-Ebene gesetzt werden und gelten dann für alle untergeordneten Elemente des im Namen des Parameters enthaltenen Typs (JobList, NodeList, SingleNode, ConstantNode, JobConnector, Snapshot).
    Der Parameter SingleNodeUserControlPath bestmmt dabei auch das Aussehen von ValueModifiern und NodeConnectoren.

    Hinweis  Hinweis

    Siehe auch ein einfaches Beispiel und eigene Views.

Job
    LogicalName
    LogicalExpression
    PhysicalPath
    StartCollapsed
    ThreadLocked
        LockName
    JobTrigger
        Reference
        PhysicalPath
        Parameters
    JobSnapshotTrigger
        Parameters
        Reference
        PhysicalPath
    JobLogger
        Reference
        PhysicalPath
        Parameters
    UserControlPath
    JobListUserControlPath
    SnapshotUserControlPath
    NodeListUserControlPath
    JobConnectorUserControlPath
    SingleNodeUserControlPath
    ConstantNodeUserControlPath
    Checkers
        Checker
            LogicalName
            PhysicalPath
            Parameters
            IsMirror
            Trigger
                Reference
                PhysicalPath
                Parameters
            Logger
                Reference
                PhysicalPath
                Parameters
            UserControlPath
            SingleNodeUserControlPath
            ThreadLocked
                LockName
            IsGlobal
            CanRunDllPath
    ValueModifiers
        ValueModifier
            LogicalName
            Reference
            PhysicalPath
            Format
            Type
            IsGlobal
            UserControlPath
            SingleNodeUserControlPath
    Triggers
        Trigger
            LogicalName
            Reference
            PhysicalPath
            Parameters
    Loggers
        Logger
            LogicalName
            PhysicalPath
            Parameters
    Workers
        Worker
            LogicalExpression
            SubWorkers    
                SubWorker
                    PhysicalPath
                    Parameters
                    Trigger
                        Reference
                        PhysicalPath
                        Parameters
    SubJobs
        SubJob
            LogicalName
            PhysicalPath
            StartCollapsed
            (Rekursion Job)            
    Snapshots
        Snapshot
            LogicalName
            PhysicalPath
            StartCollapsed

siehe auch