记一次程序更新时遇到的问题

本文讲述了在更新程序过程中遇到的一个并发问题及解决方案。由于一个类的部分代码更改并采用class文件替换方式更新,导致某个线程仅运行一次便停止。通过排查发现可能是Oracle数据库中的表被锁定所致,最终通过重启MyEclipse并重新编译打包、回滚数据库解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如题:

周五时发现一个入库程序对时间格式化采用了12小时制,而需求是24小时制,so,改完时间格式化代码后,开始更新程序:

因为只改了一个类的部分代码,所以就采用class文件替换的形式,然而程序部署启动后问题来了:

并发线程中,只有我改动过的这个线程只运行一次之后就不运行了,改线程的日志也不打印了。

将jar包反编译后发现确实没问题,jar包回滚之后问题依然存在。

最后解决办法:
1、将myeclipse关闭后重启,重新编译打jar包;

2、将oracle数据库回滚(此处数据库相关的表可能被锁死了)

问题解决!

回想一下,一开始我觉得是myeclipse的bug,现在觉得应该是oracle中的一个表锁住了,导致程序无法入库这个表的数据,但是可以查询!

因为之前用oracle客户端工具修改过数据,但是没有提交,也没有回滚!这个能导致被修改的表被锁住了!!切记!切记!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值