日期:2014-05-20  浏览次数:21072 次

java通过corba调用C++服务,返回大数据对象时出错
出现如下错误:

2011-10-14 15:33:21 com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl readFully
警告: "IOP00410215: (COMM_FAILURE) Read of full message failed : bytes requested = 1,240,192 bytes read = 829,088 max wait time = 3,000 total time spent waiting = 3,190"
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 215 completed: No
at com.sun.corba.se.impl.logging.ORBUtilSystemException.transportReadTimeoutExceeded(ORBUtilSystemException.java:2600)
at com.sun.corba.se.impl.logging.ORBUtilSystemException.transportReadTimeoutExceeded(ORBUtilSystemException.java:2626)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.readFully(SocketOrChannelConnectionImpl.java:628)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.read(SocketOrChannelConnectionImpl.java:559)
at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.readGIOPBody(MessageBase.java:413)
at com.sun.corba.se.impl.transport.CorbaContactInfoBase.finishCreatingMessageMediator(CorbaContactInfoBase.java:183)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.finishReadingBits(SocketOrChannelConnectionImpl.java:380)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1208)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:471)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:500)
ERROR : org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectionAbort(ORBUtilSystemException.java:2400)
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectionAbort(ORBUtilSystemException.java:2418)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.finishReadingBits(SocketOrChannelConnectionImpl.java:421)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1208)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:471)
at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:500)
Caused by: org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 215 completed: No
at com.sun.corba.se.impl.logging.ORBUtilSystemException.transportReadTimeoutExceeded(ORBUtilSystemException.java:2600)
at com.sun.corba.se.impl.logging.ORBUtilSystemException.transportReadTimeoutExceeded(ORBUtilSystemException.java:2626)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.readFully(SocketOrChannelConnectionImpl.java:628)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.read(SocketOrChannelConnectionImpl.java:559)
at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.readGIOPBody(MessageBase.java:413)
at com.sun.corba.se.impl.transport.CorbaContactInfoBase.finishCreatingMessageMediator(CorbaContactInfoBase.java:183)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.finishReadingBits(SocketOrChannelConnectionImpl.java:380)
... 3 more


------解决方案--------------------
可以配置命令行参数改大等待时间,参见
http://publib.boulder.ibm.com/infocenter/p8docs/v5r1m0/index.jsp?topic=%2Fcom.ibm.p8.pe.trouble.doc%2Fp8pet004.htm
------解决方案--------------------
探讨
System.setProperty("com.sun.CORBA.transport.ORBTCPReadTimeouts", "100:60000:180000:20");