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

    [Java]java.lang.OutOfMemoryError

    il mio programma apre un database access e,poichè devo effettuare il backup, esegue la query SELECT * FROM tabella. Il problema è che mi da questo errore:

    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
            at java.nio.HeapCharBuffer.<init>(HeapCharBuffer.java:39)
            at java.nio.CharBuffer.allocate(CharBuffer.java:312)
            at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:760)
            at sun.jdbc.odbc.JdbcOdbcObject.BytesToChars(JdbcOdbcObject.java:232)
            at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3971)
            at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5698)
            at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:354)
            at sync.ODBCDatabase.eseguiQuery(ODBCDatabase.java:82)
            at sync.codice.iniz(codice.java:239)
            at sync.codice.actionPerformed(codice.java:182)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
            at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
            at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1220)
            at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1261)
            at java.awt.Component.processMouseEvent(Component.java:6041)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
            at java.awt.Component.processEvent(Component.java:5806)
            at java.awt.Container.processEvent(Container.java:2058)
            at java.awt.Component.dispatchEventImpl(Component.java:4413)
            at java.awt.Container.dispatchEventImpl(Container.java:2116)
            at java.awt.Component.dispatchEvent(Component.java:4243)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
            at java.awt.Container.dispatchEventImpl(Container.java:2102)
            at java.awt.Window.dispatchEventImpl(Window.java:2440)
            at java.awt.Component.dispatchEvent(Component.java:4243)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    come posso risolvere?

  2. #2
    Senza codice non possiamo mai sapere cosa succede. Magari entra in un ciclo infinito...
    Al mio segnale... scatenate l'inferno!

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Devi assegnare alla virtual machine più memoria.

    Se ricordo bene dovrebbe essere java -Xmx512m blabla :master:
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Originariamente inviato da Alex'87
    Devi assegnare alla virtual machine più memoria.

    Se ricordo bene dovrebbe essere java -Xmx512m blabla :master:
    Il comando è esatto, ma bisogna sempre vedere il motivo di quell'out of memory. Se è solo una questione di enorme mole di dati, allora va bene la soluzione dell'incremento dell'heap memory. Altrimenti occorre vedere che problema c'è nel codice.
    Al mio segnale... scatenate l'inferno!

  5. #5
    si si,è solo un problema di lettura d molti dati,xchè solo quella tabella m da questo errore,le altre va tranquillamente,e se in quella tabella metto una condizione x ridurre la lettura dei dati va tranquillamente.

    Il comando java -Xmx512m si può settare direttamente nel codice? xchè il prgramma deve girare su macchine diverse,altrimenti ogni volta dovrei settare ogni macchina.

    Grazie x le risposte

  6. #6
    a questo punto ti conviene spezzare la lettura dei dati se riesci facilmente a distribuire le select o coi cursori puoi fare qualcosa di interessante.

    ciao
    Ondare, il mio blog!

  7. #7
    umm,e come si fa? e cosa sono i cursori? se al limite puoi darmi un link dove studiarmeli,ti ringrazio ^^

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.