2016-09-15 39 views
2

我遵循下面的文章来创建动态JDBC连接。如何终止使用动态JDBC凭证创建的数据库连接?

How to support dynamic JDBC credentials

我能够正确地做到这一点,当用户尝试登录与他们的凭证成功创建JDBC连接。

但我也希望这些连接在用户注销时终止。我在注销期间正在执行session.invalidate(),但没有终止数据库连接。

即使应用程序未被部署,动态连接也会保留。只有当我停止网络逻辑服务器时,它们才会被删除。 为应用程序模块设置的超时不适用于这些连接。如果有办法在注销期间关闭这些动态JDBC连接,请帮助我。

我使用JDeveloper 12.2.1

回答

1

在自动进稿器,你不直接管理数据库连接。应用程序模块通过引用应用程序服务器提供的数据库连接池JNDI名称来管理要使用的连接。

由于创建数据库连接的成本很高,因此应用服务器(例如WebLogic)会在数据库连接池中维护一组数据库连接。当ADF应用程序模块需要连接时,将从该池获得一个连接。当用户结束(ADF)会话时,连接返回到池以供其他会话(重新)使用。您可能希望开始here与解释这一点的文档。 WLS文档将介绍如何管理数据库连接池。

底线是你不应该在ADF应用程序中以编程方式打开/关闭数据库连接。