【问题标题】:TopLink with JPA taking more connections使用 JPA 的 TopLink 获取更多连接
【发布时间】:2012-09-04 12:07:04
【问题描述】:

在我的应用程序中,我们将 Toplink 与 Jpa 一起使用。 这里的问题是我们在这个应用程序中使用存储过程,我们使用 Jndi 连接进行存储过程调用,我们使用 EntityManger 进行剩余查询。但是在这里,如果我们启动应用程序,它会从连接池中获取两个连接。应用程序启动后,我正在调用存储过程(sp) 一个 sp 我正在建立一个连接,但在 websphere 连接池中它正在创建两个连接? 你能帮我解决这个问题吗.....

我不会使用 JTA 来获取我正在使用的 JDBC 连接

EntityManager em = getJpaTemplate().getEntityManagerFactory().createEntityManager();

这样我得到了 JDBC 连接...并且我按照代码配置了 persitence.xml 文件...

<properties>
    <property name="toplink.logging.level" value="OFF"/>
    <property name="toplink.cache.type.default" value="NONE"/>
    <property name="com.thoughtinc.runtime.persistence.sql.syntax" value="db2" />
</properties>

所以,请仔细研究一下,如果我在这里做错了,请告诉我。

【问题讨论】:

    标签: jpa connection toplink


    【解决方案1】:

    您使用的是 JTA 还是非 JTA?使用后是否将连接释放回池中?

    根据您的配置(包括您的 persistence.xml),如果您配置了非 JTA 登录,TopLink 可能会将其用于非事务性读取查询。这可以在您的 persistence.xml 中进行配置。

    要从 TopLink (EclipseLink) EntityManager 获取 JDBC 连接,请使用 em.unwrap(Connection.class)

    【讨论】:

    • 嗨,詹姆斯,感谢您的回复。我不会使用 JTA 来获取 JDBC 连接我正在使用 EntityManager em = getJpaTemplate().getEntityManagerFactory().createEntityManager();这样我就得到了 JDBC 连接...并且我按照代码配置了 persitence.xml 文件... 所以,请查看这个如果我在这里做错了什么,请告诉我。
    猜你喜欢
    • 2011-11-13
    • 2011-11-24
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    相关资源
    最近更新 更多