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

wildfly-SWARM中使用postgresql的连接池

丌官子安
2023-03-14

我使用postgres、wildfly-swarm、hibernate,我的事务是bean管理的。

my Project-defaults.yml datasources:data-sources:part

 Adadawdadsa:
   driver-name: postgresql
   connection-url: dadadasdadas
   user-name: aawdwaasda
   password: waddsawdas
   jta: true
   use-java-context: true
   pool-name: awdasdadwaadads
   min-pool-size: 10
   initial-pool-size: 15
   max-pool-size: 40
   pool-prefill: false
   validate-on-match: true
   use-fast-fail: false
   connection-checker-class-name: org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker
   check-valid-connection-sql: "SELECT 1;"
   exception-sorter-class-name: org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter
   connection-properties: CharacterEncoding/ UTF-8 UseUnicode/true

在模拟应用程序和postgres之间的连接丢失(关闭DB、iptables丢弃数据包等,然后执行一些请求,然后再次启动DB或清除iptables丢弃规则)后,DB已启动,但Hibernate/Swarm无法再找到连接...有人能告诉我我做错了什么吗?

编辑:添加堆栈跟踪

null

编辑:添加了persistence.xml

<persistence-unit transaction-type="JTA" name="dadsadsadsa">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <jta-data-source>java:jboss/datasources/dadsadsadsaas</jta-data-source>
    <properties>
        <property name="hibernate.show_sql" value="false"/>
        <property name="hibernate.id.new_generator_mappings" value="false"/>

        <property name="db.migration.action" value="validate-migrate"/>
        <property name="db.migration.sql.prefix" value="adadsadsadsa-"/>
    </properties>
</persistence-unit>

共有1个答案

詹斌蔚
2023-03-14

Hibernate的内部连接池算法是初步的,是为开发和测试目的提供的。使用第三方池以获得最佳性能和稳定性。

要了解更多详细信息,请参阅有关连接池的参考资料。我发现它有用。

-

>

  • 获取Hibernate-C3P0.jar
    要将c3p0与Hibernate集成,需要从JBoss存储库获取Hibernate-C3P0.jar。pom.xml

    null

    JBoss存储库http://repository.JBoss.org/nexus/content/groups/public/

    null

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.6.3.Final</version>
    </dependency>
    
    <!-- Hibernate c3p0 connection pool -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-c3p0</artifactId>
        <version>3.6.3.Final</version>
    </dependency>
    

    配置c3p0属性配置c3p0,将c3p0配置详细信息放在“persistence.xml”中,如下所示:

    ...
    <properties>
      <!-- Configuring JDBC properties -->
      <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/jpa_example" />
      <property name="javax.persistence.jdbc.user" value="root" />
      <property name="javax.persistence.jdbc.password" value="my_root_password" />
      <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
    
      <!-- Hibernate properties -->
      <property name="hibernate.show_sql" value="true" />
      <property name="hibernate.format_sql" value="true" />
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
      <property name="hibernate.hbm2ddl.auto" value="validate" />
    
      <!-- Configuring Connection Pool -->
      <property name="hibernate.c3p0.min_size" value="5" />
      <property name="hibernate.c3p0.max_size" value="20" />
      <property name="hibernate.c3p0.timeout" value="500" />
      <property name="hibernate.c3p0.max_statements" value="50" />
      <property name="hibernate.c3p0.idle_test_period" value="2000" />
    </properties>
    

    也许C3P0-JDBC3连接和语句池引用也会有帮助。

  •  类似资料:
    • 为了设置群容器,我使用以下project-defaults.xml: pom的相关部分如下所示: 测试MDB非常简单: null 但是,基本原因是相同的(未找到依赖项)。我的解释是,maven插件在调用中添加了一个额外的层,该层记录额外的stacktrace,但问题仍然是一样的。

    • 我有一个Spring Boot应用程序(版本2.1.1),使用Postgresql 9.6作为数据库。我必须使用sslmode=verify ca通过SSL连接到db。到目前为止,我所做的是在申请表中设置。属性文件属性 有没有办法在其他一些Spring属性中指定ssl属性而不是在连接url中? 此外,还可以为证书指定相对路径,而不是使用绝对路径?

    • 那么有什么方法可以在JBoss中获得多个用户连接池呢?

    • 问题内容: 我有一个像这样构造的表: 我想查询此表以得到这样的结果: 我想不出办法。那可能吗 ?如何 ? 非常感谢你。 问题答案: 这是Postgres内置的,因为有几个版本,因此您不再需要定义自己的名称,名称为。 (这是Postgres 8.4.8)。 请注意,未指定no ,因此结果行的顺序取决于所使用的分组方法(此处为哈希),即未定义。例子: 现在,我不知道为什么会收到和,因为应该按顺序发送行

    • 我正在尝试使用WildFly Swarm构建一个web应用程序服务器,并且应用程序必须能够在内部运行另一个Java程序(我不想将其作为外部进程运行)。我试图将外部程序作为.jar依赖项包含到我的web应用程序中,但是,wildfly-swarm-package任务总是失败,原因如下: 作为一个实验,我尝试清空libs文件夹,但错误仍然存在。 谢谢,卢卡斯

    • 我正在使用带有PostgreSQL数据库服务器的桌面应用程序。当我连续10到20分钟不使用应用程序时,数据库连接会断开。我正在使用PostgresqlJDBC进行数据库连接。 请帮我在这个数据库连接超时。 谢谢