We encounter a delay on the client side where client (running on linux) is taking longer time to complete requests than the client running on windows platform.
We narrowed down to a particular JTS call that is taking the extra time. The call is to InterpositionServerRequestInterceptorImpl.suspendContext. It always returns immediately when executing from windows.
The issue seems to be related to Nagle's algorithm's effect on small packets transmission and the solution is set "setTcpNodelay" on the Server side socket in the JacORB code (which already have "setTcpNoDelay" on the client side)
Here is some debug from a test showing the delay:
2013-01-22 22:56:36,557 [RequestProcessor-5] DEBUG com.arjuna.ats.jts.logging.logger - InterpositionServerRequestInterceptorImpl.suspendContext ( get_txcontext )
2013-01-22 22:56:36.557 FINE ServerRequest: reply to get_txcontext
2013-01-22 22:56:36.557 FINE wrote 262 bytes to 127.0.0.1:34929
2013-01-22 22:56:36.557 FINE wrote GIOP message of size 262 to ServerGIOPConnection to 127.0.0.1:34929 (26659db7)
2013-01-22 22:56:36.558 FINE rid: 16 opname: get_txcontext ends with request processing
2013-01-22 22:56:36.596 FINE read 12 bytes from 127.0.0.1:34854
2013-01-22 22:56:36.596 FINE read 250 bytes from 127.0.0.1:34854
2013-01-22 22:56:36.597 FINE read GIOP message of size 262 from ClientGIOPConnection to 127.0.0.1:34854 (27a897a9)