原标题:Apache HttpClient 没有设置 time out 导致应用长时间阻塞的问题
(点击上方公众号,可快速关注)
来源:hengyunabc
链接:blog.csdn.net/hengyunabc/article/details/22716911
update 2014-5-18:
今天又处理了一个HttpClient阻塞的问题,还是socket read没有超时设置。
用jstack -l pid 得到线程的调用栈,每隔一段时间执行一次,对比三次的thread dump结果,发现有一个线程是三次执行的位置一样的,说明它是阻塞在这里了:
"org.springframework.jms.listener.DefaultMessageListenerContainer#7-1" prio=10 tid=0x00007f345127d800 nid=0x5b4f0 runnable [0x00007f34753d1000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:130)
at org.ap