我们使用CORBA开发了服务器-客户端应用程序。当客户端尝试向服务器发出请求时,我们得到以下错误消息。
Jan 14, 2018 10:00:22 AM com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl writeLock
WARNING: "IOP00410202: (COMM_FAILURE) Connection close: rebind"
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 202 completed: No
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectionCloseRebind(Unknown Source)
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectionCloseRebind(Unknown Source)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.writeLock(Unknown Source)
at com.sun.corba.se.impl.encoding.BufferManagerWriteStream.sendFragment(Unknown Source)
at com.sun.corba.se.impl.encoding.BufferManagerWriteStream.sendMessage(Unknown Source)
at com.sun.corba.se.impl.encoding.CDROutputObject.finishSendingMessage(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.finishSendingRequest(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete1(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(Unknown Source)
at org.omg.CORBA.portable.ObjectImpl._invoke(Unknown Source)我们观察到,每当客户端连续发出5-6个请求时,客户端就会收到特定2-key的上述错误。有时前4个请求工作正常,但在最后一个请求时出现错误。或者有时会在第一个请求时出现错误,然后其他请求才能正常工作。我已经在谷歌上做了足够的搜索,但没有找到解决方案。我希望有人能在这里帮助我。
发布于 2018-02-20 03:50:52
COMM_FAILURE意味着底层连接不知何故失败了。在您的情况下,您正在经历连接的过早关闭。
您只报告了一条警告消息。您是否在代码中遇到了COMM_FAILURE异常,或者只在日志消息中看到了该异常?在我看来,这似乎只是一条ORB内部日志消息,如果我是对的,这根本不是问题。
在一些非常简单的hello world代码中,当您在服务器中执行没有orb.run()的服务器时,或者甚至在处理调用时执行System.exit时,您可能会遇到这种情况。
另一方面,我建议您使用http://JacORB.org实现,而不是旧的和不受支持的Sun for CORBA实现(内置在Oracle JVM中)。JacORB是一个成熟的实现,它符合CORBA3.0规范。
https://stackoverflow.com/questions/48415423
复制相似问题