本节提供有关 NdbError 数据结构的信息,该结构包含有关错误的状态和其他信息,包括错误代码、分类和消息。
- 描述
-
一个
NdbError由六部分组成,如下所示,其中一部分已弃用-
错误状态:这描述了错误对应用程序的影响,并反映了应用程序在遇到错误时应该采取的操作。
错误状态由
Status类型的值描述。请参见 NdbError::Status,了解可能的Status值以及如何解释它们。 -
错误分类由
Classification类型的值描述。请参见 NdbError::Classification,了解可能的分类及其解释。在 第 2.4.4 节,“NDB 错误分类” 中提供了更多信息。 -
错误代码:这是一个 NDB API 内部错误代码,它唯一标识错误。
重要提示不建议编写依赖于特定错误代码的应用程序程序。相反,应用程序应该检查错误状态和分类。还可以通过检查错误消息和(如果可用)错误详细信息消息来获取有关错误的更多信息。但是,与错误代码一样,这些错误消息和错误详细信息消息可能会发生变化。
按分类列出的当前错误代码列表在 第 2.4.2 节,“NDB 错误代码:按类型” 中提供。此列表会随着新的 NDB Cluster 版本而更新。您还可以检查 NDB Cluster 源代码中的
storage/ndb/src/ndbapi/ndberror.c文件。 MySQL 错误代码:这是对应的 MySQL 服务器错误代码。MySQL 错误代码在本文件中未讨论;有关这些错误代码的信息,请参见 MySQL 手册中的 服务器错误消息参考。
-
错误详细信息:这通常可以提供有关错误的更多信息(在错误消息中找不到),具体取决于遇到错误的环境。但是,并非所有情况下都可用。
如果未指定,则错误详细信息消息为
NULL。注意此属性已弃用,并计划最终删除。为了获取错误详细信息,您应该改为使用
Ndb::getNdbErrorDetail()方法。(Bug #48851)
特定的 NDB API 错误代码、消息和详细信息消息可能会在未经通知的情况下发生更改。
-
- 定义
-
NdbError结构包含以下成员,其类型如下所示Status status:错误状态。Classification classification:错误类型(分类)。int code:NDB API 错误代码。int mysql_code:MySQL 错误代码。const char* message:错误消息。-
char* details:错误详细信息消息。details已弃用,并计划最终删除。您应该改为使用Ndb::getNdbErrorDetail()方法。(Bug #48851)
- 类型
-
NdbError定义了此处列出的两种数据类型Classification:错误的类型或错误所属的逻辑组。Status:错误状态。
本节提供有关 Classification 数据类型的信息。
- 描述
此类型描述了错误的类型,或错误所属的逻辑组。
- 枚举值
-
下表显示了可能的价值观以及描述
表 2.40 NdbError Classification 数据类型值及其描述
名称 描述 NoError表示成功(未发生错误) ApplicationError应用程序程序中发生了错误 NoDataFound读取操作由于一个或多个记录丢失而失败。 ConstraintViolation发生了约束违例,例如尝试插入一个元组,该元组的键值在目标表中已存在。 SchemaError在尝试创建或使用表时发生了错误。 InsufficientSpace数据或索引的内存不足。 TemporaryResourceError通常在活动事务过多时遇到此类错误。 NodeRecoveryError这是一个临时故障,可能是由正在进行的节点恢复引起的,例如,应用程序和 NDB之间发送的信息丢失,或者发生了分布式更改。OverloadError这种类型的错误通常是由于日志文件空间不足造成的。 TimeoutExpired超时,通常由死锁引起。 UnknownResultError不知道事务是否已提交。 InternalErrorNDB本身发生了严重错误。FunctionNotImplemented应用程序尝试使用尚未实现的功能。 UnknownErrorCode当 NDB错误处理程序无法确定要报告的正确错误代码时,就会出现这种情况。NodeShutdown这是由节点关闭引起的。 SchemaObjectExists应用程序尝试创建一个已存在的模式对象。 InternalTemporary请求发送到主节点以外的节点。 有关特定错误条件的更多信息,请参见 第 2.4.2 节,“NDB 错误代码:按类型”,以及 第 2.4.4 节,“NDB 错误分类”。
本节提供有关 Status 数据类型的信息。
- 描述
此类型用于描述错误的状态。
- 枚举值
-
下表显示了可能的价值观以及描述
表 2.41 NdbError Status 数据类型值及其描述
名称 描述 Success没有发生错误 TemporaryError一个临时且通常可恢复的错误;应用程序应重试导致错误的操作 PermanentError永久性错误;不可恢复 UnknownResult操作的结果或状态未知 有关某些错误条件的特定信息,请参阅第 2.4.4 节,“NDB 错误分类”。