从Oracle12c升级到Oracle19c时OracleConnection.ClearPool中的问题

问题描述

我们正在将 Oracle12c升级到Oracle 19c 。这样做时,我们在清除连接池时会遇到问题。

下面是客户端dll版本( Oracle.DataAccess.dll

  • 12分-4.122.1.0
  • 19c-4.122.19.1

请参阅下面的代码片段,相同的代码正在清除与12c oracle客户端dll的连接池,但不适用于19c oracle客户端。尝试使用reflactor调试dll,发现这两个版本之间的ClearPool方法的实现略有不同。 谁能帮忙-oracle 19c中的等效代码是什么? 是否需要为19c设置任何其他参数? 在下面的代码中,当调用ClearPool方法调用由该用户在v $ session中创建的连接时,在12c中消失了,但在19c中却不起作用

从v $ session中选择*,其中username ='XYZ'-创建连接的用户

public bool ClearConnectionPool(ref string connectioString)
        {
            bool flag = false;
            OracleConnection objConn;
            try
            {
                objConn = new OracleConnection(connectioString);
                OracleConnection.ClearPool(objConn);

                flag = true;
            }
            catch (InvalidOperationException iex)
            {
                ExceptionHelper.HandleException(iex);
                flag = false;
            }
            catch (Exception ex)
            {
                ExceptionHelper.HandleException(ex);
                flag = false;
            }

            return flag;
        }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)