Skip to main content

Product: OpenFusion JacORB

Version: All

 

Description:

What does jacorb.connection.client.idle_timeout_ignores_pending_messages do?

 

Solution:

The jacorb.connection.client.idle_timeout_ignores_pending_messages property is used in conjunction with the jacorb.connection.client.idle_timeout property.

The idle timeout is on the network level, i.e you get it by calling setSoTimeout() on the socket. At that level the timeout will occur internally if no bytes have been read from or written to the socket (streams) since the configured time. Essentially this just unblocks the read(), but doesn’t touch the connection itself. However, since closing the connections prevents outstanding replies being received, JacORB checks if there are any pending messages, before it actually closes the connection for real. If there are pending messages, jacorb will continue to wait on the socket just as if nothing had happened.

This is where jacorb.connection.client.idle_timeout_ignores_pending_messages comes into play. If set to on, JacORB will not take care of pending messages when the network layer signals the timeout. Instead it will close the connection regardless of the pending messages. For pending messages, this is the same behavior as if the connection closed unexpectedly.

This must also be seen in conjunction with jacorb.connection.client.pending_reply_timeout. This timeout works on the level of individual messages, while jacorb.connection.client.idle_timeout jacorb.connection.client.idle_timeout_ignores_pending_messages works on the connection level, i.e if the server didn’t answer any message for n milliseconds something must be wrong.


#OpenFusion
#KnowledgeDocs