2010-03-30 121 views
2

我正在使用hibernate搜索我的應用程序。它配置良好,運行良好,直到一段時間後突然停止工作。 根據我是我的模型(bean)類的數量的原因。 我有大約90個類,我添加到我的配置,而建立我的Hibernate配置。掛起許多(90)實體類的Hibernate-Search。

當我禁用hibernate搜索(刪除搜索註釋並使用Configuration而不是AnnotationsConfiguration)時,我嘗試啓動我的應用程序,它工作正常。

但是,同樣的應用程序,當我啓用搜索,它只是掛斷了。 我試過調試,發現它掛起的確切位置。

將所有類添加到我的AnnotationsConfiguration對象後,當我說cfg.buildSessionfactory(), 它永遠不會出現這種說法。 (我已經等了幾個小時!)

此外,當我縮小模型類的數量(如說一半,即50)談到了聲明和應用工作正常..

能有人告訴爲什麼會發生這種情況? 我的hibernate版本有: hibernate-core-3.3.1.GA.jar hibernate-annotations-3.4.0.GA.jar hibernate-commons-annotations-3.1.0.GA.jar hibernate-search- 3.1.0.GA.jar

此外,如果需要避免使用AnnotationsConfiguration,我讀,我需要顯式配置搜索事件偵聽器..任何人都可以列出所有必要的偵聽器和他們各自的類? (我試過在Hibernate Search的書給出的標準的,但他們給我ClassNotFound的異常,我在classpath中所有neccesarty庫)

這裏是休眠跟蹤的最後幾行,我設法拉:

16:09:32,814 INFO AnnotationConfiguration:369 - Hibernate Validator not found: ignoring 
16:09:32,892 INFO ConnectionProviderFactory:95 - Initializing connection provider: org.hibernate.connection.C3P0ConnectionProvider 
16:09:32,895 INFO C3P0ConnectionProvider:103 - C3P0 using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3306/autolinkcrmcom_data 
16:09:32,898 INFO C3P0ConnectionProvider:104 - Connection properties: {user=root, password=****} 
16:09:32,900 INFO C3P0ConnectionProvider:107 - autocommit mode: false 
16:09:33,694 INFO SettingsFactory:116 - RDBMS: MySQL, version: 5.1.37-1ubuntu5.1 
16:09:33,696 INFO SettingsFactory:117 - JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-3.1.10 ($Date: 2005/05/19 15:52:23 $, $Revision: 1.1.2.2 $) 
16:09:33,701 INFO Dialect:175 - Using dialect: org.hibernate.dialect.MySQLDialect 
16:09:33,707 INFO TransactionFactoryFactory:59 - Using default transaction strategy (direct JDBC transactions) 
16:09:33,709 INFO TransactionManagerLookupFactory:80 - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended) 
16:09:33,711 INFO SettingsFactory:170 - Automatic flush during beforeCompletion(): disabled 
16:09:33,714 INFO SettingsFactory:174 - Automatic session close at end of transaction: disabled 16:09:32,814 INFO AnnotationConfiguration:369 - Hibernate Validator not found: ignoring 
16:09:32,892 INFO ConnectionProviderFactory:95 - Initializing connection provider: org.hibernate.connection.C3P0ConnectionProvider 
16:09:32,895 INFO C3P0ConnectionProvider:103 - C3P0 using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3306/autolinkcrmcom_data 
16:09:32,898 INFO C3P0ConnectionProvider:104 - Connection properties: {user=root, password=****} 
16:09:32,900 INFO C3P0ConnectionProvider:107 - autocommit mode: false 
16:09:33,694 INFO SettingsFactory:116 - RDBMS: MySQL, version: 5.1.37-1ubuntu5.1 
16:09:33,696 INFO SettingsFactory:117 - JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-3.1.10 ($Date: 2005/05/19 15:52:23 $, $Revision: 1.1.2.2 $) 
16:09:33,701 INFO Dialect:175 - Using dialect: org.hibernate.dialect.MySQLDialect 
16:09:33,707 INFO TransactionFactoryFactory:59 - Using default transaction strategy (direct JDBC transactions) 
16:09:33,709 INFO TransactionManagerLookupFactory:80 - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended) 
16:09:33,711 INFO SettingsFactory:170 - Automatic flush during beforeCompletion(): disabled 
16:09:33,714 INFO SettingsFactory:174 - Automatic session close at end of transaction: disabled 
16:09:33,716 INFO SettingsFactory:181 - JDBC batch size: 15 
16:09:33,719 INFO SettingsFactory:184 - JDBC batch updates for versioned data: disabled 
16:09:33,721 INFO SettingsFactory:189 - Scrollable result sets: enabled 
16:09:33,723 DEBUG SettingsFactory:193 - Wrap result sets: disabled 
16:09:33,725 INFO SettingsFactory:197 - JDBC3 getGeneratedKeys(): enabled 
16:09:33,727 INFO SettingsFactory:205 - Connection release mode: auto 
16:09:33,730 INFO SettingsFactory:229 - Maximum outer join fetch depth: 2 
16:09:33,732 INFO SettingsFactory:232 - Default batch fetch size: 1000 
16:09:33,735 INFO SettingsFactory:236 - Generate SQL with comments: disabled 
16:09:33,737 INFO SettingsFactory:240 - Order SQL updates by primary key: disabled 
16:09:33,740 INFO SettingsFactory:244 - Order SQL inserts for batching: disabled 
16:09:33,742 INFO SettingsFactory:420 - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory 
16:09:33,744 INFO ASTQueryTranslatorFactory:47 - Using ASTQueryTranslatorFactory 
16:09:33,747 INFO SettingsFactory:252 - Query language substitutions: {} 
16:09:33,750 INFO SettingsFactory:257 - JPA-QL strict compliance: disabled 
16:09:33,752 INFO SettingsFactory:262 - Second-level cache: enabled 
16:09:33,754 INFO SettingsFactory:266 - Query cache: disabled 
16:09:33,757 INFO SettingsFactory:405 - Cache region factory : org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge 
16:09:33,759 INFO RegionFactoryCacheProviderBridge:61 - Cache provider: net.sf.ehcache.hibernate.EhCacheProvider 
16:09:33,762 INFO SettingsFactory:276 - Optimize cache for minimal puts: disabled 
16:09:33,764 INFO SettingsFactory:285 - Structured second-level cache entries: disabled 
16:09:33,766 INFO SettingsFactory:314 - Statistics: disabled 
16:09:33,769 INFO SettingsFactory:318 - Deleted entity synthetic identifier rollback: disabled 
16:09:33,771 INFO SettingsFactory:333 - Default entity-mode: pojo 
16:09:33,774 INFO SettingsFactory:337 - Named query checking : enabled 
16:09:33,869 INFO Version:20 - Hibernate Search 3.1.0.GA 
16:09:35,134 DEBUG DocumentBuilderIndexedEntity:157 - Field selection in projections is set to false for entity **com.xyz.abc**. 
recognized hibernaterecognized hibernaterecognized hibernaterecognized hibernaterecognized hibernaterecognized hibernaterecognized hibernaterecognized hibernaterecognized hibernaterecognized hibernateDocumentBuilderIndexedEntity 

