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

    Errore out of memory con sqlite su Elipse Juno

    Ciao ragazzi,
    Ho un problema con Eclipse Juno.
    L'errore che il software mi restituisce è il seguente:

    Exception in thread "main" java.sql.SQLException: out of memory
    at org.sqlite.DB.throwex(DB.java:288)
    at org.sqlite.NestedDB._open(NestedDB.java:73)
    at org.sqlite.DB.open(DB.java:77)
    at org.sqlite.Conn.<init>(Conn.java:88)
    at org.sqlite.JDBC.connect(JDBC.java:64)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at ProvaDB1.main(ProvaDB1.java:10)


    La linea 10 è la seguente:

    Connection conn = DriverManager.getConnection("jdbc:sqlite:db.db");

    Come avrete capito, sto cercando di connettermi ad un database sqlite.
    premetto che ho importato la libreria sqlite jar.

    Ho letto sul web che il problema potrebbe essere la memoria che il sistema assegna ad eclipse, e che quindi bisogna incrementare la quantità di memoria da assegnare a questo programma mediante il file Eclipse.ini.

    Io ho eseguito questa procedura, il mio file eclipse.ini ora è il seguente:

    -startup
    plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
    --launcher.library
    plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1. 1.200.v20120522-1813
    -product
    org.eclipse.epp.package.jee.product
    --launcher.defaultAction
    openFile
    --launcher.XXMaxPermSize
    256M
    -showsplash
    org.eclipse.platform
    --launcher.XXMaxPermSize
    256m
    --launcher.defaultAction
    openFile
    -vmargs
    -Dosgi.requiredJavaVersion=1.5
    -Dhelp.lucene.tokenizer=standard
    -Xms512m
    -Xmx1024m
    -XX:MaxPermSize=512m



    Ma il mio problema persiste.
    Il codice java che genera l'errore è il seguente:

    public class ProvaDB1 {
    public static void main(String[] args) throws Exception{
    Class.forName("org.sqlite.JDBC");
    //try{
    Connection conn = DriverManager.getConnection("jdbc:sqlite:db.db");
    Statement stm = conn.createStatement();



    stm.close();


    conn.close();


    Questo è tutto il codice che ho scritto!!! mi pare strano che questo codicino possa generare un problema di memoria, quando ho eseguito programmi ben peggiori, con letture file e molti arrayList senza alcun problema! questo problema lo riscontro solo e soltanto quando tendo di connettermi al database.

    un paio di mesi fa avevo un vecchio computer con Windows 7, ora, a causa della rottura del mio vecchio amico, sono dovuto passare ad un nuovo pc, equipaggiato (ahimè) con Windows 8 (4gb ram). Con il vecchio pc anche le connessioni ai database funzionavano perfettamente, questo nuovo invece, non ne vuole proprio sapere.

    le ho provate tutte ma non sono in grado di risolvere il problema, spero che qualcuno sappia aiutarmi.
    grazie mille!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Errore out of memory con sqlite su Elipse Juno

    Originariamente inviato da ortolanoacavall
    Exception in thread "main" java.sql.SQLException: out of memory
    at org.sqlite.DB.throwex(DB.java:288)
    at org.sqlite.NestedDB._open(NestedDB.java:73)
    at org.sqlite.DB.open(DB.java:77)
    at org.sqlite.Conn.<init>(Conn.java:88)
    at org.sqlite.JDBC.connect(JDBC.java:64)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at ProvaDB1.main(ProvaDB1.java:10)


    La linea 10 è la seguente:

    Connection conn = DriverManager.getConnection("jdbc:sqlite:db.db");

    Come avrete capito, sto cercando di connettermi ad un database sqlite.
    premetto che ho importato la libreria sqlite jar.
    Dalla documentazione ufficiale del driver jdbc SQLite (https://bitbucket.org/xerial/sqlite-jdbc), c'è un esempio di codice Sample.java che ad un certo punto fa:

    codice:
        catch(SQLException e)
        {
          // if the error message is "out of memory", 
          // it probably means no database file is found
          System.err.println(e.getMessage());
        }
    E credo proprio che si questo il tuo caso.

    La questione è che hai specificato solo db.db. Tale file deve già esistere ma bisogna vedere quale è la directory "corrente" quando lanci la tua applicazione. Se lanci dall'interno di Eclipse, la directory corrente la puoi impostare nella Run configuration (per default è la cartella del progetto).

    Se vuoi per prova, metti un path assoluto nel sorgente (vedi esempi al link indicato). Ma solo per prova! (non tenere in generale path assoluti nei sorgenti).

    Devi valutare tu cosa "sapere" e/o impostare (anche quando la tua app "vivrà" fuori da Eclipse) per far trovare correttamente il file del db. E mi pare anche chiaro che non centrano le opzioni extra per configurare heap ecc...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2025 vBulletin Solutions, Inc. All rights reserved.