大问题 compass 重建索引出错 (100万数据)

lyw_988 2010-04-30 03:42:27
环境: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
...全文
276 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
骇客2003 2011-06-28
  • 打赏
  • 举报
回复
呵呵呵呵呵
lyw_988 2010-05-04
  • 打赏
  • 举报
回复
问题已经解决,原因可能是一次提交太多数据了,可以把数据拆分开来之后分多次批量提交。

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