ORA-41665: conflicting values for duration, consumption, and autocommit policies

文档解释

ORA-41665: conflicting values for duration, consumption, and autocommit policies

Cause: An attempt was made to use an EXCLUSIVE consumption policy with no autocommit and a duration other than TRANSACTION or SESSION.

Action: Modify the rule class properties and try again. Autocommit should be set to YES when the consumption policy is EXCLUSIVE.

错误ORA-41665指出存在矛盾的Duration,Consumption和AutoCommit策略。

官方解释

常见案例

1. 用户在同一个事务中,通过多次调用set_transaction_duration来分别设置不同的Duration值,这将会引发ORA-41665。

2. 用户在同一个事务中,既调用set_transaction_duration来设置不同的Duration值,又调用set_transaction_consumption来设置不同的Consumption值,这也会引发ORA-41665。

3. 用户在同一个事务中,通过set_transaction_duration和set_transaction_autocommit来设置不同的Duration和AutoCommit值,这也会引发ORA-41665

一般处理方法及步骤

1. 使用dbms_txn_voting.set_custom_rollback_status函数,创建一个自定义的回滚状态,当发生类似ORA-41665错误时,可以通过此回滚状态来回滚相应的事务。

2. 使用dbms_txn_voting.set_transaction_duration函数,将事务设置为持续型,即由事务级别来管理事务生命周期。

3. 使用dbms_txn_voting.set_transaction_consumption函数,将事务设置为消费型,即由资源级别来管理事务生命周期。

4. 避免同一个事务中出现Duration和AutoCommit,Duration和Consumption不一致的情况,或者将同一个事务中不同操作使用不同的事务来管理。

你可能感兴趣的