Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > System.Data.OracleClient.OracleConnection


Автор: EgoBrain 19.7.2009, 10:05
Вопрос такой: почему после одного удачного соединения с БД методом Open() и затем отключения от БД Close() все последующие попытки соединится с БД успешные, даже если выключена сеть?
Код

... //Поля класса Form1
public static OracleConnection oraConnection; 
...
//Обработчик события FormLoad
{
    oraConnection = new OracleConnection("connection string");
}
...
//Обработчик события нажатия кнопки соединения с БД
{
    if(oraConnection.State == ConnectionState.Open)
    {
        oraConnection.Close();
     }
     else
     {
        oraConnection.Open();
    }
}

Нажимаю первый раз соединится - соединяется, нажимаю разъединить, затем выключаю сетевое соединение и снова нажимаю "соединится" и каким-то чудом все соединяется и разъединяется без сети сколько угодно раз, а вот если запустить приложение с уже отключенной сетью то соединится не получается... В чем дело? Может что то с уловием не так?
Клиент: WinXP SP3 Framework 3.5
Сервер: Oracle 9i

Автор: SLeN 20.7.2009, 08:33
Никогда не проводил подобных экспериментов =)
предположительно это пул соединений

http://msdn.microsoft.com/ru-ru/library/8xx3tyca.aspx

Автор: EgoBrain 20.7.2009, 13:14
Цитата(SLeN @ 20.7.2009,  08:33)
Никогда не проводил подобных экспериментов =)
предположительно это пул соединений

http://msdn.microsoft.com/ru-ru/library/8xx3tyca.aspx

Вполне адекватное объяснение. Я мельком пробижал по этой инфе в MSDN-е. Там есть пример типа:
Код

// Assumes that command is a SqlCommand object and that
// connectionString connects to master.
command.Text = "USE DatabaseName";
using (SqlConnection connection = new SqlConnection(
  connectionString))
  {
    connection.Open();
    command.ExecuteNonQuery();
  }

 То есть какая та транзакция выполняется в рамках данного соединения и соединение уничтожается после выхода за пределы "using-кода". Насколько логичен такой подход, и стоит ли его использовать в повседневной практике?

Автор: SLeN 20.7.2009, 14:07
Пулу соединений это не мешает, данная практика, на сколько мне известно, рекомендована к применению

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)