Configure API exits
This section tells you how to configure API exits. We start in Configuring API exits on UNIX systems, explaining how to add the stanzas, followed by Configuring API exits on Windows systems, which tells you how to use the WebSphere MQ Services snap-in.
Configuring API exits on UNIX systems
You define your API exits in new stanzas in the mqs.ini and qm.ini files. The sections below describe these stanzas, and the attributes within them that define the exit routines and the sequence in which they run. For guidance on the process of changing these stanzas, see Changing the configuration information.
Stanzas in mqs.ini are:
- ApiExitCommon
- When any queue manager starts, the attributes in this stanza are read, and then overridden by the API exits defined in qm.ini.
- ApiExitTemplate
- When any queue manager is created, the attributes in this stanza are copied into the newly created qm.ini file under the ApiExitLocal stanza.
The stanza in qm.ini is:
- ApiExitLocal
- When the queue manager starts, API exits defined here override the defaults defined in mqs.ini.
Attributes for all stanzas
All these stanzas have the following attributes:
- Name=ApiExit_name
- The descriptive name of the API exit passed to it in the ExitInfoName field of the MQAXP structure.
This name must be unique, no longer than 48 characters, and contain only valid characters for the names of WebSphere MQ objects (for example, queue names).
- Function=function_name
- The name of the function entry point into the module containing the API exit code. This entry point is the MQ_INIT_EXIT function.
The length of this field is limited to MQ_EXIT_NAME_LENGTH.
- Module=module_name
- The module containing the API exit code.
If this field contains the full path name of the module it is used as is.
If this field contains just the module name, the module is located using the ExitsDefaultPath attribute in the ExitPath in qm.ini.
On platforms that support separate threaded libraries (AIX, HP/UX, and Linux), provide both a non-threaded and a threaded version of the API exit module. The threaded version must have an _r suffix. The threaded version of the WebSphere MQ application stub implicitly appends _r to the given module name before it is loaded.
The length of this field is limited to the maximum path length the platform supports.
- Data=data_name
- Data to be passed to the API exit in the ExitData field of the MQAXP structure.
If you include this attribute, leading and trailing blanks are removed, the remaining string is truncated to 32 characters, and the result is passed to the exit. If you omit this attribute, the default value of 32 blanks is passed to the exit.
The maximum length of this field is 32 characters.
- Sequence=sequence_number
- The sequence in which this API exit is called relative to other API exits. An exit with a low sequence number is called before an exit with a higher sequence number. There is no need for the sequence numbering of exits to be contiguous; a sequence of 1, 2, 3 has the same result as a sequence of 7, 42, 1096. If two exits have the same sequence number, the queue manager decides which one to call first. You can tell which was called after the event by putting the time or a marker in ExitChainArea indicated by the ExitChainAreaPtr in MQAXP or by writing your own log file.
This attribute is an unsigned numeric value.
Sample stanzas
The mqs.ini file below contains the following stanzas:
- ApiExitTemplate
- This stanza defines an exit with the descriptive name OurPayrollQueueAuditor, module name auditor, and sequence number 2. A data value of 123 is passed to the exit.
- ApiExitCommon
- This stanza defines an exit with the descriptive name MQPoliceman, module name tmqp, and sequence number 1. The data passed is an instruction (CheckEverything).
mqs.ini ApiExitTemplate: Name=OurPayrollQueueAuditor Sequence=2 Function=EntryPoint Module=/opt/ABC/auditor Data=123 ApiExitCommon: Name=MQPoliceman Sequence=1 Function=EntryPoint Module=/opt/MQPolice/tmqp Data=CheckEverythingThe qm.ini file below contains an ApiExitLocal definition of an exit with the descriptive name ClientApplicationAPIchecker, module name ClientAppChecker, and sequence number 3.
qm.ini ApiExitLocal: Name=ClientApplicationAPIchecker Sequence=3 Function=EntryPoint Module=/opt/Dev/ClientAppChecker Data=9.20.176.20
Changing the configuration information
The WebSphere MQ configuration file, mqs.ini, contains information relevant to all the queue managers on a particular node. You can find it in the /var/mqm directory.
A queue manager configuration file, qm.ini, contains information relevant to a specific queue manager. There is one queue manager configuration file for each queue manager, held in the root of the directory tree occupied by the queue manager. For example, the path and the name for a configuration file for a queue manager called QMNAME is:
/var/mqm/qmgrs/QMNAME/qm.ini"Before editing a configuration file, back it up so that you have a copy you can revert to if the need arises.
You can edit configuration files either:
- Automatically, using commands that change the configuration of queue managers on the node
- Manually, using a standard text editor
If you set an incorrect value on a configuration file attribute, the value is ignored and an operator message is issued to indicate the problem. (The effect is the same as missing out the attribute entirely.)
Configuring API exits on Windows systems
You configure API exits on Windows systems using the WebSphere MQ Services snap-in or the amqmdain command to update the Windows Registry.
A new property page for the IBM WebSphere MQ Services node, API Exits describes the two types of API exit managed from this node: ApiExitCommon and ApiExitTemplate. In the Exits property page for individual queue managers, you can update the ApiExitLocal. Configure... buttons launch a dialog to manage the entries within each stanza. The dialog consists of a multicolumn list of any API exits already defined in the appropriate stanza, with buttons to add, view, and change the properties of exits, and remove them.
When entering, or changing, the attributes for an exit, the attributes are those defined in Attributes for all stanzas.
When you finish defining or changing an exit, press OK to update the Registry. To discard the changes you have made, press Cancel.
WebSphere is a trademark of the IBM Corporation in the United States, other countries, or both.
IBM is a trademark of the IBM Corporation in the United States, other countries, or both.