Announcement

Collapse
No announcement yet.

Probleme beim Verbindungsaufbau mit TADOConection

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

  • Probleme beim Verbindungsaufbau mit TADOConection

    Hallo zusammen,

    wir haben folgendes Problem:
    Wir haben mit Delphi 6 Prof. eine Datenbankanwendung erstellt, in der für jeden angemeldeten Benutzer ein eigener Thread und ein eigenes Datenmodul erstellt wird. Meistens läuft die Anwendung rund. Manchmal kommt es aber vor, daß ein Benutzer eine Datenbankabfrage absetzt die sehr lange läuft. In diesem Fall akzeptiert die Anwendung keine weiteren Benutzeranmeldungen. Wir konnten den Fehler schon soweit eingrenzen, als das wir festgestellt haben, daß der Thread und das Datenmodul für den Benutzer sauber erstellt werden, beim Versuch die ADOConnection zu öffnen (adoconnection.connected := true) nichts mehr passiert. An der Auslastung der Datennbank kann es nicht liegen, da zum einen die bereits angemeldeten Benutzer ganz normal weiter arbeiten können und zum anderen ein Verbindungsaufbau mit einer weiteren Instanz der Anwendung (auf der selben Datenbank und der selben Maschine) problemlos funktioniert.

    Wir sind eigentlich davon ausgegangen, daß bei einer Multithread-Anwendung die Datenbanksitzungen der verschiedenen Threads vollkommen voneinander unabhängig sind, in etwa so wie bei mehreren Instanzen der Anwendung.

    Um das Problem nachzuvollziehen, haben wir eine kleine Beispielanwendung erstellt, in der über 2 Schalter auf dem Hauptformular zwei Threads erzeugt werden, die wiederum jeweils ein Datenmodul erzeugen, versuchen, die ADOConnection zu öffnen und dann eine Query ausführen, die sehr lange läuft (aus Gründen der Einfachheit bilden wir ein kartesisches Produkt aus zwei sehr großen Tabellen). Die Quellen der Beispielanwendung fügen wir als Anlage bei.



    Wir sind für jede Hilfe dankbar
    Attached Files
    Zuletzt editiert von Enno Ahrens; 17.07.2007, 16:54.
Working...
X