公司有个系统,比较古老,web端使用的是applet,applet作为socket client端。另一台服务器运行socket server.当多次执行某一个特定事务时(通过Applet,该事务会触发发送message到server),会引起browser, outlook, msn等任何有关网络连接的应用软件都挂掉。重新打开也不行,必须注销或重启机器。
1,不是每台机器都会产生这样的问题,有些客户机运行没有任何问题。
2,这些客户机的操作系统,浏览器,jdk version应该都没有区别。
3,很多事务都通过socket传送message,只有该操作会出现此类问题。
4,server端log显示,已经与client端建立连接,开始接受数据,然后就挂在那里了。现在根本不知道问题出在那里,说是代码问题吧,有些机器还都好用,说不是代码问题吧。确实只有该事务会引起这个问题。郁闷了好久了
1,不是每台机器都会产生这样的问题,有些客户机运行没有任何问题。
2,这些客户机的操作系统,浏览器,jdk version应该都没有区别。
3,很多事务都通过socket传送message,只有该操作会出现此类问题。
4,server端log显示,已经与client端建立连接,开始接受数据,然后就挂在那里了。现在根本不知道问题出在那里,说是代码问题吧,有些机器还都好用,说不是代码问题吧。确实只有该事务会引起这个问题。郁闷了好久了
First netstat:
Active ConnectionsProto Local Address Foreign Address State
TCP nataliec:1218 cs1epo2.sg.int.psaglobal.com:82 ESTABLISHED
TCP nataliec:1226 10.106.34.20:http FIN_WAIT_1
TCP nataliec:1227 10.106.34.20:22501 CLOSED --socket端口
出问题后:
Second netstat (Client hang):
Active ConnectionsProto Local Address Foreign Address State
TCP nataliec:1189 cs1epo2.sg.int.psaglobal.com:82 TIME_WAIT
TCP nataliec:1195 10.106.34.20:http TIME_WAIT
TCP nataliec:1200 corp4dcsg1.sg.int.psaglobal.com:microsoft-ds TIME_WAIT
TCP nataliec:1202 cs1epo2.sg.int.psaglobal.com:82 TIME_WAIT
TCP nataliec:1207 10.106.34.20:http TIME_WAIT
TCP nataliec:1210 10.106.34.20:http TIME_WAIT
TCP nataliec:1213 10.106.34.20:http TIME_WAIT
TCP nataliec:1216 10.106.34.20:http ESTABLISHED
TCP nataliec:1217 cs1epo2.sg.int.psaglobal.com:82 FIN_WAIT_2
TCP nataliec:1218 cs1epo2.sg.int.psaglobal.com:82 ESTABLISHED
TCP nataliec:1424 xchg2vs1.sg.int.psaglobal.com:10201 ESTABLISHED
TCP nataliec:1453 corp4dcsg1.sg.int.psaglobal.com:1026 ESTABLISHED
TCP nataliec:1463 xchg1vs1.sg.int.psaglobal.com:1475 ESTABLISHED
TCP nataliec:4522 corp4dcsg1.sg.int.psaglobal.com:1026 ESTABLISHED
TCP nataliec:4526 xchg2vs1.sg.int.psaglobal.com:10201 ESTABLISHED
TCP nataliec:4968 corp4dcsg1.sg.int.psaglobal.com:3268 CLOSE_WAIT可以看到没有了该socket的连接,不知怎么被关掉了。
Host:#10.106.34.20#
Port:#22501#
Begin sending msgThu Dec 21 19:47:44 SGT 2006
/10.106.34.20
22501
/10.100.130.103
End sending msgThu Dec 21 19:47:44 SGT 2006
begin receive msgThu Dec 21 19:47:44 SGT 2006
end receive msgThu Dec 21 19:47:45 SGT 2006
Cheer:message is received第一次连接并发送msg成功
Host:#10.106.34.20#
Port:#22501#
Begin sending msgThu Dec 21 19:47:49 SGT 2006
/10.106.34.20 (server端IP,当连接socket成功后,在发送数据前打印该些信息)
22501 (Port)
/10.100.130.103
java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at java.io.ObjectOutputStream$BlockDataOutputStream.drain(Unknown Source)
at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(Unknown Source)
at java.io.ObjectOutputStream.writeNonProxyDesc(Unknown Source)
at java.io.ObjectOutputStream.writeClassDesc(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeFatalException(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at pass.bhr.net.MessageProxy.sendObj(MessageProxy.java:80)
at pass.bhr.net.MessageProxy.sendMessage(MessageProxy.java:96)