我们使用CORBA开发了Server-Client应用程序。 当客户端尝试向Server发出请求时,我们会收到以下错误消息。
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个密钥获得上述错误。有时前4个请求正常工作,但在上次请求时得到错误。或者有时在第一次请求时获取错误,然后剩余请求正常工作。 我在谷歌上做了足够的搜索,但没有找到解决方案。 我希望有人能在这里帮助我。
答案 0 :(得分:0)
COMM_FAILURE表示基础连接以某种方式失败。在您的情况下,您正在经历过早关闭连接。
您只报告了一条警告消息。您是否在代码中遇到COMM_FAILURE异常,或者只在日志消息中看到这种情况?在我的猜测中,这似乎只是一个ORB内部日志消息,如果我是对的,那根本不是问题。
在一些非常简单的hello world代码中,当您在服务器中执行没有orb.run()的服务器时,或者在处理调用时您正在执行System.exit时,您可以体验到这一点。
另一方面,我建议您使用http://JacORB.org实现而不是旧的和不受支持的CORBA实现(内置Oracle JVM)。 JacORB是一个成熟的实现,它符合CORBA 3.0规范。