Nella pagina mia ASP eseguo una query che potrebbe durare anche 10 secondi.

Vorrei evitare che l'utente aspetti tutto questo tempo, quindi ho pensato di fare così:
- se la query dura più di 3 secondi, si ha il rollback dell'operazione (la query è una UPDATE) e la comunicazione all'utente che i dati sono stati pres in carico, ma verranno processati più tardi.
- dopodichè si esegue una insert dei dati utili all' UPDATE in una tabella laterale.
- ad intervalli regolari (manualmente o tramite un programma esterno) eseguo le update sulla tabella di lavoro, dei dati che prendo sulla tabella laterale.

L'unico problema è la gestione del timeout.

Ecco come eseguo la connessione e l'esecuzione della query:

<%

dim connDB
set connDB = Server.CreateObject("ADODB.Connection")
connDB.Open ("DSN=XXX")

dim command
set command = Server.CreateObject("ADODB.Command")
command.ActiveConnection = connDB
command.CommandTimeout = 3
command.CommandText = " update TABELLA set CAMPO = VALORE "

dim recordset
set recordset = command.Execute()

...
%>

...ma il programma sebrerebbe non tener conto del commandtimeout .
Ho provato a LOCKare la tabella (tramite una query esterna...) e ad eseguire il programma. La pagina carica lentamente finchè IIS non va in errore (errore che tra l'altro non è intercettabile con On Error Resume Next).

Francesco "DAG" D'Aguanno
http://spazioinwind.libero.it/e_dag/

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.