Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > последствия использования одного соединения?


Автор: Eugene128 1.2.2008, 00:14
Как вы считаете? Допустим есть, web-приложение, которым будут пользоваться одновременно не более 20 человек, например. Причем не очень активно. Нормально ли использовать для связи с БД в приложении ОДНО соединение (static Connection), через которое и выполнять все обращения к БД. (приложение написано на jsp, без использования каких-либо фреймворков).

Автор: Greg 1.2.2008, 00:31
Цитата(Eugene128 @  1.2.2008,  00:14 Найти цитируемый пост)
Нормально ли использовать для связи с БД в приложении ОДНО соединение
Да, для мелких приложений нормально.

Автор: Eugene128 1.2.2008, 00:42
Спасибо, успокоили - ничего переделывать не буду ))

Автор: Greg 2.2.2008, 00:43
Извиняюсь, я не хотел вводить Вас в заблуждение своим ответом, но ... так уж вышло smile
Дело вот в чем:
Предположим, что потоки выполнения не ставят блокировку на static Connection. Тогда если в одном потоке вызвать rollback(), то откатятся ВСЕ изменения сделанные в других потоках и аналогичная ситуация с commit(). Это означает, что все преимущества транзакционности мигом теряются. Возможен еще случай, когда потоки выполнения ставят блокировку на static Connection - тогда ВСЕ изменения выполняются строго последовательно. Представьте себе ситуацию: юзер, который хочет посмотреть список блюд, должен ждать до тех пор, пока другой юзер не оформит свой заказ и не отпустит блокировку на static Connection ... Поэтому для того, что бы избежать этих проблем нужно использовать пул соединений или открывать/закрывать соединение по мере необходимости (например, по запросу пользователя).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)