异常处理
本章节列出了 Ignite 3 可能抛出的基本异常,并提供了处理这些异常的基本说明。
1.查找异常堆栈信息
当抛出异常时,Ignite 3 会提供该异常的UUID,但不会提供完整的异常堆栈,完整的异常堆栈,需要在集群日志中检索。
2.常规异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-CMN-1 | 操作因节点离线而停止。 | 检查集群的在线状态,然后重试。 |
IGN-CMN-2 | 操作因组件未启动而停止。 | 等待节点完成启动过程并启动所有组件。 |
IGN-CMN-3 | 操作因非法或格式错误的参数而失败。 | 检查异常完整信息,具体操作根据该操作实际情况而定。 |
IGN-CMN-4 | 操作因 SSL 配置错误而失败。 | 检查异常完整信息,然后更新配置。 |
IGN-CMN-5 | 操作因节点离开集群而停止。 | 等待节点返回集群,或者使用其他节点。 |
IGN-CMN-6 | 操作因游标关闭而失败。 | 检查异常完整信息,找出操作前光标关闭的原因。 |
IGN-CMN-7 | 操作因资源关闭而失败。 | 检查异常完整信息,找出操作前资源关闭的原因。 |
IGN-CMN-8 | 操作因对象序列化或反序列化失败而失败。 | |
IGN-CMN-9 | 操作无法返回 null 值。 | |
IGN-CMN-65535 | 发生内部错误。 | 这是一个意外的内部错误,通常表示存在 Bug。 |
3.表操作异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-TBL-1 | 表已存在。 | 确认集群中没有同名的表。 |
IGN-TBL-2 | 表不存在。 | 检查表名,必要时创建该表。 |
IGN-TBL-3 | 列已存在。 | 确认表中不存在同名的列。 |
IGN-TBL-4 | 列不存在。 | 检查列名,必要时创建该列。 |
IGN-TBL-5 | 模式版本不匹配。 | 确认使用表所属的模式。 |
IGN-TBL-6 | 分区类型不受支持。 | 使用支持的分区类型。 |
4.客户端异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-CLIENT-1 | 连接失败。通常是由于地址不正确或连接超时引起。 | 检查异常完整信息,如果是超时,要保证客户端和服务端配置中的超时允许长时间运行的请求。 |
IGN-CLIENT-2 | 连接协议出现问题,此错误可能是由于使用不兼容的客户端版本或数据损坏造成的。 | 检查异常完整信息,如果发生数据损坏,请恢复数据。如果客户端版本不兼容,请使用正确的客户端版本。 |
IGN-CLIENT-3 | 协议版本不支持特定功能,通常是由于客户端和服务端版本不兼容造成的。 | 更新客户端或服务端到更新的版本,或者不使用不兼容的特性。 |
IGN-CLIENT-4 | 无法通过 ID 找到表。 | 检查表 ID 是否正确。 |
IGN-CLIENT-5 | 客户端配置错误。 | 检查异常完整信息,然后修复客户端配置。 |
IGN-CLIENT-6 | 群集 ID 不匹配,此错误可能是由于客户端连接到多个不同的集群造成的。 | 检查客户端配置,确保所有端点都属于同一个集群。 |
IGN-CLIENT-7 | 客户端 SSL 配置无效。 | 检查异常完整信息,确认 SSL 配置与服务端配置匹配。 |
IGN-CLIENT-8 | 客户端握手消息错误,此错误通常是由于客户端尝试连接到错误的端点(例如 REST)或非 Ignite 进程尝试连接到 Ignite 端点造成的。 | 检查异常完整信息,如果问题出在客户端,请检查并修复客户端配置。如果第三方客户端正在尝试连接,请检查它是什么并修复配置。 |
5.SQL异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-SQL-1 | 查询不打算返回任何行(例如 DML 或 DDL 查询)时抛出异常。 | 将请求更改为不期望结果。 |
IGN-SQL-2 | 指定的模式不存在时抛出异常。 | 确认使用已有的模式名。 |
IGN-SQL-3 | SQL 语句解析错误。此错误通常是由于 SQL 语句字符串不符合语法规则造成的。 | 检查异常完整信息,然后修复 SQL 语句。 |
IGN-SQL-4 | SQL 语句验证错误。虽然语句语法正确,但语义存在问题。例如,这可能发生在语句引用不存在的关系或描述不允许的操作时。 | 检查异常完整信息,然后修复 SQL 语句。 |
IGN-SQL-5 | 违反约束错误,例如主键冲突或非空约束。 | 检查异常完整信息,然后修复 SQL 语句。 |
IGN-SQL-6 | 查询被取消,通常是由于超时、管理员操作或取消请求造成的。 | 检查异常完整信息,然后重试。 |
IGN-SQL-7 | 运行时错误,由 SQL 语句本身编写错误引起,此类错误发生在语句执行过程中,例如数值溢出或类型转换错误。 | 检查异常完整信息,然后修复 SQL 语句。 |
IGN-SQL-8 | SQL 引擎无法将查询映射到当前集群拓扑。这可能是由于各种原因引起的,但最有可能是因为持有该系统视图或表分区的所有节点离线造成的。 | 检查异常完整信息,然后集群稳定后重试。 |
IGN-SQL-9 | 在事务内禁止执行事务控制语句。 | 不要在事务中使用事务控制语句,例如 BEGIN TRANSACTION 或 COMMIT ,包括禁用自动提交模式的JDBC。 |
6.索引异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-IDX-1 | 索引不存在。 | 确认索引存在。 |
IGN-IDX-2 | 索引已存在。 | 创建索引时确认索引不存在。 |
7.事务异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-TX-1 | 事务状态存储的默认错误。 | |
IGN-TX-2 | 事务状态存储已停止。 | |
IGN-TX-3 | 事务状态转换时出现意外错误。 | |
IGN-TX-4 | 由于冲突而无法获取锁。 | |
IGN-TX-5 | 由于超时而无法获取锁。 | |
IGN-TX-6 | 提交事务失败。 | |
IGN-TX-7 | 回滚事务失败。 | |
IGN-TX-8 | 将读写操作放入只读事务导致失败。 | |
IGN-TX-9 | 事务状态存储再平衡错误。 | |
IGN-TX-10 | 创建时间戳早于表中可用数据的只读事务失败。 | |
IGN-TX-11 | 由于不兼容的模式更改导致失败。 | |
IGN-TX-12 | 由于主副本过期导致失败。 | |
IGN-TX-13 | 事务已完成。 | |
IGN-TX-14 | 由于已完成事务的过时操作而失败。 | |
IGN-TX-15 | 由于缓存操作与表事务或相反操作相互关联而导致失败。 |
8.复制异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-REP-1 | 默认复制错误。 | |
IGN-REP-2 | 具有相同标识符的副本已存在。 | |
IGN-REP-3 | 复制过程中发生超时。 | |
IGN-REP-4 | 复制级别试图处理不受支持的请求。 | |
IGN-REP-5 | 副本未准备好处理请求。 | |
IGN-REP-6 | 副本不是当前主副本。 | |
IGN-REP-7 | 无法关闭游标。 | |
IGN-REP-8 | 副本正在停止。 | |
IGN-REP-9 | 复制安全时间重新排序。 |
9.存储异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-STORAGE-1 | 从故障中恢复时,出现了集群元数据中的索引状态不一致。 | 等待索引重建自动完成。 |
IGN-STORAGE-2 | 故障导致持久化存储中的数据损坏。 | 从备份中恢复数据或引入新节点替代损坏的节点(如果复制因子过低,这可能会导致数据丢失)。 |
10.分布区异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-DISTRZONES-1 | 分布区不存在。 | 检查使用的分布区名,很可能不正确。 |
11.网络异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-NETWORK-1 | 指定 ID 的节点不在物理拓扑中。 | 检查错误消息和节点 ID ,修正不正确的节点 ID ,如果节点离线,确认原因并恢复该节点。 |
IGN-NETWORK-2 | 端口已被占用。 | Ignite可能尝试绑定被其他进程占用的端口,更改端口或释放端口,然后重启节点。 |
IGN-NETWORK-5 | 接收方节点已离开物理拓扑。 | 检查错误消息,节点不可用,需要恢复该节点。 |
IGN-NETWORK-6 | 无法解析地址,操作中指定的 IP 地址可能在本地不可用。 | 调整节点配置以使地址可用,或使用其他 IP 地址。 |
12.节点配置错误
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-NODECFG-1 | 无法读取配置。 | 确认节点有权限访问该配置文件。 |
IGN-NODECFG-2 | 无法创建配置文件。 | 确认节点对配置文件夹有写入权限。 |
IGN-NODECFG-3 | 无法写入配置。 | 确认节点对配置文件夹有写入权限。 |
IGN-NODECFG-4 | 无法解析配置。 | 确认配置文件正确。 |
13.代码部署异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-CODEDEPLOY-1 | 尝试访问不存在的部署单元。 | 确认指定了正确的部署单元。 |
IGN-CODEDEPLOY-2 | 重复的部署单元。 | 确认部署单元是唯一的,更新部署单元名或版本。 |
IGN-CODEDEPLOY-3 | 部署单元内容读取错误。 | 检查异常完整信息。 |
IGN-CODEDEPLOY-4 | 部署单元不可用。 | 检查异常完整信息。 |
14.认证异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-AUTHENTICATION-1 | 不支持的认证类型导致的认证错误。 | 检查客户端配置,使用支持的认证类型。 |
IGN-AUTHENTICATION-2 | 因为凭据无效导致的认证错误。 | 检查用户凭据,确认正确。 |
IGN-AUTHENTICATION-3 | 因为找不到基本认证程序导致的认证错误。 | 配置基本认证程序。 |
15.计算异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-COMPUTE-1 | 类路径错误。 | 检查异常完整信息,修复类路径错误。 |
IGN-COMPUTE-2 | 类加载器错误。 | 可能由 Ignite 内部错误引起。 |
IGN-COMPUTE-3 | 初始化作业类失败。 | 检查异常完整信息。 |
IGN-COMPUTE-4 | 执行队列溢出。 | 增加 compute.queueMaxSize 配置参数,以允许更大的队列。 |
IGN-COMPUTE-5 | 作业状态转换错误。 | 重试操作或检查作业状态。 |
IGN-COMPUTE-6 | 取消作业失败。 | 检查异常完整信息。 |
IGN-COMPUTE-7 | 作业结果不存在。 | 检查指定的作业 ID 是否正确。 |
IGN-COMPUTE-8 | 无法获取作业状态。 | 确认指定的作业 ID 存在。如果是,检查异常完整信息。 |
IGN-COMPUTE-9 | 作业失败。 | 检查异常完整信息。 |
IGN-COMPUTE-10 | 无法为并置执行解析主副本。 | 检查异常完整信息。 |
IGN-COMPUTE-11 | 无法更改作业优先级。 | 检查异常完整信息。 |
IGN-COMPUTE-12 | 指定的节点不存在。 | 检查指定的节点 ID 是否正确以及确认集群中存在该节点。 |
IGN-COMPUTE-13 | 无法获取作业所有者。 | 检查异常完整信息,确认作业所有者是正确的。 |
16.目录异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-CATALOG-1 | 目录的命令未通过验证。 | 检查异常完整信息。通常这可能是由于不正确的DDL查询(与IGN-SQL-4 相同)或内部Ignite错误造成的。 |
17.关键线程异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-WORKERS-1 | 关键线程长时间未更新其心跳,通常这意味着该节点被阻塞或者运行缓慢。 | 重启该节点。 |
IGN-WORKERS-2 | 关键线程操作超时。 | 重启该节点。 |
18.故障恢复异常
异常代码 | 描述 | 建议操作 |
---|---|---|
IGN-RECOVERY-1 | 分区 ID 不在有效范围内。 | 检查异常完整信息,确认分区 ID 是否正确。 |
IGN-RECOVERY-2 | 节点未找到。 | 检查异常完整信息,确认节点 ID 是否正确。 |
IGN-RECOVERY-3 | 恢复分区状态失败。 | 重试操作,如果失败,检查异常完整信息。 |
IGN-RECOVERY-4 | 集群负载过高。 | 当集群负载降低时重试。 |
18624049226