Programm als Windowsdienst

seven

Grünschnabel
Hallo an alle,

ich habe ein Programm geschrieben, dass die Daten, die aus einem Kassensystem kommen, in ein Format wandelt, die eine andere Software einlesen kann.

Erklärung:
Das Programm durchsucht ein bestimmtes Verzeichnis in einem bestimmten Interval und wenn die Kassendatei
vorhanden ist, wird sie eingelesen, in das richtige Format gewandelt und als Textdatei in ein bestimmtes Verzeichnis abgelegt. Danach wird die
Kassendatei gelöscht.
Bestimmte Werte werden aus einer INI-Datei geholt, damit alles schön flexibel ist.
Es funktioniert auch alles, wenn ich das jar-file in der Konsole starte.
Jetzt soll der ganze Spass als Dienst im Hintergrund laufen. Also habe ich mir JSmooth(aktuelle Version) installiert und eine exe-Datei erzeugt.
Dann habe ich mir RunAsSvc geholt und nach Anleitung den Dienst eingerichtet. Danach bin ich unter Dienste gegangen und siehe da, der Dienst war da.
Den Dienst gestartet und er lief ungefähr 5-6sek. Dann wurde er aus unerklärlichen Gründen beendet. Es kam auch keine Fehlermeldung oder sonstetwas.

Wer kann mir helfen das Problem zu lösen oder einen Tipp geben. Ich bin für jede Unterstützung dankbar.

Achso, ich habe einen ganz normalen Pc mit Windows xp Prof., geschrieben wird alles mit Eclipse und die aktuellsten Java-Version.

Gruß Ralf
 
Zu den Diensten gibt es irgendwo ein Log in der Diensteverwaltung. Da könnte drin stehen warum das Ding wieder beendet wurde. Hatte das nämlich auch mal dieses Phänomen. Oder schau mal in den Systemlogs.

Hast du ein Logging verwendet was dir noch nähere Infos geben könnte? Manchmal werden auch Exceptions auf der Konsole ausgegeben. Dazu am Besten man die System.out und System.err in eine Datei umleiten.
 
Hallo,

erstmal vielen Dank für die schnellen Antworten. :)
Ich habe mich auch gleich rangesetzt und losgelegt.
Zuerst habe ich es mit dem Logging versucht. Dazu habe ich mir Log4j heruntergeladen, die jar-Datei eingebunden und meinen Quelltext geändert, so dass alle Meldungen in eine log-Datei geschrieben werden. Danach eine exe-Datei erzeugt, als Dienst gestartet, der auch wieder 5-7 sek lief. Aber es wurde nichts in die log-Datei geschrieben. :(

Als nächstes habe ich mir die Rechte vorgenommen. Ich habe den Dienst anmelden lassen als "Lokales System", "lokaler Dienst" und "Administrator". Auch das hat nichts gebracht.

Was kann ich jetzt noch machen um das Problem zu lösen? Wer hat noch eine Idee?

Gruß Ralf
 
Hast du schon System.setErr(new PrintStream(logfile)) und gleiches mit System.out gemacht?
 
Hallo,

ich habe jetzt auch System.setErr(new PrintStream(logfile)) und gleiches mit System.out gemacht. Zusätzlich habe ich einen kleinen Fehler miteingebaut (Division durch Null in einer for Schleife). Wenn ich das Programm in der Konsole starte, funktioniert alles und der Fehler wird in das log-file geschrieben.
Jetzt habe ich die exe-Datei mal mit Launch4j erstellt und siehe da, der Dienst läuft und läuft und läuft ... :)
Leider macht der Dienst nicht das was er soll. Er schreibt die Datei nicht und er schreibt noch nicht einmal den erzwungenen Fehler in mein log-File. :(
Jetzt weiß ich nicht, was ich noch machen kann.

Ich bitte um weitere Hilfe.
Was könnte ich noch machen?

Gruß Ralf
 
Hallo,

leider kann ich nicht immer an diesem Programm arbeiten und deshalb zog sich alles ein bißchen hin.
Ich habe jetzt eine brauchbare Lösung für mich gefunden und möchte sie nicht vorenthalten.
Da es mit dem Erstellen von Windowsdiensten bei mir nicht so recht funktuioniert hat, habe ich mich für den Applikationserver Glassfish von Sun entschieden.
Dort wird die jar-Datei einfach in "Application Client Modules" geladen, gestartet und fertig. :)
Es gibt nur eine Sache die ein bißchen stört: Wie beende ich die Anwendung im Admin-Bereich?
Vielleicht kann mir hier einer einen Tipp geben, ansonsten werde ich irgendwann vllt. selbst die Lösung finden.
Und nochmal ein Danke an die Leute, die versucht haben, mir zu helfen.

Viele Grüße
seven
 

Neue Beiträge

Zurück