架构
积压调试器
登录后可跨设备保存划线和私人笔记登录
BacklogDebugger(积压调试器)
Camel 支持一种积压调试器,用于对 Camel 中路由的消息进行实时调试。与 Debugger 相比,积压调试器面向工具集成,提供了更多便于调试的附加功能。积压调试器在 JMX 中以 BacklogDebugger 的名称在 tracer 节点中暴露。其 JMX API 定义在 org.apache.camel.api.management.mbean.ManagedBacklogDebuggerMBean 接口中。
你可以通过调用 enableDebugger 或 disableDebugger 方法动态地启用或禁用 BacklogDebugger。
这需要在 classpath 中包含 camel-management JAR 以启用 JMX。 |
|---|
选项
| 选项 | 默认值 | 说明 |
|---|---|---|
bodyIncludeFiles | true | 是否包含基于文件的消息的消息体。其开销在于必须从文件中读取文件内容。 |
bodyIncludeStreams | false | 是否包含基于流的消息的消息体。如果启用,请注意该流之后可能无法重新读取。有关更多信息,请参阅流缓存(Stream Caching)。 |
bodyMaxChars | 32kb | 限制被跟踪消息中消息体的最大大小。使用 0 或负值表示不限制大小。 |
includeExchangeProperties | true | 是否在被跟踪的消息中包含 Exchange 属性。 |
includeExchangeVariables | true | 是否在被跟踪的消息中包含 Exchange 变量。 |
standby | false | 调试器是否处于待命状态。如果调试器处于待命状态,则调试器会在启动时被激活,并随时可通过 JMX 或调用 enableDebugger 方法手动启用。 |
enabled | false | 调试器是否已启用。 |
singleStepMode | false | 当前是否处于某个 Exchange 的单步模式。 |
singleStepLast | false | 在单步模式下,当 Exchange 完成时,最后模拟一个断点,从而允许在完成时挂起并观察该 Exchange(可以看到作为响应的消息体、失败的异常等)。 |
操作
| 选项 | 类型 | 描述 |
|---|---|---|
addBreakpoint(nodeId) | void | 在给定节点处添加断点。 |
addConditionalBreakpoint(nodeId, language, predicate) | void | 在给定节点处添加条件断点。谓词由 language 参数创建。 |
disableBreakpoint(nodeId) | void | 禁用断点。 |
disableDebugger | void | 禁用调试器。 |
dumpTracedMessagesAsXml(nodeId) | String | 以 XML 格式导出给定节点 id 上被调试的消息。 |
dumpTracedMessagesAsXml(nodeId, boolean) | String | 以 XML 格式导出给定节点 id 上被调试的消息,可选择是否包含 Exchange 属性。 |
enableBreakpoint(nodeId) | void | 启用曾被禁用的断点。 |
enableDebugger | void | 启用调试器。 |
evaluateExpressionAtBreakpoint(nodeId, language, expression) | String | 以任何受支持的语言(例如 Simple)计算表达式,并将结果转换为 String。 |
evaluateExpressionAtBreakpoint(nodeId, language, expression, resultType) | Object | 以任何受支持的语言(例如 Simple)计算表达式,并以给定的结果类型返回结果。 |
getBreakpoints | Set<String> | 获取所有已添加断点的节点集合。 |
getDebuggerCounter | long | 获取被调试消息的总数。 |
getSuspendedBreakpointNodeIds | Set<String> | 获取所有具有挂起断点的节点集合(例如某个 Exchange 在断点处被挂起)。 |
removeBreakpoint(nodeId) | void | 从给定的节点 id 移除断点。 |
resetDebuggerCounter | void | 重置调试器计数器。 |
resumeAll | void | 恢复所有挂起的断点。 |
resumeBreakpoint(nodeId) | void | 恢复某个挂起的断点,使其继续路由该 Exchange。 |
setExchangePropertyOnBreakpoint(nodeId,exchangePropertyName,value) | void | 更新/添加该节点处挂起 Exchange 上的 Exchange 属性。 |
setFallbackTimeout(value) | long | 当阻塞 Camel 中的消息处理时的回退超时时间(秒),默认 300 秒。用于等待消息到达给定断点的超时时间。 |
setMessageBodyOnBreakpoint(nodeId,body) | void | 更新该节点处挂起 Exchange 上的消息体。 |
setMessageHeaderOnBreakpoint(nodeId,headerName,value) | void | 更新/添加该节点处挂起 Exchange 上的消息头。 |
stepBreakpoint(nodeId) | void | 从给定节点处的挂起断点开始单步模式。随后调用 step 可步进到路由中的下一个节点。 |
step | void | 在单步模式下步入下一个节点。 |
stepOver | void | 在单步模式下步过下一个节点。 |
skipOver | void | 在单步模式下跳过下一个节点。 |
validateConditionalBreakpoint | String | 用于验证给定的谓词是否有效。若有效则返回 null,否则返回包含错误消息的字符串。 |
messageHistoryOnBreakpointAsXml(nodeId) | String | 以 XML 格式返回给定节点 id 处的消息历史记录 |
启用
你需要使用 JMX API 来启用积压调试器(backlog debugger)。
另请参阅
参见 调试器(Debugger)。
评论
登录后参与评论
正在加载评论…
KnowForge