Salve,
devo inserire un numero elevato di righe in una tabella DB2.
Il problema è che l'inserimento può multiplo, in quanto faccio girare più istanze dello stesso programma.
Chiaramente ogni istanza inserirà dati differenti.
Quello che faccio è essenzialmente
codice:_cnn.setAutoCommit(false); for(int i=0; i< NUMERO_RIGHE_DA INSERIRE; i++){ _stm.executeUpdate(RIGA_DA_INSERIRE[i]); } _cnn.commit();
Il problema è che durante l'inserimento A VOLTE ottengo un errore di TIMEOUT:
SQLCODE = -913
SQLERRD = 00C9008E ---> timeout
Il problema è dunque riuscire ad aumentare il timeout del db in modo da evitare questo errore.
Ho provato inserendo nella stringa di connessione il "locktimeout" ma non funziona:
Ma da sempre lo stesso errore.codice:Properties prop = new Properties(); prop.setProperty("locktimeout", "900"); ... _cnn = DriverManager.getConnection(_Url, prop);
Ho provato allora a settare il currentlocktime in questa maniera:
ma non cambia nulla...codice:DB2DataSource ds = new DB2DataSource(); .... ds.setCurrentLockTimeout(900); ... _cnn = ds.getConnection(_User, _Pswd);
Che posso fare????

Rispondi quotando