日期:2014-05-20  浏览次数:20720 次

~~java+sql批处理,怎么执行一段时间后再执行调用就直接基本上就停住了(就是超慢慢),执行不下去了 ~
这是我封装的getConnect是从连接池中获取的链接,好像我可以顺利执行的次数根我的连接池的最大连接数有关系,连接数设大了就可以多执行一会,设小了就执行时间断了。就是批处理这块出问题,我项目中别的地方单语句都很好。  
public   static   boolean   executeBatch(String   sql[],   String   errorMethodName)   {  
Connection   conn=null;  
Statement   stat=null;  
try   {  
conn   =   DbManager.getConnect();  
conn.setAutoCommit(false);  
stat   =   conn.createStatement(  
ResultSet.TYPE_SCROLL_INSENSITIVE,  
ResultSet.CONCUR_READ_ONLY);  
stat.clearBatch();  
for   (int   i   =   0;   i   <   sql.length;   i++)   {  
stat.addBatch(sql[i]);  
}  
int   success[]   =   stat.executeBatch();  
if   (success   !=   null)   {  
conn.commit();  
if(stat!=null){  
stat.close();  
}  
if(conn!=null){  
conn.close();  
}  
return   true;  
}   else   {  
conn.rollback();  
if(stat!=null){  
stat.close();  
}  
if(conn!=null){  
conn.close();  
}  
return   false;  
}

}   catch   (Exception   e)   {  
try   {  
conn.rollback();  
if(stat!=null){  
stat.close();  
}  
if(conn!=null){  
conn.close();  
}  
return   false;  
}   catch   (SQLException   e1)   {  
//   TODO   Auto-generated   catch   block  
e1.printStackTrace();  
return   false;  
}  

}  


------解决方案--------------------
看看 你 的 cpu利用率
------解决方案--------------------
很明显, 数据库连接没有被释放, 请检查所有的相关代码.