|
|
Matlab crasht bei Datenbankabfragen |
|
PrinzMegahertz |

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 16.04.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.09.2010, 13:45
Titel: Matlab crasht bei Datenbankabfragen
|
 |
|
 |
|
Hallo allerseits,
ich greife in einer Schleife auf eine MySQL Datenbank zu, verarbeite die Daten, lade sie in die Datenbank und greife mir den nächsten Datensatz. Bei einem bestimmten Datensatz scheint aber ein Speicherproblem bei Matlab aufzutreten. Es erscheinen Fehlermeldungen (siehe unten) und Matlab wird so langsam, dass es unbenutzbar wird - das Programm reagiert nicht mehr auf Mausklicks und muss über den Taskmanager beendet werden.
Der Datensatz ist weder aussergewöhnlich groß noch irgendwie anders auffällig. Ich kann ihn in Mysql mit der gleichen Query problemlos abfragen. Hat jemand eine Idee, woran das liegen könnte?
Vielen Dank!
Edit: Am Speicher sollte es nicht liegen:
Zitat: |
Maximum possible array: 12899 MB (1.353e+010 bytes) *
Memory available for all arrays: 12899 MB (1.353e+010 bytes) *
Memory used by MATLAB: 605 MB (6.342e+008 bytes)
Physical Memory (RAM): 7902 MB (8.286e+009 bytes)
* Limited by System Memory (physical + swap file) available. |
Fehlermeldung:
Zitat: |
??? Java exception occurred:
java.lang.OutOfMemoryError: Java heap space
at com.mysql.jdbc.Buffer.getBytes(Buffer.java:198)
at com.mysql.jdbc.Buffer.readLenByteArray(Buffer.java:318)
at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1375)
at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2369)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:451)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2076)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1451)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1787)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3206)
at com.mysql.jdbc.Statement.executeQuery(Statement.java:1232)
at com.mathworks.toolbox.database.sqlExec.executeTheSelectStatement(sqlExec.java:170)
Error in ==> cursor.cursor at 150
resultSetVector = executeTheSelectStatement(curs.Cursor,curs.Statement);
Error in ==> database.exec at 34
curs=cursor(connect,sqlQuery);
Error in ==> analysis at 62
myQuery = exec(conn,['select * from spike where FK_Series = ' '''' num2str(series.data{h,1}) '''
AND FK_Unit =' '''' num2str(units.data{k,1}) ''' ']);
Exception in thread "Timer-1" java.lang.NullPointerException
at com.mathworks.mlwidgets.explorer.control.DirectoryListing$5.receive(DirectoryListing.java:242)
at com.mathworks.mlwidgets.explorer.control.DirectoryListing$5.receive(DirectoryListing.java:240)
at com.mathworks.util.NativeJava.listFiles(Native Method)
at com.mathworks.mlwidgets.explorer.control.DirectoryListing.loadAndSendDirectory(DirectoryListing.java:238)
at com.mathworks.mlwidgets.explorer.control.DirectoryListing.list(DirectoryListing.java:171)
at com.mathworks.mlwidgets.explorer.control.DirectoryListing.getChildren(DirectoryListing.java:115)
at com.mathworks.mlwidgets.explorer.control.DirectoryListing.getChildren(DirectoryListing.java:99)
at com.mathworks.mlwidgets.explorer.control.DirectoryDocumentListing.refresh(DirectoryDocumentListing.java:244)
at com.mathworks.mlwidgets.explorer.control.RefreshDaemon$3.run(RefreshDaemon.java:198)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
[ConditionalEventPump] Exception occurred during event dispatching:
java.lang.OutOfMemoryError: Java heap space
at javax.swing.RepaintManager.updateWindows(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source) |
|
|
|
|
|
PrinzMegahertz |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 16.04.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.09.2010, 14:33
Titel:
|
 |
|
 |
|
Habe den Code etwas geändert, diesmal ne andere Fehlermeldung.
Das Problem liegt nicht an dem Datensatz (den kann ich einzeln auch Problemlos von Matlab aus abfragen), sondern eher an der Anzahl der aneinander gereihten Abfragen. Irgendwann macht Matlab schlapp, warum auch immer - Speicher ist genug frei und ich cleare auch regelmäßig die nicht mehr benötigten alten Abfragen.
Bug? Benutze Version 2009b mit Windows 7 64bit.
Falls jemand eine Idee hat wäre ich echt dankbar! Ansonsten scheint es mir, dass ich das Projekt nicht verwirklichen kann und auf R umsteigen muss
Neuer Fehler:
Zitat: |
??? Java exception occurred:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.ensureCapacity(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2374)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:451)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2076)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1451)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1787)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3206)
at com.mysql.jdbc.Statement.executeQuery(Statement.java:1232)
at com.mathworks.toolbox.database.sqlExec.executeTheSelectStatement(sqlExec.java:170)
Error in ==> cursor.cursor at 150
resultSetVector = executeTheSelectStatement(curs.Cursor,curs.Statement);
Error in ==> database.exec at 34
curs=cursor(connect,sqlQuery);
Error in ==> analysis at 65
myQuery = exec(conn,['select * from spike where FK_Series = ' '''' num2str(series.data{h,1}) '''
AND FK_Unit =' '''' num2str(units.data{k,1}) ''' ']); |
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|