CloudCanal自定义代码如何自助排查
-
前言
自定义代码往往和业务自身逻辑紧相关,如果由于自定义代码导致同步异常、延迟会丢数据可以参考本文的思路来进行排查。
基本排查思路顺序
- 先确认是否为自身自定义代码导致问题:这个只要创建一个不包含自定义代码功能的任务作为对比任务,运行下,看看同步结果是否符合预期,如果是的话,则说明问题和用户自身自定义代码相关,请使用debug自定义代码来进一步排查。
- debug自定义代码,查看自定义代码接收输入的参数和返回的结果是否符合预期:
## debug 断点打在该接口实现代码第一行,查看customData变量的值是否符合预期,此时 ## 作为第一行代码,不涉及用户任何的自定义代码操作 List<CustomData> process(CustomData customData); ## debug断点打在该接口实现代码最后的return xxx.查看return的List<CustomData>中的结果是否符合预期
如何进行debug
- 先停止任务
- 任务详情->功能列表->参数配置->找到debugMode设置为true,默认使用debug端口8787
- 在IDE中以远程debug模式启动(我们以IDEA为例)
- 右上角新增启动配置
- 选择Remote JVM Debug
- 填写ip地址和端口,远程调试端口为8787
- 在CloudCanal平台上启动任务
- 进入自定义代码断点后即可进行调试
- 【重要!!】调试完毕后请重新修改参数debugMode=false并重启任务,否则该任务会无法正常执行
如果自定义代码第一行和return结果都符合预期怎么进一步排查
参考https://www.askcug.com/topic/142在www.askcug.com上发帖,提供debug时第一行和return时预期返回的结果 以及实际返回的结果,提供完整的自定义代码,以及库表结构以便于我们复现问题
Copyright © 2020 ClouGence, Inc.备案号:浙ICP备20007605号-2