我想知道如何在有限的时间内终止Oracle会话 在ODP.Net上.
这些都是我试过的. 1.我将Oracle用户配置文件设置为CONNECT_TIME=1分钟. 2.我用这个档案成为了Oracle用户. 3.我制作了C#控制台AP,并使用了下面的ODP码. 4.运行AP. 5.在连接打开后停止(); 6.保持等待,直到花费超过1分钟. 7.继续运行AP. 8.Reader.Read()异常; Ex.Message是Oracle已断开连接. 我可以发现Oracle Session消失了. 这样挺好的.
问题是,如果我不继续运行AP(#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"]);
}
}
}
}
}