0

アプリケーションは正常に動作し、サーバーを除くすべてのマシンから毎回接続します。ただし、サーバー上で実行すると、20 回程度の試行で 1 回の接続に成功します。ファンキーな症状から判断すると、何らかのネットワーク構成関連の問題であると思われます (パケットがランダムに失われるなど)。しかし、同僚のネットワーク管理者がさまざまな設定を試しましたが、原因/解決策を見つけることができませんでした。

真剣に頭がおかしくなっているので、すべてのアドバイスをいただければ幸いです。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
  • OS: Windows Server 2008 Standard SP 2
4

1 に答える 1

0

サービスからOracleにデータを転送するWCFを使用していたときに発生したいくつかのバグの問題のため、ODP.NETを使用することになりました。実際の問題を思い出せません-特定のデータ型で何かが機能していなかったと思います-しかし、それは私たちにとってかなりうまくいきました。

于 2010-06-28T13:02:41.327 に答える