我有一个分散的交易,可以说3个人。这些内部事务之一因ORA-02049失败。阴险的是,外部事务和其他事务都很好,因为事务管理器首先从所有3个事务中获得了成功。一个事务因ORA-02049失败而被正确回滚。但是总的来说,系统处于不一致状态,因为系统希望所有事务都通过。
数据库不在我们的控制之下,我们必须使用它。我们的客户使用一些愚蠢的非Oracle复制软件,该软件首先负责错误。
在我看来,期望我们以自动处理此类错误情况的方式来设计系统是不合理的!您将如何回应这样的请求?
如果事务管理器表示将提交该提交,而该提交实际上会通过,这是我们的错吗?
您将如何处理这样的问题-我们的整个软件都期望数据库能够完美运行-这是一个错误的假设吗?
最佳答案
我希望客户向第三方软件供应商提出错误。我会向客户说明问题是由他们的系统中的错误引起的。然后,我将表明他们可以选择,要么等待第三方的错误修复,要么支付变更请求的费用,以便您的软件对它进行修正。
当然,这取决于您和公司的关系等,如果您实际让他们为CR付费,但是请明确这是额外的工作,而不是您的错。