CSB 提供了错误代码,帮助您定位在使用 CSB 的 SDK 开发时遇到的问题。

错误代码简介

消费端通过 CSB 调用服务时,整个链路上可以分成三个阶段:

  1. 服务消费端应用以消费端协议访问 CSB。
  2. CSB 处理转发服务调用请求。
  3. CSB 以提供端协议访问服务提供端应用。

这三个阶段都可能出错,服务消费端收到错误信息时要能区别是在哪个阶段发生了什么错误,需要考虑如何通过消费端协议定义的错误信息结构来体现。消费端协议定义的错误信息结构多种多样,也可能有各种限制,但是通常都至少会提供错误码和错误描述,而且错误码应该都有保留或者未占用的、代表“其它错误”的编码(下称:逃逸代码 Escape Code)。基于这个前提,可以定义如下约定:

  • 阶段1发生的错误不用做任何处理。
  • 阶段2及之后发生的错误,约定使用消费端协议的某个 Escape Code,具体CSB错误码和描述以固定格式体现在消费端错误描述内,如[CSB Error Code] CSB Error Message
  • 阶段3发生的错误,同上处理,但是 CSB Error Code 也提供 Escape Code 表示这是一个阶段 3 错误,且 CSB Error Message 的格式定义为[提供端协议错误码] 提供端协议错误信息
    说明 CSB 需要了解提供端协议的错误码中哪些表示正常访问,以免将成功的访问当做错误处理。

CSB 错误码列表

其中 800 为 CSB Escape Code

错误代码 错误描述信息 说明
200 SUCCESS 请求处理成功
500 platform error 平台处理错误
501 access permission deny 没有权限访问
502 signature verification failed 验签失败
503 service not registed 服务没有注册
504 api name not found 该服务没有找到
505 access key not found Access Key 没有在参数里找到
506 signature not found 签名没有在参数里面找到
507 required parameter is missing 参数丢失
508 need to access security channel 需要能访问安全通道
509 timestamp not found 时间戳在参数里面没有找到
510 time expired 访问过期
511 invoke timeout 调用 HSF 服务超时
512 write channel error 转发 HSF 协议时,连接通道出错
513 connection has broken 连接已经断开
514 hsf address not found 调用时没有找到 HSF 服务地址
515 hsf process error 调用 HSF 出错
516 hoh process error 级联调用 HSF 出错
517 json2hsf process error HTTP 调用 HSF 失败
518 service metadata is null 发布的 HSF 服务信息为空
519 access permission deny by black list 访问被黑名单拒绝
520 can not found service metadata 调用是没有从缓存中找到 HSF 服务的元信息
521 access permission deny, ip is not in white list 访问者的 IP 没有加入白名单
522 this invoke protocol not open 该服务没有开放成此协议
523 access permission deny due to strict accesskey and ip white list 此凭证设置了白名单,需要访问者 IP 加入到白名单里
524 exceed access limition, try later 触发限流
800 service server error 服务调用出错
801 connect to service server error 连接不到服务提供者
802 serivce has offline from server 此服务已经下线
803 serivce has been stopped 服务已经在 CSB 上关闭了
99 hsf escap code HSF 逃逸错误代码
900 Unknown code 未知错误代码
1001 bad soap request SOAP 消息不正确
1002 bad response 返回结果不正确
1003 bad hsf subscribe info 错误的 HSF 订阅信息
1004 hsf invoke exception HSF 调用异常
1005 bad input soap parsing 输入 SOAP 消息解析失败
1006 bad output soap parsing 输出的 SOAP 消息解析失败
1007 bad invoke restful provider HTTP 服务 Provider 异常
1008 json2ws process error, bad input restufl/json request HTTP 调用 WS 失败,HTTP 请求不正确
1009 json2ws process error 调用 WS 服务失败
10001 process response result data filter failed 结果过滤处理结果失败

HSF 错误代码

错误代码 错误描述信息 说明
20 OK HSF 调用成功
30 client timeout 调用端超时
31 server timeout 服务端超时
40 bad request 请求不合法
50 bad response 返回结果不合法
60 service not found 服务没有找到
70 service error 服务错误
79 connection has broken 连接已经断开
80 server error 服务提供端错误
81 Thread pool is busy 线程池繁忙
82 Communication error 通信异常
84 request is limited 请求被限流
88 server will close soon 服务很快就要关闭
90 client error 消费端错误
91 Unknown error 未知错误

消费端协议 Escape Code 列表

消费端协议 Escape Code
HTTP类 500
HSF 99

示例

消费端应用以HSF协议通过CSB访问一个后端HSF服务,三个阶段的错误示例如下:

第一阶段错误 CSB 的 HSF 协议处理器发现消费端发出的 HSF 请求格式不正确,以 HSF 错误 40 bad request 直接回复消费端。
第二阶段错误 CSB 在处理消费端发出的 HSF 请求时,发现所访问的 API 并不存在,以 HSF 错误 99 [504]所访问的服务API(taobao.unknown)在实例(instance0733)上不存在 回复消费端。其中 99 为消费端协议 HSF 的 Escape Code
第三阶段错误 CSB 处理消费端发出的 HSF 请求,在访问后端服务提供者时,HSF 服务框架报错 60 service not found,CSB 以HSF 错误 99 [800][60] service not found 回复消费端。其中 99 为消费端协议的 Escape Code800 为 CSB 的 Escape Code
第三阶段错误 CSB 处理消费端发出的 HSF 请求,在访问后端服务提供者时,HSF 服务提供应用出错,因为 HSF 框架不支持返回具体应用逻辑错误信息,仅仅报错为 80 server error,CSB 以 HSF错误 99 [800][80] server error 回复消费端。这里具体的应用错误只能在应用服务提供端看到,如果后端是其它比较开放的协议框架(用 X 代替),具体的应用错误信息可能可以报给 CSB,这样 CSB 才能返回更具体的错误信息 99 [800][X-Code] X-Message