当前位置: 首页 > 知识库问答 >
问题:

带有Hibernate 3.2.6/JPA的c3p0连接池库-无法打开连接

松越
2023-03-14

我的应用程序有两个quartz作业同时从Oracle DB读取两个不同的表。我正在尝试使用c3p0与Hibernate和Oracle从池中获取连接。Tomcat7启动时,C3P0似乎已初始化:

2021-02-15 18:47:26,271[INFO]HibernateEntityManager 3.2.1.GA
2021-02-15 18:47:26,290[INFO]Hibernate注释3.2.1.GA
2021-02-15 18:47:26,299[INFO]Hibernate3.2.6
...
2021-02-15 18:47:27,473[INFO]正在初始化C3P0-0.9.1[Build16-january-2007 14:46:42;debug?true;trace:10]
2021-02-15 18:47:27,621[INFO]正在初始化c3p0池...com.mchange.v2.c3p0.poolBackedDataSource@add8f7b3[connectionPoolDataSource->com.mchange.v2.c3p0.wrapperConnectionPoolDataSource@e6d03554[acquireIncrement->1,AcquireTretyActempts->30,AcquireTretyDelay->1000,autoCommitOnClose->false,automaticTestTable->null,...]

2021-02-15 18:47:28,240[INFO]RDBMS:Oracle,版本:Oracle Database 11g版本11.1.0.0.0-生产
2021-02-15 18:47:28,241[INFO]JDBC驱动程序:Oracle JDBC驱动程序,版本:10.2.0.4.0
2021-02-15 18:47:28,280[INFO]使用方言:org.hibernate.dialt.Oracle10G方言

但是几行之后,它仍然在显示Hibernate内置连接池,不知道是不是应该是这样的?:

2021-02-15 18:47:37,726[INFO]使用Hibernate内置连接池(不用于生产!)
2021-02-15 18:47:37,726[INFO]Hibernate连接池大小:20

无论如何,第一个作业从Oracle DB成功获取数据后,第二个作业无法从池获取连接,因为它已关闭:

配置文件如下所示:persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- Persistence deployment descriptor for dev profile -->
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
    version="1.0">
    
    <persistence-unit name="jpaCcmwsWebJob">

        <provider>org.hibernate.ejb.HibernatePersistence</provider>

<!--                        RAZVOJ                               -->

        <properties>

            <property name="hibernate.connection.url" value="jdbc:oracle:thin:@10.129.12.158:1520:orcl" />

            <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />

            <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver" />

            <property name="hibernate.connection.password" value="docadmin2010" />

            <property name="hibernate.connection.username" value="docadmin" />

            <property name="hibernate.show_sql" value="false" />
            

            
            <property name="hibernate.c3p0.acquire_increment" value="1" />
            <property name="hibernate.c3p0.min_size" value="10" />
          <property name="hibernate.c3p0.max_size" value="20" />
          <property name="hibernate.c3p0.timeout" value="300" />
          <property name="hibernate.c3p0.max_statements" value="50" />
          <property name="hibernate.connection.provider_class" value="org.hibernate.connection.C3P0ConnectionProvider" />
          <property name="hibernate.c3p0.idle_test_period" value="3000" />

        </properties>

    </persistence-unit>

</persistence>

Oracle连接类型是基本的。

知道我做错了什么吗?

共有1个答案

卢英叡
2023-03-14

那是老的冬眠版本。

Hibernate的依赖项是C3P0和C3P0?

从另一篇文章中检查,似乎c3p0的连接提供程序类是org.hibernate.connection.c3p0,但后来不推荐使用org.hibernate.connection.c3P0ConnectionProvider

Hibernate连接池

 类似资料:
  • 无法使用C3P0创建Hibernate-JPA连接池。面对以下错误日志: 请求请提供一个解决方案如何创建连接池使用JPA在KARAF。

  • 问题内容: 对于J2EE容器 之外 的Java应用程序,哪个连接池库是最好的? 我听说c3p0已经过时了。 雅加达的公共池库已不再开发 因此,我只剩下BoneCP和DBPool了。从我可以看出,两者活动有限。我可以看到的主要区别是性能,BoneCP似乎可以与之抗衡。但是,文档非常薄弱。 您在现实世界中使用了哪个数据库池库,为什么?好的和坏的是什么? 问题答案: 在工作中,我们使用了BoneCP(作

  • 我正在使用spring hibernate开发一个应用程序,如果我使用的是199.892.2.345这样的数据库,我就可以连接到该数据库并执行cud操作,但是如果我将其更改为spring config中的Vinayaka.cloudapp.net,111这样的云数据库,我会得到下面的错误,下面是我正在使用的spring config文件, 错误

  • 嘿,我正在使用Glassfish开源v4,我遇到了一个奇怪的问题。 我在管理控制台中定义了到Oracle 11g的JDBC连接池,并设置了: 初始和最小池大小:500 最大游泳池大小:1000 池大小调整数量::750 我已经为这个连接池创建了一个特定的用户。然而,有时当我检查数据库中打开的连接时,我发现有1000多个连接(我看到的最大连接数是1440个) 当发生这种情况时,任何查询尝试都会失败,

  • 问题内容: 要指定SQLite连接属性,请使用org.sqlite.SQLiteConfig,它的内容如下: 使用c3p0创建连接池的过程如下: 问题:如何创建结合了两者的数据源,让我设置诸如连接池的最大池大小和sqlite的同步模式之类的东西? 问题答案: 尝试 现在,数据源将是c3p0 PooledDataSource,它包装了已根据需要配置的SQLite未池化数据源。 请参阅C3P0的文档,

  • 我有一个spring boot(2.4)应用程序,在长时间运行的jpa事务下,我看到很多连接超过了我的最大池大小,当我检查日志时,我看到连接被省略了,在新的HikariPools 2-3-4等之后。。。都打开了。我试过hikari 4.0。2个版本,但仍然是相同的问题。在这个场景中,给出最大池大小的含义是什么(每个池看起来都是我的最大池大小,但总连接数超过了我的限制)。是否有限制期初池数的配置?我