Newsgroup: it.comp.lang.delphi
Titolo: D5-BDE: Problemi di stabilità

Salve,
ho scritto una applicazione in D5 dal peso di circa 20 MB, 9 thread che fa
ampio uso della BDE per accedere a delle table e che purtroppo deve "girare"
sempre, termina con lo shut down del sistema. Purtroppo, tale applicazione
ora mostra problemi di stabilità dopo 1-3 giorni di funzionamento.
Escludendo "leakages" (verificato con MemSlurf), ho scritto un programmino
che apre e richiude un centinaio di finestre ciascuna contenente una JPEG e
nel frattempo accede in modo casuale a una table tramite la BDE.
Ebbene: anche il programmino si pianta dopo alcune ore con un errore
"kernel32"!! Se però, separo le due funzioni, cioè faccio solo accedere alla
table oppure faccio solo aprire e chiudere finestre anche dopo un tempo
almeno 8 volte superiore non ho registrato alcun "crash".
Qualcuno può suggerimi in quale direzione indagare, ho sa addirittura la
soluzione del mio problema?
Grazie,
Matheus

non ho specificato:
OS: W2000 e/o XP
BDE usata: Ver 5.1.1.1
Rigrazie e ciao.
Matheus

 soluzione del mio problema?
Difficile risponderti.
Dubito molto che il test che tu abbia fatto sia affidabile.
Nel caso lo fosse e, cioe', se l'esempio dei JPEG somiglia molto
all'elaborazione che fai nel tuo programma, allora il tuo programma
consuma davvero molta (troppa ?) memoria.  Il problema si aggrava se
il tuo programma non rilascia determinate risorse (mi insospettisce,
in questo senso, il fatto che si inchiodi dopo 1-3 giorni).  Il
problema e' anche capire di quanta memoria ha bisogno il BDE, domanda
alla quale indirettamente si risponde riportando quanto sono grandi le
tue tabelle.  A livello di applicazione, mi sembra che la
strutturazione in 9 thread sia un tantino eccessiva (anche perche' il
limite consigliato da MS per ogni processo e' 16), ma puo' anche darsi
che, nel tuo caso, non conoscendo l'applicazione, sia necessaria.

Questa cosa l'hai riscontrata presso di te, dal cliente e in entrambi i
posti?
La stessa cosa succede con entrambe le versioni OS di cui parlvavi?
A quale database accedi?
Usi un driver ODBC? Se si quale?
protocolli di rete utilizzati?
Altre app in esecuzione al momento dell'errore?
Che tipo di errore viene fuori? Puoi postare il msg esatto?
Hai provato ad eseguire la tua app da IDE attivando l'opzione "stop on
delphi exception" in modo da trovarti sulla riga che lo fa inkazzare?
Hai visto se ti vien riportato qualcosa nell'event viewer del sistema?
Usi componenti di 3parti? Se si, quali?
Bye
A.

 Usi componenti di 3parti? Se si, quali?
Di tutto di più ... . Ma non sembra essere questo il problema. Ottengo gli
stessi problemi con il programmino di test che usa: TForm, TImage, TTable,
TDBGrid, TThread tutto standard.
Grazie dell'interessamento.
Matheus

 che, nel tuo caso, non conoscendo l'applicazione, sia necessaria.
16 appunto, 9 è poco più della metà. Comunque mi servono per gestire
altrettante porte I/O in tempo reale (è lo scopo della applicazione).
Ciao.
Matheus

altrettante porte I/O in tempo reale (è lo scopo della applicazione).
9 e' comunque un bel numero e, comunque, Windows non e' un sistema 
operativo adatto per lo sviluppo di applicazioni real-time.  
-------------------------------
Message Posted by  <dedGateway>
http://www.dedonline.com/forump