如何终止使用动态 JDBC 凭据创建的数据库连接?
How to terminate Database connections created using dynamic JDBC credentials?
我按照下面的文章创建了动态 JDBC 连接。
How to support dynamic JDBC credentials
我能够正确地做到这一点,当用户尝试登录 JDBC 使用他们的凭据成功创建的连接时。
但我还希望这些连接在用户注销时终止。我在注销期间正在执行 session.invalidate() 但它不会终止数据库连接。
即使在取消部署应用程序后,动态连接也会保留。只有当我停止 web 逻辑服务器时,它们才会被删除。
为应用程序模块设置的超时不适用于这些连接。如果有办法在注销期间关闭这些动态 JDBC 连接,请帮助我。
我正在使用 JDeveloper 12.2.1
在 ADF 中,您不直接管理数据库连接。应用程序模块通过引用应用程序服务器提供的数据库连接池 JNDI 名称来管理要使用的连接。
由于创建数据库连接的成本很高,因此应用服务器(例如 WebLogic)在数据库连接池中维护一组数据库连接。当 ADF 应用程序模块需要连接时,它会从该池中获得一个连接。当用户结束 (ADF) 会话时,连接将返回到池中以供另一个会话(重新)使用。您可能希望从 here 解释这一点的文档开始。 WLS 文档将描述如何管理数据库连接池。
底线是您不应该从 ADF 应用程序中以编程方式opening/closing 数据库连接。
我按照下面的文章创建了动态 JDBC 连接。
How to support dynamic JDBC credentials
我能够正确地做到这一点,当用户尝试登录 JDBC 使用他们的凭据成功创建的连接时。
但我还希望这些连接在用户注销时终止。我在注销期间正在执行 session.invalidate() 但它不会终止数据库连接。
即使在取消部署应用程序后,动态连接也会保留。只有当我停止 web 逻辑服务器时,它们才会被删除。 为应用程序模块设置的超时不适用于这些连接。如果有办法在注销期间关闭这些动态 JDBC 连接,请帮助我。
我正在使用 JDeveloper 12.2.1
在 ADF 中,您不直接管理数据库连接。应用程序模块通过引用应用程序服务器提供的数据库连接池 JNDI 名称来管理要使用的连接。
由于创建数据库连接的成本很高,因此应用服务器(例如 WebLogic)在数据库连接池中维护一组数据库连接。当 ADF 应用程序模块需要连接时,它会从该池中获得一个连接。当用户结束 (ADF) 会话时,连接将返回到池中以供另一个会话(重新)使用。您可能希望从 here 解释这一点的文档开始。 WLS 文档将描述如何管理数据库连接池。
底线是您不应该从 ADF 应用程序中以编程方式opening/closing 数据库连接。