Skip to content

异常处理

贺贤懋 edited this page Aug 13, 2014 · 13 revisions

连接和执行异常处理

一、 单库,非事务

  1. 前端连接异常

a)关闭正在执行的后端连接

  1. 后端连接异常

a)关闭该后端连接

b)消息通知前端,执行异常。

  1. 后端业务异常

a)释放该后端连接

b)消息通知前端,执行异常。

二、 单库,事务

  1. 前端连接异常

a)关闭当前正在执行的后端连接

b)回滚并释放执行完成的后端连接

  1. 后端连接异常

a)关闭该后端连接

b)回滚并释放执行完成的后端连接

c)标识当前连接不可继续事务,除非前端主动回滚当前事务。

d)消息通知前端,执行异常。(当前事务不可继续)

  1. 后端业务异常

a)保持该后端连接

b)消息通知前端,执行异常。(当前事务可继续)

三、 多库,非事务

  1. 前端连接异常

a)关闭正在执行的后端连接

b)释放执行完成的后端连接

  1. 后端连接异常

a)关闭该后端连接

b)等待其他后端连接执行结束

c)释放执行完成的后端连接

d)消息通知前端,执行异常。

  1. 后端业务异常

a)等待其他后端连接执行结束

b)释放所有连接

c)消息通知前端,执行异常。

四、 多库,非事务(隐含事务:修改数据的语句在多个分库中执行)

  1. 前端连接异常

a)关闭正在执行的后端连接

b)回滚并释放执行完成的后端连接

  1. 后端连接异常

a)关闭该后端连接

b)等待其他后端连接执行结束

c)回滚并释放执行完成的后端连接

d)消息通知前端,执行异常。

  1. 后端业务异常

a)等待其他后端连接执行结束

b)回滚并释放所有连接

c)消息通知前端,执行异常。

五、 多库,事务

  1. 前端连接异常

a)关闭正在执行的后端连接

b)回滚并释放执行完成的后端连接

  1. 后端连接异常

a)关闭该后端连接

b)等待其他后端连接执行结束

c)回滚并释放执行完成的后端连接

d)标识当前连接不可继续事务,除非前端主动回滚当前事务。

e)消息通知前端,执行异常。(当前事务不可继续)

  1. 后端业务异常

a)等待其他后端连接执行结束

b)回滚并释放所有连接

c)标识当前连接不可继续事务,除非前端主动回滚当前事务。

d)消息通知前端,执行异常。(当前事务不可继续)