OracleClient,间歇性连接问题:app挂起在OracleConnection.Open()上,没有超时,没有抛出异常

时间:2010-06-28 12:44:41

标签: c# .net oracle ado.net oracleclient

应用程序工作正常,并且每次都从连接服务器连接它应该部署的服务器:/当在服务器上运行时,它设法连接一次,如20次或类似的尝试。从时髦的症状来看,我怀疑它是某种与网络配置相关的问题(如在一些随机丢失的数据包中?),但我的网络管理员尝试了许多不同的设置,我们无法找到原因/解决方案。

每一条建议都会受到赞赏,因为它让我疯狂。我想知道切换到ODP.NET是否可以解决问题或至少使其更容易排除故障(我读过MS的提供商不是很稳定)。但是,由于架构不够灵活,因此切换需要花费大量时间。但如果这是唯一合理的事情......

我正在使用的一段代码:

DbConnection conn = new OracleConnection();
conn.ConnectionString = _connectionString;
try
{
    conn.Open();
    DbCommand cmd = conn.CreateCommand();
    cmd.CommandText = "select sysdate from dual";
    cmd.Connection = conn;
    _logger.Info("Sysdate: " + cmd.ExecuteScalar().ToString());
}
catch (OracleException oex)
{
    _logger.ErrorException("Oracle exception: " + oex.Message, oex);
}
catch (Exception ex)
{
    _logger.ErrorException("Exception: " + ex.Message, ex);
}
finally
{
    if (conn != null) conn.Close();
}

更多信息:

  • 提供者:System.Data.OracleClient
  • Lib:instantclient-basiclite-win32-10.2.0.3-20061115
  • 连接字符串的格式为:Data Source=ip_address:port_number/instance;Persist Security Info=True;User ID=user;Password=passwd
  • 其他连接没有问题的应用程序:QueryExpress使用相同的库,Sql Developer
  • Os:Windows Server 2008 Standard SP 2

1 个答案:

答案 0 :(得分:0)

我们最终使用ODP.NET,因为我们使用WCF将数据从我们的服务传输到Oracle时出现了一些错误问题。我不记得实际的问题 - 认为某些东西不适用于某种数据类型 - 但它最终为我们做得很好。