Deploying a user exit

Deploy your user exit to the broker.

Before you start:

  • Write and compile the user exit code. See Developing a user exit.
  • Ensure that the exit:
    1. Is in a library that has the extension .lel
    2. Exports the functions bipInitializeUserExits and bipTerminateUserExits

You can set the state of the user exit dynamically to active, or inactive, on a per-message flow basis without restarting the broker.

To deploy the user exit:

  1. Install the user exit code on a broker.
    The library containing the user exit code must be installed on a file system that can be accessed by the broker. For example, the file must have read and execute authority for the user ID under which the broker runs. The broker looks in the following places for libraries containing user exits:
    • Start of changeThe broker property UserExitPath defines a list of directories separated by colons (semi-colons on Windows). Use the –x flag on the mqsicreatebroker or mqsichangebroker command to set this property for 32-bit execution groups for each broker.

      Alternatively, you can append the directory containing the directory that holds the extension files to the environment variable MQSI_USER_EXIT_PATH associated with the environment in which the broker is running.

      If both are set, the environment variable takes precedence. All the directories in the environment variable are searched in the order in which they appear in the variable, then all the directories in the broker property are searched in the order in which they appear in the property.

      End of change
    • Start of changeFor 64-bit extensions, you cannot use the –x parameter to modify the exit path. Append the directory containing the directory that holds the extension files to the environment variable MQSI_USER_EXIT_PATH64. End of change
  2. Load the user exit library into the broker's processes.
    When the user exit library has been installed on the broker, you must load it in one of the following ways:
    • Stop and restart the broker.
    • Run the mqsireload command to restart the execution group processes.
  3. Activate the user exit.

    User exits can be active or inactive, and are inactive by default. You can change the state of a user exit dynamically by using the mqsichangeflowuserexits command on a per-flow basis, without having to restart the broker. You can also change the default state for a set of user exits to active on a per-broker basis by using the mqsichangebroker command; in this case, you do not have to restart the broker.

    To set the default user exit state for a broker:

    1. Stop the broker.
    2. Set the activeUserExits property of the broker by using the mqsichangebroker command.
    3. Start the broker and check the system log to ensure that all execution groups start without error. If any invalid user exit names are specified (that is, the user exit is not provided by any library loaded by the execution group), a BIP2314 message is written to the system log and all flows in the execution groups fail to start unless you take one of the following actions:
      • Provide a library in the user exit path that implements the exit; then run the mqsireload command, or restart the broker, to load an exit from the library.
      • Run the mqsichangeflowuserexits command to remove the exit from both the active and inactive lists.

    You can also override the default user exit state for a broker. You can use the mqsichangeflowuserexits command to activate, or deactivate, user exits on a per-execution group or per-message flow basis, with the order of precedence being message flow then execution group. When multiple exits are active for a given flow, the broker starts them in the order that is defined by the mqsichangeflowuserexits command.

Related concepts
User exits
Related tasks
Developing a user exit
Exploiting user exits
Related reference
mqsicreatebroker command
mqsichangebroker command
mqsireportflowuserexits command
mqsichangeflowuserexits command
mqsireload command
Notices | Trademarks | Downloads | Library | Support | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Last updated : 2009-01-07 15:19:59

ac02160_