gpt4 book ai didi

java - hibernate 启动很慢

转载 作者:太空狗 更新时间:2023-10-29 22:36:50 30 4
gpt4 key购买 nike

出于某种原因,我的 hibernate 应用程序的启动速度非常慢。 (最多 2 分钟)我一直认为 c3p0 配置完全错误 ( related question ) 但研究日志显示,在与服务器建立连接后没有任何 Activity 。此外,使用 Hibernate 的内置轮询功能显示相同的结果。

这是日志中的一个片段:

20:06:51,248 DEBUG BasicResourcePool:422 - decremented pending_acquires: 0
20:06:51,248 DEBUG BasicResourcePool:1644 - trace com.mchange.v2.resourcepool.BasicResourcePool@1acaf0ed [managed: 3, unused: 2, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@5f873eb2)
20:06:51,248 DEBUG BasicResourcePool:1644 - trace com.mchange.v2.resourcepool.BasicResourcePool@1acaf0ed [managed: 3, unused: 2, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@5f873eb2)
20:06:51,273 DEBUG JdbcServicesImpl:121 - Database ->
name : PostgreSQL
version : 9.1.6
major : 9
minor : 1
20:06:51,274 DEBUG JdbcServicesImpl:127 - Driver ->
name : PostgreSQL Native Driver
version : PostgreSQL 9.2 JDBC4 (build 1002)
major : 9
minor : 2
20:06:51,274 DEBUG JdbcServicesImpl:133 - JDBC version : 4.0 ##### HANGS FOR 2 MINUTES ON THIS LINE #####
20:08:14,727 INFO Dialect:123 - HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect
20:08:14,736 INFO LobCreatorBuilder:120 - HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
20:08:14,736 DEBUG GooGooStatementCache:297 - checkinAll(): com.mchange.v2.c3p0.stmt.GlobalMaxOnlyStatementCache stats -- total size: 0; checked out: 0; num connections: 0; num keys: 0
20:08:14,736 DEBUG GooGooStatementCache:297 - checkinAll(): com.mchange.v2.c3p0.stmt.GlobalMaxOnlyStatementCache stats -- total size: 0; checked out: 0; num connections: 0; num keys: 0
20:08:14,883 DEBUG BasicResourcePool:1644 - trace com.mchange.v2.resourcepool.BasicResourcePool@1acaf0ed [managed: 3, unused: 2, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@5f873eb2)
20:08:14,883 DEBUG BasicResourcePool:1644 - trace com.mchange.v2.resourcepool.BasicResourcePool@1acaf0ed [managed: 3, unused: 2, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@5f873eb2)
20:08:14,883 DEBUG GooGooStatementCache:297 - checkinAll(): com.mchange.v2.c3p0.stmt.GlobalMaxOnlyStatementCache stats -- total size: 0; checked out: 0; num connections: 0; num keys: 0

(请注意#comment#。)

我还尝试了一个较旧的 Postgres JDBC 驱动程序,但没有任何运气。

连接到本地数据库工作正常。连接立即建立,我可以查询数据库。这个远程数据库是一个 Heroku 开发实例。我也用另一个 Remote 试过。同样的结果。

我不知道我现在可以检查什么来摆脱这种烦恼。任何帮助将不胜感激。

也许我的 hibernate.cfg.xml 有帮助:

http://www.hibernate.org/dtd/hibernate-

configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="connection.url"/>
<property name="connection.default_schema"/>
<property name="connection.username"/>
<property name="connection.password"/>

<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<property name="current_session_context_class">thread</property>
<property name="hibernate.c3p0.acquire_increment">3</property>
<property name="hibernate.c3p0.min_size">3</property>
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.c3p0.acquireRetryDelay">500</property>

<property name="show_sql">true</property>
<property name="format_sql">false</property>

<property name="hbm2ddl.auto">validate</property>

<mapping class="core.entities.Exam" />
<mapping class="core.entities.Examination" />
...
</session-factory>
</hibernate-configuration>

编辑:我试图通过日志和分析找出延迟的原因,但一直没有成功。 (虽然我在这方面并不那么先进。)最后我确实尝试并失败并为远程 MySQL 实例更改了我的数据库以检查是否有任何差异发生。事实证明,连接几乎是立即建立的。

最佳答案

参见 Hibernate Slow to Acquire Postgres Connection

hibernate.temp.use_jdbc_metadata_defaults=false

避免在 SessionFactory 创建期间重新加载元数据。

关于java - hibernate 启动很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14445838/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com