非常感谢您点击进来!俺家比较富裕,甭管几楼都是沙发,大家随便坐~今天有个问题请教各位:我有一个存储过程,很简单,类似这样: 做事情A 做事情B 做事情C 异常:
记录日志平常呢,如果做事情中途发生异常,会跳到异常处理,记录日志,以便分析问题;但是我发现,当我在这个session正在跑的时候,在客户端强制把session关掉(关闭客户端程序,或者拔掉网线),这时候数据库有两种表现:1、捕获异常,记录日志,从日志里可以看到是通道异常;2、未捕获异常,过程直接终止执行(类似你用PL/SQL调试的时候,按下Break按钮;当然我说的这种情况不是在调试,是C++Builder写的PC客户端程序在调用存储过程)。1这种情况还比较好,是我想要的结果;但是2就非常讨厌了,可能我需要在异常里做现场恢复等等很多事情,但是程序直接中断,整个流程就等于失控了。请问大家,出现2这种情况是怎么回事?我是从数据库配置去解决这个问题,还是从C++ Builder入手呢?谢谢大家!
记录日志平常呢,如果做事情中途发生异常,会跳到异常处理,记录日志,以便分析问题;但是我发现,当我在这个session正在跑的时候,在客户端强制把session关掉(关闭客户端程序,或者拔掉网线),这时候数据库有两种表现:1、捕获异常,记录日志,从日志里可以看到是通道异常;2、未捕获异常,过程直接终止执行(类似你用PL/SQL调试的时候,按下Break按钮;当然我说的这种情况不是在调试,是C++Builder写的PC客户端程序在调用存储过程)。1这种情况还比较好,是我想要的结果;但是2就非常讨厌了,可能我需要在异常里做现场恢复等等很多事情,但是程序直接中断,整个流程就等于失控了。请问大家,出现2这种情况是怎么回事?我是从数据库配置去解决这个问题,还是从C++ Builder入手呢?谢谢大家!
另外数据库方面,写的存储过程,进行ABC处理,这些语句是DDL还是DML,这个有很大的关系。