JTL-Wawi Worker als Dienst starten

Home / JTL / JTL-Wawi Worker als Dienst starten

Gerade in Mehrbenutzerumgebungen ist es sehr hilfreich wenn der JTL-Wawi Worker auf dem Datenbank-Server mit läuft und nicht extra auf irgendeinem Arbeitsplatz gestartet wird. Die Anforderungen für dieses Projekt sind: „Beim Systemstart soll der Worker automatisch als Dienst starten.“ Daraus ergeben sich folgende Lösungsansätze:

  1. Mit der Aufgabenplanung von Windows eine Aufgabe erstellen die beim Systemstart gestartet wird.
  2. Den Worker in die Autostart des Benutzers legen.
  3. Den Worker als „richtigen“ Dienst beim Systemstart automatisch starten lassen.

Lösungsansatz 2 kommt für mich nicht in Frage, da hier der entsprechende Benutzer am Server angemeldet sein muss. Bleiben noch die Lösungsansätze 1 und 3 übrig. Lösungsansatz 1 funktioniert, aber leider nicht ganz stabil, wie ich im praktischen Einsatz feststellen musste. Hier kann es immer wieder passieren, dass der Worker nicht sauber startet und somit auch kein Abgleich stattfindet. Lösungsansatz 3 hat wiederum das Problem, dass sich die jtl-wawi.exe nicht so ohne weiteres als Dienst starten lässt und einige Parameter mitzugeben sind. Ich habe mich also auf die Suche nach einer stabil laufenden Lösung gemacht, die auch nach einem unerwarteten Systemneustart sauber funktioniert. Hier ist mein Ansatz.

Die gute alte Batchdatei ist immer noch der sicherste Weg eine Anwendung mit Parametern automatisch zu starten. Nur lässt sich so eine Batchdatei nicht als Dienst einrichten. Auch die Startmethode über die Aufgabenplanung hat mich nicht wirklich befriedigen können. Also muss ein Weg her, wie diese Batchdatei als Dienst beim Systemstart noch bevor sich ein Benutzer am Server anmeldet gestartet wird. Bei meiner Recherche im Internet bin ich auf das kleine Tool „Non-Sucking Service Manager“ gestoßen, mit dem sich auch Batchdateien als Dienst starten lassen. Die aktuelle Version kann hier heruntergeladen werden: https://nssm.cc/download

Als Basis für den Aufruf des Workers dient folgendes Script das im Installationsverzeichnis der Wawi hinterlegt und als worker.bat abgespeichert wird:

@Echo off
cd C:\Program Files (x86)\JTL-Software\
JTL-wawi.exe WORKER Standard admin pass eazybusiness

Standard* = Profilname bei der Anmeldung am Worker

admin* = Benutzername des Benutzers für die Anmeldung am Worker

pass* = Passwort des Benutzers für die Anmeldung am Worker

eazybusiness* = Mandant im Profil der Anmeldung am Worker

*Diese Angaben müssen hinterlegt werden!

Kopieren Sie einfach den Code in die Zwischenablage und kopieren Sie ihn anschließend in eine leere Textdatei die Sie mit dem Editort (notepad.exe) erstellen.  Jetzt müssen Sie nur noch die Kennung admin mit dem Passwort pass im Code durch Ihre Zugangsdaten ersetzten. Anschließend speichern Sie diese im Installationsverzeichnis von JTL-Wawi als worker.bat ab.

Nach dem Download von „No-Sucking Service Manager“ entpacken Sie die ZIP-Datei und kopieren die Datei nssm.exe entweder aus dem 32-Bit oder dem 64-Bit-Verzeichnis in den Installationsordner von JTL-Wawi. Damit sind die Vorbereitungen abgeschlossen.

Starten Sie jetzt die Eingabeaufforderung an dem PC und wechseln sie ins Installationsverzeichnis von JTL-Wawi. Anschließend geben Sie folgenden Befehl ein:

nssm install JTL-WawiWorker

2015-05-05 13_27_18-Administrator_ Eingabeaufforderung

Unter dem Namen JTL-WawiWorker finden Sie anschließend den Dienst in der System-Verwaltung unter Dienste. Wenn Sie die Eingabe mit Enter bestätigt haben öffnet sich folgendes Fenster:

 

Im Reiter Application müssen Sie jetzt den Pfad zur Batchdatei angeben. Dass können Sie mit einem Klick auf den Button den drei Punkten erledigen.

Anschließend wechseln Sie in den Reiter Log on. Hier tragen Sie den Benutzernamen und das Passwort des lokalen Administrators unter This Account ein:

Anschließend klicken Sie auf den Button Install service um den Dienst einzurichten. Haben Sie anschließend die Meldung erhalten, dass der Dienst erfolgreich installiert wurde, können Sie alle Fenster schließen und den Server/PC neu starten.

Sollte der Dienst nach dem Neustart nicht automatisch gestartet sein, liegt dass vermutlich daran, dass der Benutzername oder Passwort nicht richtig hinterlegt wurden. Dies kann in den Diensteinstellungen auch nachträglich noch angepasst werden. Wenn alles richtig ist, sollte es so wie im Screenshot unten aussehen:

Nachtrag

Rudolf Ring von Click-licht.de hat mir eine Mail mit dem Hinweis geschickt, das er auf die Batch-Datei aus Schritt eins verzichtet und die Argumente für den Start des Workers direkt in nssm und damit im Dienst hinterlegt. Natürlich kann man das auch so machen wie der von Ihm erstellte Screenshot zeigt:

