【发布时间】:2017-10-20 21:07:35
【问题描述】:
我在 Jetty 9.2 上运行了 java 应用程序。两者都使用相同版本的 Jetty。索引器在应用程序部署后第一次启动时运行。我在 Netbeans 中的 Windows 10 开发盒上没有任何问题。当我把它放在 Linux 机器上时它不起作用,我只有 SSH 访问和有限的权限。
java 代码,Person 类首先运行,Organization 类次之。都在同一个休眠会话中
public static void reindexViaMassIndexer(Class<?> type, SessionFactory factory) {
Session session = factory.getCurrentSession();
FullTextSession fullTextSession = Search.getFullTextSession(session);
MassIndexerProgressMonitor monitor = new SimpleIndexingProgressMonitor();
try {
fullTextSession
.createIndexer(type)
.typesToIndexInParallel(1)
.batchSizeToLoadObjects(BATCH_SIZE)
.cacheMode(CacheMode.NORMAL)
.threadsToLoadObjects(10)
.idFetchSize(BATCH_SIZE)
.progressMonitor(monitor)
.startAndWait();
} catch (InterruptedException ex) {
Logger.getLogger(HibernateLuceneIndexer.class.getName()).log(Level.SEVERE, null, ex);
}
}
Pom 文件
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search-orm</artifactId>
<version>5.2.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>4.3.9.Final</version>
</dependency>
错误输出
17:48:00,188 ERROR LogErrorHandler:67 - HSEARCH000058: Exception occurred org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@/tmp/cyberdex_files/org.vtarc.CyberConnections.backend.entity.Organization/write.lock: java.nio.channels.OverlappingFileLockException
Primary Failure:
Entity org.vtarc.CyberConnections.backend.entity.Organization Id null Work Type org.hibernate.search.backend.PurgeAllLuceneWork
org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@/tmp/cyberdex_files/org.vtarc.CyberConnections.backend.entity.Organization/write.lock: java.nio.channels.OverlappingFileLockException
at org.apache.lucene.store.Lock.obtain(Lock.java:89)
at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:755)
at org.hibernate.search.backend.impl.lucene.IndexWriterHolder.createNewIndexWriter(IndexWriterHolder.java:131)
at org.hibernate.search.backend.impl.lucene.IndexWriterHolder.getIndexWriter(IndexWriterHolder.java:97)
at org.hibernate.search.backend.impl.lucene.AbstractWorkspaceImpl.getIndexWriter(AbstractWorkspaceImpl.java:112)
at org.hibernate.search.backend.impl.lucene.LuceneBackendQueueTask.applyUpdates(LuceneBackendQueueTask.java:81)
at org.hibernate.search.backend.impl.lucene.LuceneBackendQueueTask.run(LuceneBackendQueueTask.java:47)
at org.hibernate.search.backend.impl.lucene.SyncWorkProcessor$Consumer.applyChangesets(SyncWorkProcessor.java:145)
at org.hibernate.search.backend.impl.lucene.SyncWorkProcessor$Consumer.run(SyncWorkProcessor.java:135)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.nio.channels.OverlappingFileLockException
at sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255)
at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152)
at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:1108)
at java.nio.channels.FileChannel.tryLock(FileChannel.java:1155)
at org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:169)
at org.apache.lucene.store.Lock.obtain(Lock.java:96)
... 9 more
人员索引成功,组织失败。注意父目录也是jetty:jetty (user:group)。
[jetty@server org.vtarc.CyberConnections.backend.entity.Person]$ ls -l
-rw-r-----. 1 jetty jetty 1844 Oct 20 18:43 _9.fdt
-rw-r-----. 1 jetty jetty 67 Oct 20 18:43 _9.fdx
-rw-r-----. 1 jetty jetty 1310 Oct 20 18:43 _9.fnm
-rw-r-----. 1 jetty jetty 3687 Oct 20 18:43 _9_Lucene41_0.doc
-rw-r-----. 1 jetty jetty 4310 Oct 20 18:43 _9_Lucene41_0.pos
-rw-r-----. 1 jetty jetty 20500 Oct 20 18:43 _9_Lucene41_0.tim
-rw-r-----. 1 jetty jetty 576 Oct 20 18:43 _9_Lucene41_0.tip
-rw-r-----. 1 jetty jetty 1530 Oct 20 18:43 _9.nvd
-rw-r-----. 1 jetty jetty 171 Oct 20 18:43 _9.nvm
-rw-r-----. 1 jetty jetty 386 Oct 20 18:43 _9.si
-rw-r-----. 1 jetty jetty 102 Oct 20 18:43 segments_a
-rw-r-----. 1 jetty jetty 36 Oct 20 18:43 segments.gen
-rw-r-----. 1 jetty jetty 0 Oct 20 14:31 write.lock
[jetty@server org.vtarc.CyberConnections.backend.entity.Person]$ cd ../org.vtarc.CyberConnections.backend.entity.Organization/
[jetty@server org.vtarc.CyberConnections.backend.entity.Organization]$ ls -l
-rw-r-----. 1 jetty jetty 53 Oct 20 15:40 segments_5
-rw-r-----. 1 jetty jetty 36 Oct 20 15:40 segments.gen
-rw-r-----. 1 jetty jetty 0 Oct 20 14:31 write.lock
还需要什么吗?
【问题讨论】:
标签: linux windows lucene hibernate-search