2010-03-30 46 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的不提供任何痕迹或错误之前,只是绞死?