发现写Oracle的线程挂住了,场景是从mysql读数据,然后写到Oracle。
 
1 定位线程
因为在同一台机器上运行了多个java进程,要找到对应的pid,就是连接mysql的的那个进程。
 
[admin@arch036075.sqa.cm4 logs]$ ss -p | grep "10.232.31.67"
ESTAB      0      0            10.232.36.75:41790         10.232.31.67:mysql    users:(("java",1978,184))
ESTAB      0      0            10.232.36.75:41789         10.232.31.67:mysql    users:(("java",1978,179))
 
红色部分就是挂住线程的pid
 
2 jstack
"Stage Task: mysql-to-dbsync" daemon prio=10 tid=0x00002aaac8699000 nid=0x7e33 runnable [0x0000000043cfb000]
   java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at oracle.net.ns.Packet.receive(Unknown Source)
        at oracle.net.ns.NSProtocol.sendReset(Unknown Source)
        at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1112)
        at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1075)
        at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:480)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
        at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:966)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)
        at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3423)
        - locked <0x00002aaab4575880> (a oracle.jdbc.driver.T4CPreparedStatement)
        - locked <0x00002aaab4cda408> (a oracle.jdbc.driver.T4CConnection)
发现写oracle的异常
- locked <0x00002aaab4575880> (a oracle.jdbc.driver.T4CPreparedStatement)
- locked <0x00002aaab4cda408> (a oracle.jdbc.driver.T4CConnection)
3 询问dba对应oracle数据库的情况,说写库有一张表被锁住了,解锁,重启精卫系统,恢复正常。
4 之前有人说过可能是oracle的bug,设置connection的timeout可解决,也用这种方法解决了第一次遇这个的问题的应用(这是第二次遇到),重启应用,发现是锁表导致的。
--------------------- 
作者:arkblue 
来源:CSDN 
原文:https://blog.csdn.net/arkblue/article/details/7870518 
版权声明:本文为博主原创文章,转载请附上博文链接!

最新文章

  1. mysql创建定时执行存储过程任务
  2. mediaplayer与surfaceView,无法播放问题
  3. Solution: Win 10 和 Ubuntu 16.04 LTS双系统, Win 10 不能从grub启动
  4. 基情四射的两个css样式
  5. Oulipo (kmp)
  6. jquery数字验证大小比较
  7. AForge.NET是一个专门为开发者和研究者基于C#框架设计的视频录像
  8. Oracle自动备份.bat 最新更新(支持Win10了)
  9. iOS11和机器学习CoreML库
  10. sql查询一个字段多列值合并为一列
  11. 查找数组中重复的唯一元素+时间复杂度O(n)+空间复杂度O(1)
  12. 使用Jenkins遇到的问题
  13. springboot 学习之路 15(集成shiro)
  14. python自定义mininet拓扑
  15. Spark 实践——用决策树算法预测森林植被
  16. window开机启动项设置和取消方法
  17. 使同一个server上不同port的django应用可在同一个浏览器上打开
  18. 20155233 2016-2017-2《Java程序设计》课程总结
  19. 复利计算C转java版
  20. unity导弹算法 预计目标点

热门文章

  1. Android系统备忘1
  2. 实验吧—Web——WP之 猫抓老鼠
  3. 【EOJ Monthly 2018.7】【D数蝌蚪】
  4. 【HDOJ4109】【拓扑OR差分约束求关键路径】
  5. 【HDOJ2767】【Tarjan缩点】
  6. oracle 数据库相关名词--图解
  7. sqler sql 转rest api javascript 试用
  8. Bow &amp; Arrow 学习
  9. mysql之 openark-kit online ddl
  10. [转]使用 Angular CLI 和 ng-packagr 构建一个标准的 Angular 组件库