Pro 2
Порада. Пули з'єднань SQL Server і Oracle використовують механізм повнотекстового порівняння. Це означає, що будь-який мінімальна зміна в рядку з'єднання порушує пул, навіть якщо в ній просто змінюється порядок параметрів або додається додатковий пробіл в кінці. З цієї причини, важливо не кодувати жорстко рядки з'єднань на різних Web-сторінках. Замість цього ви повинні зберігати рядок з'єднання в одному місці - переважно в розділі
В обох провайдерів даних - SQL Server і Oracle - пули сполук включаються і використовуються автоматично. Однак ви також можете використовувати параметри рядка з'єднання для настройки розмірів пулу. Ці параметри описані в табл. 7.2.
Таблиця 7.2. Налаштування групування підключень.
Максимальна кількість з'єднань, дозволених в пулі (за замовчуванням 100). Якщо досягається максимальний розмір пулу, будь-які подальші спроби відкрити з'єднання поміщаються в чергу в очікуванні звільнення з'єднання. (Якщо час тривалістю Connection.Timeout закінчується перед тим, як звільниться таке з'єднання, виникає помилка.)
Мінімальна кількість з'єднань, які повинні залишатися в пулі (за замовчуванням 0). Це число з'єднань буде створено при першому відкритті з'єднання, що скорочує час очікування лрі першому зверненні.
При значенні true (за замовчуванням) з'єднання виводиться з відповідного пулу, або, при необхідності, створюється і додається до відповідного пул.
Специфицирует часовий інтервал в секундах. Якщо з'єднання повернуто в пул і його час підключення перевищило зазначений час життя, воно буде зруйновано. За замовчуванням прийнято значення 0, що відключає таку поведінку. Це засіб зручно, коли ви хочете повторно використовувати велику кількість з'єднань за раз.
Нижче показаний приклад рядка з'єднання, що встановлює мінімальний розмір пулу:
string connectionString = "Data Source = localhost; Initial Catalog = Northwind;" +
"Integrated Security = SSPI; Min Pool Size = 10";
SqlConnection con = new SqlConnection (connectionString);
// Отримати з'єднання з пулу (якщо є)
// або створити пул з 10 сполуками (якщо: немає).
con.Open ();
// Повернути з'єднання в пул.
con.Close ();