AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

COM-Server als Singleton umsetzen

Ein Thema von crypti · begonnen am 4. Jan 2009 · letzter Beitrag vom 9. Jan 2009
Antwort Antwort
Seite 2 von 2     12   
crypti

Registriert seit: 12. Feb 2005
43 Beiträge
 
#11

Re: COM-Server als Singleton umsetzen

  Alt 8. Jan 2009, 18:49
Danke für die Antworten. Wenn man definitiv nur eine Instanz haben möchte, ist der Weg über einen zweiten COM Server sicher sehr gut. Jedoch wäre es dann theoretisch auch möglich das jemand über COM den zweiten server anspricht und damit doch wieder mehrere Instanzen davon öffnet.

Bezüglich des Problems mit dem Zugriff verweigert werde ich die Empfehlung von spaxxn annehmen und einen neuen Topic eröffnen.
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#12

Re: COM-Server als Singleton umsetzen

  Alt 9. Jan 2009, 07:37
Mit Gewalt ist theoretisch einiges möglich, aber es soll so eben nicht möglich den Server mehrmals zu starten, da der Server nur für die frühe Bindung zur Verfügung gestellt wird, da die exe auch nur einmal startet und der Server innerhalb dieses Prozesses nur einmal instanziert werden darf.
"Hey Süße,
hol mir mal was zu trinken! Du wirst schon wieder hässlich!"

Zitat eines Betrunkenen
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#13

Re: COM-Server als Singleton umsetzen

  Alt 9. Jan 2009, 07:46
Also wenn ich mit Delphi-Bordmitteln einen COM-Server baue, dann wähle ich "Multithreaded" und als Threading-Modell "Free". Ich hab das mal durch Ausprobieren hinbekommen. Die EXE wird einmalig gestartet, nur für jede Verbindung wird ein eigenes COM-Objekt erzeugt (im Speicher).

Ich habe ein Hauptformular, das im OnCreate einmalig die 'globalen', also instanzübergreifenden Objekte in einem Datenmodul erzeugt, also irgendwelche Lookuplisten usw. Die einzelnen Instanzen meines COM-Objektes (die Implementierung des COM-Servers) greifen auf diese globale Instanz zu, wobei ich den Zugriff über CriticalSections kapsele, damit sich die Objekte nicht auf die Füße treten.

Vermutlich geht es auch anders, einfacher und besser, aber meine Lösung funktioniert und hat mich zum Ziel geführt.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#14

Re: COM-Server als Singleton umsetzen

  Alt 9. Jan 2009, 07:51
Geht mit Sicherheit, aber durch den zweiten COM-Server hat man die Möglichkeit über das Property direkt auf DB-Server-Funktionen zuzugreifen.

Zum Ziel hat mich auch meine Lösung gebracht. Muss halt jeder für sich wissen, was er will.
"Hey Süße,
hol mir mal was zu trinken! Du wirst schon wieder hässlich!"

Zitat eines Betrunkenen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 04:17 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