Problem mit selbsterstelltem Windows Dienst.

etherid

Grünschnabel
Hallo Community,

ich will Terracotta v3.4.1 unter Windows 7 64bit auf einer 64bit JVM als Dienst einrichten.

Ich habe den Dienst bereits angemeldet und er wird bei jedem Systemstart ausgeführt. Demnach sollten die Ports 9510, 9520 und 9530 angemeldet sein, allerdings werden diese in der Konsole (netstat -a) nicht aufgeführt.

Ich habe ewig damit verbracht die Ereignisprotokolle zu durchforsten, allerdings kam nicht mehr dabei raus als "Terracotta wurde erfolgreich gestartet" oder "Terracotta wurde erfolgreich beendet". Da ich inzwischen etwas Windows erfahrung habe, weiß ich, dass "erfolgreich gestartet" noch lange nicht heißt, dass der Dienst WIRKLICH erfolgreich gestartet wurde.

Mein nächster Schritt war die Parameter zu überprüfen. Also habe ich den ganzen Kram Buchstabe für Buchstabe selbst in die Konsole getippert mit dem Ergebnis, dass es funktioniert ****** Wenn ich den Dienst manuell starte läuft er ohne Probleme. Die oben aufgeführten Ports werden aufgeführt und ich kann mich via JMX Verbinden.

Das wirft bei mir ein paar Fragen auf^^
Zum einen würde ich gerne überprüfen, wie genau der der Dienst Manager den Dienst startet. Dazu habe ich gehofft ein entsprechendes log zu finden, allerdings ohne erfolg (natürlich). Der Hintergrund ist, dass ich mir nicht sicher bin, wie die einzelnen Parameter verwendet werden, ob sie vielleicht noch geparst werden oder direkt verwendet werden, das müsste ich wissen, um sichergehen zu können, dass der Aufruf des Dienst Managers dem meinen entspricht.
Zum anderen würde ich gerne wissen, wo eventuelle Fehler auftauchen würden. Wenn ich beim manuellen eintippen Fehler verursache, dann bekomme ich in der Regel direkt einen Hinweis darauf, allerdings bekomme ich den nicht, wenn der Dienst automatisch gestartet wird, zumindest nicht direkt. Wie gesagt habe ich das Ereignissprotokoll schon abgegrast, ohne nennenswerte Nennung meines selbst erzeugten Dienstes.

Ich würde mich freuen, wenn einer von euch eine Idee hätte, wie ich das Problem lokalisieren kann. Vielleicht weiß einer ja sogar eine eindeutige Antwort zu meinem Problem. Wenn ich irgendwelche von mir durchgeführten Vorgänge näher beschreiben muss, um die Problematik deutlicher darzustellen, dann könnte ich dass bei Bedarf noch nachreichen.

Gruß euer Etherid.
 
Eine Möglichkeit ist sicher, dass der Dienst mit dem normalen Dienststarter unter einem anderen Benutzernamen ausgeführt wird. Schau mal nach, ob da was spezielles festgelegt ist in den Einstellungen.

2. Schau mal im TaskManager nach, ob du die die Exe laufen siehst. Wenn sie läuft, sind häufig fehlende Rechte das Problem (siehe oben), ansonsten wurde der Dienst gar nicht gestartet.
 
Vorweg erstmal vielen Dank für die Antwort :)

Deinen ersten Punkt habe ich von vorne herein bearbeitet, indem ich den Dienst über meinen User account laufen lasse.

Zu deinem zweiten Punkt kann ich nur sagen, dass die exe läuft (in meinem Fall benutze ich srvany.exe aus dem Windows Resource Kit) und auch der Dienst als "Wird ausgeführt" gekennzeichnet ist. Gänzlich ausschließen kann ich ein Problem mit den Rechten allerdings nicht, da ich bereits häufiger mit Rechtskonflikten im Rahmen meines Accounts konfrontiert wurde, jedoch habe ich das ganze ja auch schon manuell in einer normalen Konsole probiert und die exe läuft ja offensichtlich.
Können dennoch Probleme mit Rechten existieren? Wenn ja, müsste man die doch irgendwo abfragen können.

Trotzdem Danke @brunlorenz :)

Gruß etherid
 
Hm, ich habe ehrlichgesagt nicht über die Firewall nachgedacht, da bei einem manuellen launch alles ohne Probleme läuft. Ich kann das mit den selben Parametern aufraufen, die ich auch dem Windows Dienst Manager mitteile und es läuft. Alle drei Ports sind nach spätestens 2-3 Sekunden angemeldet.

Könnte trotzdem die Firewall das Problem sein?
 

Neue Beiträge

Zurück