排查日志log 发现,某个update sql 执行超时。
觉得很纳闷。
然而手工单独执行这个 update sql 却很快。
后来联系dba 排查才发现,原来是有 互锁。 这个update sql本身无任何问题,但是 另外有一个 其他人 启动的 大事务,该事务 会 insert 该表,故锁表。
故导致 该update sql一直等待 另外的大事务。 导致 超时失败。
另外一个原因是 dba那边 将该mysql库的 事务超时 时间 设置的一个小时,过长,导致 等了一个小时 才失败。 显然不合理,故 恢复默认的 超时时长。
补充:
2015-7-21 20:10:42 发现可能和 线程池有关。 由于 dbproxy本身就有线程池,故 应用端 自身不需要 维护 连接池。如果存在两个连接池,则可能有问题。