Manuelle Installation von AG-VIP SQL Backend Dienst und AG-VIP SQL Job Scheduler

Martin Richter [Grutzeck Software GmbH]
20.04.2020 11:38

Hintergrund:

Mit der Installation der Dienste wird eine Standard Konfiguration vorgenommen.
Es kann aber hilfreich sein, die Dienste selber manuell zu konfigurieren. Insbesondere wenn mehrere Dienste zu unterschiedlichen Datenbanken auf einem Server laufen sollen (Möglich ab der Version 2.01.004). Durch die Befehle in der Eingabeanforderung ist auch möglich den Dienst gezielt zu starten und zu beenden. Der der Installation über die Befehlszeile kann auch ein entsprechendes Benutzerkonto definiert werden aber auch eine abweichende AGDB Datei anzugeben oder weitere Parameter an den Dienst zu übergeben.

AG-VIP SQL Backend Service

Der normale Dienstname lautet "AGVIPBackendService". Der Anzeigename (der Name der in der Liste der Dienste angezeigt wird), lautet "AG-VIP SQL Backend Service".
Man beachte, dass Anzeigenamen nicht eindeutig sein müssen. Der Dienstname dagegen ist eindeutig.

AG-VIP SQL Job Scheduler Service

Der normale Dienstname lautet "AGVIPJobSchedulerService". Der Anzeigename (der Name der in der Liste der Dienste angezeigt wird), lautet "AG-VIP SQL Job Scheduler Service".

Nutzung der Befehlszeile

Um die Dienste zu steuern, ist es notwendig auf dem Server eine Eingabeaufforderung mit Administrativen Rechten zu öffnen. (CMD.EXE suchen, rechter Mausklick und "Als Administrator ausführen")
Nun wird dir EXE des Dienstes (AGVIPBackendService.exe bzw. AGVIPJobScheduler.exe) mit entsprechenden Parametern gestartet.
Nachfolgend wird immer der Backendservice beschrieben. Die Funktionen sind für den Job-Scheduler gleichlautend.
Parameter können beginnend mit einem Bindestrich (- ) oder Schrägstrich (/) angegeben werden. Entsprechend sind Parameter wir -install und /install, oder /p:PC\Test oder -p:PC\Test gleichbedeutend.
Sollten im Parameter selbst Leerzeichen vorkommen müssen zusätzlich doppelte Anführungszeichen verwendet werden. Beispiel -p:"Kennword mit Leerzeichen"

Dienstname -SN:ServiceName

Der folgende allgemeinen Parameter ist notwendig, wenn es mehrere Instanzen eines Dienstes auf einer Maschine gibt (Möglich seit der Version 2.01.004). Je Datenbank ist grundsätzlich nur ein Dienst erlaubt. Aber wenn man über mehrere Datenbanken verfügt (unterschiedliche Mandanten, Testdatenbank), dann kann es notwendig sein, mehrere Dienst Instanzen zu installieren.

Mit dem Parameter -SN:AGVIPBackendService wird der eindeutige Dienstname definiert auf den sich der entsprechende Befehl (Start, Stop, Install, Uninstall) bezieht. Der Parameter /SN kann wegelassen werden, wenn es sich um eine Standard-Instanz mit umgeändertem Namen handelt. Der Dienstname sollte keine Leerzeichen und Sonderzeichen beinhalten (es ist zwar erlaubt macht aber das Handling schwieriger).
Der Abweichende Dienstname wird auch für den Namen der Log-Dateien verwendet.

Installation eines Dienstes

Die Installation eines Dienstes erfolgt mit dem Befehl -install.

Syntax:
Dienst.exe -install [-sn:Dienstname] [-sdn:"Anzeigename des Dienstes"] [-sd:"Lange Beschreibung des Dienstes"]
[-auto] [-u:Username -p:"Password" [-EnableServiceLogonRight]] [-scl:"Zusätzliche Befehlszeilen Paramerter"]

-install
Notwendiger Parameter für die Installation.

