出现如下错误: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
警告: "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
The fix is to set the following property:
com.sun.CORBA.transport.ORBTCPReadTimeoutsThe value is a colon delimited list of timeout values:
// transport read tcp timeout property, colon separated property
// with syntax
// wait: max read message time to wait:backoff factor>
public static final String TRANSPORT_TCP_READ_TIMEOUTS_PROPERTY =
SUN_PREFIX + "transport.ORBTCPReadTimeouts";// initial time to wait in milliseconds if a transport
// tcp read returns 0 bytes
public static final int TRANSPORT_TCP_INITIAL_TIME_TO_WAIT = 100;
// max time to spend in cumulative waits in milliseconds
// if a transport tcp read returns 0 bytes
public static final int TRANSPORT_TCP_MAX_TIME_TO_WAIT = 3000;
// max time to spend in cumulative waits in milliseconds
// if a transport tcp read of GIOP header returns 0 bytes
public static final int TRANSPORT_TCP_GIOP_HEADER_MAX_TIME_TO_WAIT = 300;
// A backoff percentage used to compute the next amount of time to
// wait on a subsequent transport tcp read of 0 bytes
public static final int TRANSPORT_TCP_TIME_TO_WAIT_BACKOFF_FACTOR = 20; Therefore, I was able to use the following command as my query may take up to a minute to complete:
System.setProperty("com.sun.CORBA.transport.ORBTCPReadTimeouts", "100:60000:180000:20");