Errore Too many client tasks - Errori ASP

Descrizione

Un numero eccessivo di connessioni, rispetto a quelle disponibili, tentano di accedere ad un database Access.

Messaggio d'Errore

Messaggio in Italiano

Microsoft OLE DB Provider for ODBC Drivers error '80040e4d'
[Microsoft][Driver ODBC Microsoft Access] Troppe attività di tipo client.
/percorso/file, line 10

Messaggio in Inglese

Microsoft OLE DB Provider for ODBC Drivers error '80040e4d'
[Microsoft][ODBC Microsoft Access Driver] Too many client tasks.
/path/to/file.asp, line 10

Errore Too many client tasks

Il database Microsoft Access è nato come desktop database, non come database web oriented, pertanto non offre le stesse funzionalità e soprattutto le stesse performance dei database prettamente rivolti all'interazione con linguaggi lato server, come ASP e PHP.
Questo non significa che Access sia da buttare, tutt'altro, svolge egregiamente il suo compito per siti di media e piccola dimensione, ma richiede una cura ed una attenzione decisamente maggiore rispetto ad alcuni suoi fratelli maggiori come MySQL e MS SQL Server.

L'errore sopra riportato segnala che Access ha raggiunto il limite delle connessioni contemporanee al database da parte degli script, che si aggirano a seconda della versione del driver da 20 a 40 contemporanee, e non è quindi in grado di accoglierne ulteriori fino a quando non se ne liberano di inutilizzate.

Come risolvere il problema

L'errore sopra citato non sempre è legato al database ma molto più spesso ad un codice mal scritto e poco ottimizzato.
La prima cosa da controllare è la chiusura di tutte le connessioni e la liberazione delle risorse non appena non più necessarie, usando l'istruzione .Close.

Ad esempio, se nomeconnessione è la connessione attiva, è possibile chiuderla con nomeconnessione.Close.
E' inoltre importante distruggere gli oggetti per liberare risorse sul server, con l'istruzione di assegnamento a Nothing, ad esempio Set nomeconnessione = Nothing .

Queste semplici regole possono aiutarci a scongiurare l'errore e a sviluppare un codice più fluido, veloce e leggero.
A tal proposito è fondamentale ricordarsi di aprire la connessione al database solo se e quando necessaria, per mantenerla aperta il minor tempo possibile.

Infine, fate buon uso delle funzioni che ASP mette a disposizione per salvare in cache i valori chiudendo il prima possibile le connessioni e sfruttate le potenzialità degli array.

Vedrete che anche Access può risultare sufficientemente flessibile.


ASP.weppos.com e ASP.weppos.it sono di proprietà di Simone Carletti.
Scopri il mio sito o visita il mio Simone Carletti's profile on LinkedIn