wso2 / product-ei

An open source, a high-performance hybrid integration platform that allows developers quick integration with any application, data, or system.
https://wso2.com/integration/
Apache License 2.0
374 stars 280 forks source link

Port JMS transport fixes to EI 6.2.0 version #5359

Closed abeykoon closed 1 month ago

abeykoon commented 3 years ago

*Description:

Port below fixes:

  1. Shared connection is not closed upon an exception on the connection: https://github.com/wso2/product-ei/issues/4986
  2. Fix intermittent failure of MinConcurrencyTest after #278: https://github.com/wso2/wso2-axis2-transports/pull/282
  3. Revert "Revert "Fix JMS proxy retrying forever even after undeploy"" : https://github.com/wso2/wso2-axis2-transports/pull/281/files

[1] is needs to be fixed in a more generic manner than what you see at https://github.com/wso2/product-ei/issues/4986

Affected Product Version:

EI - 6.2.0

Steps to reproduce:

When having a higher number of JMS listener proxies(more than 11) EI (version 6.2.0) is unable to connect to WSO2 MB after a DB(MSSQL) outage. Please follow the below steps to reproduce the issue.

  1. Create an MB cluster with MSSQL MB_STORE_DB. Attaching here the axis2.xml file axis2.xml.
  2. Enable the JMS transport for EI and add the connection details in jndi.properties file(Single EI node). Attaching here the jndi.properties file jndi.properties.
  3. Create more than 11 JMS simple proxy services. Attaching here a sample proxy TEST1.xml.
  4. Stop the DB server and start the server after some time.

You will see the EI is continuously trying to reconnect to MB. When you reduce the service count to 11 the EI is able to connect.

abeykoon commented 3 years ago

Along with this fix, to solve the issue JMS transport needs to be tuned.

Create a file called jms.properties and copy it to [EI_HOME]/conf folder. Paste below into that file.

lst_t_core=200 lst_t_max=250 snd_t_core=200 snd_t_max=250

Make sure

lst_t_core and snd_t_core > Number of total consumers (transport.jms.MaxConcurrentConsumers * number of proxies) + 20 (for a buffer)

abeykoon commented 3 years ago

We need following JMS client fix for this to working properly. https://github.com/wso2/andes/pull/991