私はHibernate Searchにとても新しいので、それを自分のアプリケーションと統合しようとしています。 メモリリークの問題が発生しました(スレッドは待機/待機状態になります)。Hibernateの検索設定の問題
Hibernate検索構成(非常に最小限)はアノテーション駆動です。使い方:
@Indexed(index = "<index_name>")
@IndexedEmbedded
と
@Field(name = "title", store = Store.YES, analyzer = @Analyzer(definition = "standardAnalyzer")
のHibernate検索のプロパティを:
<property name="hibernate.search.default.indexBase" value="../lucene/indexes" />
<property name="hibernate.search.default.directory_provider" value="filesystem" />
<property name="hibernate.search.default.exclusive_index_use"
value="false" />
アプリケーションをデプロイするためにTomcat 8を使用しました。
私の主な問題は、
VisualVMのは明らかにHibernateの検索は、すべてのインデックスの同期消費者のスレッドを作成することを示しているということです。これは、私のサーバーに行うすべての呼び出し(つまり、私の場合、2つの新しいスレッドが生成され、すべての呼び出しで待機状態になります)のために実行されます。最終的には、サーバが応答しなくなるまでスレッド数が増えます。サーバーのシャットダウン時に
、私はエラーを取得:
09-Aug-2017 17:15:28.151 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [procurewise] appears to have started a thread named [Hibernate Search sync consumer thread for index Category] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:338) org.hibernate.search.backend.impl.lucene.SyncWorkProcessor.parkCurrentThread(SyncWorkProcessor.java:175) org.hibernate.search.backend.impl.lucene.SyncWorkProcessor.access$300(SyncWorkProcessor.java:35) org.hibernate.search.backend.impl.lucene.SyncWorkProcessor$Consumer.run(SyncWorkProcessor.java:147) java.lang.Thread.run(Thread.java:745)
私は春は、Hibernate、JPA、AOPとJAX-RS、ジャージーを使用しています。
環境詳細:
Hibernate version 5.2.10.Final
Hibernate Search version 5.7.0.Final
Spring version 4.3.6.RELEASE
JPA 2.1
JAVA 8
Jersey 1.8
これは無関係ですが、本当に必要な理由が分からない限り、 'hibernate.search.default.exclusive_index_use'を使用しないでください。本当に。また、どのバージョンのHibernate Searchを使用していますか? –
@YoannRodière。使用しているHibernate検索バージョンを追加しました。また、exclusive_index_useプロパティは、MassIndexerが複数のスレッドを生成すると仮定してロックの使用をやめようとする試みでした。しかし、指摘されている点。 –