Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Java Swing SQL Lite close connection

    Ciao ragazzi, ho una domanda per voi.
    Ho realizzato un'applicazione desktop con (java swing) e dopo un pò che utilizzavo l'applicazione, ottenevo questo errore:

    Codice PHP:
    [SQLITE_BUSY]  The database file is locked (database is locked
    Ho visto su tutto il codice, ma ad ogni metodo che lavorava al DB, è sempre chiuso la connessione. Ho risolto facendo un singleton:

    Codice PHP:
         if(dbIsntance==null || con == null){
                
    dbIsntance= new ConnectDB();
            } 
    rimuovendo su ogni metodo il connection.close. Secondo voi è una soluzione buona?Così uso sempre un'instanza della connessione al DB, non chiudendo però mai la connessione al DB. Vado bene così oppure dovrei trovare un'altra soluzione?Grazie mille

  2. #2
    Mi rimangio quello che ho detto continua a darmelo anche se più di rado). Ma che voi sappiate, questa eccezione viene data perchè si cerca di fare queri sul DB quando magari è impegnato? Sapete un modo per risolvere definitivamente questo problema?

  3. #3
    ciao!

    ma ti connetti al db anche con più istanze del programma?
    o in multi thread?

  4. #4
    Ciao fermat, ho un SwingWorker e nel doInBackground ho un ciclo for e dentro il ciclo for faccio delle select e delle insert (utilizzando adesso il singleton. Ma questo problema è dovuto a cosa?Ad un inserimento mentre è presente una select che deve ancora finire?

  5. #5
    sqlite non è un db server tipo mysql.
    quindi non so quanto sia in grado di effettuare operazioni multi-thread / parallele.
    in teoria non nasce con questo scopo.

    quindi, partendo dal presupposto che cmq potrei sbagliarmi, prova ad effettuare le varie operazioni una alla volta e vedi se ottieni lo stesso errore.
    questo indipendentemente da singleton.

  6. #6
    Beh in teoria eseguo già un'operazione per volta. Forse nei cicli for quando faccio le select e utilizzo il PreparedStatement, devo fare il close (anche se per ogni elemento ciclato, faccio sempre un'instanza nuova del PreparedStatment). Poi la cosa strana è che alle volte funzione e altre no...

  7. #7
    Ciao, alla fine il problema era causato da un PreparedStatment all'interno di un for che non veniva chiuso Grazie mille per il supporto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.