See information about the latest product version
Preparing graphical data maps on deployment
When the MQSI_PREPARE_MAPS_ON_DEPLOY environment variable is set to TRUE, the behavior of graphical data maps used in the flow Mapping nodes is altered.
From WebSphere® Message Broker Version 8.0.0.4, setting the MQSI_PREPARE_MAPS_ON_DEPLOY environment variable to TRUE alters the behavior of graphical data maps that are used in the flow Mapping node. When this variable is set to TRUE, the graphical data maps are prepared for execution on deployment instead of when the first message is flowed through the node.
Table 1 explains this behavior in comparison to the old behavior.
- There is no drop in performance from initialization when the first message is flowed through the node.
- The map and its dependencies, such as any referenced message models, are validated during deployment to ensure that the map runs successfully on first message.
- All map dependencies, such as a valid message model, must be resolved at deployment for the deployment process to complete.
- When WebSphere Message Broker is restarted, dependencies are validated before the message flow can be restored.
The following table compares the behavior of graphical data maps with and without the MQSI_PREPARE_MAPS_ON_DEPLOY environment variable set to TRUE:
Event | Not setting MQSI_PREPARE_MAPS_ON_DEPLOY (Default behavior) | MQSI_PREPARE_MAPS_ON_DEPLOY set to TRUE |
---|---|---|
BAR deployment (initial deployment and redeployment) | Map resources are persisted to configuration store |
Any map that is in the BAR file but is not used (either because the map is in a branch of the message flow that is not executed or because the map is not referenced by a Mapping node), is now validated upon deployment. For the deployment to complete without error, you might need to remove any .map files (from your application, library, or message broker project) if the .map files are not intended for use by a Mapping node that is in the BAR file. |
Following deployment | No action | Background processing is launched to initialize the prepared map resources to be eligible for JIT optimization. The new form is persisted on completion. |
First message flowed after deployment or redeployment | A specific map that is called from each Mapping
node that is invoked by the message is prepared for execution and
readied for JIT optimization. This process requires that all map dependencies, schema, ESQL, Java, and so on, to be present, and that the map does not contain any static errors such as an invalid Xpath expression. If these requirements are not met, the message is rejected with the cause being reported as BIP messages reporting the map generation failure. |
The previously prepared map is executed. If the background processing is complete, the JIT optimization starts. |
Any subsequent messages flowed after deployment or redeployment | If the messages invoke the same Mapping nodes
in the flow, the previously prepared map is executed and JIT optimization
occurs. If the message results in a new execution path in the message flow and extra Mapping nodes are encountered, then extra maps must be prepared as previously described in First message flowed after deployment or redeployment. |
The previously prepared map is executed. If the background processing is complete, the JIT optimization starts. |
Restart of any of the following items:
|
The deployed map reference is validated. |
The first restart after setting the function level results in all maps being prepared, which includes validation. |
First message flowed after a restart | A specific map called from each Mapping node
that is invoked by the message is prepared for execution and readied
for JIT optimization. This process requires that all map dependencies, schema, ESQL, Java, and so on, to be present, and that the map does not contain any static errors such as an invalid Xpath expression. If these requirements are not met, the message is rejected with the cause being reported as BIP messages reporting the map generation failure. |
The previously prepared map is executed. If the background processing is complete, the JIT optimization starts. |
Any subsequent messages after a restart | If the messages invoke the same Mapping nodes
in the flow, the previously prepared map is executed and JIT optimization
occurs. If the message results in a new execution path in the message flow and extra Mapping nodes are encountered, then extra maps must be prepared as previously described in First message flowed after a restart. |
The previously prepared map is executed. If the background processing is complete, the JIT optimization starts. |