【问题标题】:List of Cassandra error codesCassandra 错误代码列表
【发布时间】:2018-06-26 12:34:51
【问题描述】:

在使用 datastax node.js 驱动程序时,我收到了http://docs.datastax.com/en/developer/nodejs-driver-dse/1.4/api/module.errors/class.ResponseError/ 下记录的异常代码。

但是,我找不到有关所有可用异常代码的任何文档。有人知道在哪里可以找到吗?

【问题讨论】:

  • 在错误模块中查看 Node.js 驱动程序可能产生的错误列表
  • A 在运行时检查 responseErrorCodes 时发现了它。谢谢

标签: node.js cassandra datastax cql


【解决方案1】:

我不确定代码值是否在任何地方专门记录,但您始终可以查看您正在使用的 Cassandra 版本的 ExceptionCode 源代码。

在中继上,这会将错误列为:

SERVER_ERROR    (0x0000),
PROTOCOL_ERROR  (0x000A),

BAD_CREDENTIALS (0x0100),

// 1xx: problem during request execution
UNAVAILABLE         (0x1000),
OVERLOADED          (0x1001),
IS_BOOTSTRAPPING    (0x1002),
TRUNCATE_ERROR      (0x1003),
WRITE_TIMEOUT       (0x1100),
READ_TIMEOUT        (0x1200),
READ_FAILURE        (0x1300),
FUNCTION_FAILURE    (0x1400),
WRITE_FAILURE       (0x1500),
CDC_WRITE_FAILURE   (0x1600),

// 2xx: problem validating the request
SYNTAX_ERROR    (0x2000),
UNAUTHORIZED    (0x2100),
INVALID         (0x2200),
CONFIG_ERROR    (0x2300),
ALREADY_EXISTS  (0x2400),
UNPREPARED      (0x2500);

【讨论】:

  • 我正在运行 Cassandra 的 3.11.1 版本并获得例如9216 在尝试再次创建现有密钥空间时显示消息“无法添加现有密钥空间”。似乎不在上面的列表中。
  • 您得到的错误来自 DSE Node.js 驱动程序,而不是 Cassandra 核心
【解决方案2】:

驱动程序中没有正确记录响应错误代码,我已经为它创建了一个票证:https://datastax-oss.atlassian.net/browse/NODEJS-418

与此同时,您应该在 IDE(VS Code / WebStorm)和/或look at the code

const responseErrorCodes = {
  serverError:            0x0000,
  protocolError:          0x000A,
  badCredentials:         0x0100,
  unavailableException:   0x1000,
  overloaded:             0x1001,
  isBootstrapping:        0x1002,
  truncateError:          0x1003,
  writeTimeout:           0x1100,
  readTimeout:            0x1200,
  readFailure:            0x1300,
  functionFailure:        0x1400,
  writeFailure:           0x1500,
  syntaxError:            0x2000,
  unauthorized:           0x2100,
  invalid:                0x2200,
  configError:            0x2300,
  alreadyExists:          0x2400,
  unprepared:             0x2500
};

要检查某个错误代码,您应该使用以下代码:

if (err.code === cassandra.types.responseErrorCodes.syntaxError) {
  // ...
}

【讨论】:

  • 是的,没错。谢谢!
猜你喜欢
  • 2014-08-06
  • 2017-01-28
  • 2014-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-02
  • 2012-10-14
  • 1970-01-01
相关资源
最近更新 更多