簡體   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