Менеджер подключений к базам данных
От: Андрей Майоров Россия http://blogs.byte-force.com/xor
Дата: 17.09.03 10:40
Оценка: 110 (5) +2
Статья:
Менеджер подключений к базам данных
Автор(ы): Андрей Майоров
Дата: 01.02.2004
В статье объясняется что такое менеджер подключений, описываются его предполагаемые функции и путь реализации. Кроме того предлагается простой, но красивый способ безопасного открытия и автоматического закрытия подключений.


Авторы:
Андрей Майоров

Аннотация:
В статье объясняется что такое менеджер подключений, описываются его предполагаемые функции и путь реализации. Кроме этого предлагается простой, но красивый способ безопасного открытия и автоматического закрытия подключений.
Требуется знание .NET, основ работы с БД.
WBR,
XOR // BYTE-force
Менеджер подключений к базам данных
От: Андрей Майоров Россия http://blogs.byte-force.com/xor
Дата: 26.02.04 09:14
Оценка:
Здравствуйте, Андрей Майоров!

В процессе использования менеджера в реальных проектах обнаружилось, что один (ну, пока один) из тезисов статьи не полностью верен. Конкретно вот что:

Необходимо сделать такой модуль (HttpModule), который в начале обработки запроса будет связывать менеджер подключений, приписанный к данному объекту приложения, с потоком, который сейчас работает с этим приложением и со всеми подчиненными ему объектами. Это устранит все проблемы такого рода и позволит опять забыть про реальное положение дел с потоками в ASP.NET.


Оказалось, что при большой загрузке сервера, обработка запроса может быть начата одним потоком, а продолжена другим. Возможно, это как-то связано с тем, что HttpApplication является асинхронным хендлером. Никаких явных упоминаний об этом в MSDN я не обнаружил.

Так что, при использовании менеджера в ASP.NET, вязать нужный экземпляр с потоком бесполезно. Вместо этого надо использовать, например, коллекцию HttpContext.Items. Обновленную версию, если она кому-либо интересна, скоро выкатим.

WBR,
XOR
... << RSDN@Home 1.1.0 stable >>
WBR,
XOR // BYTE-force
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.