在一次xxljob调度中,总是开启事务失败
com.alibaba.druid.pool.DruidDataSource : discard connection
java.sql.SQLRecoverableException: IO 错误: Operation interrupted
最开始是发现在一条查询sql中,sql报错,导致DruidPooledConnection中调用了disable()方法,导致连接不可用。但是在这条sql改了之后,发现还是不行,于是跟踪到开启事务的方法
然后发现是在获取锁的时候,线程处于中断状态,导致获取锁失败,进而导致sql会话异常,不能执行语句
然后给Thread.interrupt() 方法加上断点,发现JobThread.run() 里面调用过interrupt(),
发现超时时间太短,导致线程中断,去检查xxljob任务配置,发现超时时间被人手贱加了个1