Connecting applications in a multiple installation environment
On UNIX, Linux®, and Windows systems, if IBM® WebSphere® MQ 7.1, or later, libraries are loaded, IBM MQ automatically uses the appropriate libraries without you needing to take any further action. IBM MQ uses libraries from the installation associated with the queue manager that the application connects to.
- Linking
- When the application is compiled, the application is linked to the IBM MQ libraries to get the function exports that are then loaded when the application runs.
- Loading
- When the application is run, the IBM MQ libraries are located and loaded. The specific mechanism used to locate the libraries varies by operating system, and by how the application is built. For more information about how to locate and load libraries in a multiple installation environment, see Loading IBM MQ libraries.
- Connecting
- When the application connects to a running queue manager, for example, using a
MQCONN
orMQCONNX
call, it connects using the loaded IBM MQ libraries.
- When the setmqm command is used to change the installation associated with a queue manager, the libraries that need to be loaded change.
- When an application connects to multiple queue managers that are owned by different installations, multiple sets of libraries need to be loaded.
However, if IBM WebSphere MQ 7.1, or later, libraries, are located and loaded, IBM MQ then loads and uses the appropriate libraries without you needing to take any further action. When the application connects to a queue manager, IBM MQ loads libraries from the installation that the queue manager is associated with.
Installation0
), and an IBM WebSphere MQ 7.1 installation ( Installation1
). Two applications are connected to these installations, but they load different library versions.
Application 1
directly loads an IBM WebSphere MQ 7.0.1 library. When application 1
connects to QM2
, the IBM WebSphere MQ 7.0.1 libraries are used . If application 1
attempts to connect to QM1
, or if QM2
is associated with Installation1
, application 1
fails with a 2059 (080B) (RC2059): MQRC_Q_MGR_NOT_AVAILABLE error. The application fails because the IBM WebSphere MQ 7.0.1 library is not capable of loading other library versions. That is, if IBM WebSphere MQ 7.0.1 libraries are directly loaded, you cannot use a queue manager associated with an installation at a later version of IBM MQ.
Application 2
directly loads an IBM WebSphere MQ 7.1 library. When application 2
connects to QM2
, the IBM WebSphere MQ 7.1 library then loads and uses the IBM WebSphere MQ 7.0.1 library. If application 2
connects to QM1
, or if QM2
is associated with Installation1
, the IBM WebSphere MQ 7.1 library is loaded, and the application works as expected.
Migration scenarios and connecting applications with multiple installations is considered in more detail in Multi-installation queue manager coexistence on UNIX, Linux, and Windows.
For more information about how to load IBM WebSphere MQ 7.1 libraries, see Loading IBM MQ libraries.
Support and restrictions
- The C server libraries
- The C++ server libraries
- The XA server libraries
- The COBOL server libraries
- The COM+ server libraries
- .NET in unmanaged mode
There are a number of restrictions for applications using multiple installations. For more information, see Restrictions for applications using multiple installations.