Extending queue manager facilities
We can extend queue manager facilities by using user exits, API exits, or installable services.
User exits
User exits provide a mechanism for you to insert your own code into a queue manager function. The user exits supported include:
- Channel exits
- These exits change the way that channels operate. Channel exits are described in Channel-exit programs for messaging channels.
- Data conversion exits
- These exits create source code fragments that can be put into application programs to convert data from one format to another. Data conversion exits are described in the Writing data-conversion exits.
- The cluster workload exit
- The function performed by this exit is defined by the provider of the exit. Call definition information is given in MQ_CLUSTER_WORKLOAD_EXIT - Call description.
API exits
API exits let you write code that changes the behavior of IBM MQ API calls, such as MQPUT and MQGET, and then insert that code immediately before or immediately after those calls. The insertion is automatic; the queue manager drives the exit code at the registered points. For more information about API exits, see Use and writing API exits.
Installable services
Installable services have formalized interfaces (an API) with multiple entry points.
An implementation of an installable service is called a service component. We can use the components supplied with IBM MQ, or we can write your own component to perform the functions that you require.
Currently, the following installable services are provided:
- Authorization service
-
The authorization service allows you to build your own security facility.
The default service component that implements the service is the object authority manager (OAM). By default, the OAM is active, and we do not have to do anything to configure it. We can use the authorization service interface to create other components to replace or augment the OAM. For more information about the OAM, see Set up security on Windows, UNIX and Linux systems.
- Name service
-
The name service enables applications to share queues by identifying remote queues as though they were local queues.
We can write your own name service component. We might want to do this if you intend to use the name service with IBM MQ, for example. To use the name service we must have either a component that is either user-written, or supplied by a different software vendor. By default, the name service is inactive.
Parent topic: IBM MQ Technical overview
Related information