Announcement

Collapse
No announcement yet.

Offene Verbindungen vom DCOM-Server trennen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Offene Verbindungen vom DCOM-Server trennen

    Hallo zusammen,<BR>

    ich habe derzeit das Problem, dass die Netzwerkstabilität eines Kunden recht schwankt. D.h. einzelne DCOM-Server enthalten "tote" Clients und beenden sich nicht mehr automatisch wenn der letzte (lebende) Client beendet wird.<BR>

    Meine Idee war nun in den jeweiligen Server eine timer-gesteuerte "Selbstreinigungs-Funktion" einzubauen, d.h. in regelmässigen Abständen die Gültigkeit der einzelnen Clients zu überprüfen und ggf. die Verbindung zu schliessen.<BR>

    Erhalten die einzelnen Verbindungen eine eigene Prozess-ID ( wenn ja wie komme ich an diese? ) oder gibt es hier andere Möglichkeit?<BR>

    Vielen Dank für jede Antwort<BR>

    mfg Holger Rogge

  • #2
    Hallo,

    &gt;..einzelne DCOM-Server enthalten "tote" Clients ...

    dieses Problem wird bereits automatisch von DCOM erledigt, indem dort regelmässige Pings die verfügbare Verbindung prüfen. Da dies nur in der Richtung Client zum DCOM-Server erfolgt, muss der eigene DCOM-Server eine Callback-Verbindung zu jedem seiner Clients öffnen. In diesem Fall ist der DCOM-Server der "Client", und der Client der "DCOM-Server", so dass der Windows-Automatismus in beiden Richtungen greift und "tote Leitungen" automatisch abgeräumt werden.

    Über die API-Funktion <b>CoDisconnectObject</b> kann ein DCOM-Server trotz aktiver Clients heruntergefahren werden, d.h. er kappt ohne Rücksicht auf Verluste alle Leitungen. Dies könnte in einer von Außen aufrufbaren Interface-Methode zum Beispiel so aussehen:
    <pre>
    procedure TMyInterfaceObject.Quit;
    begin
    CoReleaseServerProcess;
    CoDisconnectObject(Self, 0);
    end;
    </pre>

    &#10

    Comment

    Working...
    X