IBM Support

Tuning the WebSphere Service Integration Bus Heartbeat Properties

Question & Answer


Question

What are the properties 'com.ibm.ws.sib.jfapchannel.HEARTBEAT_INTERVAL' and 'com.ibm.ws.sib.jfapchannel.HEARTBEAT_TIMEOUT' and how do you tune them?

Answer

HEARTBEAT_INTERVAL is the amount of a connection-idle time, in seconds, before the WebSphere Service Integration Bus (SIBus) messaging engine attempts to solicit a response from it's peer to check that the peer is still active. Its default value is 300 seconds (5 minutes).
.
HEARTBEAT_TIMEOUT is the amount of time, in seconds, to wait for a response from a peer after deciding to check that the peer is still alive. Its default value is 7 seconds.

In other words, if a connection is idle for 5 minutes, a heartbeat request is sent. If no response to this heartbeat request is received after 7 seconds, the connection is closed.

It is worth noting that the sum of both of these values determine the maximum amount of time that it can take to discover that some type of network failures have occurred.

To tune the heartbeat interval or heartbeat timeout, create a file called sib.properties in the properties subdirectory of profiles that host application servers in the system, or are used to run client applications that connect to the SIBus.

Heartbeat values are negotiated between the messaging engine and the connecting process. Therefore, it is important that the settings are made on both sides of the connection. Otherwise, the negotiation between the two may cause the change to be ignored.

The following line could be used to reduce the heartbeat interval from 5 minutes to 1 minute (to account for an idle timeout on a firewall*):

com.ibm.ws.sib.jfapchannel.HEARTBEAT_INTERVAL=60

The following line could be used to increase the heartbeat timeout from 7 seconds to 2 minutes (to account for overloaded remote servers**):

com.ibm.ws.sib.jfapchannel.HEARTBEAT_TIMEOUT=120

Note that tuning the timeout does not address the root cause of any network problems, or problems with the remote server which caused it to fail to respond to the heartbeat request.

* When a firewall idle timeout is set to a value less than the configured heartbeat interval, idle connections are terminated before the heartbeat interval elapses. In such cases, the heartbeat interval should be reduced to less than the idle timeout of the firewall.

** CPU starvation messages written to the remote server JVM logs can serve as an indication that the system is overloaded.

[{"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Service Integration Technology","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"9.0;8.5.5;8.0;7.0","Edition":"Base;Network Deployment","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
15 June 2018

UID

swg21422114