OracleClient, периодически возникающая проблема с подключением: приложение зависает на OracleConnection.Open (), без тайм-аута, без исключения - PullRequest
0 голосов
/ 28 июня 2010

Приложение работает нормально и подключается каждый раз с любого компьютера , за исключением сервера, на котором он должен быть развернут: / При запуске на сервере ему удается подключиться один раз, например 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 голосов
/ 28 июня 2010

В результате мы использовали ODP.NET из-за некоторых проблем, связанных с ошибками, при использовании WCF при передаче данных из нашего сервиса в Oracle.Я не помню реальную проблему - думаю, что-то не работает с определенным типом данных - но в итоге все получилось довольно хорошо для нас.

...