首页 > 解决方案 > java 无法获取 jdbc 连接:无法获取连接池错误超时等待空闲对象

问题描述

我有一个必须将数据添加到数据库的 Web 应用程序,我必须为 1000 个实体执行此操作。一切顺利,直到第 10 次迭代,然后当输入执行持久化的方法时,我无法在打开事务的行获取 JDBC 连接。我将在下面添加方法。有谁知道我应该怎么做?

@PersistenceUnit(unitName = "current_project")
private EntityManagerFactory entityManagerFactory;

public long persistAccountObject(AccountObject accountObject) {

    long pdAccmAccountManagerId = 0;

    try {
        logger.debug("Start Persisting...");
        EntityManager entityManager = entityManagerFactory.createEntityManager();
        entityManager.getTransaction().begin();
        entityManager.persist(accountObject);
        entityManager.getTransaction().commit();
        // unique ID
        accountId= accountObject.getId();
        logger.debug("Persisting OK...");

    }
    catch (PersistenceException persistenceException) {
        logger.error("PersistenceException occur", persistenceException);
    }
    catch (Exception e) {
        logger.error("Exception occurs", e);
    }

    return accountId;
}

异常发生在每次第 10 次迭代时的 entityManager.getTransaction().begin() 行。在那之前,我将对象持久保存在数据库中。

我尝试在 pom 中添加 hibernate-c3p0 依赖项并在 persistence.xml 中为其设置一些属性,但如果我这样做,我的程序会被阻止并且甚至无法开始运行。

我应该怎么办?

标签: javaoraclehibernatejdbc

解决方案


推荐阅读