You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ODP.NET C#中Oracle会话时长限制未自动终止的问题解决

ODP.NET中Oracle会话限时终止的问题

我想了解如何在ODP.NET中实现Oracle会话的限时终止,已执行以下操作:

  • 创建Oracle用户配置文件,设置CONNECT_TIME = 1分钟;
  • 为Oracle用户分配该配置文件;
  • 编写如下C#控制台应用程序(基于ODP.NET);
  • 运行该应用程序;
  • 在conn.Open()执行后暂停程序;
  • 等待超过1分钟;
  • 继续运行应用程序;
  • 在reader.Read()处触发异常,异常信息为“Oracle is already disconnected”,此时Oracle会话已消失,符合预期。

问题:如果不执行步骤7(不继续运行应用程序),则不会触发异常,Oracle也不会终止该会话。

using Oracle.ManagedDataAccess.Client;

class Test1
{
    static void Main()
    {
        using (OracleConnection conn = new OracleConnection("connect string"))
        {
            conn.Open();
            using (OracleCommand cmd = new OracleCommand("select id from test_table"))
            {
                cmd.Connection = conn;
                cmd.CommandType = CommandType.Text;
                using (OracleDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                        Console.WriteLine(reader["id"]);
                }
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者masaya hakamata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 19:06:01