Errore System resource exceeded - Errori ASP

Descrizione

Un'elaborazione eccessivamente pesante ha causato l'esaurimento delle risorse di sistema disponibili.

Messaggio d'Errore

Messaggio in Italiano

Microsoft OLE DB Provider for ODBC Drivers error '8007000e'
[Microsoft][Driver ODBC Microsoft Access] Risorse di sistema insufficienti.
/percorso/file, line 10

Messaggio in Inglese

Microsoft OLE DB Provider for ODBC Drivers error '8007000e'
[Microsoft][ODBC Microsoft Access Driver] System resource exceeded.
/path/to/file.asp, line 10

Errore System resource exceeded

Il verificarsi di questo errore è abbastanza raro nel caso di script programmati accuratamente con attenzione verso l'ottimizzazione della memoria.
Il problema è causato da una connessione al database Access: il codice ha eseguito un'elaborazione eccessivamente pesante che ha causato l'esaurimento delle risorse di sistema disponibili per continuare l'interpretazione dello script.

Questo tipo di errore si incontra generalmente nei primi periodi di sviluppo in ASP e necessita di un tempestivo intervento di ottimizzazione del codice. Nel tempo le conoscenze e le capacità di programmazione acquisite aiuteranno a ridurre, se non elimininare del tutto, il verificarsi di questa condizione.

Come risolvere il problema

Per ogni connessione aperta ad un database IIS alloca della memoria occupando delle risorse.
Ogni connessione attiva comporta un canale costantemente aperto tra il database ed il webserver che si rivela assolutamente superfluo nel caso in cui la connessione non sia necessaria.

E' buona abitudine aprire una connessione ad un database solo nel momento in cui si rivela strettamente necessaria e chiuderla non appena la sua funzione è superflua. In aggiunta, se si devono eseguire più query allo stesso database è possibile organizzare le elaborazioni al fine di aprire la connessione una sola volta, recuperare tutti i dati necessari e chiudere la connessione al più presto. Non è consigliato aprire più connessioni contemporanee a database multipli, assolutamente da evitare se il database è lo stesso.

Nel caso in cui si presenti questo messaggio controllate attentamente il vostro codice sorgente. Nello specifico ecco una check list utile per individuare e correggere inutili sprechi di risorse.

  • Istanziate una connessione o un recordset solo quando necessario.
  • Aprite la connessione al database in una pagina solo se necessario.
  • Se dovete eseguire pi interrogazioni al database aprite la connessione, salvate i risultati delle query in variabili e chiudete la connessione non appena non è più necessaria.
  • Distruggete gli oggetti istanziati ed inutilizzati per liberare le risorse connessione e recordset non appena il loro utilizzo non è più ne.
  • Utilizzate un sistema di cache per memorizzare risultati a query frequenti.

Se l'errore persiste con una frequenza elevata si consiglia di valutare il passaggio ad un database più performante, come ad esempio MySQL o MS SQL Server.


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