-sn:ServiceName
Muss angegeben werden, wenn nicht der Standarddienstname benutzt werden soll oder eine zweite Instanz des Dienstes installiert werden so. Es ist evtl. Ratsam bei mehreren Instanzen hier den Datenbanknamen mit zu verwenden.

-sdn:ServiceDisplayName
Der Anzeigename des Dienstes, der in der Verwaltung der Dienste angezeigt werden soll. Auch hier sollte ein entsprechender Name verwendet werden, wenn mehrere Instanzen benutzt werden. Bei Nutzung von Leerzeichen sind Anführungszeichen nötig.

-sd:ServiceDescription
Eine zusätzliche Dienstschreibung, die auch in der Dienste Verwaltung angezeigt wird. Bei Nutzung von Leerzeichen sind Anführungszeichen nötig.

-auto
Wird -auto angegeben, dann wird der Dienst installiert und zum automatischen Start eingerichtet. Die normale Einstellung ist, dass der Dienst zum manuellen Start eingerichtet wird.
Der Dienst wird nicht automatisch nach der Installation gestartet.

Benutzer und Kennwort -u:username, -p:password
Soll ein spezielles Dienstkonto benutzt werden weil zum Beispiel Zugriff auf das Netzwerk nötig wird, dann kann mit den Parametern -u und -p Benutzer und Kennwort angegeben werden. Es ist darauf zu achten, dass der Benutzername Domäne oder Coomputernamen entsprechend einschließt. Beispiel:
-u:Domain\JobAccount -p:"Geheimes Kennwort"

-EnableServiceLogonRight
Wird ein Benutzerkonto bei der Installation angegeben, dann kann man über den Parameter EnableServiceLogonRight sicherstellen, dass der entsprechende Benutzeraccount auch die Rechte hat als "Dienst Ausführen" erhält. Dieses Recht ist nicht automatisch mit jedem Benutzerkonto verknüpft. Es empfiehlt sich diesen Parameter bei der ersten Nutzung eines Kontos anzugeben, wenn dies nicht sichergestellt ist oder unbekannt ist ob dieses Rechte vorhanden ist.

-scl:"ExtendedCommanLine"
Erweiterte Befehlszeile. Mit dem -scl Parameter werden weitere Angaben an den Dienst übergeben, die seine Funktionsweise steuern oder auch definieren wo Logs abgelegt werden müssen. Diese erweiterte Befehlszeile benötigt eine entsprechende Behandlung bzgl. Leerzeichen und Anführungszeichen. Anführungszeichen müssen hier evtl. gedoppelt werden.
Die erweiterten Befehlszeilen Parameter werden weiter unten behandelt. Mögliche Parameter sind hier -log, -conn, -fulldump.

Deinstallation eines Dienstes

Die Deinstallation eines Dienstes erfolgt mit dem Befehl -uninstall.

Syntax:
Dienst.exe -uninstall [-sn:Dienstname] [-sdn:"Anzeigename des Dienstes"]

Die Parameter -sn und -sdn müssen angegeben werden, wenn Sie bei der Installation geändert wurden, oder es sich nicht um die Standard Dienstnamen bzw. Standard Anzeigenamen handelt.

Starten eines Dienstes

Das Starten eines Dienstes erfolgt mit dem Befehl -start.

Syntax:
Dienst.exe -start [-sn:Dienstname]

Die Parameter -sn muss angegeben werden, wenn Sie bei der Installation geändert wurden, oder es sich nicht um die Standard Dienstnamen handelt, der gestartet werden soll.

Stoppen eines Dienstes

Das Stoppen/Beenden eines Dienstes erfolgt mit dem Befehl -stop.

Syntax:
Dienst.exe -stop [-sn:Dienstname]

Die Parameter -sn muss angegeben werden, wenn Sie bei der Installation geändert wurden, oder es sich nicht um die Standard Dienstnamen handelt, der gestartet werden soll.

Testbetrieb eines Dienstes

