Folgendes Problem können wir nicht lösen:
ALS TEST IN EINEM EXE SIMPLIFIZIERT:
- Eine lokale Paradox Datenbank
- Anbindung über TDatabase-Komponente (einmalig zur Laufzeit erstellt)
- Eine TQuery (einmalig zur Laufzeit erstellt)
Eine Abfrage über drei Tabellen (mit JOIN) ergibt ca. 50 Datensätze. Diese Query wird nach einer Pause von 1 ms geschlossen, das SQL-Statement neu geschrieben und der Query wieder geöffnet.
Bei einigen Systemen kommt nach einigen zigtausend Aufrufen zunächst die Meldung "Speicher nicht ausreichend" (o.ä.) für JEDEN Aufruf, bevor sich die BDE nach einigen weiteren zigtausend Aufrufen endgültig systemweit verabschiedet (heißt: kein BDE-Programm - incl. BDEAdmin - mehr startbar). Fehlermeldung aus IDAPI-DLL, Adresse 8E000000. Beendet man alle BDE-Anwendungen, läßt sich Alles ohnen Neustart des Rechners zunächst wieder betreiben.
Auf einem anderem Rechner (Win2K, 800 MHz) läuft der gleiche Test störungsfrei (bisher ca. 2.000.000 Aufrufe).
Der Hinweis "DIE BDE IST MIST - NEHMT ... (z.B. ADO)" hilft hier nicht weiter, da es sich um eine Applikation handelt, die seit Jahren so oder in ähnlicher Form bei diversen Kunden erfolgreich im Einsatz ist und nicht von jetzt auf gleich abgelöst werden kann.
Hier die Systemdaten des "Problemfalls":
CPU P4, 3,2 GHz, 512 MB HSp.
WIN XP Prof SP 2
BDE Version (DLL's 5.11, Admin 5.01)
BDEADMIN-SYSTEM-INIT-Einstellungen: (Haben wir für den Test hochgesetzt)
- AUTO ODBC: FALSE
- DEFAULT DRIIVER: PARADOX
- LANGDRIVER: PDOX ANSI INTL
- LOCAL SHARE: TRUE (mit FALSE (Standard) haben wir es auch probiert)
- LOW MEM USAGE: 32
- MAXBUFSIZE: 16384
- MAXFILEHANDLES: 396
- MINSIZE: 32
- MTS-POOLING: FALSE
- SHAREDMEMLOCATION: <leer> (Setzen von "5BDE" führte zu Fehlern in MIDAS)
- SHAREDMEMSIZE: 8192
- SQLQUERYMODE: <leer>
- SYSFLAGS: 0
- VERSION: 4.0
Hintergrund ist ein System mit zwei NT-Diensten und mehreren verteilten Win32-Exes, die 'normal' oder über multithreading auf mehrere Datenbanken (PARADOX, SQL SERVER, ORACLE) zugreifen - UND DAS HAT SEIT JAHREN FUNKTIONIERT !
ALS TEST IN EINEM EXE SIMPLIFIZIERT:
- Eine lokale Paradox Datenbank
- Anbindung über TDatabase-Komponente (einmalig zur Laufzeit erstellt)
- Eine TQuery (einmalig zur Laufzeit erstellt)
Eine Abfrage über drei Tabellen (mit JOIN) ergibt ca. 50 Datensätze. Diese Query wird nach einer Pause von 1 ms geschlossen, das SQL-Statement neu geschrieben und der Query wieder geöffnet.
Bei einigen Systemen kommt nach einigen zigtausend Aufrufen zunächst die Meldung "Speicher nicht ausreichend" (o.ä.) für JEDEN Aufruf, bevor sich die BDE nach einigen weiteren zigtausend Aufrufen endgültig systemweit verabschiedet (heißt: kein BDE-Programm - incl. BDEAdmin - mehr startbar). Fehlermeldung aus IDAPI-DLL, Adresse 8E000000. Beendet man alle BDE-Anwendungen, läßt sich Alles ohnen Neustart des Rechners zunächst wieder betreiben.
Auf einem anderem Rechner (Win2K, 800 MHz) läuft der gleiche Test störungsfrei (bisher ca. 2.000.000 Aufrufe).
Der Hinweis "DIE BDE IST MIST - NEHMT ... (z.B. ADO)" hilft hier nicht weiter, da es sich um eine Applikation handelt, die seit Jahren so oder in ähnlicher Form bei diversen Kunden erfolgreich im Einsatz ist und nicht von jetzt auf gleich abgelöst werden kann.
Hier die Systemdaten des "Problemfalls":
CPU P4, 3,2 GHz, 512 MB HSp.
WIN XP Prof SP 2
BDE Version (DLL's 5.11, Admin 5.01)
BDEADMIN-SYSTEM-INIT-Einstellungen: (Haben wir für den Test hochgesetzt)
- AUTO ODBC: FALSE
- DEFAULT DRIIVER: PARADOX
- LANGDRIVER: PDOX ANSI INTL
- LOCAL SHARE: TRUE (mit FALSE (Standard) haben wir es auch probiert)
- LOW MEM USAGE: 32
- MAXBUFSIZE: 16384
- MAXFILEHANDLES: 396
- MINSIZE: 32
- MTS-POOLING: FALSE
- SHAREDMEMLOCATION: <leer> (Setzen von "5BDE" führte zu Fehlern in MIDAS)
- SHAREDMEMSIZE: 8192
- SQLQUERYMODE: <leer>
- SYSFLAGS: 0
- VERSION: 4.0
Hintergrund ist ein System mit zwei NT-Diensten und mehreren verteilten Win32-Exes, die 'normal' oder über multithreading auf mehrere Datenbanken (PARADOX, SQL SERVER, ORACLE) zugreifen - UND DAS HAT SEIT JAHREN FUNKTIONIERT !
Comment