<< Click to Display Table of Contents >> 错误码复制链接 |
1. 模块错误码
错误码的前两位为模块码,代表错误所属的功能模块。
主模块 |
模块码 |
---|---|
公用 |
11 |
数据连接 |
12 |
数据集 |
13 |
数据执行 |
14 |
报告 |
15 |
组合报告 |
16 |
门户 |
17 |
调度任务 |
18 |
系统管理 |
19 |
WebAPI |
20 |
数据集市 |
21 |
血缘分析 |
22 |
深度分析 |
23 |
填报 |
24 |
流程审批 |
25 |
桌面端 |
26 |
2.详细错误码
2.1 数据连接
2.1.1 120000003
错误代码 |
报错内容 |
---|---|
120000003 |
无法连接数据库,具体原因XXX |
问题描述:无法连接到数据库。
排查方法:检查数据库驱动版本。
问题原因:驱动版本过低导致,产品自带驱动和使用的数据库版本不对应。
解决方案:自定义上传新版本的驱动。
2.1.2 120000016
错误代码 |
报错内容 |
---|---|
120000016 |
数据库驱动XX没有找到,请验证驱动名称是否正确。 |
问题描述:连接报错g5.util.GRTException: 数据库驱动没有找到请验证驱动名称是否正确。
排查方法:
1)到产品部署目录vividime\jdbcDriver\Default中查看是否存在默认驱动。
2)添加数据源页面,点击去”驱动管理”,查看上传的自定义驱动是否存在。
问题原因:
1)没有找到默认驱动。
2)没有上传自定义驱动或自定义驱动失效。
解决方案:添加数据源页面,重新上传自定义驱动。
2.1.3 120000043
错误代码 |
报错内容 |
---|---|
120000043 |
无法连接数据源XX,具体原因XXX |
问题描述:数据库连接报错Communications link failure。
排查方法:
1)检查URL,查看是否包含useSSL=false。
问题原因:客户本地使用的cenos8系统,可能会涉及到安全升级的原因
解决方案:数据库连接URL后面拼接&useSSL=false
2)先通过Ping命令、Telnet命令,测试是否可以和数据库通信;排查防火墙是否处于关闭状态;使用数据库连接工具,测试能否连接成功;排查产品日志,查看对应的报错信息。
问题原因:产品存在属性conn.create.timeout=30000,默认尝试连接数据库的时间为30秒,超过30秒没连上就会弹出超时提示。
解决方案:将属性conn.create.timeout的值改为较长时间,如2分钟(120000ms),重启产品后,再次尝试测试连接。
2.2 数据集
2.2.1 130000218
错误代码 |
报错内容 |
---|---|
130000218 |
执行SQL失败:XX |
可能的情景:
•在ORACLE数据库中写了一个存储过程,报错:
问题原因:sql语句中存储过程名称不需要用引号进行标识。
解决方案:是否需要标识存在差异,请查阅数据库相关手册。
•入集市load数据时,数据库出现问题返回报错。
问题原因:由于数据库出行问题导致load数据出错,如:数据库连接太多导致本次连接失败。
解决方案:根据数据库返回错误信息,搜索相关解决方案,如更改数据库连接限制等,或者修改sql解决。
2.2.1 130000034
错误代码 |
报错内容 |
---|---|
130000034 |
丢弃空的参数失败:XX in XXX |
问题描述:预览数据集或者报告,不给参数传值,会报错。
排查方法:首先确认在sql数据集中自定义sql语句时是否引用参数,例如:select * from table where ID > ?{param1},在执行数据时是不是未给参数传值。
问题原因:未给参数传值导致的。
解决方案:如果确认当前场景就是要不给参数传值,则去修改sql的写法为:select * from table <param1> where ID > ?{param1} <param1>,详情可参考数据集中使用参数中的第一点。
2.3 数据执行
2.3.1 140000004
错误代码 |
报错内容 |
---|---|
140000004 |
列不存在:XX |
•数据集报列不存在
通常是自服务数据集报列不存在,排查步骤如下:
1) 从end节点往前检查,找到最先报列不存在的节点。
2)查看元数据中是否存在报错的这一列(记得看一下隐藏列),如果确实不存在,报列不存在是正确的,如果存在这一列,继续下面的步骤。
3)看这一节点是否有计算列或过滤,逐个隐藏,排查是哪一个计算列或者过滤条件报的列不存在。
4)编辑计算列,查看计算列中col的写法是否正确,前后是否多了空格,有空格的话会跟列名匹配不上,报列不存在是正确的,调整计算列即可。
5)如果列都匹配的上仍报列不存在,大概率是bug,可以提流程。
•报告中报列不存在
与数据集中报列不存在的排查步骤类似。
1)首先确认是哪一个组件报的列不存在,可以通过日志查看,如下图,日志中会显示出报错的组件名称。
2)删除无关的组件,排除其它组件的影响。
3)查看元数据中是否存在报错的这一列(记得看一下隐藏列),如果确实不存在,报列不存在是正确的,如果存在这一列,继续下面的步骤。
4)看报告中是否有计算列,逐个绑定,排查是哪一个计算列报的列不存在。
5)编辑计算列,检查计算列中col的写法是否正确,前后是否多了空格,有空格的话会跟列名匹配不上,报列不存在是正确的,调整计算列即可。
6)如果列都匹配的上仍报列不存在,可能是bug,可以提流程。
总结:列不存在的问题通常跟计算列有关,计算列多层嵌套、数据集多层嵌套或者计算列引用的原始列改了别名,会导致找不到列报列不存在,排查的时候注意看客户是否做了这些操作。
2.4 数据集市
2.4.1 110000057
错误代码 |
报错内容 |
---|---|
110000057 |
列数据类型不一致:XX。 |
问题原因:不同名但列相同的数据集同时增量导入同一个集市文件夹,但是数据集上有列的数据类型不一致
解决方案:调整数据列类型一致即可。
2.4.2 210000162
错误代码 |
报错内容 |
---|---|
210000162 |
划分数据失败:XX。 |
问题原因:
原因1:join过程中通过link交换到磁盘中导致磁盘空间不足,磁盘空间不足会触发程序去删除一些交换文件,以保证程序正常运行。
解决方案:增大磁盘空间。
原因2:多线程问题
解决方案:提供报错时间段的bi日志,转售后跟踪。
原因3:空指针导致的入集市失败,需要分析的有两段堆栈日志。
解决方案:提供包含报错堆栈的bi.log转售后分析。如果异常堆栈未打印,需要在jvm参数中增加 -XX:-OmitStackTraceInFastThrow ,保证异常栈打印出来。
2.4.3 210000120
错误代码 |
报错内容 |
---|---|
210000120 |
发送MAP任务失败:XX。 |
排查步骤:
1) 单M节点是否有宕机;多M节点下检查其中是否有M节点宕机,发送map任务失败的zb是不是存于宕机的M节点上;
2)检查map任务失败的zb文件在监控系统-集市文件夹信息统计,找到对应的集市文件夹,查看具体的zb文件是否存在,并且分布机IP是正常的。
3) 以上检查后都正常,那么就需要提供bi.log查看map任务失败后的堆栈,才能定位到具体是由于什么问题导致的map任务失败。
处理:需要提供日志中的报错堆栈才能定位具体问题。
2.5 系统管理
2.5.1 190000206
错误代码 |
报错内容 |
---|---|
190000206 |
写入文件失败,具体原因:XXXX。 |
数据库系统同步时出现此报错,具体原因报packet for query is too large时:
原因:数据库默认的max_allowed_packet属性值比实际上传时候的数据要小,
解决方法:需要去数据库里面设置max_allowed_packet。
示例:set global max_allowed_packet = 10*1024*1024*10。
2.5.2 190000080
错误代码 |
报错内容 |
---|---|
190000080 |
许可证不合法。 |
License不合法时,排查以下:
1)排查license中是否带有\,如果有去掉\后重试
2)查询mac,前往官网的授权验证页面校验license是否合法以及合法时间。
3)校验安装包的合法性:安装包是否正常,版本是否匹配。