Announcement

Collapse
No announcement yet.

Interbase läuft beim Schließen der Connection nach...

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

  • Interbase läuft beim Schließen der Connection nach...

    Hallo!<br><br>
    Ich eröffne hier mal einen neuen Thread, weil ich zu meinem Problem im Forum (noch) nichts gefunden habe.<br><br>
    Ich habe mit Delphi 5 und IBX 4.52 ein Tool geschrieben, dass mir per TIBSQL eine neue Datenbank mit Domains, Generatoren und Tabellen erzeugt.<br><br>
    Der Aufbau ist ganz simpel: Ich habe ein TIBDatabase-, ein TIBTransaction- und ein TIBSQL-Objekt fest auf einem Formular. Das Commit bei aktiven Transaktionen ist schnell abgeschlossen, nur beim Setzen der Connection auf Active:=false "läuft" der Prozess ziemlich genau 10 Sekunden nach. Erst dann wird er beendet.<br><br>
    Das Problem ist auf allen Windows-Versionen nachvollziehbar. Auch ist es egal, ob Interbase (Version 6.01) lokal oder auf einem Server installiert ist.<br><br>
    Hat irgendwer die selbe Erfahrung gemacht?<br>
    Kennt jemand den Grund für dieses Verhalten?<br><br>
    Vielen Dank für eure Tipps!<br>
    <br>
    Christian

  • #2
    Hallo Christian,<br><br>
    verwendest Du ein explizites Transaktionshandling, d.h. startest und beendest Du die verwendenten Transaktionen selbst? Welchen Prozess meinst Du eigentlich? Deine Anwendung oder den InterBase Server Prozess?<br><br>
    Gruss,<br>
    Thoma
    Thomas Steinmaurer

    Firebird Foundation Committee Member
    Upscene Productions - Database Tools for Developers
    Mein Blog

    Comment


    • #3
      Hallo Thomas,<br>
      <br>
      ich starte die Transaktionen nicht selbst, aber bestätige falls nötig mit Commit. <br>
      <br>
      Mit Prozeß meinte ich natürlich die Anwendung. Beim Debugger merkt man eben, dass direkt nach Connection.Active:=false ca. 10 Sekunden vergehen, unabhängig davon, was vorher gelaufen ist.<br>
      <br>
      Danke, Christian<br&gt

      Comment


      • #4
        Hallo Christian,<br><br>
        folgendes wäre denkbar. Du führst einen Code im OnBeforeDisconnect oder OnAfterDisconnect der TIBDatabase Komponente aus, oder es ist noch eine Transaktion aktiv (kann durchaus sein, weil du kein explizites Transaktionshandling verwendest), die dann beim Schließen der Datenbankverbindung laut der IBX-Einstellungen committed oder rollbacked werden.<br><br>
        Gruss,<br>
        Thomas
        Thomas Steinmaurer

        Firebird Foundation Committee Member
        Upscene Productions - Database Tools for Developers
        Mein Blog

        Comment


        • #5
          Hi Thomas,<br><br>
          es handelt sich um ein Minimalkonstrukt, es wird kein Code bei den Ereignissen ausgeführt.<br>
          Ich führe nach jeder Operation ein explizites Commit aus, wenn InTransaction true ist. Normales Commit, kein CommitRetaining.<br>
          <br>
          Mein Tool legt Tabellen, Generatoren, Trigger usw. an und erzeugt so eine leere Datenbank. Wenn gewünscht, werden auch Systemtabellen gefüllt. Mittlerweile tritt das Problem nicht jedesmal auf, auch wenn gleiche Operationen in der gleichen Reihenfolge ausgeführt werden.<br>
          <br>
          Da es sich um ein Administrationstool handelt, ist es auch nicht weiter wichtig. Ich hoffe nur, dass dieses Verhalten in der eigentlichen Anwendung nicht auftritt. :-))<br>
          <br>
          Christia

          Comment

          Working...
          X