挂起许多(90)实体类的Hibernate-Search。
我正在使用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 ....) 在最后一行之后,它不做任何事情(没有跟踪),只是挂起....
你需要给我们更多的信息。你可以采取thread dump并显示日志的最后几行吗?
这有可能是两种: - 你的实体之一是冒充的问题 - 一些锁或文件挂(您正在使用该操作系统的一些限制文件并行开的号码是多少?)
为后来的如果在Linux或UNIX,你可以尝试用
ulimit -n <number>
另外,请确保您从时间索引优化时间(检查Hibernate Search的裁判DOC)玩。
我已更新我的问题。请查找hbernate日志跟踪 – KCore 2010-03-31 11:08:29
并且线程转储?看起来你的虚拟机可能会变得怪异。 – 2010-04-01 16:42:06
确定hibernaterecognized不是来自任何Hibernate块的日志 – 2010-04-01 16:44:44
我发现了这个问题。我没有注释我的超类。我有一个类,它几乎是我所有其他模型类的基类。 但奇怪的是,冬眠搜索没有给出任何错误或警告...... 我试图找到它挂在哪里。 我在一个单独的线程中构建了sessionfactory,并且每10个奇数秒打印一次线程的踪迹。 令我惊讶的是,它实际上并没有挂起,但栈跟踪发生了变化,而且它始终在annotaion反射包类中。
只是为了检查,我看到了我的超类和注解它,瞧......它的工作......
@Emmanuel伯纳德你能不能确定为什么Hibernate Search的不提供任何痕迹或错误之前,只是绞死?
你尝试过50个班,它工作。你有没有尝试过50人以确保它不是导致问题的某个特定班级? – 2010-03-30 07:40:39
我已更新我的问题。请查找hbernate日志跟踪 – KCore 2010-03-31 11:08:08