WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Matlab crasht bei Datenbankabfragen

 

PrinzMegahertz
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 16.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.09.2010, 13:45     Titel: Matlab crasht bei Datenbankabfragen
  Antworten mit Zitat      
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)
Private Nachricht senden Benutzer-Profile anzeigen


PrinzMegahertz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 16.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.09.2010, 14:33     Titel:
  Antworten mit Zitat      
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 Sad

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}) ''' ']);
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.