7 messaggi dal 21 settembre 2015
Il mio sito web consta di pagine .asp che si collegano ad alcuni database access .mdb, in alcuni casi per scrittura sugli stessi database, in altri per sola lettura dei dati.
Il sito è su server Aruba e i database occupano complessivamente poco più di 100 mega.
Ieri mattina improvvisamente il sito non riusciva più a collegarsi ai database, e mostrava il seguente errore:
Microsoft OLE DB Provider for ODBC Drivers error '8007000e'
[Microsoft][ODBC Microsoft Access Driver] Not enough space on temporary disk.
Dopo aver aperto un ticket di assistenza col gestore Aruba tutto è tornato a funzionare, non mi hanno spiegato esattamente quale azione avevano fatto ma mi hanno ricordato di chiudere puntualmente tutte le istanze di collegamento ai database aperte sulle pagine.
Ieri sera dopo poche ore il problema si è ripresentato. Naturalmente dovrò ricontattare il gestore del server, ma con riguardo al loro consiglio di chiudere le istanze verso i database, guardando le pagine asp vedo che al termine della pagina ho il codice
<%
If IsObject(objCn) Then
If Not objCn Is Nothing Then
If objCn.State = adStateOpen Then objCn.Close
Set objCn = Nothing
End If
End If%>

che credevo fosse quello che appunto chiude la connessione, ma a questo punto non so cosa pensare ...
Esiste ad esempio un test per verificare che sulle pagine asp che ospitano codici di connessione a database non rimangano istanze aperte?
Come posso risolvere il problema, per lo meno temporaneamente mentre mi organizzo per passare a un database più performante?
grazie!!
Francesco
Modificato da fmirag il 13 ottobre 2015 08.26 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Francesco,
il problema potrebbe essere causato da alcune queries SQL, anziché dall'apertura e chiusura della connessione.
Se il driver di Access si trova a lavorare con set di dati molto grandi, potresti avere quell'errore.

fmirag ha scritto:

i database occupano complessivamente poco più di 100 mega.

D'accordo, ma se fai delle cross-join tra tabelle con molti record, potresti velocemente raggiungere il limite di memoria consentito.

Per caso nel codice hai delle query come le seguenti, in cui due o più tabelle sono indicate separate da virgola nella clausola FROM?
SELECT * FROM tabella1, tabella2

In questo caso, prova a riscrivere la query come LEFT JOIN o INNER JOIN.

ciao,
Moreno
Modificato da BrightSoul il 14 ottobre 2015 23.17 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.