AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Dienst reagiert nicht, ist aber voll da.
Thema durchsuchen
Ansicht
Themen-Optionen

Dienst reagiert nicht, ist aber voll da.

Ein Thema von QuickAndDirty · begonnen am 29. Okt 2008 · letzter Beitrag vom 29. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2      
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#1

Dienst reagiert nicht, ist aber voll da.

  Alt 29. Okt 2008, 10:36
Hallo,
Wir haben hier bei exakt einem einzigen kunden das
Problem das eine Dienstannwendug nicht auf
Steuerinformationen reagiert der Dienst jedoch steht voll zur Verfügung!!!
Er meckert eben nur beim Start und lässt sich auch nicht über die Net stop beeinflussen.
Man muss ihn also killen wenn man ihn beenden will.

wir haben schon 2 tage lang alles versucht...
(Userkontext,
Lokales system konnto -> führt zu anderem fehler,
Rechte des Userkontext für Dateizugriffe,
Locking in der Anwendung -> die macht keine Fehler,
alles obige in unterschiedlichen kombinationen..)
fällt euch noch was etwas ein?

Es gibt einen Patch von MS für Windows 2003 64 der diese Problem behandelt,
aber der bezieht sich auf Dienste im Kontext Lokales Systemkonto
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Dienst reagiert nicht, ist aber voll da.

  Alt 29. Okt 2008, 11:10
Wichtige wäre raus zu finden warum es so ist. Wenn du einen leeren Service erstellst der also nichts macht, hast du dann das gleiche Problem? Wenn nicht wird es an Anweisungen innerhalb deines Service liegen. Und um die Anweisung heraus zu finden kannst du mit OutputDebugString öfter mal eine Ausgabe machen um einzugrenzen wo es dann nicht weiter geht etc.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#3

Re: Dienst reagiert nicht, ist aber voll da.

  Alt 29. Okt 2008, 11:27
Ich sag mal so, es handelt sich um einen Applikationserver.
Der Web Server der ihn benutzt läuft einwandfrei als Dienst.
Der Testdienst um einzelne Codeteile zu testen geht auch.

Folgende Dinge sind evtl. Problematisch.

Es wird auf die BDE zu gegriffen (in der Anwendung läuft es und bei anderen ähnlich gelagerten Systemen auch)
(Wir stellen seit 2 Jahren um aber der Code ist groß und das Programm sehr mit der DB verzahnt und das
Problem besteht halt akkut)

Es handelt sich um einen 32Bit Delphi 7 Dienst der auf einem 64 bit 2003 Windows läuft.(Aber das hat bisher immer funktioniert.)

Dieser Dienst greift auf UNC Pfade zu , aber das funktioniert ja denn der Service läuft ja und leistet was er soll.


