fjkrws系统错误分析及log功能追加报告

社内homepage测试中,发现系统不太稳定,具体表现为

有些数据显示插入成功,但是数据库中并无此数据。

有些数据插入成功后,返回list页面时,却不显示此数据信息,但是在数据库中有此数据。

分析原因:

1)在scheduleEdit.jsp页面的javascript函数function insert(user11Code) 中,下列代码存在问题:

document.updateForm.submit();

alert(" 登録しました。");

document.updateForm.action = "/views/schedule/scheduleList.jsp?lg=1&loginCode="+userCode;

document.updateForm.submit();

这段代码在执行时,并不是先执行完①再执行②。而是先执行①,不管①是否执行完毕,就执行②,在②的弹出窗口中单击确定后,在向下执行。这样②的信息只是说明①执行了,但具体执行得怎么样就不清楚了。即使②中有错误,也显示不出错误信息。而数据库插入操作就是在①所执行的页面中运行。

这样造成的结果是:

数据库操作是否成功,我们无法知道。

上述代码有可能存在不确定因素。

在更新和删除功能中也应该存在这样的问题。

2)解决办法:

scheduleEdit.jsp页面中,将上面代码修改为

document.updateForm.action = "/views/schedule/scheduleUpdateLogic.jsp?lg=1&loginCode="+userCode;

document.updateForm.submit();

其中红色部分根据实际情况再做修改。

增加一个scheduleUpdateLogic.jsp页面,将插入,更新,删除的逻辑放入这个页面,并将

int intResultBat = m_dbAccess_2.executeUpdate(sqlStr);

if(m_dbAccess_2!=null) m_dbAccess_2.close();

修改为

try{

int intResultBat = m_dbAccess_2.executeUpdate(sqlStr);

if (intResultBat >= 1) {

request.setAttribute("success","insert");

request.getRequestDispatcher("scheduleList.jsp").forward(request,response);

}

} catch (SQLException se) {

m_dbAccess_2.rollback();

request.setAttribute("error","データを更新するとき、異常がある. " +se.getMessage()); request.getRequestDispatcher("../common/exception.jsp").forward(request,response);

} finally {

if(m_dbAccess_2!=null)

m_dbAccess_2.close();

}

上面代码根据实际具体情况再做修改。

scheduleList.jsp页面增加执行成功信息

<body background="path%>/images/background.jpg" link="#FF00FF" onLoad="init();" onResize="resize();">

<!-- add wangsh 20070724 begin --&gt

<!-- 登録成功のメッセージを表示する begin --&gt

String success = (String)request.getAttribute("success")==null?"": ((String)request.getAttribute("success")).trim();

if (success.equals("insert")||success.equals("update")) {

%>

<script language="JavaScript">

alert(" 登録しました。");

script>

}

%>

<!-- 登録成功のメッセージを表示する end --&gt

<!-- add wangsh 20070724 end --&gt

更新,删除按同样方法修改。

经过这样的修改,至少可以在出错时显示错误信息,指示错误发生的原因。

1、 因为没有log功能,所以出现错误无法查询,故增加log4j系统日志功能。

具体方法如下:

1) log4j.jar包放入项目的libWEB-INFlib目录中。

2) 在项目的src目录中增加log4j.properties属性文件,具体写法如下:

log4j.rootLogger=debug, stdout, fjkrws

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d %p [%t] %C{1}.%M(%L) | %m%n

log4j.appender.fjkrws=org.apache.log4j.DailyRollingFileAppender

log4j.appender.fjkrws.Append=true

log4j.appender.fjkrws.file=c: empfjkrws.log

log4j.appender.fjkrws.DatePattern='_'yyyyMMddHH

log4j.appender.fjkrws.layout=org.apache.log4j.PatternLayout

log4j.appender.fjkrws.layout.ConversionPattern=%d %p [%t] %C{1}.%M(%L) | %m%n

3) common_schedule.jspcommonnosession.jspcommonstatistical_schedule.jspcommonstatistical.jsp文件中增加

4) 具体的代码写成

logger.debug("######");

logger.info("#######");

logger.error("######");

[@more@]

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

转载于:http://blog.itpub.net/10455649/viewspace-967259/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值