Applications, application names, and application instances
Before you start to design and write your applications, familiarize yourself with the basic concepts of applications, application names, and application instances.
- For applications using a version of the IBM® MQ client earlier than IBM MQ 9.1.2, the application name is automatically set by the IBM MQ client. Its value depends on the application programming language, and the platform the application is running on. See PutApplName for more information.
- For IBM MQ client applications using an IBM MQ client at IBM MQ 9.1.2 or later, it is possible to set the application name to a specific value. In most cases, this does not require changes to application code or a need to recompile the application. See Using the application name in supported programming languages for further information.
Connections are further subdivided into application instances. An instance of an application is a set of closely related connections which provide one ‘unit of execution’ for that application. Typically, this is a single operating system process, which can have a number of threads and associated IBM MQ connections.
- If using client connections, these processes might connect to the queue manager over one or more running channels.
- In JMS applications, an application instance maps to a specific JMS connection and all associated JMS sessions.
Application instances are particularly important on IBM MQ for Multiplatforms when using uniform cluster automatic application balancing. On IBM MQ for Multiplatforms platforms, you can view currently connected application instances using the DISPLAY APSTATUS command.
- If multiple connections are made on a shared conversation from the same process, using different application names.
- If older level client libraries are in use. For example, IBM MQ JMS client installations at IBM MQ 9.1.2 and earlier.
In these situations, if the applications do not define themselves as reconnectable, this will be permitted, but some of the application instance groupings might be incorrect. If any of the connections are declared as MQCNO_RECONNECT then this significantly negatively affects application balancing; the MQCONN call will, therefore, be rejected with MQCNO_RECONNECT_INCOMPATIBLE.