IBM Support

Messaging engine - datastore connectivity tuning parameters

Technical Blog Post


Abstract

Messaging engine - datastore connectivity tuning parameters

Body

Sometimes customers want to change the way messaging engine connections to their datastores behave. The following tuning parameters are useful for this purpose. The first 4 of these tuning parameters must be added to the sib.properties file. Create the file (if it does not already exist) at the following location in the profile of each node:

<profile_root>/properties/sib.properties

 

THERE ARE 4 TUNING PARAMETERS:

 

1) sib.msgstore.jdbcFailoverOnDBConnectionLoss

 

This setting simply causes us to request that the High Availability Manager perform a failover if we lose our connection to the datastore - rather than attempt to reconnect to the data store.

By default (in WAS 7 and later) this parameter is set to 'true' (sib.msgstore.jdbcFailoverOnDBConnectionLoss=true). This means that if the connection between the messaging engine and its data store is lost the server the messaging engine was running on will be terminated almost immediately (look for a "panic" message) and the messaging engine will immediately failover to another server in the messaging cluster. THIS IS DONE TO ***PREVENT*** A LOSS OF MESSAGING DATA! MAKE SURE THE CUSTOMER UNDERSTANDS THIS. The messaging engine will then try for 15 minutes to get a new lock on its data store.

If you set this value to "false" (sib.msgstore.jdbcFailoverOnDBConnectionLoss=false) The the server the messaging engine is running on will not immediately terminate and the messaging engine will try for 15 minutes to get a lock on its data store. THIS TIME SPENT TRYING TO GET A NEW CONNECTION COULD RESULT IN DATA LOSS! If it cannot get a lock on its data store then the server will terminate and the messaging engine will failover to another server in the messaging cluster and try again for 15 minutes to get a lock on its data store.

 

2) sib.msgstore.jdbcInitialDatasourceWaitTimeout

 

This setting allows the customer to tune how long we wait for our initial connection to the datastore (allowing you to delay the attempt to get a connection). This value is set in seconds. For example:

sib.msgstore.jdbcInitialDatasourceWaitTimeout=60

 

3) sib.msgstore.jdbcStaleConnectionRetryDelay

 

This setting defines how long we should attempt to gain a connection from the data source connection pool before giving up. For example:

sib.msgstore.jdbcStaleConnectionRetryDelay=30

This value is in seconds.

 

4) sib.msgstore.jdbcConnectionRetryMaximumDuration

 

This parameter defines the time the ME can try to connect to the Datastore if the connection to the database was lost. This parameter is set in milliseconds and the default value is 90000 milliseconds (15 minutes). Increasing this value would cause the ME to attempt trying to connect to the datastore for a longer duration of time.

Example: sib.msgstore.jdbcConnectionRetryMaximumDuration=20000

(20,000 milliseconds)

NOTE THAT THIS COULD RESULT IN DATA LOSS BECAUSE APPLICATIONS MAY CONTINUE TO SEND PERSISTENT MESSAGES TO THE MESSAGING ENGINE AND THERE WILL BE NO WAY TO STORE THEM!

NOTE: All servers in the messaging cluster must be restarted for any of the above changes to take effect.

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSLKT6","label":"IBM Maximo Asset Management"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

UID

ibm11131189