AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Dienst zweimal auf dem gleichen Rechner starten
Thema durchsuchen
Ansicht
Themen-Optionen

Dienst zweimal auf dem gleichen Rechner starten

Ein Thema von DelphiKlaus · begonnen am 1. Aug 2008 · letzter Beitrag vom 2. Aug 2008
Antwort Antwort
DelphiKlaus

Registriert seit: 18. Okt 2006
100 Beiträge
 
Delphi 6 Professional
 
#1

Dienst zweimal auf dem gleichen Rechner starten

  Alt 1. Aug 2008, 11:48
Hallo,

ich habe das Problem, das ein von mir unter Delphi 6 erstellter Dienst zweimal auf dem gleichen Rechner (Windows 2003) gestartet werden soll. Einmal läuft die Anwendung in der echten Produktionsumgebung und ein zweitesmal soll der Dienst als Testinstanz laufen. Ich dachte, dass man mit Hilfe des Servicenamens oder Servicedisplaynamens, in der BeforeInstall-Routine aus einer Ini-Datei gelesen und damit für die beiden Programminstanzen unterschiedlich gemacht, das Problem leicht lösen könnte.

Aber das war wohl nichts. Sobald ich die Eigenschaft 'name' des Dienstes in einen anderen Namen ändere als den, der im Objektinspektor steht, geht nichts mehr. Der Dienst läßt sich zwar installieren, aber weder starten noch wieder deinstallieren. Die Änderung des displaynamens alleine bringt auch nichts, da es wohl wirklich nur der angezeigte Name ist. Die Eigenschaft servicestartname bringt's auch nicht, da da ja die Domäne und der User angegeben werden.

Ich könnte natürlich Teile des Quellcodes doppeln, also insbesondere die Unit, in der der von TService abgeleitete Dienst deklariert ist. Den Weg find ich nicht besonders schön, da in der Testinstanz normalerweise Programmänderungen getestet und abgenommen werden, und dann die gleiche Exe-Datei in der Produktionsumgebung aktiviert wird.

Gibts hier vielleicht jemanden, der so ein Problem schon mal hatte und mir einen guten Tipp geben kann.

Viele Grüße

Klaus
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2

Re: Dienst zweimal auf dem gleichen Rechner starten

  Alt 1. Aug 2008, 12:53
Ich habe mal eine Lösung gesehen, wo man mehrere Instanzen eines Dienstes laufen lassen konnte, die man einzeln kaufen konnte (also Lizenz pro Dienstinstanz). Vor diesem Hintergrund wurden einfach mehrere EXE-Dateien erzeugt, jede mit eigenem Namen und eigenem Service-Namen. Vielleicht ist das ein Modell, das für dich interessant ist, besonders wenn es dabei um den Unterschied zwischen Test- und Produktionsinstanz geht?
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Dienst zweimal auf dem gleichen Rechner starten

  Alt 1. Aug 2008, 13:34
Ich denke mit der Codegear TServer-Wrapper-Klasse geht das nicht. Dort ist Dienstname mit Klassenname verwoben. Hier müsstest du also eine eigene Ableitung machen.

Wenn die Anwendung als Testinstallation laufen soll (und wirklich keine extra HW dafür angeschaft werden kann). VM-Ware Server (Oder Virtualisierungslösung nach eigenen Wünschen) installiert und in einer VM-Ware die Testinstallation laufen lassen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Dienst zweimal auf dem gleichen Rechner starten

  Alt 1. Aug 2008, 14:13
eine sehr einfache Lösung wäre einen Dienst zu schreiben der nicht die eigentliche Arbeit macht sondern einfach weitere Prozesse startet.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#5

Re: Dienst zweimal auf dem gleichen Rechner starten

  Alt 1. Aug 2008, 14:22
Ach ja, das vergaß ich in meinem Beitrag oben zu erwähnen. Bei dieser Lösung gab es zwar viele EXE-Dateien, aber das eigentliche Programm war in einer DLL untergebracht, die von der jeweiligen EXE geladen wurde. Also wenig Overhead im Endeffekt.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Dienst zweimal auf dem gleichen Rechner starten

  Alt 2. Aug 2008, 12:38
Du kannst Dir das ServiceManager-Grundgerüst selber programmieren und dann die Service-Installation parametrisierbar machen:
Code:
c:\> MyService /i /n:YourService
Würde dann den MyService.Exe als Dienstname YourService registrieren. Beim Uninstall müsste dann natürlich der gleiche Servicename angegeben werden
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:30 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