Today's Page Hits: 29
This page validates as XHTML 1.0, and will look much better in a browser that supports web standards, but it is accessible to any browser or Internet device. It was created using techniques detailed at glish.com/css/.
I previously blogged here about how we configure TCP timeouts in the GlassFish ORB. Scott Oaks recently discovered some cases where the default configuration needs to be changed. He also pointed out that the blog entry was missing some details about exactly HOW to set the appropriate TCP timeouts.
My previous blog entry referred to several properties that are defined in the class com.sun.corba.ee.impl.orbutil.ORBConstants. In particular:
Any of these can be set by the appropriate -D command: e.g. -Dcom.sun.corba.ee.transport.ORBTCPTimeouts=500:30000:20.
This is particularly important when running with a very busy app server on a large machine (like a T2000). It may happen that the default 6 second timeout is exceeded while waiting for more data to be read on a large request. In this case, you may see errors logged like:
java.rmi.MarshalException: CORBA >COMM_FAILURE 1398079696 Maybe; nested
exception is:org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe
or
java.rmi.MarshalException: CORBA MARSHAL 1398079699 >Maybe; nested exception is
org.omg.CORBA.MARSHAL: vmcid: SUN minor code: 211 completed: Maybe
Errors that have completion status maybe cannot be retried, because the client ORB cannot assume they have not already executed on the server side.
In this case, the ORBTCPTimeouts needs to be increased, say to something like 500:30000:20. This means: