应用日志中,mybatis更新语句线程中断,却无exception

描述:应用日志中,mybatis更新语句打印了执行语句,且有参数输入,但是无更新结果输出,线程中断,日志中无exception异常。

分析:(1)语句无输出,查看了数据库有没有锁表的情况

--查看被锁的表
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
--查出锁定表的sid, serial#,os_user_name, machine_name, terminal,锁的type,mode
SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,s.terminal, s.logon_time, l.type
FROM v$session s, v$lock l
WHERE s.sid = l.sid
AND s.username IS NOT NULL
ORDER BY sid desc;
-- SID: Session identifier 
-- SERIAL#:Session serial number
-- SID用于标志一个session,和一个process对应。一个process会创建多个session,但是都有相同sid,只是SERIAL#不同。

经排查,发现数据库没有活跃的session和被锁的表,不是该原因。

(2)排查日志的异常输出是否正常

考虑日志没有异常的原因是:应用程序根本没有捕获到异常。查看springboot工程代码,发现没有写全局异常处理的方法!

在公共方法部分,使用@ExceptionHandler注解添加全局异常处理的方法。

ExceptionHandler注解的使用,可以参考:https://www.cnblogs.com/shuimuzhushui/p/6791600.html

posted @ 2022-01-18 20:38  给我一条小板凳  阅读(140)  评论(0)    收藏  举报