JAVA应用运行一段时间(一天左右)某个页面部分出错(有偿感谢)

zyzdy 2018-07-03 07:28:25
运行环境:

1、weblogic + 项目(spring mvc) + oracle11g数据库 + jdk8.144

2、某个程序在运行一段时间后(针对部分数据保存出错,部分数据不出错),没有进指定方法,直接404出错。

3、重启后,同样的数据保存成功

4、每天下午2-4点左右出现这种情况,未能找到根本的原因(后台没有错误日志与提示)

5、目前调试环境运行无法重现错误。


其它说明:

1、目前排除数据库原因(同时启动了一个应用程序的备机,连到该数据库,在主机出库时,备机正常操作)。

2、报错是针对该页面提交数据的所有用户,不是单个用户

3、java内存运行时正常占用30%左右。


如果有人愿意帮助解决该问题,个人愿意支付技术服务费2000元整,非常感谢参与。
...全文
1300 60 打赏 收藏 转发到动态 举报
写回复
用AI写文章
60 条回复
切换为时间正序
请发表友善的回复…
发表回复
java123.vip 2018-07-12
  • 打赏
  • 举报
回复
再观察一段时间吧。
如果能平稳度过几个高峰日,应该是没问题了。
java123.vip 2018-07-12
  • 打赏
  • 举报
回复
引用 57 楼 zyzdy 的回复:
本日也没有发生,真是妖怪了。

1、凭心而论,代码除加了一些system.out之外,本质上没有做个任何改动。

2、weblogic的参数调了四个(难道是这四个参数调好了?)

登录超时

接受积压

最长线程阻塞时间

持续时间

再观察观察吧,没问题就好。可能是参数调好了。
zyzdy 2018-07-12
  • 打赏
  • 举报
回复
引用 58 楼 weixin_42612876 的回复:
[quote=引用 57 楼 zyzdy 的回复:]
本日也没有发生,真是妖怪了。

1、凭心而论,代码除加了一些system.out之外,本质上没有做个任何改动。

2、weblogic的参数调了四个(难道是这四个参数调好了?)

登录超时

接受积压

最长线程阻塞时间

持续时间

再观察观察吧,没问题就好。可能是参数调好了。[/quote]

非常感谢,本日也正常,难道真好了?
zyzdy 2018-07-11
  • 打赏
  • 举报
回复
本日也没有发生,真是妖怪了。

1、凭心而论,代码除加了一些system.out之外,本质上没有做个任何改动。

2、weblogic的参数调了四个(难道是这四个参数调好了?)

登录超时

接受积压

最长线程阻塞时间

持续时间
java123.vip 2018-07-09
  • 打赏
  • 举报
回复
引用 52 楼 zyzdy 的回复:
今天再观察一天,如果没问题,晚上再正式发布一份,看看周一作业情况,因为周六周日业务量较小,耽心没有重载无法重现问题。

OK
老王就是我 2018-07-09
  • 打赏
  • 举报
回复
首先,你需要想办法加上日志,其次,会不会是中间插件的问题
java123.vip 2018-07-09
  • 打赏
  • 举报
回复
引用 54 楼 zyzdy 的回复:
[quote=引用 53 楼 weixin_42612876 的回复:]
[quote=引用 52 楼 zyzdy 的回复:]
今天再观察一天,如果没问题,晚上再正式发布一份,看看周一作业情况,因为周六周日业务量较小,耽心没有重载无法重现问题。

OK[/quote]

到目前为止,今日平安的度过。

应用暂时不动,新更改也不发布,再观察一天。[/quote]
OK
zyzdy 2018-07-09
  • 打赏
  • 举报
回复
引用 53 楼 weixin_42612876 的回复:
[quote=引用 52 楼 zyzdy 的回复:]
今天再观察一天,如果没问题,晚上再正式发布一份,看看周一作业情况,因为周六周日业务量较小,耽心没有重载无法重现问题。

OK[/quote]

到目前为止,今日平安的度过。

应用暂时不动,新更改也不发布,再观察一天。
zyzdy 2018-07-08
  • 打赏
  • 举报
回复
今天再观察一天,如果没问题,晚上再正式发布一份,看看周一作业情况,因为周六周日业务量较小,耽心没有重载无法重现问题。
zyzdy 2018-07-07
  • 打赏
  • 举报
回复
引用 50 楼 weixin_42612876 的回复:
mtsave f...ex
mtsave f...er
mtsave f...th
今天上面这些信息有没有输出?


今天早上六点多重新发布的项目,至目前为止,还没出现上面描述的错误。

java123.vip 2018-07-06
  • 打赏
  • 举报
回复
生产环境不要加throw new Error("test error.");,否则会影响正常业务。
java123.vip 2018-07-06
  • 打赏
  • 举报
回复
case1:测试程序超时

。。。。原来的注解都加上
public ModelAndView mtsave(HttpServletRequest req
,HttpServletResponse res
,ModelMap model){
try{
System.out.println();
System.out.println("start sleep.");
Thread.sleep(1000*60*6); // sleep 6 minutes 或者更大
System.out.println("end sleep.");
}catch(Throwable th){
th.printStackTrace();
}
}


