WebSphere Cast Iron v6.1 uses the WebSphere MQ Client libraries in order to setup a connection to a remote WebSphere MQ Server. The connection uses a connection pool and the size of this pool is determined within the orchestrations MQ end point setting.
Problems can occur if the setting for the connection pool is set to a low value and many orchestrations are running which all perform concurrent MQ activities. As a result, if there are no local connections available in the connection pool set up on the appliance, then the WebSphere MQ Client connection code rejects the attempt to connect to the remote MQ server and an MQRC 2025 MQRC_MAX_CONNS_LIMIT_REACHED error code is returned.
Within the Web Management Console (WMC), a user will notice projects failing with MQRC 2025, MQRC_MAX_CONNS_LIMIT_REACHED errors.
This has only been reported by users who have in excess of 1 projects which have MQ Endpoints and are setting the value in at least one of the MQ end points to a low value.
The problem is occurring due to WebSphere Cast Iron incorrectly initiating the connection pool for an MQ end point.
Here is an example:
A user has 3 projects, all defined to connect to different MQ end points and all defined with different max connections values.
- Project A has MQ endpoint A with maximum Connections = 50
- Project B has MQ endpoint B with maximum Connections = 1
- Project C has MQ endpoint C with maximum Connections = 25
- Project B is deployed first
- Project A is deployed second
- Project C is deployed last.
Depending on the activities which are configured in each project, if all projects require a connection to their MQ end point at the same time, then MQ will refuse some of these attempts because the pool is set to allow a maximum of 1 connection.
This problem is present on WebSphere Cast Iron v6.1 for users who have orchestrations which have MQ endpoints.
Diagnosing the problem
In the Web Management console a user will notice MQRC 2025, MQRC_MAX_CONNS_LIMIT_REACHED errors from the projects which connect to WebSphere MQ.
Resolving the problem
The only way to work around this problem is to stop and undeploy ALL projects which have an MQ endpoint defined.
Cast Iron Support suggests that each project is then updated in WebSphere Cast Iron Studio and the maximum connections value changed to be the current highest setting which is 50 connections.
Cast Iron is currently setting the connection pool to be the value defined in the first project which is started on the appliance which has an MQ end point defined. By setting all MQ end points to have a maximum connections value of 50, this should mean it is less likely to run out of available connections.
APAR LI77082 has been raised to resolve this problem and is targeted for inclusion in a future WebSphere Cast Iron release.