| [[BacklogDebugger-BacklogDebugger]] |
| BacklogDebugger |
| ~~~~~~~~~~~~~~~ |
| |
| *Available as of Camel 2.12* |
| |
| Camel supports a backlog debugger that is used for live debugging of |
| message they are routed in Camel. |
| The backlog debugger has additional functionality for easier debugging |
| aimed at tooling, than the link:debugger.html[Debugger]. The backlog |
| debugger is exposed in JMX in the tracer node with the name |
| `BacklogDebugger`. The JMX API is defined in the |
| `org.apache.camel.api.management.mbean.ManagedBacklogDebuggerMBean` |
| interface. |
| |
| You can enable or disable the BacklogDebugger dynamically, by calling |
| `enableDebugger` or `disableDebugger` methods. |
| |
| [[BacklogDebugger-Options]] |
| Options |
| ^^^^^^^ |
| |
| [width="100%",cols="10%,20%,70%",options="header",] |
| |======================================================================= |
| |Option |Default |Description |
| |
| |`enabled` |`false` |Whether the debugger is enabled or not. |
| |
| |`singleStepMode` |`false` |Whether currently in single step mode of a single |
| link:exchange.html[Exchange]. |
| |
| |`bodyMaxChars` |`128kb` |To limit the message body to a maximum size in the traced message. Use 0 |
| or negative value to use unlimited size. |
| |
| |`bodyIncludeStreams` |`false` |Whether to include the message body of stream based messages. If enabled |
| then beware the stream may not be re-readable later. See more about |
| link:stream-caching.html[Stream Caching]. |
| |
| |`bodyIncludeFiles` |`true` |Whether to include the message body of file based messages. The overhead |
| is that the file content has to be read from the file. |
| |======================================================================= |
| |
| [[BacklogDebugger-Operations]] |
| Operations |
| ^^^^^^^^^^ |
| |
| [width="100%",cols="10%,20%,70%",options="header",] |
| |======================================================================= |
| |Option |Type |Description |
| |
| |`enableDebugger` |`void` |To enable the debugger |
| |
| |`disableDebugger` |`void` |To disable the debugger |
| |
| |`getDebuggerCounter` |`long` |Gets the total number of debugged messages. |
| |
| |`resetDebuggerCounter` |`void` |To reset the debugger counter. |
| |
| |`dumpTracedMessagesAsXml(nodeId)` |`String` |To dump the debugged messages from the give node id in XML format. |
| |
| |`addBreakpoint(nodeId)` |`void` |To add a breakpoint at the given node. |
| |
| |`addConditionalBreakpoint(nodeId, language, predicate)` |`void` |To add a conditional breakpoint at the given node. The predicate is |
| created from the link:languages.html[language] parameter. |
| |
| |`removeBreakpoint(nodeId)` |`void` |To remove the breakpoint from the given node id. |
| |
| |`resumeBreakpoint(nodeId)` |`void` |To resume a suspend breakpoint, which will then continue routing the |
| link:exchange.html[Exchange]. |
| |
| |`resumeAll` |`void` |To resume all suspended breakpoints. |
| |
| |`getSuspendedBreakpointNodeIds` |`Set<String>` |To get a set of all the nodes which has suspended breakpoints (eg an |
| link:exchange.html[Exchange] at the breakpoint which is suspended). |
| |
| |`stepBreakpoint(nodeId)` |`void` |To start single step mode from a suspended breakpoint at the given node. |
| Then invoke `step` to step to next node in the route. |
| |
| |`step` |`void` |To step to next node when in single step mode. |
| |
| |`getBreakpoints` |`Set<String>` |To get a set of all the nodes which has a breakpoint added. |
| |
| |`enableBreakpoint(nodeId)` |`void` |To active a breakpoint which has been temporary disabled. |
| |
| |`disableBreakpoint(nodeId)` |`void` |To disable a breakpoint temporary. |
| |
| |`setMessageBodyOnBreakpoint(nodeId,body)` |`void` |To update the message body on the suspended link:exchange.html[Exchange] |
| at the node. |
| |
| |`setMessageHeaderOnBreakpoint(nodeId,headerName,value)` |`void` |To update/add the message header on the suspended |
| link:exchange.html[Exchange] at the node. |
| |======================================================================= |
| |
| [[BacklogDebugger-Enabling]] |
| Enabling |
| ^^^^^^^^ |
| |
| You would need to enable this using the JMX API. |
| |
| [[BacklogDebugger-SeeAlso]] |
| See Also |
| ^^^^^^^^ |
| |
| * link:backlogtracer.html[BacklogTracer] |
| * link:debugger.html[Debugger] |
| * link:log.html[Log] |
| |