Java Heap Espace Exception, avec une grande quantité de données, une solution?
-
30-09-2019 - |
Question
J'ai un problème Litle grand avec mémoire de tas java Je suis en train de migrer la base de données Oracle 11g d'accéder au fichier 2007
Ce n'est pas un problème ci-dessous 65.000 dossiers, maintenant à partir de là ... Le aplication jette exception du tas Java, la consommation de mémoire soulève au-dessus de 600 m et l'utilisation du processeur de plus de 50% jusqu'à ce que l'exeption.
Pour autant que je sais que la rset.next () ne reçoivent pas toutes les données (plus de 50 x 65000 colums ligne), mais certains enregistrements x temps i essayer de AVONS ensemble aille chercher taille trop, rien ne se passe
rset.setFetchSize(1000);
J'ai effacer mon code et affiche une sortie, même erreur
while (rset.next()) {
if (cont % 5000 == 0) {
System.out.println(cont + " proccesed and counting ...");
}
}
S'il vous plaît ne me donne pas la réponse de l'utilisation -XM (s, x) 512, 1024, etc ... cela pourrait résoudre, pas dans mon cas particulary (je l'ai tryied pour définir cette xD encore plus, happend rien, je suis la même exception à 65.000 dossiers aussi)
Y at-il d'autres options que je pourrais essayer ??, meaby changer certaines configurations de pilote ou de chaîne ?? conections s'il vous plaît aider
désolé aboubt mon anglais
est ma connexion:
Class.forName("oracle.jdbc.driver.OracleDriver");
this.conn = DriverManager.getConnection("jdbc:oracle:thin:@" + getServer() + ":1521:orcl", getUser(), getPassword());
this.stmt = this.conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_UPDATABLE);
La solution
Il semble que le problème est que vous utilisez un ResultSet et Scrollable qui va utiliser plus de mémoire.