By default the JMX client side notification fetch timeout
(jmx.remote.x.notification.fetch.timeout) is 1 minute and the default server
connection timeout (jmx.remote.x.server.connection.timeout) is 2 minutes.
If the client side connector thread makes a notification fetch request to
the server, but a transient network problem prevents the server response
from reaching the client, the client side connector will wait for a
response until the timeout period (1 minute) has expired before throwing an
The client side RMIConnector implementation handles the IOException, by
re-checking the connection status to understand whether or not it is
broken. If the connection is available at that moment, the connector fails
by re-throwing the initial IOException. The problem is that this re-check
of the connection passes because the server side of the connection doesn't
time out until 2 minutes has passed (by default) - the NotifFetcher thread
dies without posting a failed notification, and the client application does
not get a chance to recover.