当前位置:编程学习 > JAVA >>

两个数据库数据同步,出现java heap space 栈内存溢出

现在实现的功能是,在tomcat启动时,从一个数据库中将所有数据同步到另一个数据库中,完成初始化。我在init()方法中,创建了一个线程,在线程中实现了功能代码。但是,执行一段时间后,就出现java heap space 栈内存溢出,后来将tomcat的catalina.bat文件中加入“set JAVA_OPTS=-Xms64m -Xmx512m”,还是不好使。要怎么处理这段代码,才不会出现java heap space,求教,急!!! 数据库 java tomcat --------------------编程问答-------------------- 数据不要一次都读出来,是要分批读,一次1000条,你全部读出来,遇到大表,当然就内存溢出 --------------------编程问答-------------------- 是的,我已经分批取数据了,一次取10000条。 --------------------编程问答-------------------- 用ResultSet就不会有问题了
ps=micCon.prepareStatement("select * from doss_case " + where);// 
rs = ps.executeQuery();

oralCon.不setAutoCommit(false);
long cnt=0;
long startTime = System.currentTimeMillis();
while(rs.next()){
try {
importAj(rs);
} catch (Exception e) {
e.printStackTrace();
}
cnt++;
if(cnt % 50 ==0){
System.out.println("import:"+cnt+", time:"+(System.currentTimeMillis()-startTime));
oralCon.commit();
oralCon.setAutoCommit(false);
}
} --------------------编程问答-------------------- 用这种方式我从sql server导入近百万条数据也没有举出 --------------------编程问答-------------------- 写一个触发器不就ok了
也比较省事 --------------------编程问答-------------------- set JAVA_OPTS=-Xms64m -Xmx512m”,在设置大一点

如果真的是你一次性把数据都读出来了  建议你使用分页操作
--------------------编程问答-------------------- dump出堆转储快照,看看到底什么对象导致的内存溢出 --------------------编程问答-------------------- 数据库同步为什么要在java代码里写呢,直接用数据库实现不更好吗?还少了交互,性能更好
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,