How and when to use the 'reconnect_attempt_timeout' parameter in the factories.conf file of the EMS server.

How and when to use the 'reconnect_attempt_timeout' parameter in the factories.conf file of the EMS server.

book

Article ID: KB0085471

calendar_today

Updated On:

Products Versions
TIBCO Enterprise Message Service -
Not Applicable -

Description

Description:
It can be confusing to understand the use of reconnect_attempt_timeout.
When attempting to reconnect to the EMS server, you can set this connection timeout period to abort the connection attempt after a specified period of time (in milliseconds).

Issue/Introduction

How and when to use the 'reconnect_attempt_timeout' parameter in the factories.conf file of the EMS server.

Resolution

The reconnect_attempt_timeout takes effect if the TCP listen port is open and the client is unable to successfully connect to the server

because system resources are unavailable on the server machine or some other error in the EMS server.


When the socket is open, if the TCP layer does not return a RST packet, so that the EMS server times out the new socket be created. (The default is 3 seconds). 

If the TCP layer does return a RST packet, the Java socket layer will try to reconnect twice. The interval is 500ms + "random ms". This timeout is per URL and per reconnect_attempt.

(Regarding how to set this parameter, refer to the EMS documentation -> Java API -> setReconnAttemptTimeout(int) ).


Set the Reconnect Attempt timeout for a given connection. Note: This timeout is per URL and per reconnect_attempt. So if one were to specify two reconnect attempts for a given URL, then for each attempt the client will wait at most the reconnect attempt timeout for the connection to be established. If no connection is established within that time, the client's reconnection attempt is teared down if the client is hung either because of system resources are unavailable on the server machine or because of some other error in the EMS Server. NOTE: The minimum value is 100 milliseconds. If the value is less than 100 milliseconds specified, then during the connection establishment the minimum value of 100 milliseconds is used.