ITPub博客

首页 > Linux操作系统 > Linux操作系统 > websphere日志分析——程序隐患问题

websphere日志分析——程序隐患问题

原创 Linux操作系统 作者:CloudSpace 时间:2010-03-03 10:33:08 0 删除 编辑
程序往往在我们使用的过程中并不会在页面显示什么异常,但是后台却报了严重的错误,原因是对于数据的处理和传输不严谨,比如查询无数据的处理、查询条件有NULL值、或者查询返回数据过大等等。

 

(1)连接对象 

[08-12-3 8:49:10:993 CST] 0000065e SystemErr R java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1

ORA-01000: maximum open cursors exceeded

    这个问题和WAS也有一定的关系,随WAS版本不同,其JDBC对于PreparedStatement缓存设置也不同,在咱们的程序中,如果出现这个问题,说明PreparedStatement

\Statement对象的引用,并没有关闭。

      

       一般程序上

      pstmt = connection.prepareStatement(...);

      pstmt.executeUpdate();

   这样来使用,所以我们还需要加入一句

   pstmt = connection.prepareStatement(...);

      pstmt.executeUpdate();

      pstmt.close();

       这样就可以有效的防止此类问题的发生,也不容易造成内存溢出的错误。

       如果不及时关闭的话,DBMS会分配一个指针,实时对PreparedStatement对象进行遍历,加大系统开销。

     通过查看VSS上源代码,发现很多数据库连接对象都没有关闭,有很多没有关闭的,还有的是写了关闭,但似乎没有执行到,如下

 

  finally {

                    try {

                           if (!conn.isClosed()) {

                                  if (!conn.getAutoCommit()) {

                                         conn.rollback();

                                         conn.setAutoCommit(true);

                                         log

                                                       .error("TacticSearchServlet|Error while closing connection.");

                                 }

                                  conn.close();

                           }

                    } catch (Exception e) {

                           System.out.println("异常:"+e.getMessage());

                    }

 

   执行finally的时候,如果出错了,那么就进入了finally的catch,而finally try中才有数据连接对象的关闭。

   综上所述,需要开发检查PreparedStatement对象和Connection对象的关闭情况

 

(2)类型转换

[08-12-3 9:00:12:092 CST] 00000681 SystemErr R java.lang.NumberFormatException: For input string: ""

    从错误日志找到当时是执行com.hss.mcs.report.servlet.Sale_Analysis_Servlet,查看代码发现,这个属于“数据营销平台—数据销售分析”调用的,查看代码,发现是int I_jgbs=(new Integer(I_jgbs1)).intValue()这里对数据类型进行了转化,而I_jgbs1这个参数会取到空值,所以程序对转化也需要做一个修改。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14789789/viewspace-628463/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-07-08

  • 博文量
    355
  • 访问量
    929182