Announcement

Collapse
No announcement yet.

Eine Anwendung wird über den Taskmanager beendet

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

  • Eine Anwendung wird über den Taskmanager beendet

    Hallo Zusammen,
    wir sind mitten in der Entwicklung einer neuen Anwendung (3-Tier über DCOM). Es kann passieren, dass Anwender Funktionen auslösen, die zu einem Fehler führen durch den sich die Anwendung mit normalen Mitteln nicht mehr beenden läßt. In diesem Fall wird der Taskmanager bemüht.

    Wird die Anwendung aber über den Taskmanager beendet, bekommt die Middle-Ware dies nicht mit und der Client bleibt angemeldet. Geschieht das Abschiessen über den Taskmanager während einer Datenbank-Transaction die durch den Client angestossen wurde, wird diese auch nicht korrekt beendet. Dies führt dazu, dass der Client beim nächsten Anmelden in einen Deadlock läuft, den wir nur durch einen Restart des Servers in den Griff bekommen.

    In unserem Fall benötigen wir also eine Möglichkeit sowohl die aktive Transaction über einen Rollback zu beenden als auch den Client sauber vom Server zu trennen.

    Also nochmal meine Frage:

    Kann ich über Delphi einen Mechanismus implementieren, der mitbekommt, dass eine Anwendung über einen Taskmanager beendet wurde.

    Vielen Dank für alle Tipps
    Gruss
    Frank

  • #2
    > Wird die Anwendung aber über den Taskmanager beendet, bekommt die Middle-Ware dies nicht mit und der Client bleibt angemeldet.

    Bei DCOM gibt es auch einen Timeout welcher dazuführt das nach ein paar Minuten (AFAIK 6-8 Minuten) spätestens der Server mitbekommt das der Client beendet wurde

    Comment


    • #3
      Hallo!

      Also COM hat für Transaktionen einen generellen timeout (default 60 sek) danach wird automatisch ein setabort herumgereicht.

      Den "Abschuß" mit dem Taskmanager wirst Du wahrscheinlich nicht ordentlich bemerken können aber:
      Warum merkst Du Dir nicht das ordentliche Beenden Deines Programms. Beim Start einen Registry Wert setzen und beim Beenden wieder freigeben. Wenn beim Start der Wert noch gesetzt ist, ist Vorsicht geboten.

      Und bitte keine Doppelpostings!

      BYE BERN

      Comment


      • #4
        Hallo Bernhard,
        das mit dem Timeout habe wir bereits getestet. Leider reagiert der Server nur dann darauf, wenn er im MTS läuft. Als Standalone-Exe bekommt er das Tieout nicht mit.

        Gruss
        Fran

        Comment


        • #5
          Hallo Bernd,
          war ein Versehen. Sorry

          Comment

          Working...
          X