Das System des Kunden ist auch ziemlich Restrictiv eingestellt (z.b. konnte das Eigenschaften Fenster von UNC Pfaden selbtst im Administrator Account nicht angezeigt werden...und es gibt keinen Account der Adminsitrator heist, der Kunde hat einen anderen Namem dafür gewählt.


Erwähnte ich das ich ratlos bin?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

Re: Dienst reagiert nicht, ist aber voll da.

  Alt 29. Okt 2008, 11:48
Zitat von QuickAndDirty:
Wir haben hier bei exakt einem einzigen kunden das
Problem das eine Dienstannwendug nicht auf
Steuerinformationen reagiert der Dienst jedoch steht voll zur Verfügung!!!
Er meckert eben nur beim Start und lässt sich auch nicht über die Net stop beeinflussen.
Man muss ihn also killen wenn man ihn beenden will.
Hatte letzten einen Dienst, der nicht so recht wollte, ohne dass ich den Fehler auf Anhieb habe finden können. Bin hergegangen und habe an allen möglichen und unmöglichen Stellen Ausgaben in eine Logdatei geschrieben und bin dann damit dem Problem auf den Grund gegangen.
Das Loggen habe ich über einen Eintrag in einer Ini-Datei gesteuert, sodass ich es jederzeit wieder einschalten kann.

Bei SysInternals gibt es ein Programm psservice, liefert Dir das eventuell ein bisserl mehr Information als Net?
Hier kann man zur Steuerung des Dienstes auch Benutzername und Passwort auf der Kommandozeile angeben. Das Programm ist bei der Suche nach dem Problem eventuell hilfreicher als nur net start und net stop.

Aus Deiner Ergänzung schließe ich, der Dienst arbeitet korrekt, nur die Steuerung des Dienstes versagt, nachdem er einmal gestartet wurde und läuft.

Das klingt schwer nach einem Rechteproblem. Was ist ansonsten an dem System anders als an anderen Systemen, bei denen Ihr keine Probleme habt? Irgendwelche Servicepacks vorhanden oder nicht vorhanden?
Da müsste ich jetzt wohl auch im Dunklen stochern.
Habt Ihr die Möglichkeit einen Call bei Mirocsoft aufzumachen (MS-Partnerschaft oder sowas) ohne da direkt tief in die Tasche greifen zu müssen?

Steht der Dienst in der Konfiguration auf automatisch starten?
Wenn ja, stellt ihn mal auf manuell und versucht es dann mit net start. Wenn das dann nicht geht, liegt das Problem für meinen Begriffe nicht im/am Dienst, sondern am Betriebssystem bzw. dessen Konfiguration.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#5

Re: Dienst reagiert nicht, ist aber voll da.

  Alt 29. Okt 2008, 12:50
Zitat von nahpets:
Zitat von QuickAndDirty:
Wir haben hier bei exakt einem einzigen kunden das
Problem das eine Dienstannwendug nicht auf
Steuerinformationen reagiert der Dienst jedoch steht voll zur Verfügung!!!
Er meckert eben nur beim Start und lässt sich auch nicht über die Net stop beeinflussen.
Man muss ihn also killen wenn man ihn beenden will.
Hatte letzten einen Dienst, der nicht so recht wollte, ohne dass ich den Fehler auf Anhieb habe finden können. Bin hergegangen und habe an allen möglichen und unmöglichen Stellen Ausgaben in eine Logdatei geschrieben und bin dann damit dem Problem auf den Grund gegangen.
Das Loggen habe ich über einen Eintrag in einer Ini-Datei gesteuert, sodass ich es jederzeit wieder einschalten kann.
Ja modern debugging, eben. Ist schon drin...keine Fehler.

Zitat von nahpets:
Bei SysInternals gibt es ein Programm psservice, liefert Dir das eventuell ein bisserl mehr Information als Net?
Hier kann man zur Steuerung des Dienstes auch Benutzername und Passwort auf der Kommandozeile angeben. Das Programm ist bei der Suche nach dem Problem eventuell hilfreicher als nur net start und net stop.
Werd das gleich mal prüfen.

Zitat von nahpets:
Aus Deiner Ergänzung schließe ich, der Dienst arbeitet korrekt, nur die Steuerung des Dienstes versagt, nachdem er einmal gestartet wurde und läuft.
Ja, so ist das. Und ich würde da noch einen Zusammenhang zur BDE Herrstellen, dienste Ohne Datebank machen bei ihm kein Problem...seltsam das.

Zitat von nahpets:
Das klingt schwer nach einem Rechteproblem. Was ist ansonsten an dem System anders als an anderen Systemen, bei denen Ihr keine Probleme habt? Irgendwelche Servicepacks vorhanden oder nicht vorhanden?
Da müsste ich jetzt wohl auch im Dunklen stochern.
Keine Ahnung. Wir vermuten auch das das am System liegt...Problem ist nur das Admins sich sowas nicht erzählen lassen...
die verstehen das Argument das es über all geht nur auf dem von ihm eigerichteten System nicht. Und ich sehe mich nicht in der
Lage alle bedingungen aufzuzählen die Erfüllt sein müssen bzw. nicht erfüllt sein dürfen damit alles gut läuft aufzuzählen, denn
die Komplexität der Rechte,von Domainservern und Activedirectory haben doch schon recht stark zugenommen, ich hab da kaum einen überblick. So das ich vom Symptom aus, nur schwer auf die Ursache schließen kann.

Zitat von nahpets:
Habt Ihr die Möglichkeit einen Call bei Mirocsoft aufzumachen (MS-Partnerschaft oder sowas) ohne da direkt tief in die Tasche greifen zu müssen?
Nein.

Zitat von nahpets:
Steht der Dienst in der Konfiguration auf automatisch starten?
ja, aber das sollte keinen unterschied machen, oder?

Zitat von nahpets:
Wenn ja, stellt ihn mal auf manuell und versucht es dann mit net start. Wenn das dann nicht geht, liegt das Problem für meinen Begriffe nicht im/am Dienst, sondern am Betriebssystem bzw. dessen Konfiguration.
Dumm nur das wir vermutlich sagen müssen was denn da am Betriebssystem falsch konfiguriert ist.
Ich glaube nicht das die auch den Standpunkt vertreten das ein Server ein komplexes System ist das nicht vollständig vom menschlichen Geist erfassbar ist und wir deswegen keine präzisen antworten geben können sondern nur Fehlerursachen im Ausschlußverfahren suchen können.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: Dienst reagiert nicht, ist aber voll da.

  Alt 29. Okt 2008, 13:45
Okay,

bei Deiner Beschreibung der Umgebung(szustände) muss die Glaskugel her:

Ein Dienst hat Ereignisroutinen für Start, Stop ....
Habt ihr da Ausgaben für die Logfiles drin, so dass ihr sehen könnt, ob bei einem Net start oder net stop die Routinen aufgerufen werden, auch bei einem automatischen Start des Dienstes muss da irgendwo was sehen.
Steht da dann nix drin, gibt das Betriebssystem die Befehle garnicht erst an den Dienst weiter oder in den entsprechenden Routinen des Dienstes sind (für diese Umgebung) gravierende Fehler. Ist sichergestellt, dass die Routinen jede Exception in Logdateien protokollieren und nicht einfach ohne was zu tuen zurückkehren und der eigentliche Dienst läuft davon unberührt weiter?

Wenn die Steuerbefehle nicht beim Dienst ankommen, muss auch ein Admin (bin auch einer) verstehen, dass er Hilfestellung geben muss und eventuell auch mal die Sinnhaftigkeit seiner Serverkonfiguration überdenkt.

Steht der Dienst auf automatischem Start und läuft, halte ich es nicht für unerheblich zu prüfen, ob er auch bei manueller Startart nachträglich vom Admin per net start gestartet werden kann. (Eigentlich sollte es ja kein Unterschied sein, aber dafür will ich den Beweis.)
Funktioniert net start nicht, so kann der Fehler eigentlich nur auf der Betriebssystemseite zu suchen sein. Gibt es denn auf dem Server keine anderen Dienste, die Probleme machen (oder deren Probleme noch nicht aufgefallen sind)?
Was läuft denn sonst noch alles auf der Maschine?

Was ich mir vorstellen könnte:

Beim Booten startet der Server in einer für uns nicht nachvollziehbaren Reihenfolge das Betriebssystem und alle möglichen Dienste, Programme ... aus den diversen RUN-Zweigen der Registrierung, Autostart, was weiss der Geier, was da alles läuft.

Das können banale Programme bei sein oder aber auch Programme für irgendwelche Sicherheiten (Virenscanner, Firewall...).
Es wäre also durchaus denkbar, dass Dein Dienst automatisch gestartet wird und später ein anderen "Job", (warum auch immer) den Start von Diensten oder ... verhindert.

Die Chance, hier dem Fehler auf die Spur zu kommen, ohne aktiv auf den Server zu schauen oder zumindest dem Admin zu sagen: "Mach mal dieses, mach mal jenes, wie ist dies konfiguriert? ..." schätze ich momentan als sehr gering ein.

Wie sieht das meckern des Dienstes beim Start aus? Sind da aussagefähige Fehlermeldungen bei?
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#7

Re: Dienst reagiert nicht, ist aber voll da.

  Alt 29. Okt 2008, 14:13
Ne ne, wir haben Fernzugriff per netviewer auf den Server , und waren da schon 2 tagelang drauf.
Der dienst kann per "net start" gestartet werden und läuft dann...nur denkt Windows der start hätte nicht geklappt. Danach kann er natürlich auch nicht per net stop angehalten werden...weil Windows glaubt er liefe nicht.

P.S.:
Die bist also System-Administrator? Also das Böse, der Feind , the bastard operator from hell?
Warum nicht einfach nur Entwickler? tztztz
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

Re: Dienst reagiert nicht, ist aber voll da.

  Alt 29. Okt 2008, 14:51
Hallo,
Zitat:
Die bist also System-Administrator? Also das Böse, der Feind , the bastard operator from hell?
Warum nicht einfach nur Entwickler? tztztz
[OT]Naja, für Delphi wird bei uns nur ungern Vertrieb gemacht, ist ja nicht innovativ...[/OT]

Okay, Du kommst also an den Rechner dran und "kannst damit machen, was Du willst".

Ob ein Dienst läuft oder nicht, ob installiert oder nicht, steht alles irgendwo in der Registrierung und zwar in dieser Gegend:
Code:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Schau doch mal, ob Du da Zugriff hast und welche Rechte da vergeben sind. Mit Regedit solltest Du da hinkommen und auch für Deinen Dienst was finden. Da müsste der Starttyp, Pfad ... zum Dienst vorhanden sein. Vergleiche das mal mit dem von einem Server, der keine Probleme macht und vergleiche die Rechte (ggfls. für jeden Schlüssel).

Ansonsten schau mal, ob Du ausgehend von www.winfaq.de (ErrorControl) dort weitere Hilfe findest.

Leider weiß ich nicht, wo man im System nachschauen kann, ob ein Dienst läuft (ausserhalb der Oberfläche - sprich: wo ist das gespeichert, was man bei Dienste angezeigt bekommt).
Verblüffend finde ich, dass das Startsignal beim Dienst ankommt, aber seine Rückmeldung nicht mehr beim Betriebssystem - sehr befremdlich
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Dienst reagiert nicht, ist aber voll da.

  Alt 29. Okt 2008, 15:37
Kann es sein, daß dein Dienst beim Start erwartet, daß bestimmte andere Anwendungen schon laufen...zum Beispiel eine Datenbank oder so?

Ich könnte mir vorstellen, daß dies der Fall ist und daß beim Systemstart genau diese Anwendungen "noch nicht" laufen, wenn versucht wird deinen Dienst zu starten.

Stichwort hierfür wäre "Dependencies".

Edit: Dieser Rechner ist langsamer als alle anderen Rechner oder muss beim Start mehr laden als alle anderen Rechner, daher sieht man bei den anderen Rechnern kein Fehlverhalten.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#10

Re: Dienst reagiert nicht, ist aber voll da.

  Alt 29. Okt 2008, 15:44
Zitat von Tyrael Y.:
Kann es sein, daß dein Dienst beim Start erwartet, daß bestimmte andere Anwendungen schon laufen...zum Beispiel eine Datenbank oder so?

Ich könnte mir vorstellen, daß dies der Fall ist und daß beim Systemstart genau diese Anwendungen "noch nicht" laufen, wenn versucht wird deinen Dienst zu starten.

Stichwort hierfür wäre "Dependencies".

Edit: Dieser Rechner ist langsamer als alle anderen Rechner oder muss beim Start mehr laden als alle anderen Rechner, daher sieht man bei den anderen Rechnern kein Fehlverhalten.
Kann das Auswirkungen auf das Verhalten gegenüber der Steuerung mit net start und net stop im laufenden Betrieb haben?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz