Use the flow debugger in the workbench to track messages through your message flows.
Use the Debug perspective in the workbench to use the flow debugger. For an introduction to the Debug perspective and the views it presents, see: Debug perspective.
You can set breakpoints in a flow and then step through the flow.
While you are stepping through, you can examine and change the message variables
and the variables used by ESQL code, Java code, and mappings. You
can debug a wide variety of error conditions in flows, including the following:
- Nodes that are wired incorrectly (for example, outputs that are connected
to the wrong inputs)
- Incorrect conditional branching in transition conditions
- Unintended infinite loops in flow
From a single workbench, you can attach the debugger to one or more execution groups, and debug multiple flows in different execution groups (and therefore multiple messages) at the same time. However, an execution group can be debugged by only one user at a time. Therefore, if you attach your debugger to an execution group, another user cannot attach a debugger to that same execution group until you have ended your debugging session.
When you debug message flows, use a broker that is not being used in a production environment,
for the following reasons:
- Debugging might degrade the performance of all message flows that are
deployed to the broker. Other flows in the same execution group, and those
in other execution groups that share the same broker might be affected by potential resource contention.
- Debugging is supported by Rational® Agent
Controller (RAC), which you must install on the system on
which the broker is running. When you install RAC on the same system as WebSphere® Message
Broker, you must install it with security
disabled because the debugger does not work if security is enabled. When you
disable security, restrictions about which users can debug
message flows cannot be imposed. This lack of control might represent a security exposure.
Debugging code and mappings in message flow nodes
You can use the flow debugger to examine the behavior of code and mappings in message flow nodes.
After you have deployed a message flow, you can set a breakpoint just before one of the nodes listed below so that, when the flow pauses at the breakpoint, you can step through the code or mappings line by line. This allows you to examine the logic, and check the actions taken and their results. You can set additional breakpoints and you can also examine and change variables.
The following nodes can contain ESQL code modules:
- Compute node
- Filter node
- Database node
The following nodes can contain Java code modules:
- User-defined nodes
- JavaCompute node
The following nodes can contain mappings:
- Mapping node
- DataInsert node
- DataUpdate node
- DataDelete node
- Extract node
- Warehouse node
Restrictions
The following restrictions apply when
you debug a message flow:
- You cannot debug flows that you have deployed to a
64-bit execution group; only 32-bit execution groups are supported by the
flow debugger.
- You must use the same version of the broker and the Message Brokers Toolkit;
for example, you cannot use the Message Brokers Toolkit Version 6.0 to debug a message flow that you have deployed to
a broker at an earlier version.
- You should not debug message flows over the Internet; there might be security issues.
If your broker domain has a firewall between
one or more brokers and the workbench, you
might have to change the configuration of RAC before you can use it successfully. For instructions about how to complete
this task, see Configuring RAC for use with a firewall.