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
相关产品推荐
相关产品推荐

