Use the mqsichangeflowuserexits command to set the list of active or inactive user exits. There is a list of active and a list of inactive user exits for each execution group and message flow. The effective state of user exits for a given flow is decided when the flow starts.
The order of precedence is message flow, execution group, and then broker default. The active list takes precedence over the inactive list in the message flow and execution group settings.
If the state for a given user exit is not set for the message flow, then its state is taken from the execution group setting. If its state is not set for the message flow or execution group, then it takes the default state which is implicitly inactive, or can be explicitly defined as active by the broker property activeUserExits, through the mqsichangebroker command.
If a particular user exit name is present in both the active and inactive lists for a message flow or execution group, then the active list takes precedence and the user exit is active for that level. Therefore, if you want to change a user exit from active to inactive you must specify it as part of the inactive list, by using the -i flag and also remove it from the active list by re-specifying the new active list by using the -a flag.
When multiple exits are active for a given flow, they are invoked in a defined order. Those exits in the message flow’s active list are invoked first in the order that they were specified on the -a flag.
After those have been invoked, the exits in the execution group’s active list (which were in neither the message flow’s active nor inactive list) are invoked. These are invoked in the order that they were specified on the -a flag.
All user exits that are not mentioned in the execution group’s or message flow’s active or inactive list, but are in the broker’s active list, are invoked in the order that they were specified when the broker property activeUserExits was set.
If any of the user exits specified in either the active or inactive list are not registered for the target execution group, the command fails with a BIP8858 error.