Java Websphere 7.0.0.17池连接错误

Java Websphere 7.0.0.17池连接错误,java,oracle,jndi,websphere-7,Java,Oracle,Jndi,Websphere 7,我在一个应用程序中遇到了问题,我在oracle 11g中使用EclipseLink 2.4.1,我得到了一个J2CA0045E错误,因为池没有从jndi中释放任何连接池 你有这个问题吗?显然,连接没有被释放,它达到了我配置的限制 任何想法,这是我的连接池 Connection timeout: 180 Maximum connections: 10 Minimum connections: 1 Reap time: 60 Unused timeout: 180 Aged timeout: 120

我在一个应用程序中遇到了问题,我在oracle 11g中使用EclipseLink 2.4.1,我得到了一个J2CA0045E错误,因为池没有从jndi中释放任何连接池

你有这个问题吗?显然,连接没有被释放,它达到了我配置的限制

任何想法,这是我的连接池

Connection timeout: 180
Maximum connections: 10
Minimum connections: 1
Reap time: 60
Unused timeout: 180
Aged timeout: 120
Purge policy: Entire Pool
编辑

我在同一个服务中有一个web服务,其行为是相同的,使用相同的jndi,连接会增加,并且不会释放任何连接

initCtx = new InitialContext(); 
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/abc");
conn = ds.getConnection();

根据提供的代码,看起来您正在类范围中存储
连接
引用。您应该避免存储对可能跨越多个请求的
连接
对象的引用

相反,存储对
数据源的引用

举例说明。首选这种方法:

public class GoodService {

    DataSource ds;

    public GoodService() throws NamingException {
        // Only the DataSource reference is stored, this is allowed
        ds = new InitialContext().lookup("java:comp/env/jdbc/abc");
    }

    public void doSomething() throws Exception {
        // Get the connection in a request.
        Connection conn = ds.getConnection();
        try {
            // do something...
        } finally {
            // Always close the connection in the finally block
            // so it gets returned to the pool no matter what
            conn.close();
        }
    }
}
以下方法被视为不良做法,可能会导致您看到的J2CA0045E错误:

public class BadService {

    Connection conn; // BAD: don't store a Connection across requests!

    public BadService() throws NamingException, SQLException {
        DataSource ds = new InitialContext().lookup("java:comp/env/jdbc/abc");
        // BAD: don't leave connections open indefinitely like this
        conn = ds.getConnection();
    }

    public void doSomething() throws Exception {
        // do something using conn...
    }
}

这可能是由许多不同的因素造成的。发布java代码的相关部分,向我们展示如何使用连接。你正在使用共享连接吗?我添加了信息,如果你有任何想法,请告诉我@Aguibertyu您可能正在泄漏连接。