جافا كومة الاستثناء ، مع ammount كبيرة من البيانات ، أي حل؟

StackOverflow https://stackoverflow.com/questions/4349347

سؤال

لدي مشكلة كبيرة مع ذاكرة كومة Java أحاول الترحيل من Oracle Database 11g للوصول إلى ملف 2007

هذه ليست مشكلة أقل من 65.000 سجل ، والآن من هناك ... يلقي التبلور استثناء كومة Java ، ويقوم استهلاك الذاكرة بزيادة أكثر من 600 متر واستخدام وحدة المعالجة المركزية أكثر من 50 ٪ حتى الإطفاء.

بقدر ما أعرف rset.next () لا تحصل على جميع البيانات (أكثر

rset.setFetchSize(1000);

لقد تمحو الكود الخاص بي وأظهر إخراجًا ، نفس الخطأ

while (rset.next()) {
 if (cont % 5000 == 0) {
     System.out.println(cont + " proccesed and counting ...");
 }
}

من فضلك لا تعطيني إجابة استخدام -xm (s ، x) 512 ، 1024 ، إلخ ... يمكن حل هذا ، وليس في حالتي الخاصة (لقد حاولت تعيين هذا xD العالي ، لا شيء سعيد ، أنا حصلت على نفس الاستثناء في 65.000 سجل أيضا)

هل هناك أي خيارات أخرى يمكن أن أجربها ؟؟ ، meaby تغيير بعض تكوينات برنامج التشغيل أو دورات السلسلة ؟؟ الرجاء المساعدة

آسف aboubt لغتي الإنجليزية

هذا هو اتصالي:

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);
هل كانت مفيدة؟

المحلول

يبدو أن المشكلة هي أنك تستخدم مجموعة نتائج قابلة للتمرير وأنها ستستخدم المزيد من الذاكرة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top