Session 在oracle weblogic Server中使用JDBC池,

Session 在oracle weblogic Server中使用JDBC池,,session,jdbc,weblogic12c,connection-pool,Session,Jdbc,Weblogic12c,Connection Pool,最近我有一个问题困扰着我。我正在使用OracleWeblogc服务器中的JDBC连接池进行RESTAPI调用。该包已部署,能够正确处理传入的请求 但不知何故,在发出新请求后,在db会话级别,我将获得一个新会话行的“INACTIVE”状态,即使我在代码中有意关闭了db连接。在我看来,这次会议将永远持续下去。最终它杀死了游泳池 这是我的代码示例,其中“apple”是我的连接池名称 Connection connection = JDBCConnection.getJDBCConnction(

最近我有一个问题困扰着我。我正在使用OracleWeblogc服务器中的JDBC连接池进行RESTAPI调用。该包已部署,能够正确处理传入的请求

但不知何故,在发出新请求后,在db会话级别,我将获得一个新会话行的“INACTIVE”状态,即使我在代码中有意关闭了db连接。在我看来,这次会议将永远持续下去。最终它杀死了游泳池

这是我的代码示例,其中“apple”是我的连接池名称

    Connection connection = JDBCConnection.getJDBCConnction(apple);
    Statement stmt = null;
    String query ="select name from user";
    String hosts="";
    try {
        stmt = connection.createStatement();
        ResultSet rs = stmt.executeQuery(query);
        while (rs.next()) {
            name   = rs.getString("name");
        }
    } finally {
        connection.close();
    }
还有什么我需要做的吗

谢谢


Jack

您可能会遇到关闭
连接的问题,但这不会导致关闭
结果集
语句


该主题已被广泛解释,等等。

非活动会话是正常的。当您完成连接并关闭它时,它会返回到池中,但不会关闭。实际上它是非活动的,这就是为什么您会看到非活动状态。但是,关于您的代码,您应该关闭语句和结果集,因为关闭池中的连接只会将其发送回池。但是,由于它正在累积,那么我们希望它们以何种方式被回收?您的意思是创建的会话比池大小多吗?是的。我遇到的问题是,每个传入的请求都会在会话表中添加一个新行。最后,我的DB服务器不再有任何DB连接的处理程序。