Oracle Connection过期且无法打开

时间:2014-07-25 18:10:28

标签: c# sql oracle amazon-web-services

这有点奇怪。我有两个Oracle数据库。一个是当地的。其他来自亚马逊。发生的事情非常奇怪。我正在使用C#。

  • 如果我打开一个连接并进行一些查询,它就会起作用。
  • 如果在1小时后我打开一个连接,它会在第一时间拒绝它,然后允许它。

当我在亚马逊数据库中执行最后一次查询1小时后,它会抛出一个新的OracleException,它只发生在亚马逊数据库中。在我的本地数据库中,它让我随时打开一个连接,但它在第一次否认它并允许在第二次。此外,如果我使用try{} catch() {},它也不允许。我目前的代码:

private OracleConnection _oracleConnection = new OracleConnection(ConfigurationManager.ConnectionStrings["Oracle"].ConnectionString);

private void OpenConnection()
{
    if (_oracleConnection.State != ConnectionState.Open)
    _oracleConnection.Open();
}

public void MyAction(employer)
{
    OpenConnection();
    using (OracleCommand command = _oracleConnection.CreateCommand())
    {
        command.CommandType = CommandType.StoredProcedure;
        command.CommandText = "proc_0001";
        command.Parameters.Clear();
        command.Parameters.Add("pi_employer_id, OracleDbType.Int32").Value = employer;
        command.ExecuteNonQuery();
    }
}

奇怪的是,如果我只是在短时间内执行它,它就可以了,但是如果我停留超过1小时而没有勾选Oracle,它会在OpenConnection()和{&#39}中引发异常; m在按钮点击的情况下调用此方法,当我再次执行此操作时,在异常之后,我得到了我的结果。我开始认为甲骨文只是和我开玩笑。我在Oracle的字符串中看到了Oracle Documentation和C#Documentation以及Connection LifeTime/Connection TimeOut,但他们要保持连接,我打开连接时遇到错误,就像我说的那样,只是在很长一段时间之后才开始第二次工作正常。我不想使用解决方法。你知道这是什么原因吗? 提前谢谢。

0 个答案:

没有答案