发现写Oracle的线程挂住了,场景是从mysql读数据,然后写到Oracle。
1 定位线程
因为在同一台机器上运行了多个java进程,要找到对应的pid,就是连接mysql的的那个进程。
[admin@arch036075.sqa.cm4 logs]$ ss -p | grep "10.232.31.67"
ESTAB 0 010.232.36.75:41790 10.232.31.67:mysql users:(("java",1978,184))
ESTAB 0 010.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 .SocketInputStream.socketRead0(Native Method)
at .SocketInputStream.read(SocketInputStream.java:129)
at .ns.Packet.receive(Unknown Source)
at .ns.NSProtocol.sendReset(Unknown Source)
at ora