case2:测试Error异常

。。。。原来的注解都加上
public ModelAndView mtsave(HttpServletRequest req
,HttpServletResponse res
,ModelMap model){
System.out.println("start testError.");
throw new Error("test error.");
}


case3:测试Throwable异常

。。。。原来的注解都加上
public ModelAndView mtsave(HttpServletRequest req
,HttpServletResponse res
,ModelMap model) throws Throwable {
System.out.println("start testError.");
throw new Throwable("test error.");
}


case4:测试Exeption异常

。。。。原来的注解都加上
public ModelAndView mtsave(HttpServletRequest req
,HttpServletResponse res
,ModelMap model) throws Exception {
System.out.println("start testError.");
throw new Exception("test error.");
}


case5:测试RuntimeException异常

。。。。原来的注解都加上
public ModelAndView mtsave(HttpServletRequest req
,HttpServletResponse res
,ModelMap model){
System.out.println("start testError.");
throw new RuntimeException("test error.");
}
java123.vip 2018-07-06
  • 打赏
  • 举报
回复
引用 41 楼 zyzdy 的回复:
[quote=引用 38 楼 weixin_42612876 的回复:]

System.out.println("start testError.");
throw new Error("test error.");

抛Throwable, Exception,RuntimeException的也都分别测一下,抛给框架,看看weblogic和框架有啥反映。
(RuntimeException和Error以外可以把mtsave方法加上声明抛出)


代码中这样写了,中午更新一个版本上去,看看下午再出什么错。

[/quote]
1.生产环境不要加throw new Error("test error.");
2.测试环境把我说的那些代码分别加到程序的入口,你现在加的位置没什么用。
加到mtsave刚进来的地方,然后后面的程序都注释掉,不跑业务,直接抛给框架异常,不要trycatch,只想在测试环境看看框架和weblogic接到这几种异常分别会做出什么响应。
zyzdy 2018-07-06
  • 打赏
  • 举报
回复
引用 37 楼 weixin_42612876 的回复:
5秒的问题参考一下
https://community.oracle.com/thread/695621
貌似是这个配置
Managed Server > Protocols > HTTP > Duration

如果weblogic那边5秒就切断的话,应用那边遇到响应时间超过5秒的有可能继续跑,有可能抛出异常,但是浏览器那边catch不到。

生产环境上昨晚该得代码try catch error throwable的那个别动,放在生产环境上,出问题的时候检查log。

hibernate等jar包版本有没有升级过。


所有的JAR包应该有近一年没有变动过
zyzdy 2018-07-06
  • 打赏
  • 举报
回复
引用 38 楼 weixin_42612876 的回复:

System.out.println("start testError.");
throw new Error("test error.");

抛Throwable, Exception,RuntimeException的也都分别测一下,抛给框架,看看weblogic和框架有啥反映。
(RuntimeException和Error以外可以把mtsave方法加上声明抛出)


代码中这样写了,中午更新一个版本上去,看看下午再出什么错。

zyzdy 2018-07-06
  • 打赏
  • 举报
回复
引用 39 楼 weixin_42612876 的回复:
曾经发生过hibernate等xml配置中的头写的dtd,xsd等路径是http开头的,生产环境往外的80端口被封掉,导致的404错误。
把这些文件下到本地就解决了。
你的时个别偶尔出错,应该不是这个问题,参考一下。


这个不会,已经放在本地了,并且使用的云服务器方式,出问题,是所有人都有问题,目前的情况看,理论上与网络没关系。
java123.vip 2018-07-06
  • 打赏
  • 举报
回复
曾经发生过hibernate等xml配置中的头写的dtd,xsd等路径是http开头的,生产环境往外的80端口被封掉,导致的404错误。
把这些文件下到本地就解决了。
你的时个别偶尔出错,应该不是这个问题,参考一下。
java123.vip 2018-07-06
  • 打赏
  • 举报
回复

System.out.println("start testError.");
throw new Error("test error.");

抛Throwable, Exception,RuntimeException的也都分别测一下,抛给框架,看看weblogic和框架有啥反映。
(RuntimeException和Error以外可以把mtsave方法加上声明抛出)
java123.vip 2018-07-06
  • 打赏
  • 举报
回复
5秒的问题参考一下
https://community.oracle.com/thread/695621
貌似是这个配置
Managed Server > Protocols > HTTP > Duration

如果weblogic那边5秒就切断的话,应用那边遇到响应时间超过5秒的有可能继续跑,有可能抛出异常,但是浏览器那边catch不到。

生产环境上昨晚该得代码try catch error throwable的那个别动,放在生产环境上,出问题的时候检查log。

hibernate等jar包版本有没有升级过。
Vito1993 2018-07-06
  • 打赏
  • 举报
回复
引用 29 楼 zyzdy 的回复:
[quote=引用 28 楼 weixin_42612876 的回复:]
看样子是停在doSaveCB中了。。。


奇怪的吓人,就是停在doSaveCb中,好说后面的catch中的语句也要运行啊,是不是?[/quote]

这时候数据库日志有异常吗
加载更多回复(40)

81,092

社区成员

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

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