0

私たちのプロジェクトでは、Spring と Hibernate を使用しています。サーバーと他の開発者のマシンで、プロジェクトが正常に実行されます。しかし、SVN でプロジェクトを更新した後、ダウンしているエラー リストが表示され、2 日間解決できませんでした。私はそれについて多くの記事を読みましたが、試してみましたが、問題は解決しません。プロジェクトを完全に削除して再度チェックアウトし、DBを復元しましたが、何も変わりませんでした。MySqlがチェックされ、機能している、

エラーは次のとおりです。

Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
2013-01-16 04:36:22,512 ERROR [org.hibernate.tool.hbm2ddl.SchemaValidator] - could not complete schema validation
java.sql.SQLException: Connections could not be acquired from the underlying database!
...
2013-01-16 04:36:22,526 WARN [net.sf.ehcache.hibernate.AbstractEhcacheRegionFactory] - Couldn't find a specific ehcache configuration for cache named [org.hibernate.cache.StandardQueryCache]; using defaults.
2013-01-16 04:36:33,475 WARN [com.mchange.v2.async.ThreadPoolAsynchronousRunner] - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@10dba0d -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
2013-01-16 04:36:33,476 WARN [com.mchange.v2.async.ThreadPoolAsynchronousRunner] - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@10dba0d -- APPARENT DEADLOCK!!! Complete Status:
    Managed Threads: 1
Active Threads: 1
Active Tasks: 
    com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@3128482b (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
Pending Tasks: 
    com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@4b9a1843
Pool thread stack traces:
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]
    java.lang.Thread.sleep(Native Method)
    com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
    com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
2013-01-16 04:36:51,878 WARN [com.mchange.v2.resourcepool.BasicResourcePool] - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@3128482b -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: 
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(DriverManager.java:264)
at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:223)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)

これが Hiernate > c3p0 conf です

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="jdbcUrl" value="${jdbc.url}" />
    <property name="user" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
    <property name="initialPoolSize" value="1" />
    <property name="minPoolSize" value="1" />
    <property name="maxPoolSize" value="5" />
    <property name="idleConnectionTestPeriod" value="500" />
    <property name="acquireIncrement" value="1" />
    <property name="maxStatements" value="50" /> <!-- I tried this value = 0 it does not work -->
    <property name="numHelperThreads" value="1" />
</bean>

DB.プロパティ

hibernate.hbm2ddl.auto=validate
hibernate.hbm2ddl.import_files=/import_standard.sql
hibernate.show_sql=false
hibernate.format_sql=true
hibernate.generate_statistics=false
hibernate.use_sql_comments=true
hibernate.query.factory_class=org.hibernate.hql.ast.ASTQueryTranslatorFactory
hibernate.cache.use_query_cache=true
hibernate.cache.region.factory_class=net.sf.ehcache.hibernate.SingletonEhCacheRegionFactor
hibernate.cache.use_second_level_cache=true

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/asd?autoReconnect=true
jdbc.username=asd
jdbc.password=asdasd

hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

Ehcahce.xml

<?xml version="1.0" encoding="UTF-8"?>

<cache
    name="org.hibernate.cache.UpdateTimestampsCache"
    maxElementsInMemory="50000"
    eternal="true"
    overflowToDisk="true"/>

<defaultCache
    maxElementsInMemory="10000"
    eternal="false"
    timeToIdleSeconds="120"
    timeToLiveSeconds="120"
    overflowToDisk="true"
    maxElementsOnDisk="10000000"
    diskPersistent="false"
    diskExpiryThreadIntervalSeconds="120"
    memoryStoreEvictionPolicy="LRU"/>

<cache
    name="ncStandardElements"
    maxElementsInMemory="100000"
    eternal="false"
    overflowToDisk="true"
    timeToLiveSeconds="600"/>

<cache
    name="ncOrderElements"
    maxElementsInMemory="100000"
    eternal="false"
    overflowToDisk="true"
    timeToLiveSeconds="60"/>

<cache
    name="ncAdminElements"
    maxElementsInMemory="100000"
    eternal="false"
    overflowToDisk="true"
    timeToLiveSeconds="60"/>

記事を読んでいるように、私はSpringとHibernateの初心者です。これらのコードブロックは重要であり、管理する必要があります。他のコード ブロックが必要な場合は、コメントしてください。

4

1 に答える 1

2

次の行を dataSource Bean に入れる必要があります

<property name="driverClass" value="${jdbc.driverClassName}" />
于 2013-01-16T11:27:36.983 に答える