Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ein paar Fragen zu Diensten unter Delphi... (https://www.delphipraxis.net/99883-ein-paar-fragen-zu-diensten-unter-delphi.html)

Kedariodakon 19. Sep 2007 01:07


Ein paar Fragen zu Diensten unter Delphi...
 
Ok ich wollte jetzt mal nicht 20 Threads erstellen für die Grundsätzlichen Fragen die ich habe.

Ich biun dabei ein Dienst zu schreiben (abgeleitet von TService)...

Da sind mir nun ein paar Sachen untergekommen, die ich noch nicht ganz klären konnte.
  • Wie Stope, Pausiere ich einen Dienst im TService? (z.b. Wenn ein Fehler bei der Ausführung passiert)
  • Wenn ich mir mit Delphi-Referenz durchsuchenTService.LogMessage was protokolliere steht im Eventlog immer:
    Zitat:

    Beschreibung:
    Die Beschreibung der Ereigniskennung ( 0 ) in ( QwSolImportService ) wurde nicht gefunden. Der lokale Computer verfügt nicht über die zum Anzeigen der Meldungen von einem Remotecomputer erforderlichen Registrierungsinformationen oder DLL-Meldungsdateien. Möglicherweise müssen Sie das Flag /AUXSOURCE= zum Ermitteln der Beschreibung verwenden. Weitere Informationen stehen in Hilfe und Support. Ereignisinformationen:
    Datenbank-Verbindungsversuch: "1" NICHT war erfolgreich.
    im Grunde interessiert mich ja nur der untere Teil (nicht unterstrichen), was kann ich tun, damit der Obere Teil (unterstrichen nichtmehr kommt? Was meint Windows mit Beschreibungen zur Ereignisskennung? Wo hinterlege ich die?
  • Wie kann ich ein globales Exceptionhandling einbauen? (Falls mal Fehler auftreten, die z.b. einen Dienstneustart verlangen weil sie schwerwiegend sind...)

Bye Christian

SirThornberry 19. Sep 2007 06:13

Re: Ein paar Fragen zu Diensten unter Delphi...
 
zum Starten und Stoppen gibt es soweit ich mich erinnere Methoden wie DoStop etc.
Wenn ich deine Beschreibung jedoch so durchlese bin ich der Meinung das du falsch an die Sache heran gehst.
Welcher Fehler könnte so schwerwiegend sein das ein Programm/Dienst neu gestartet werden muss? Wenn du die Funktionalität deines Dienstes in einer eigenen Klasse ordentlich kapselst sollte es doch reichen diese Objectinstanz einfach frei zu geben und eine neue anzulgen (auch wenn ich der Meinung bin das etwas falsch programmiert ist wenn wegen Fehlern (die eventuell durch Prüfungen vermeidbar sind) alles neu erzeugt werden muss)
Und global Fehler abfangen. Gibt es kein Application.Exception bei Verwendung von TService (auch hier denke ich ist das der falsche Weg)?

Um was für eine Art Fehler geht es? Vielleicht findet sich ja eine bessere Lösung.

Luckie 19. Sep 2007 09:02

Re: Ein paar Fragen zu Diensten unter Delphi...
 
Zu dem Eintrag im Ereignisprotokoll: Du hast keine Beschreibung zu den MessageIDs angelegt. Siehe dazu: http://www.michael-puff.de/Developer...ortEvent.shtml

Kedariodakon 19. Sep 2007 09:12

Re: Ein paar Fragen zu Diensten unter Delphi...
 
Zitat:

Zitat von SirThornberry
zum Starten und Stoppen gibt es soweit ich mich erinnere Methoden wie DoStop etc.

Ah danke, die hab ich glatt übersehen.

Zitat:

Zitat von SirThornberry
Wenn ich deine Beschreibung jedoch so durchlese bin ich der Meinung das du falsch an die Sache heran gehst.
Welcher Fehler könnte so schwerwiegend sein das ein Programm/Dienst neu gestartet werden muss?

Gute Frage, das kann ich dir nicht beantworten, weiß aber aus erfahrung das das viele der Dienste machen...

Zitat:

Zitat von SirThornberry
Wenn du die Funktionalität deines Dienstes in einer eigenen Klasse ordentlich kapselst sollte es doch reichen diese Objectinstanz einfach frei zu geben und eine neue anzulgen (auch wenn ich der Meinung bin das etwas falsch programmiert ist wenn wegen Fehlern (die eventuell durch Prüfungen vermeidbar sind) alles neu erzeugt werden muss)

Nun, wenn man Fremdsource und Komponenten ohne Source arbeitet, bleibt einen aber nicht viel übrich, dass hat man dann einfach nicht in der Hand...

Zitat:

Zitat von SirThornberry
Und global Fehler abfangen. Gibt es kein Application.Exception bei Verwendung von TService (auch hier denke ich ist das der falsche Weg)?
Um was für eine Art Fehler geht es? Vielleicht findet sich ja eine bessere Lösung.

Nunja, man sollte immer auf das unmögliche gefasst sein, es kann immer mal irgendwo ein Fehler versteckt sein, daher auch die Frage bezüglich des globalen Exception-Handlings.
Mit der Fehler-Zeile allein im Eventlog kann man meist niemanden helfen, daher würd ich unbehandelte Exceptions im Dienst gern abfangen können und erweitert protokollieren.


Zitat:

Zitat von Luckie
Zu dem Eintrag im Ereignisprotokoll: Du hast keine Beschreibung zu den MessageIDs angelegt. Siehe dazu: http://www.michael-puff.de/Developer...ortEvent.shtml

Danke Lucky das hat schonmal geholfen, werd ich mich gleich mal mit beschäftigen.

Bye Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 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