高手请进!

armyshu 2002-02-07 11:24:02
在javabean 的sql语句中,我用到了一个当前时间的问题,(数据库是INFORMIX),我将时间格式转化为(yyyy/MM/dd)的形式,结果发现执行后数据库连接并没有释放,(我用fianlly显示的释放连接的),而且程序也没有报任何错误,更让人不懂的是,居然从数据库中取出了记录,但连接就是不释放????这样不久之后,weblogic就DOWN机了,(这个BEAN 的使用频率相当高。)请高手帮忙解决!?
...全文
30 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
remote_roamer 2002-02-08
  • 打赏
  • 举报
回复
建议使用显式的关闭conn.不要用finally.这个和垃圾回收有关,不一定会立即执行.同时建议先关闭resultset
gdsean 2002-02-08
  • 打赏
  • 举报
回复
"好象是说sql的date有问题"你就不能说明白点吗?
把异常贴出来得了。。我这句你查查看我说了多少次了
armyshu 2002-02-08
  • 打赏
  • 举报
回复
郁闷,怎么没人响应了,看来我大年都不能睡好觉了,因为必须给银行生产环境重起SERVER???!!
sharetop 2002-02-07
  • 打赏
  • 举报
回复
你这段代码根本就没有释放connection呀???什么意思???
armyshu 2002-02-07
  • 打赏
  • 举报
回复
/**Process the HTTP Get request*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String type=request.getParameter("RType");
String perd=request.getParameter("RPerd");

DataOutputStream out=new DataOutputStream(response.getOutputStream());
//ObjectOutputStream out1=new ObjectOutputStream(response.getOutputStream());

try{
SqlAccess conn=new SqlAccess();
//取当前时间
java.util.Date now=new java.util.Date();
SimpleDateFormat sd=new SimpleDateFormat("yyyy/MM/dd");
String nowStr=sd.format(now);
//只查询已启用的利率
String sqlStr="SELECT S_Serial,C_Rate,I_Deadline,F_Rate FROM P_RATE";
sqlStr+=" WHERE d_begindate<date('"+nowStr+"') AND (d_enddate IS NULL OR d_enddate>date('"+nowStr+"'))";
if(type!=null&&perd!=null)
sqlStr+=" AND C_RateType="+type+" AND I_Deadlint<"+perd;
sqlStr+=" ORDER BY I_Deadline";
//-----
//System.out.println(sqlStr);
//-----
ResultSet rst=conn.queryselect(sqlStr);
if(rst!=null){
//写查询成功标志
out.writeBoolean(true);
while(rst.next()){
out.writeUTF(rst.getString("S_Serial"));
//-----
//System.out.println("S_Serial:"+rst.getString("S_Serial"));
//-----
out.writeUTF(rst.getString("C_Rate"));
//-----
//System.out.println("C_RateType:"+rst.getString("C_Rate"));
//-----
out.writeInt(rst.getInt("I_Deadline"));
//-----
//System.out.println("I_ Deadline:"+rst.getString("I_Deadline"));
//-----
out.writeFloat(rst.getFloat("F_Rate"));
//-----
//System.out.println("F_Rate:"+rst.getString("F_Rate"));
//-----
}
}
else
out.writeBoolean(false);
out.close();
}catch(SQLException exp){
exp.printStackTrace();
out.writeBoolean(false);
out.close();
}
}

请看原玛,多多指教!
zha1977 2002-02-07
  • 打赏
  • 举报
回复
最好把代码贴出来
xuxb488 2002-02-07
  • 打赏
  • 举报
回复
关注.....
armyshu 2002-02-07
  • 打赏
  • 举报
回复
大哥,现在还是 老毛病,不释放连接!
armyshu 2002-02-07
  • 打赏
  • 举报
回复
嘿嘿,我又按你的方法做了一次,发现有打印东西出来,好象是说sql的date有问题,正在找?多谢!
armyshu 2002-02-07
  • 打赏
  • 举报
回复
哈哈,我尝试过了,控制台并没有任何打印出来的消息,也就是说,在执行到查询结束后,程序就不执行了,真的很奇怪!而且绝对没有别的任何错误!
gdsean 2002-02-07
  • 打赏
  • 举报
回复
你试试看有没有提示输出
gdsean 2002-02-07
  • 打赏
  • 举报
回复
finally{
System.out.println("正在释放连接");
try{
conn.close();
}catch(SQLException e){
System.out.println("连接释放时出现问题:" + e);
}
conn=null;
}
armyshu 2002-02-07
  • 打赏
  • 举报
回复
对不起哟,
finally{
conn.close;
conn=null;
}是我后来加进去的,但是还是有这样的问题啊??不明白!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