APAR status
Closed as program error.
Error description
When running a native MQ C application on AIX that establishes a TLS connection to a queue manager, the MQ client library alters the value of the system library path (LIBPATH) by adding the directory where the MQ installation of GSKit is located, for example: /usr/mqm/gskit8/lib64 followed by: /usr/lib during an MQCONN(X) API call. For example, if the value of LIBPATH before the MQ connection API call was: /opt/myproduct/mylibs the value of LIBPATH after the MQ connection API call would be: /usr/mqm/gskit8/lib64:/usr/lib:/opt/myproduct/mylibs The addition of /usr/lib can cause library loading issues for the application after the MQ connection API call completes as it could result in an incompatible, but equivalently named, library being loaded form /usr/lib rather than the configured /opt/myproduct/mylibs directory.
Local fix
Configure the system such that the libraries required by the application exist at the appropriate level in /usr/lib, or such that no versions of those libraries exist in /usr/lib
Problem summary
**************************************************************** USERS AFFECTED: This issue affects users of native MQ C applications on AIX that establish TLS secured connections to queue managers before attempting to load other libraries from the system. Platforms affected: AIX **************************************************************** PROBLEM DESCRIPTION: Due to way in which libraries are loaded on AIX and to ensure the MQ installation of GSKit and its inter-library dependencies are loaded for client applications establishing TLS connections to queue managers, the MQ client adds the directory location of MQ's GSKit installation to the front of the library path (LIBPATH) when the application attempts to connect to an MQ queue manager. The directory /usr/lib is also prepended, after the location of GSKit, to the library path. After connecting to an MQ queue manager, if the application then attempted to load a named library from the system and a library of that name was found in /usr/lib, an attempt to load that copy would be made. If the library in /usr/lib was incompatible with the application compared to an equivalently named one that can be found in a different directory listed later in the library path, which the application expected to load, then a library loading error would occur.
Problem conclusion
This APAR adds a configuration environment variable by the name of: AMQ_GSKIT_CLIENT_NO_PREPEND_USRLIB_LIBPATH This new environment variable can be used to suppress the prepending of /usr/lib by setting the environment variable to a non-empty value in the environment used to run the MQ client application, for example: export AMQ_GSKIT_CLIENT_NO_PREPEND_USRLIB_LIBPATH=TRUE When this environment variable is set to a non-empty value, the MQ client code will not add the directory /usr/lib to the front of the library path (LIBPATH) after the the location of the MQ installation of GSKit. --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v8.0 8.0.0.9 v9.0 CD 9.0.5 v9.0 LTS 9.0.0.4 The latest available maintenance can be obtained from 'WebSphere MQ Recommended Fixes' http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037 If the maintenance level is not yet available information on its planned availability can be found in 'WebSphere MQ Planned Maintenance Release Dates' http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006309 ---------------------------------------------------------------
Temporary fix
Comments
APAR Information
APAR number
IT23306
Reported component name
IBM MQ BASE MP
Reported component ID
5724H7251
Reported release
800
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2017-11-28
Closed date
2018-01-09
Last modified date
2018-01-09
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
IBM MQ BASE MP
Fixed component ID
5724H7251
Applicable component levels
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0.0.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
09 January 2018