不知道最後一行是什麼? (hibernaterecognized ....) 在最後一行之後,它不做任何事情(沒有跟蹤),只是掛起....

+0

你嘗試過50個班,它工作。你有沒有嘗試過50人以確保它不是導致問題的某個特定班級? – 2010-03-30 07:40:39

+0

我已更新我的問題。請查找hbernate日誌跟蹤 – KCore 2010-03-31 11:08:08

回答

0

你需要給我們更多的信息。你可以採取thread dump並顯示日誌的最後幾行嗎?

這有可能是兩種: - 你的實體之一是冒充的問題 - 一些鎖或文件掛(您正在使用該操作系統的一些限制文件並行開的號碼是多少?)

爲後來的如果在Linux或UNIX,你可以嘗試用

ulimit -n <number> 

另外,請確保您從時間索引優化時間(檢查Hibernate Search的裁判DOC)玩。

+0

我已更新我的問題。請查找hbernate日誌跟蹤 – KCore 2010-03-31 11:08:29

+0

並且線程轉儲?看起來你的虛擬機可能會變得怪異。 – 2010-04-01 16:42:06

+0

確定hibernaterecognized不是來自任何Hibernate塊的日誌 – 2010-04-01 16:44:44

0

我發現了這個問題。我沒有註釋我的超類。我有一個類,它幾乎是我所有其他模型類的基類。 但奇怪的是,冬眠搜索沒有給出任何錯誤或警告...... 我試圖找到它掛在哪裏。 我在一個單獨的線程中構建了sessionfactory,並且每10個奇數秒打印一次線程的蹤跡。 令我驚訝的是,它實際上並沒有掛起,但棧跟蹤發生了變化,而且它始終在annotaion反射包類中。

只是爲了檢查,我看到了我的超類和註解它,瞧......它的工作......

@Emmanuel伯納德你能不能確定爲什麼Hibernate Search的不提供任何痕跡或錯誤之前,只是絞死?