Deploying a user exit

Deploy your user exit to the integration node.

Before you begin

  • 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

About this task

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

To deploy the user exit:

Procedure

  1. Install the user exit code on an integration node.

    The library containing the user exit code must be installed on a file system that can be accessed by the integration node. For example, the file must have read and execute authority for the user ID under which the integration node runs. The integration node looks in the following places for libraries that contain user exits:

    • The integration node property UserExitPath defines a list of directories separated by colons (semicolons on Windows). Use the -x flag on the mqsicreatebroker or mqsichangebroker command to set this property for integration servers for each integration node.
    • 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 integration node 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 integration node property are searched in the order in which they appear in the property.
  2. Load the user exit library into the integration node's processes.
    When the user exit library has been installed on the integration node, you must load it in one of the following ways:
    • Stop and restart the integration node.
    • Run the mqsireload command to restart the integration server 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 integration node. You can also change the default state for a set of user exits to active on a per-integration node basis by using the mqsichangebroker command; in this case, you do have to restart the integration node.

    To set the default user exit state for an integration node:

    1. Stop the integration node.
    2. Set the activeUserExits property of the integration node by using the mqsichangebroker command.
    3. Start the integration node and check the system log to ensure that all integration servers 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 integration server), a BIP2314 message is written to the system log and all flows in the integration servers 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 integration node, 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 an integration node. You can use the mqsichangeflowuserexits command to activate, or deactivate, user exits on a per-integration server or per-message flow basis, with the order of precedence being message flow then integration server. When multiple exits are active for a flow, the integration node starts them in the order that is defined by the mqsichangeflowuserexits command.

Results