Unter Application Path wird der Pfad zur JTL-Wawi.exe hinterlegt. Das Startup directory füllt sich dann selber aus und muss nicht geändert werden. In Arguments werden die Startargumente wie in der Batchdatei beschrieben hinterlegt.

Warum eine Batchdatei?

Der Grund ist relativ simpel. Mache ich es so wie Rudolf Ring es beschrieben hat, werden die Startparameter im Dienst hinterlegt. Bei eventuellen Änderungen, sei es das Passwort ändert sich oder JTL ändert die Parameter für den Start des Workers, muss ich in den Dienst gehen und dort die Änderungen machen. Bei einer Batchdatei habe ich den Vorteil, die Änderungen dort zu machen und auch zu testen, ohne den Dienst dabei anfassen zu müssen. Einfach nur Dienst beenden, Änderungen einpflegen, testen und dann den Dienst wieder starten. Das ist der Hintergrund warum ich hier den Weg mit einer Batch-Datei beschrieben habe.

Hinweis: Beim Update von JTL-Wawi muss der Dienst zwingend beendet werden, da ansonsten das Update auf eine neuere Version nicht klappt. Der Grund ist, dass die JTL-Wawi.exe durch den Dienst geblockt wird und bei der Deinstallation nicht gelöscht wird.

  • 4.5/5
  • 17 ratings
17 ratingsX
Very bad!BadHmmmOkeGood!
11.8%0%0%0%88.2%
Related Posts
Showing 8 comments
  • Avatar
    Cassiopeia

    Was mich total verwirrt hat in der Batch war die Variable „eazybusiness“.

    Sollte das nicht durch „eB-Standard“ ersetzt werden, da „eazybusiness“ ja nur die Datenbank ist und nicht der Mandant ?

    Desweiteren heisst die Exe ja „JTL-Wawi.exe“ und nicht „JTL-wawi.exe“.

    Ist das „cd“ Kommando in der Batch nicht eigentlich unnötig wenn ich schon im Installationsverzeichnis bin ?

    Nachdem ich alles eingetragen hatte war der Dienst wohl gestartet und im Dashboard stand auch der Worker von Amazon als „OK“, doch beim Abgleich gabs einen Fehler.

    Wie üblich gibts kein Log oder Fehlermeldung weshalb ich den Dienst jetzt erstmal deinstallieren muss.

    Eine Idee was hier schief lief ?

  • Avatar
    Thomas

    Danke für den Tipp, der Worker läuft.
    Wenn er bei mir allerdings als Serverdienst läuft dann findet kein Datenbankabgleich statt. Der Worker scheint aber zu laufen.
    Starte ich hingegen manuell als Programm dann klappt der Abgleich. Eine Idee, was das seien könnte?

  • Avatar
    Michael

    HI,

    ich habe das so bei der WAWI umsetzen wollen. Weiß hier jmd, warum sich die WAWI öffnet und sofort wieder schließt? Wäre für jede HIlfe dankbar.

    Gruß,

    MM

  • Avatar
    Thomas

    Dies sind mal nützliche Wawi-Dienste 🙂

  • Avatar
    Thomas

    Danke für die coole Anleitung!
    Im Nachtrag steht „muss ich in den Dienst gehen und dort die Änderungen machen“
    –> wie kann man denn hinterher im Dienst Änderungen vornehmen? Ich müsste ja irgendwie die Install Maske von NSSM zu diesem Dienst geöffnet bekommen – wie geht das?

    • Avatar
      Patrick

      Hallo Thomas,
      Änderungen mit nssm kannst du mit folgendem Befehl machen:

      nssm.exe edit JTL-WawiWorker

      lg Patrick

  • Avatar
    JTL Shop

    Hallo,
    danke für den Artikel.
    Die Variante mit der Batchdatei hat bei unserem Kunden leider nicht funktioniert, der Worker läuft lt. Taskmanager/Process Monitor zwar, scheint aber seine Arbeit nicht zu verrichten, startet man die Batch manuell tut der Worker was er soll, die Batchdatei ist also richtig.
    Die Variante die JTL-wawi.exe mit den Parametern direkt als Dienst zu starten funktioniert allerdings problemlos.
    Ich muss allerdings gestehen, nicht weiter nachgeforscht zu haben, warum der Start des Workers via Batchdatei nicht funktioniert hat, da gab es Wichtigeres… 😉

    Grüße

  • Avatar
    Christian Ebner

    Hallo aus Wien,
    habe es wie beschrieben schon seit Jahren im Einsatz (mit Batch Datei) und funktioniert tadellos.
    Einzig zeigt mir die Wawi im Dashboard alle paar Tage mal dass der Shop Abgleich nicht funktioniert. Dann hilft nur Dienst händisch stoppen und wieder starten.
    Ich kann nicht Nachstellen warum und wann das passiert. Es sind nur 2 JTL-Shops im Hosting angebunden.

    Gibts da Erfahrungen dazu?

    LG
    Christian

Leave a Comment

Kontakt
Zertifzierter JTL WMS
Shopware Business Partner
Shopware Business Partner
Zertifizierter Shopware Partner
Zertifizierter Shopware Business Partner
Zertifizierter Shopware Template Designer
Zertifizierter Shopware Template Designer
pickware Partner
pickware Partner / Shopware
Xentral Gold Partner
VARIO BUSINESS PARTNER