2016-09-15 4 views
2

Я выполнил следующую статью, чтобы создать динамическое соединение JDBC.Как завершить соединения с базами данных, созданные с использованием динамических учетных данных JDBC?

How to support dynamic JDBC credentials

Я был в состоянии сделать это правильно и когда пользователь попытаться войти в соединение JDBC успешно созданного с их учетными данными.

Но я также хочу, чтобы эти соединения завершались во время выхода пользователей из системы. Я делаю session.invalidate() во время выхода из системы, но не прерывая соединения с базой данных.

Динамические соединения сохраняются даже после того, как приложение не развернуто. Они удаляются, только если я остановлю сервер веб-логики. Тайм-ауты, установленные для прикладного модуля, не применяются к этим соединениям. Пожалуйста, помогите мне, если есть способ закрыть это динамическое соединение JDBC во время выхода из системы.

Я использую JDeveloper 12.2.1

ответ

1

В АПД, вам не удается подключения к БД напрямую. Прикладной модуль управляет соединением, которое будет использоваться, ссылаясь на имя JNDI пула соединений DB, которое предоставляется сервером приложений.

Поскольку создание db-соединения дорого, сервер приложений, WebLogic, например, поддерживает набор подключений db в пуле соединений DB. Когда модулю приложения ADF требуется соединение, ему предоставляется один из этого пула. Когда пользователь заканчивает сеанс (ADF), соединение возвращается в пул, который будет (повторно) использоваться другим сеансом. Возможно, вы захотите запустить here с документами, которые объясняют это. В документах WLS описывается, как управлять пулом db conn.

Нижняя строка: вы не должны открывать/закрывать соединения db программным способом из приложения ADF.