繁体   English   中英

OracleClient,间歇性连接问题:应用程序在OracleConnection.Open()上挂起,没有超时,没有引发异常

[英]OracleClient, intermittent connection issue: app hangs on OracleConnection.Open(), no timeout, no exception thrown

应用程序可以正常工作,并且每次都可以从应该部署它的服务器以外的任何机器上进行连接:/当在服务器上运行时,它设法以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
  • 库: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
  • 操作系统:Windows Server 2008 Standard SP 2

由于使用WCF将数据从服务传输到Oracle时遇到了一些错误问题,我们最终使用了ODP.NET。 我不记得实际的问题-认为某些数据类型无法正常工作-但最终对我们来说效果很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM