跳至主要內容

...大约 5 分钟

状态码

IoTDB 引入了状态码这一概念。例如,因为 IoTDB 需要在写入数据之前首先注册时间序列,一种可能的解决方案是:

try {
    writeData();
} catch (SQLException e) {
  // the most case is that the time series does not exist
  if (e.getMessage().contains("exist")) {
      //However, using the content of the error message is not so efficient
      registerTimeSeries();
      //write data once again
      writeData();
  }
}

利用状态码,我们就可以不必写诸如if (e.getErrorMessage().contains("exist"))的代码,
只需要使用e.getStatusType().getCode() == TSStatusCode.TIME_SERIES_NOT_EXIST_ERROR.getStatusCode()

这里是状态码和相对应信息的列表:

状态码状态类型状态信息
200SUCCESS_STATUS成功状态
201INCOMPATIBLE_VERSION版本不兼容
202CONFIGURATION_ERROR配置文件有错误项
203START_UP_ERROR启动错误
204SHUT_DOWN_ERROR关机错误
300UNSUPPORTED_OPERATION不支持的操作
301EXECUTE_STATEMENT_ERROR执行语句错误
302MULTIPLE_ERROR多行语句执行错误
303ILLEGAL_PARAMETER参数错误
304OVERLAP_WITH_EXISTING_TASK与正在执行的其他操作冲突
305INTERNAL_SERVER_ERROR服务器内部错误
306DISPATCH_ERROR分发错误
400REDIRECTION_RECOMMEND推荐客户端重定向
500DATABASE_NOT_EXIST数据库不存在
501DATABASE_ALREADY_EXISTS数据库已存在
502SERIES_OVERFLOW序列数量超过阈值
503TIMESERIES_ALREADY_EXIST时间序列已存在
504TIMESERIES_IN_BLACK_LIST时间序列正在删除
505ALIAS_ALREADY_EXIST路径别名已经存在
506PATH_ALREADY_EXIST路径已经存在
507METADATA_ERROR处理元数据错误
508PATH_NOT_EXIST路径不存在
509ILLEGAL_PATH路径不合法
510CREATE_TEMPLATE_ERROR创建物理量模板失败
511DUPLICATED_TEMPLATE元数据模板重复
512UNDEFINED_TEMPLATE元数据模板未定义
513TEMPLATE_NOT_SET元数据模板未设置
514DIFFERENT_TEMPLATE元数据模板不一致
515TEMPLATE_IS_IN_USE元数据模板正在使用
516TEMPLATE_INCOMPATIBLE元数据模板不兼容
517SEGMENT_NOT_FOUND未找到 Segment
518PAGE_OUT_OF_SPACESchemaFile 中 Page 空间不够
519RECORD_DUPLICATED记录重复
520SEGMENT_OUT_OF_SPACESchemaFile 中 segment 空间不够
521SCHEMA_FILE_NOT_EXISTSSchemaFile 不存在
522OVERSIZE_RECORD记录大小超过元数据文件页面大小
523SCHEMA_FILE_REDO_LOG_BROKENSchemaFile 的 redo 日志损坏
524TEMPLATE_NOT_ACTIVATED元数据模板未激活
600SYSTEM_READ_ONLYIoTDB 系统只读
601STORAGE_ENGINE_ERROR存储引擎相关错误
602STORAGE_ENGINE_NOT_READY存储引擎还在恢复中,还不能接受读写操作
603DATAREGION_PROCESS_ERRORDataRegion 相关错误
604TSFILE_PROCESSOR_ERRORTsFile 处理器相关错误
605WRITE_PROCESS_ERROR写入相关错误
606WRITE_PROCESS_REJECT写入拒绝错误
607OUT_OF_TTL插入时间少于 TTL 时间边界
608COMPACTION_ERROR合并错误
609ALIGNED_TIMESERIES_ERROR对齐时间序列错误
610WAL_ERRORWAL 异常
611DISK_SPACE_INSUFFICIENT磁盘空间不足
700SQL_PARSE_ERRORSQL 语句分析错误
701SEMANTIC_ERRORSQL 语义错误
702GENERATE_TIME_ZONE_ERROR生成时区错误
703SET_TIME_ZONE_ERROR设置时区错误
704QUERY_NOT_ALLOWED查询语句不允许
705LOGICAL_OPERATOR_ERROR逻辑符相关错误
706LOGICAL_OPTIMIZE_ERROR逻辑优化相关错误
707UNSUPPORTED_FILL_TYPE不支持的填充类型
708QUERY_PROCESS_ERROR查询处理相关错误
709MPP_MEMORY_NOT_ENOUGHMPP 框架中任务执行内存不足
710CLOSE_OPERATION_ERROR关闭操作错误
711TSBLOCK_SERIALIZE_ERRORTsBlock 序列化错误
712INTERNAL_REQUEST_TIME_OUTMPP 操作超时
713INTERNAL_REQUEST_RETRY_ERROR内部操作重试失败
714NO_SUCH_QUERY查询不存在
715QUERY_WAS_KILLED查询执行时被终止
800UNINITIALIZED_AUTH_ERROR授权模块未初始化
801WRONG_LOGIN_PASSWORD用户名或密码错误
802NOT_LOGIN没有登录
803NO_PERMISSION没有操作权限
804USER_NOT_EXIST用户不存在
805USER_ALREADY_EXIST用户已存在
806USER_ALREADY_HAS_ROLE用户拥有对应角色
807USER_NOT_HAS_ROLE用户未拥有对应角色
808ROLE_NOT_EXIST角色不存在
809ROLE_ALREADY_EXIST角色已存在
810ALREADY_HAS_PRIVILEGE已拥有对应权限
811NOT_HAS_PRIVILEGE未拥有对应权限
812CLEAR_PERMISSION_CACHE_ERROR清空权限缓存失败
813UNKNOWN_AUTH_PRIVILEGE未知权限
814UNSUPPORTED_AUTH_OPERATION不支持的权限操作
815AUTH_IO_EXCEPTION权限模块IO异常
900MIGRATE_REGION_ERRORRegion 迁移失败
901CREATE_REGION_ERROR创建 region 失败
902DELETE_REGION_ERROR删除 region 失败
903PARTITION_CACHE_UPDATE_ERROR更新分区缓存失败
904CONSENSUS_NOT_INITIALIZED共识层未初始化,不能提供服务
905REGION_LEADER_CHANGE_ERRORRegion leader 迁移失败
906NO_AVAILABLE_REGION_GROUP无法找到可用的 Region 副本组
907LACK_DATA_PARTITION_ALLOCATION调用创建数据分区方法的返回结果里缺少信息
1000DATANODE_ALREADY_REGISTEREDDataNode 在集群中已经注册
1001NO_ENOUGH_DATANODEDataNode 数量不足,无法移除节点或创建副本
1002ADD_CONFIGNODE_ERROR新增 ConfigNode 失败
1003REMOVE_CONFIGNODE_ERROR移除 ConfigNode 失败
1004DATANODE_NOT_EXIST此 DataNode 不存在
1005DATANODE_STOP_ERRORDataNode 关闭失败
1006REMOVE_DATANODE_ERROR移除 datanode 失败
1007REGISTER_DATANODE_WITH_WRONG_ID注册的 DataNode 中有错误的注册id
1008CAN_NOT_CONNECT_DATANODE连接 DataNode 失败
1100LOAD_FILE_ERROR加载文件错误
1101LOAD_PIECE_OF_TSFILE_ERROR加载 TsFile 片段异常
1102DESERIALIZE_PIECE_OF_TSFILE_ERROR反序列化 TsFile 片段异常
1103SYNC_CONNECTION_ERROR同步连接错误
1104SYNC_FILE_REDIRECTION_ERROR同步文件时重定向异常
1105SYNC_FILE_ERROR同步文件异常
1106CREATE_PIPE_SINK_ERROR创建 PIPE Sink 失败
1107PIPE_ERRORPIPE 异常
1108PIPESERVER_ERRORPIPE server 异常
1109VERIFY_METADATA_ERROR校验元数据失败
1200UDF_LOAD_CLASS_ERRORUDF 加载类异常
1201UDF_DOWNLOAD_ERROR无法从 ConfigNode 下载 UDF
1202CREATE_UDF_ON_DATANODE_ERROR在 DataNode 创建 UDF 失败
1203DROP_UDF_ON_DATANODE_ERROR在 DataNode 卸载 UDF 失败
1300CREATE_TRIGGER_ERRORConfigNode 创建 Trigger 失败
1301DROP_TRIGGER_ERRORConfigNode 删除 Trigger 失败
1302TRIGGER_FIRE_ERROR触发器执行错误
1303TRIGGER_LOAD_CLASS_ERROR触发器加载类异常
1304TRIGGER_DOWNLOAD_ERROR从 ConfigNode 下载触发器异常
1305CREATE_TRIGGER_INSTANCE_ERROR创建触发器实例异常
1306ACTIVE_TRIGGER_INSTANCE_ERROR激活触发器实例异常
1307DROP_TRIGGER_INSTANCE_ERROR删除触发器实例异常
1308UPDATE_TRIGGER_LOCATION_ERROR更新有状态的触发器所在 DataNode 异常
1400NO_SUCH_CQCQ 任务不存在
1401CQ_ALREADY_ACTIVECQ 任务已激活
1402CQ_AlREADY_EXISTCQ 任务已存在
1403CQ_UPDATE_LAST_EXEC_TIME_ERRORCQ 更新上一次执行时间失败

在最新版本中,我们重构了 IoTDB 的异常类。通过将错误信息统一提取到异常类中,并为所有异常添加不同的错误代码,从而当捕获到异常并引发更高级别的异常时,错误代码将保留并传递,以便用户了解详细的错误原因。
除此之外,我们添加了一个基础异常类“ProcessException”,由所有异常扩展。

Copyright © 2024 The Apache Software Foundation.
Apache IoTDB, IoTDB, Apache, the Apache feather logo, and the Apache IoTDB project logo are either registered trademarks or trademarks of The Apache Software Foundation in all countries

Have a question? Connect with us on QQ, WeChat, or Slack. Join the community now.