Java CORBA 客户端在事件触发时断开连接
Posted
技术标签:
【中文标题】Java CORBA 客户端在事件触发时断开连接【英文标题】:Java CORBA Client Disconnects When Event Fires 【发布时间】:2010-04-28 00:04:48 【问题描述】:我已经构建了一个订阅事件服务器的 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
【问题讨论】:
我完全同意。我的前额因撞在 CORBA 墙上而流血 【参考方案1】:Benny 你还在 corba 的枷锁下受苦吗?
如果是这样,以下可能会有所帮助:
您是否能够找出服务器运行的 TAO 版本? 您是否尝试过使用 Sun 的球体(远射)? 你可以试试OpenORB。 以上所有都失败了,如果你有 python 知识,你可以使用omniORBpy 访问服务器吗?如果上述方法都不起作用,那么我不确定,但请告诉我,我可能会想出更多想法。服务器正在使用的 TAO 版本会有所帮助,至少您可以了解您正在处理的 corba 规范版本。
【讨论】:
我实际上确实最终使用了omniORBpy,但我遇到了相同(或相似)的问题。我正在使用 python 在 linux 上尝试它,但请参阅我的另一篇文章以获取更多信息。如果你能提供帮助,我会奖励这两个职位。 ***.com/questions/4418446/…【参考方案2】:客户端和服务器是否在同一个局域网内运行?我的意思是您的客户端计算机上是否启用了任何防火墙或软件防火墙?还是在客户端和服务器之间?
【讨论】:
他们都在同一个局域网上。我什至尝试在一些机器上关闭 Windows 防火墙,但这些机器无法正常工作并且没有成功。 能否请您使用wireshark/tcpdump 捕获TCP/IP 流量?它可能对故障排除更有帮助。以上是关于Java CORBA 客户端在事件触发时断开连接的主要内容,如果未能解决你的问题,请参考以下文章
Socket.io断开事件错误地为其他用户触发,然后再次连接