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

错误码简介

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

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

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

  • 阶段1发生的错误不用做任何处理。
  • 阶段2及之后发生的错误,约定使用消费端协议的某个Escape Code,具体CSB错误码和描述以固定格式体现在消费端错误描述内,如[CSB Error Code] CSB Error Message
  • 阶段3发生的错误,与阶段2相同处理,但是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 AccessKey没有在参数里找到
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调用WebService失败,HTTP请求不正确。
1009 json2ws process error 调用WebService服务失败
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