Java CORBA 客户端立即断开连接
Posted
技术标签:
【中文标题】Java CORBA 客户端立即断开连接【英文标题】:Java CORBA Client Disconnects Immediately 【发布时间】:2010-06-18 05:29:12 【问题描述】:我已经构建了一个订阅事件服务器的 Java CORBA 应用程序。应用程序可以很好地连接到上下文并缩小上下文,但是一旦将事件发送到客户端,它就会因以下错误而中断。请指教。
2010/04/25!13.00.00!E00555!enserver!EventServiceIF_i.cpp!655!PID(7390)!enserver - e._info=system exception, ID 'IDL:omg.org/CORBA/TRANSIENT:1.0'
TAO exception, minor code = 54410093 (invocation connect failed; ECONNRESET), completed = NO
编辑: 请注意,这只发生在某些机器上运行时。它适用于某些人,但不适用于其他人。即使在同一个平台上(我已经尝试过 Windows XP/7 和 CentOS linux)有些工作,有些不...
这是 WireShark 的输出...看起来与非工作 PC 相比,工作 PC 与网络的交互性更强。工作 PC
No. Time Source Destination Protocol Info
62 28.837255 10.10.10.209 10.10.10.250 TCP 50169 > 23120 [SYN] Seq=0 Win=8192 Len=0 MSS=1260 WS=8
63 28.907068 fe80::5de0:8d21:937e:c649 ff02::1:3 LLMNR Standard query A isatap
64 28.907166 10.10.10.209 224.0.0.252 LLMNR Standard query A isatap
65 29.107259 10.10.10.209 10.255.255.255 NBNS Name query NB ISATAP<00>
66 29.227000 10.10.10.250 10.10.10.209 TCP 23120 > 50169 [SYN, ACK] Seq=0 Ack=1 Win=32768 Len=0 MSS=1260 WS=0
67 29.227032 10.10.10.209 10.10.10.250 TCP 50169 > 23120 [ACK] Seq=1 Ack=1 Win=66560 Len=0
68 29.238063 10.10.10.209 10.10.10.250 GIOP GIOP 1.1 Request s=326 id=5 (two-way): op=logon
69 29.291765 10.10.10.250 10.10.10.209 GIOP GIOP 1.1 Reply s=420 id=5: No Exception
70 29.301395 10.10.10.209 10.10.10.250 GIOP GIOP 1.1 Request s=369 id=6 (two-way): op=registerEventStat
71 29.348275 10.10.10.250 10.10.10.209 GIOP GIOP 1.1 Reply s=60 id=6: No Exception
72 29.405250 10.10.10.209 10.10.10.250 TCP 50170 > telnet [SYN] Seq=0 Win=8192 Len=0 MSS=1260 WS=8
73 29.446055 10.10.10.250 10.10.10.209 TCP telnet > 50170 [SYN, ACK] Seq=0 Ack=1 Win=32768 Len=0 MSS=1260 WS=0
74 29.446128 10.10.10.209 10.10.10.250 TCP 50170 > telnet [ACK] Seq=1 Ack=1 Win=66560 Len=0
75 29.452021 10.10.10.209 10.10.10.250 TELNET Telnet Data ...
76 29.483537 10.10.10.250 10.10.10.209 TELNET Telnet Data ...
77 29.483651 10.10.10.209 10.10.10.250 TELNET Telnet Data ...
78 29.523463 10.10.10.250 10.10.10.209 TCP telnet > 50170 [ACK] Seq=4 Ack=5 Win=32768 Len=0
79 29.554954 10.10.10.209 10.10.10.250 TCP 50169 > 23120 [ACK] Seq=720 Ack=505 Win=66048 Len=0
电脑不工作
No. Time Source Destination Protocol Info
1 0.000000 10.10.10.209 10.10.10.250 TCP 64161 > 23120 [SYN] Seq=0 Win=8192 Len=0 MSS=1260 WS=8
2 2.999847 10.10.10.209 10.10.10.250 TCP 64161 > 23120 [SYN] Seq=0 Win=8192 Len=0 MSS=1260 WS=8
3 4.540773 Cisco_3c:78:00 Cisco-Li_55:87:72 ARP Who has 10.0.0.1? Tell 10.10.10.209
4 4.540843 Cisco-Li_55:87:72 Cisco_3c:78:00 ARP 10.0.0.1 is at 00:1a:70:55:87:72
5 8.992284 10.10.10.209 10.10.10.250 TCP 64161 > 23120 [SYN] Seq=0 Win=8192 Len=0 MSS=1260
【问题讨论】:
您是否检查过是否存在网络问题,例如在不同机器上配置不同的防火墙?可以手动建立网络连接吗?你写的“应用程序缩小并且可以正常登录”是什么意思? 是否可以制作并发布一个展示您所描述问题的最小示例? 防火墙等对于机器都是一样的。我定期连接两台机器,无论是 RDP 还是 SSH。还是一脸懵逼…… 【参考方案1】:man page for recv 声明当对方关闭连接(无论出于何种原因)时,您会收到 ECONNRESET。
ECONNRESET
A connection was forcibly closed by a peer.
看起来连接被另一方切断(出于某种原因)。 会不会是不工作的机器阻塞了连接(比如恶意软件防护)?
【讨论】:
以上是关于Java CORBA 客户端立即断开连接的主要内容,如果未能解决你的问题,请参考以下文章