Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> System.Data.OracleClient.OracleConnection, метод Open() 
V
    Опции темы
EgoBrain
Дата 19.7.2009, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



Вопрос такой: почему после одного удачного соединения с БД методом 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
PM MAIL ICQ Skype   Вверх
SLeN
Дата 20.7.2009, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 8.12.2006
Где: SPB

Репутация: 1
Всего: 4



Никогда не проводил подобных экспериментов =)
предположительно это пул соединений

msdn

Это сообщение отредактировал(а) SLeN - 20.7.2009, 08:33
--------------------
Православные не проходите мимо! Люди нуждаются в вас
PM MAIL   Вверх
EgoBrain
Дата 20.7.2009, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



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

msdn

Вполне адекватное объяснение. Я мельком пробижал по этой инфе в 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-кода". Насколько логичен такой подход, и стоит ли его использовать в повседневной практике?

Это сообщение отредактировал(а) EgoBrain - 20.7.2009, 13:14
PM MAIL ICQ Skype   Вверх
SLeN
Дата 20.7.2009, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 8.12.2006
Где: SPB

Репутация: 1
Всего: 4



Пулу соединений это не мешает, данная практика, на сколько мне известно, рекомендована к применению
--------------------
Православные не проходите мимо! Люди нуждаются в вас
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0573 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.