Видалення з'єднань
Пуллер з'єднання видаляє з'єднання з пулу після того, як він довго не працює, або якщо пулер виявить, що з'єднання з сервером було розірвано.
Зауважте, що розірване з'єднання можна виявити лише після спроби спілкування з сервером. Якщо знайдено з'єднання, яке більше не підключено до сервера, воно позначається як недійсне.
Недійсні з'єднання видаляються із пулу з'єднань лише тоді, коли вони закриті або відновлені.
Якщо з'єднання існує з сервером, який зник, це з'єднання можна вивести з пулу, навіть якщо пул з'єднання не виявив розірване з'єднання і позначив його як недійсне.
Це так, оскільки накладні перевірки того, що з'єднання все-таки є дійсним, позбавлять від переваг наявності пулера, викликаючи чергову поїздку в обидва кінці до сервера.
У цьому випадку перша спроба використання з'єднання виявить, що з'єднання було розірвано, і викинуто виняток.
В основному те, що ви бачите, - це виключення в останньому реченні.
З'єднання береться з пулу з'єднань, програма не знає, що фізичне з'єднання відсутнє, спроба його використання робиться за умови, що фізичне з'єднання все ще існує.
І ви отримуєте своє виняток.
Для цього є кілька загальних причин.
- Сервер був перезапущений, це закриє існуючі з'єднання.
У цьому випадку подивіться журнал SQL Server, який зазвичай знаходиться за адресою: C: \ Program Files \ Microsoft SQL Server \\ MSSQL \ LOG
Якщо часова мітка для запуску зовсім недавня, то ми можемо підозрювати, що саме це спричинило помилку. Спробуйте співвіднести цю мітку часу з часом виключення.
2009-04-16 11: 32: 15.62 Реєстрація сервера Повідомлення SQL Server у файлі 'C: \ Програмні файли \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ LOG \ ERRORLOG'.
- Хтось чи щось убив SPID, який використовується.
Знову загляньте в журнал SQL Server. Якщо ви виявили вбивство, спробуйте співвіднести цю часову позначку з часом виключення.
2009-04-16 11: 34: 09,57 Ідентифікатор процесу spidXX XX був убитий іменем хоста xxxxx, ідентифікатором хост-процесу XXXX.
- Знову виникає відмова (наприклад, у програмі дзеркала), подивіться у журнал SQL Server.
Якщо є відмова, спробуйте співвіднести цю часову позначку з часом виключення.
2009-04-16 11: 35: 12,93 spidXX Дзеркальна база даних "" змінюється ролями з "ПРИНЦИПАЛЬНОГО" на "Дзеркальне відображення" через відмову.