|
|
|
Как закрыть пул соединений при закрытии обозревателя ?
|
|||
|---|---|---|---|
|
#18+
Пишу сервлеты. Использую Tomcat. Работаю с пулом соединений DBCP. Правило такое. Если правильно введено имя и пароль то открываю сессию. Чтобы проверить правильность пароля открываю коннект. Если открылся удачно, значит все ок. Тогда я открываю сессию и сохраняю пул соединений в атрибутах сессии. К этому моменту одно соединение уже у меня висит на MSSQL(даже не смотря на то что я его закрываю после проверки. ну наверно пул держит). Когда я нажимаю на страничкe кнопочку отключиться,то пул закрывается и сессия в след за ней. Коннект пропадает. Все замечательно. Но если я просто закрываю обозреватель, то коннект висит. Уверен, что сборщик мусора удалил забытую сессию, но на MSSQL сервере коннект остался висеть. Как мне правильно отработать этот момент? Подскажите пожалуйста ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 15:32 |
|
||
|
Как закрыть пул соединений при закрытии обозревателя ?
|
|||
|---|---|---|---|
|
#18+
э-э... я, может, во что-то не врубаюсь... но одного пула на все приложение, как правило, достаточно для каждого реквеста пул создавать не надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 15:37 |
|
||
|
Как закрыть пул соединений при закрытии обозревателя ?
|
|||
|---|---|---|---|
|
#18+
Юрий В. СоломинТогда я открываю сессию и сохраняю пул соединений в атрибутах сессии. М-да... зачем в сессии одного пользователя целый пул? Пул нужен, чтобы обслуживать одновременно несколько сессий без необходимости каждый раз открывать новое соединение с БД (что довольно медленно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 15:41 |
|
||
|
Как закрыть пул соединений при закрытии обозревателя ?
|
|||
|---|---|---|---|
|
#18+
Честно скажу. С пулом познакомился вчера утром. Практически с нуля.За пару дней перечитал очень много всего. Но наверное главного не заметил. Подскажите тогда, как правильно открыть и держать пул соединений на сервере сервлетов для нескольких сессий. Буду очень признателен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 15:46 |
|
||
|
Как закрыть пул соединений при закрытии обозревателя ?
|
|||
|---|---|---|---|
|
#18+
подождите-ка. а ведь насколько я понял когда создается пул соединений то указывается имя пользователя и пароль. Если один пул на несколько сессий, то как будут работать пользователи с разными именами ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 15:49 |
|
||
|
Как закрыть пул соединений при закрытии обозревателя ?
|
|||
|---|---|---|---|
|
#18+
с какой целью интересуетесь? (с) если у вас логика авторизации завязана на факте присутствия user'а в БД - то, возможно, стоит пересмотреть логику и завести отдельную таблицу с пользователями с которой и сверяться, выделив одного БД-юзера на все приложение. если причина такого решения в разграничении доступа к данным на уровне БД - тады ой, пул вам не подходит. Открывайте коннекшн вручную для каждой новой сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 15:56 |
|
||
|
Как закрыть пул соединений при закрытии обозревателя ?
|
|||
|---|---|---|---|
|
#18+
Дело в том, что есть запросы, которые очень долго работают. И тогда один коннект не подходит. Для таких задачек я беру соединение из пула и запускаю поток. В это время пользователь может делать другие операции с базой. Если пул не использовать, то приходится руками каждый раз открывать новый коннект для таких длительных операций. Иначе, пока длительный запрос не отработает, никакой другой запрос с базой не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 16:08 |
|
||
|
Как закрыть пул соединений при закрытии обозревателя ?
|
|||
|---|---|---|---|
|
#18+
Юрий В. СоломинДело в том, что есть запросы, которые очень долго работают. И тогда один коннект не подходит. Для таких задачек я беру соединение из пула и запускаю поток. В это время пользователь может делать другие операции с базой. Если пул не использовать, то приходится руками каждый раз открывать новый коннект для таких длительных операций. Иначе, пока длительный запрос не отработает, никакой другой запрос с базой не работает. это понятно непонятно, что мешает пользовать ожин пул на несколько сессий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 16:10 |
|
||
|
Как закрыть пул соединений при закрытии обозревателя ?
|
|||
|---|---|---|---|
|
#18+
я только ЗА. но во-первых не знаю как. чего-то недочитал наверное. во-вторых, я так понял, что в этом случае не могу переложить права доступа к БД на саму БД. То есть я должен создать свою табличку пользователей (кого пускать). И если регистрируется пользователь из моей таблички, то открывать пул соединений с полными правами доступа к БД, чего совсем не хочется. Может быть покажете, как сделать один пул на все сессии ? Может быть все-таки придеться пойти по такому пути. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 16:25 |
|
||
|
Как закрыть пул соединений при закрытии обозревателя ?
|
|||
|---|---|---|---|
|
#18+
самый простой способ: открыть один пул при старте приложения , выделив одного пользователя для всего приложения, в дальнейшем про другой способ получения соединений забыть Если неохота возиться с JNDI и править server.xml - инициализировать пул ручками в каком-нть ContextListener и положить в контекст приложения. Доступ разграничить ручками, например, по ролям пользователей. При разграничении доступа на уровне БД - пул вряд ли здорово поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 16:44 |
|
||
|
Как закрыть пул соединений при закрытии обозревателя ?
|
|||
|---|---|---|---|
|
#18+
Юрий В. Соломиня только ЗА. но во-первых не знаю как. чего-то недочитал наверное. во-вторых, я так понял, что в этом случае не могу переложить права доступа к БД на саму БД. То есть я должен создать свою табличку пользователей (кого пускать). И если регистрируется пользователь из моей таблички, то открывать пул соединений с полными правами доступа к БД, чего совсем не хочется. Может быть покажете, как сделать один пул на все сессии ? Может быть все-таки придеться пойти по такому пути. Какая БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 16:55 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=722&tid=2149081]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
72ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 421ms |

| 0 / 0 |
