powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как закрыть пул соединений при закрытии обозревателя ?
12 сообщений из 12, страница 1 из 1
Как закрыть пул соединений при закрытии обозревателя ?
    #33763689
Пишу сервлеты. Использую Tomcat.
Работаю с пулом соединений DBCP. Правило такое.
Если правильно введено имя и пароль то открываю сессию. Чтобы проверить правильность пароля открываю коннект. Если открылся удачно, значит все ок. Тогда я открываю сессию и сохраняю пул соединений в атрибутах сессии. К этому моменту одно соединение уже у меня висит на MSSQL(даже не смотря на то что я его закрываю после проверки. ну наверно пул держит). Когда я нажимаю на страничкe кнопочку отключиться,то пул закрывается и сессия в след за ней. Коннект пропадает. Все замечательно. Но если я просто закрываю обозреватель, то коннект висит. Уверен, что сборщик мусора удалил забытую сессию, но на MSSQL сервере коннект остался висеть. Как мне правильно отработать этот момент? Подскажите пожалуйста ?
...
Рейтинг: 0 / 0
Как закрыть пул соединений при закрытии обозревателя ?
    #33763703
э-э...
я, может, во что-то не врубаюсь...
но одного пула на все приложение, как правило, достаточно
для каждого реквеста пул создавать не надо
...
Рейтинг: 0 / 0
Как закрыть пул соединений при закрытии обозревателя ?
    #33763713
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий В. СоломинТогда я открываю сессию и сохраняю пул соединений в атрибутах сессии.

М-да... зачем в сессии одного пользователя целый пул? Пул нужен, чтобы обслуживать одновременно несколько сессий без необходимости каждый раз открывать новое соединение с БД (что довольно медленно).
...
Рейтинг: 0 / 0
Как закрыть пул соединений при закрытии обозревателя ?
    #33763747
Честно скажу. С пулом познакомился вчера утром. Практически с нуля.За пару дней перечитал очень много всего. Но наверное главного не заметил. Подскажите тогда, как правильно открыть и держать пул соединений на сервере сервлетов для нескольких сессий. Буду очень признателен.
...
Рейтинг: 0 / 0
Как закрыть пул соединений при закрытии обозревателя ?
    #33763756
подождите-ка. а ведь насколько я понял когда создается пул соединений то указывается имя пользователя и пароль. Если один пул на несколько сессий, то как будут работать пользователи с разными именами ?
...
Рейтинг: 0 / 0
Как закрыть пул соединений при закрытии обозревателя ?
    #33763793
с какой целью интересуетесь? (с)

если у вас логика авторизации завязана на факте присутствия user'а в БД - то, возможно, стоит пересмотреть логику и завести отдельную таблицу с пользователями с которой и сверяться, выделив одного БД-юзера на все приложение.
если причина такого решения в разграничении доступа к данным на уровне БД - тады ой, пул вам не подходит. Открывайте коннекшн вручную для каждой новой сессии.
...
Рейтинг: 0 / 0
Как закрыть пул соединений при закрытии обозревателя ?
    #33763843
Дело в том, что есть запросы, которые очень долго работают. И тогда один коннект не подходит. Для таких задачек я беру соединение из пула и запускаю поток. В это время пользователь может делать другие операции с базой. Если пул не использовать, то приходится руками каждый раз открывать новый коннект для таких длительных операций. Иначе, пока длительный запрос не отработает, никакой другой запрос с базой не работает.
...
Рейтинг: 0 / 0
Как закрыть пул соединений при закрытии обозревателя ?
    #33763855
Юрий В. СоломинДело в том, что есть запросы, которые очень долго работают. И тогда один коннект не подходит. Для таких задачек я беру соединение из пула и запускаю поток. В это время пользователь может делать другие операции с базой. Если пул не использовать, то приходится руками каждый раз открывать новый коннект для таких длительных операций. Иначе, пока длительный запрос не отработает, никакой другой запрос с базой не работает.

это понятно
непонятно, что мешает пользовать ожин пул на несколько сессий.
...
Рейтинг: 0 / 0
Как закрыть пул соединений при закрытии обозревателя ?
    #33763908
я только ЗА. но во-первых не знаю как. чего-то недочитал наверное. во-вторых, я так понял, что в этом случае не могу переложить права доступа к БД на саму БД. То есть я должен создать свою табличку пользователей (кого пускать). И если регистрируется пользователь из моей таблички, то открывать пул соединений с полными правами доступа к БД, чего совсем не хочется.
Может быть покажете, как сделать один пул на все сессии ? Может быть все-таки придеться пойти по такому пути.
...
Рейтинг: 0 / 0
Как закрыть пул соединений при закрытии обозревателя ?
    #33763991
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
самый простой способ:


открыть один пул при старте приложения , выделив одного пользователя для всего приложения, в дальнейшем про другой способ получения соединений забыть

Если неохота возиться с JNDI и править server.xml - инициализировать пул ручками в каком-нть ContextListener и положить в контекст приложения.
Доступ разграничить ручками, например, по ролям пользователей.

При разграничении доступа на уровне БД - пул вряд ли здорово поможет.
...
Рейтинг: 0 / 0
Как закрыть пул соединений при закрытии обозревателя ?
    #33764040
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий В. Соломиня только ЗА. но во-первых не знаю как. чего-то недочитал наверное. во-вторых, я так понял, что в этом случае не могу переложить права доступа к БД на саму БД. То есть я должен создать свою табличку пользователей (кого пускать). И если регистрируется пользователь из моей таблички, то открывать пул соединений с полными правами доступа к БД, чего совсем не хочется.
Может быть покажете, как сделать один пул на все сессии ? Может быть все-таки придеться пойти по такому пути.
Какая БД?
...
Рейтинг: 0 / 0
Как закрыть пул соединений при закрытии обозревателя ?
    #33764055
Большое спасибо. попробую разобраться.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как закрыть пул соединений при закрытии обозревателя ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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