大问题 compass 重建索引出错 (100万数据)
环境:TOMCAT5.0.28 jdk1.5
数据库:mysql5.0.23
索引大小:400多M
语言:java
问题描述:
重建索引的时候,临时索引可以生成,大约400多M,但是在进行覆盖的时候就报一下错误,请大家帮忙解决或提供下建议,比如生
成索引的策略什么的。现在是最后提交的时候不成功。
Exception in thread "Compass Indexer" org.compass.gps.CompassGpsException: Failed to index, execution exception; nested exception
is java.util.concurrent.ExecutionException: org.compass.core.transaction.TransactionException: Commit failed; nested exception is
org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibern
ate.TransactionException: JDBC commit failed
java.util.concurrent.ExecutionException: org.compass.core.transaction.TransactionException: Commit failed; nested exception is org
.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate
.TransactionException: JDBC commit failed
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:205)
at java.util.concurrent.FutureTask.get(FutureTask.java:80)
at org.compass.gps.device.support.parallel.ConcurrentParallelIndexExecutor.performIndex(ConcurrentParallelIndexExecutor.ja
va:122)
at org.compass.gps.device.support.parallel.AbstractParallelGpsDevice.index(AbstractParallelGpsDevice.java:119)
at org.compass.gps.impl.DefaultReplaceIndexCallback.buildIndexIfNeeded(DefaultReplaceIndexCallback.java:42)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager$ReplaceIndexOperationCallback.firstStep(De
faultLuceneSearchEngineIndexManager.java:281)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.doOperate(DefaultLuceneSearchEngineIndexMa
nager.java:218)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.doReplaceIndex(DefaultLuceneSearchEngineIn
dexManager.java:266)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.replaceIndex(DefaultLuceneSearchEngineInde
xManager.java:261)
at org.compass.gps.impl.SingleCompassGps.doIndex(SingleCompassGps.java:118)
at org.compass.gps.impl.AbstractCompassGps.index(AbstractCompassGps.java:154)
at org.compass.gps.impl.AbstractCompassGps.index(AbstractCompassGps.java:128)
at com.aebiz.plugin.search.compass.index.CompassIndexBuilder$1.run(CompassIndexBuilder.java:162)
Caused by: org.compass.core.transaction.TransactionException: Commit failed; nested exception is org.springframework.transaction.T
ransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC co
mmit failed
at org.compass.spring.transaction.SpringSyncTransaction.doCommit(SpringSyncTransaction.java:139)
at org.compass.core.transaction.AbstractTransaction.commit(AbstractTransaction.java:46)
at org.compass.core.CompassTemplate.execute(CompassTemplate.java:134)
at org.compass.gps.impl.SingleCompassGps.executeForIndex(SingleCompassGps.java:147)
at org.compass.gps.device.support.parallel.ConcurrentParallelIndexExecutor$1.call(ConcurrentParallelIndexExecutor.java:102
)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
at java.util.concurrent.FutureTask.run(FutureTask.java:123)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is
org.hibernate.TransactionException: JDBC commit failed
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:659)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionMan
ager.java:732)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.ja
va:701)
at org.compass.spring.transaction.SpringSyncTransaction.doCommit(SpringSyncTransaction.java:135)
... 9 more
Caused by: org.hibernate.TransactionException: JDBC commit failed
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:130)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:655)
... 12 more
Caused by: java.sql.SQLException: Couldn't perform the operation commit: You can't perform any operations on this connection. It h
as been automatically closed by Proxool for some reason (see logs).
at org.logicalcobwebs.proxool.WrappedConnection.invoke(WrappedConnection.java:207)
at org.logicalcobwebs.proxool.WrappedConnection.intercept(WrappedConnection.java:87)
at $java.sql.Connection$$EnhancerByProxool$$4b5e947f.commit(<generated>)
at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:139)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115)
... 13 more