问题描述
我们的应用程序得到了一个ORA-25412: 通过调用OCIStmtPrepare禁用事务重播。
Oracle版本: 12.2。
Oracle在RAC模式下运行。
在网上搜索后,我们发现以下解释:
This call(OCIStmtPrepare) does not support Application Continuity and if this call is used, it returns the following error: Error - ORA-25412: transaction replay disabled by call to OCIStmtPrepare. Use the OCIStmtPrepare2() call to support the use of Application Continuity in an HA infrastructure.
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/lnoci/deprecated-oci-functions.html#GUID-9AAA282E-CCF4-4D93-9C04-4351E61E693F
我们试图用12.2的oracle客户端SDK重新编译我们的应用程序,但我们发现客户端在调试后仍然调用OCIStmtPrepare。
当我们在应用程序中使用proc * C时,我们不知道Oracle如何决定将使用哪个版本的OCIStmtPrepare,以及如何强制控制Oracle客户端调用OCIStmtPrepare2来避免TAF有效时的问题。
有什么配置可以解决这个问题吗?或者我们只能用OCI重新实现我们的Oracle操作模块?
Oracle版本: 12.2。
Oracle在RAC模式下运行。
在网上搜索后,我们发现以下解释:
This call(OCIStmtPrepare) does not support Application Continuity and if this call is used, it returns the following error: Error - ORA-25412: transaction replay disabled by call to OCIStmtPrepare. Use the OCIStmtPrepare2() call to support the use of Application Continuity in an HA infrastructure.
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/lnoci/deprecated-oci-functions.html#GUID-9AAA282E-CCF4-4D93-9C04-4351E61E693F
我们试图用12.2的oracle客户端SDK重新编译我们的应用程序,但我们发现客户端在调试后仍然调用OCIStmtPrepare。
当我们在应用程序中使用proc * C时,我们不知道Oracle如何决定将使用哪个版本的OCIStmtPrepare,以及如何强制控制Oracle客户端调用OCIStmtPrepare2来避免TAF有效时的问题。
有什么配置可以解决这个问题吗?或者我们只能用OCI重新实现我们的Oracle操作模块?
专家解答
对OCIStmtPrepare(2) 的调用将在您的应用程序代码中。
因此,您需要更改应用程序以使用正确的功能!
因此,您需要更改应用程序以使用正确的功能!
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




