[omniORB] IIOP Latency with Java
Tres Seaver
tseaver@palladion.com
Tue, 28 Mar 2000 11:30:51 -0600
uche.ogbuji@fourthought.com wrote:
>
> Running OmniORBpy with omni 2.8.0 on Red Hat 6.1 on the server side. A
> development partner is connecting to this server using JDK 1.2 ORB on NT. We
> are suffering an overhead of _exactly_ 20 milliseconds on each call (it almost
> feels like a strobe). This overhead does not manifest itself on omni/Linux
> talking to omni/Linux remotely. We tried Visibroker/Java on NT with the same
> result. Does anyone know what might be causing this? It feels like a config
> error because all the benchmarks we've seen of Visi/client to omni/server seem
> blazingly fast. The input parameters as well as the return values are all
> simple strings.
>
> Any ideas? Trolling the list archives turned up murmurings of "TCP_NODELAY"
> and similar posible solutions, but it wasn't clear that they were applicable
> to our current situation.
>
> I know sample code always helps. Unfortunately, since we're dealing with a
> development partner it is easier to first see if this rings a bell with
> anyone. If not, I'll try to work out some minimal code that illustrates the
> problems.
TCP_NODELAY would only apply to pretty small requests -- I think the minimum
IIOP header is around 128 bytes or so, and the Nagle algoritm (which TCP_NODELAY
suppresses) could kick in for methods passing no/few parameters, especially if
they are fixed-length and small.
Another possibility is that the JDK ORB is not sitting directly on a select()
call (for writability) or a condition.wait() (for outbound data available), but
instead is timer driven. That would be pretty brain-dead, but then again,
stranger things have escaped from the labs before this.
--
=========================================================
Tres Seaver tseaver@digicool.com tseaver@palladion.com