Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / OleDb + connection pool / 6 сообщений из 6, страница 1 из 1
20.10.2004, 13:17
    #32746299
nex
nex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OleDb + connection pool
Народ, извиняйте за дурацкий вопрос...

Если используется .NET OleDbDataProvider для работы с SQL Server 2000, где можно "смотреть" на connection pool? Мне просто интересно, работает пул или нет. В Enterprise Manager я вижу, что коннекты открываются и постепенно отмирают (скорее по таймауту, а не когда OleDbConnection.Close() вызывается). exec sp_who2 показывает тоже самое в QA. Все интересующие меня коннекты имеют status: sleeping. Как узнать уходят они в пул или нет?
...
Рейтинг: 0 / 0
21.10.2004, 06:09
    #32747508
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OleDb + connection pool
для OleDb посмотреть достаточно трудно.

а вот для SqlConnection - можно через Reflction

такой вот тестовый пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SqlConnection cn1=new SqlConnection("Integrated Security=SSPI;Initial Catalog=TestDB;Data Source=STORAGE;");
cn1.Open();
Show();
			
SqlConnection cn2=new SqlConnection("Integrated Security=SSPI;Initial Catalog=TestDB;Data Source=STORAGE;Persist Security Info=False;");
cn2.Open();
Show();
			
cn1.Close();
Show();
и метод для просмотра соединений в пулах

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
private static void Show()
{
  Type sc=typeof(System.Data.SqlClient.SqlConnection);
  Type pm=Assembly.GetAssembly(sc).GetType("System.Data.SqlClient.SqlConnectionPoolManager");
   // SqlConnectionPoolManager 
  object cm=pm.InvokeMember(null, BindingFlags.CreateInstance, null, null, new object[0]);
   // PoolManager 
  object mm=pm.InvokeMember("_manager", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Static, null, pm, new object[0]);

  Hashtable map1=(Hashtable)mm.GetType().InvokeMember("_map", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance, null, mm, new object[0]);
  Hashtable map2=(Hashtable)mm.GetType().InvokeMember("_mapSSPI", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance, null, mm, new object[0]);
   // остановись здесь и посмотри в debuger'e содержимое таблиц :) 
}
...
Рейтинг: 0 / 0
21.10.2004, 11:49
    #32748022
nex
nex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OleDb + connection pool
Для SqlConnection можно ещё через Performance утилиту (Administrative Tools -> Performance). Там добавляешь сщётчик и выбираешь .NET CLR Data, а там есть и pooled и nonpooled, и ещё всякая разная статистика :).
...
Рейтинг: 0 / 0
21.10.2004, 11:57
    #32748048
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OleDb + connection pool
во, точно.

у SqlClient'а все сделано по образу и подобию com'овского OleDb (pool + enlist + etc). так что логику connection pooling (или её отсутсвие) можно проследить по нему.
...
Рейтинг: 0 / 0
21.10.2004, 12:16
    #32748120
nex
nex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OleDb + connection pool
Проверка в лоб :)

Добавил в connection string

Код: plaintext
OLE DB Services = - 2 ;

Запустил приложение и смотрел на Current Activity в Enterpise Manager. Коннекты там даже не появлялись (т.е. они умирали сразу же после Close()). Когда пулинг активирован, они там висят со статусом 'sleeping'.. и отмирают по своему таймауту... наверное все таки работает :)
...
Рейтинг: 0 / 0
21.10.2004, 12:25
    #32748156
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OleDb + connection pool
nex... наверное все таки работает :)за MS глаз да глаз нужен.
а то у них или " not implemented now " или уже " obsolete " :)
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / OleDb + connection pool / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]