SQL Developer congélation avec GC surcharge de dépassement des limites d'erreur sur la base de données MySQL
Je suis en train d'utiliser Oracle SQL Developer avec une base de données MySQL. Je peux me connecter très bien et je peux exécuter des requêtes, je peux voir les tableaux, et avec une table sélectionnée je peux cliquer sur tous les onglets de l'amende à l'exception de l'onglet "Données". Quand je clique sur l'onglet "Données", j'obtiens un message "en Attente d'un Éditeur pour initialiser" et SQL Developer gèle. Après quelques minutes, je reçois un message "GC généraux limite dépassée" avec la pile suivante
java.lang.OutOfMemoryError: GC overhead limit exceeded
at com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:2114)
at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1921)
at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:3278)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:462)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2997)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:2245)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2638)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2530)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1907)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2030)
at oracle.dbtools.raptor.controls.grid.ResultSetTableModel.openResultSet(ResultSetTableModel.java:490)
at oracle.dbtools.raptor.controls.grid.ResultSetTableModel.fetchNext(ResultSetTableModel.java:274)
at oracle.dbtools.raptor.controls.grid.ResultSetTableModel$4.doWork(ResultSetTableModel.java:686)
at oracle.dbtools.raptor.controls.grid.ResultSetTableModel$4.doWork(ResultSetTableModel.java:670)
at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:193)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:554)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
J'ai regardé autour de stackoverflow etn sur google, mais je ne pouvais pas finf tout ce qui fonctionne pour moi. Je suis en cours d'exécution du présent sous Windows 7 64 bits, SQL Developer version 4.0.3.16, MySQL server version 5.5. J'ai ajouté une ligne
AddVMOption -Xmx1024M
dans le sqldeveloper\sqldeveloper\bin\sqldeveloper.fichier conf, comme suggéré ici
et a également ajouté changé le rapport initial et le max d'allocation de mémoire tailles de piscine dans le
C:\Users\\AppData\Roaming\sqldeveloper\1.0.0.0.0\product.conf fichier
AddVMOption -Xms512m
et
AddVMOption -Xmx1024m
respectivement. Je suis suivi de la performance et je ne suis pas à cours de mémoire, mais le taux d'utilisation des processeurs va au-dessus de 90%.
Merci!
OriginalL'auteur user1356326 | 2014-12-04
Vous devez vous connecter pour publier un commentaire.
Vous devez modifier le
sqldeveloper\sqldeveloper\bin\sqldeveloper.conf
fichier, en ajoutant la ligne suivante:-jvm drapeaux doivent être définis dans le produit.fichier conf, voir la réponse - votre réponse est exacte AVANT la version 4.0
OriginalL'auteur user2181102
Il y a 2 paramètres de la mémoire de la JVM:
XMS
etXMX
.XMS
est la taille, en octets, pour toute JVM de feu dans votre machine.XMX
est le maximum de la partie de la mémoire que vous voulez être à la disposition de vos machines virtuelles.Vous devriez essayer d'augmenter (à l'étape de la taille selon votre machine) les deux valeurs.
À l'intérieur de votre
%APPDATA/sqldeveloper/<yourVersion>/product.conf
définir laXMS
à tout multiple de128m
avec leAddVMOption
paramètre.Que vous pourriez utiliser, par exemple
AddVMOption -Xms3072m
Avec ce paramètre, vous pouvez mettre en commentaire les valeurs finalement à
XMX
.Si vous continuez à recevoir le même message d'erreur, gardez à l'incrémentation du paramètre jusqu'à ce qu'il fonctionne bien.
ÊTRE CONSCIENT
Si vous, par hasard, définissez la valeur de XMS comme une valeur supérieure à la quantité de mémoire disponible de votre système, vous allez recevoir une autre erreur lors du démarrage de la JVM ou de toute application qui s'exécute au-dessus d'elle.
OriginalL'auteur LuizAngioletti
Est-il de toute façon à définir la XX:+UseParallelGC le drapeau de démarrage?
Qui pourrait aider votre gc travailler plus efficacement.
OriginalL'auteur anonymous