Es ist möglich auch einen Dienst testweise zu betreiben. Das geschieht mit der Angabe -debug oder console.
Der entsprechende Dienst wird, dann in der Eingabeaufforderung direkt ausgeführt unter den Berechtigungen des aktuellen Benutzers. Alle Ausgaben, die normalerweise nur in die Log-Datei erfolgen werden auf in der Eingabeaufforderung angezeigt.
Für Testzwecke ist dies ein geeigneter Weg um schnell Fehler zu finden.
Der entsprechende Dienst darf anderweitig natürlich nicht gestartet sein.

Syntax:
Dienst.exe -debug

 Erweiterte Befehlszeile

Wenn ein Dienst unter mehreren Instanzen läuft oder auch für die Fehlerfindung sind zusätzliche Startparameter notwendig. Diese können nur bei der Installation über die Befehlszeile eingerichtet werden.
Die Parameter sind:

-conn:AGDBPath
Hier kann ein abweichende AGDB Datei definiert werden. Es muss der komplette Pfadname eingetragen werden. Entsprechende notwendige Leerzeichen müssen in doppelte Anführungszeichen gesetzt werden.

-log:LogPath
Hier wird ein Ausgabepfad definiert in den der Dienst seine Log-Dateien schreiben soll. Der Dienst muss Schreibrechte auf dieses Verzeichnis haben. Der Pfad muss existieren. Entsprechende notwendige Leerzeichen müssen in doppelte Anführungszeichen gesetzt werden.
Für den Job Scheduler Dienst ist die Angabe des Log-Pfades wichtig, um die einzelnen Ausgaben der Jobs von mehreren Instanzen unterscheiden zu können.

-fulldump
Mit dem Parameter -fulldump kann der Dienst angewiesen werden bei einem Crash einen vollen Speicherdump zu erzeigen. Diese Option ist zur Fehlersuche durch den Support manchmal notwendig.

-ini:PfadZuIniDatei
Mit dem Parameter -ini kann der Dienst angewiesen werden, die .INI Datei für die lokalen Diensteinstellungen (Email-Server für JobScheduler u.a.) aus einer anderen Datei oder Verzeichnis zu lesen, als der vorgegebenen INI-Datei. Normalerweise, wird die INI Datei benutzt, die den gleichen Namen wir die ausführbare Datei des Dienstes hat, also AGVIPBackendService.INI oder AGVIPJobScheduler.ini

Anwendungsbeispiel 1:

In der nachfolgenden Befehlszeile wird ein Backendservice installiert, der unter dem Namen AGVIPBackendService-Demo laufen soll. Die Dienstbeschreibung lautet entsprechend.
Es wird eine abweichende AGDB Datei angegeben sowie ein abweichender Pfad für die LOG Ausgabe.
Obwohl keine Leerzeichen in den Pfaden vorhanden sind, wurde hier die Pfade in Anführungszeichen gesetzt zur besseren Verdeutlichung.
Ein abweichendes Konto wurde hier nicht benutzt.

AGVIPBackendService.exe -install /sn:AGVIPBackendService-Demo -sdn:"AG-VIP SQL Backend Service - Demo" -scl:"-conn:""D:\Dev\Root\Projects\Bin\Debug\AGVIP-Demo.agdb"" /log:""D:\Dev\Root\Projects\Bin\Debug\Demo"""

Anwendungsbeispiel 2:

In dem zweiten Beispiel wird ein Job Scheduler unter dem Account des PCs PC-4711 angelegt mit dem entsprechenden Kennwort. Es wird garantiert, dass dieser Account auch als Dienst ausführen darf. Es werden die Standard Dienstnamen verwendet.

AGVIPJobScheduler -install -u:PC-4711\XYZ -p:ahfkdf,1ghj -EnableServiceLogonRight
Tags: Backend-Dienst, Dienste, Instanzen, Job-Scheduler, Mehrere Instanzen, MultiInstance
Durchschnittliche Bewertung: 0 (0 Abstimmungen)

Kommentieren nicht möglich