出现如下错误: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

解决方案 »

  1.   

    可以配置命令行参数改大等待时间,参见
    http://publib.boulder.ibm.com/infocenter/p8docs/v5r1m0/index.jsp?topic=%2Fcom.ibm.p8.pe.trouble.doc%2Fp8pet004.htm
      

  2.   


    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");
     
     
     
      

  3.   

    警告: "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"改wait time