CSB提供了错误码,帮助您定位在使用CSB的SDK时遇到的问题。
错误码简介
消费端通过CSB调用服务时,整个链路上可以分成三个阶段:
- 服务消费端应用以消费端协议访问CSB。
- CSB处理转发服务调用请求。
- 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 Code,800为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。 |