Hibernate-Search, висящий со многими (90) классами сущностей.

StackOverflow https://stackoverflow.com/questions/2543276

  •  23-09-2019
  •  | 
  •  

Вопрос

Я использую Hibernate Search для моего приложения. Он хорошо настроен и работает идеально до некоторое время назад, когда он внезапно перестал работать. Причина, по моему мнению, я являюсь числом моих модельных (бобовых) классов. У меня есть около 90 классов, которые я добавляю в свою конфигурацию, при создании конфигурации Hibernate.

Когда я отключаю поиск Hibernate (удалите аннотации поиска и использую конфигурацию вместо аннотаций), я стараюсь запустить свое приложение, он работает нормально.

Но, то же приложение, когда я включаю поиск, оно просто вешает трубку. Я попытался отлаживать и нашел точное место, где оно висит.

После добавления всего класса в мой объект 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 .банка

Кроме того, если необходимо избежать использования AnnotationsConfiguration, я прочитал, что мне нужно явно настроить слушателей событий поиска ... может ли кто -нибудь перечислить все необходимые слушатели и их соответствующие классы? (Я попробовал стандартные, приведенные в поисковых книгах Hibernate, но они дают мне исключение в классе, и у меня есть все Libs в Classpath)

Вот последние несколько строк спящего следов, которые мне удалось вытащить:

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

Донно, что указывает последняя строка ??? (Hibernate -Rocision ....) После последней строки она ничего не делает (тоже без следа) и просто висит ....

Нет правильного решения

Другие советы

Вам нужно будет дать нам больше информации. Вы можете взять резьба свалки И покажите последние несколько строк ваших журналов?

Возможно, что либо: - одна из ваших объектов создает проблему - какая -то блокировка или файл висят (какую ОС используете? Некоторое ограничение количества файлов, открытых параллельно)

Позднее, если на Linux или Unix вы можете попытаться поиграть с

ulimit -n <number>

Также убедитесь, что вы время от времени запускаете оптимизатор индекса (проверьте Hibernate Search Ref Doc).

Я узнал проблему. Я не аннотировал свой Super Class. У меня есть один класс, который является базовым классом почти для всех других моих модельных классов. Но странно, что поиск Hibernate не дал никаких ошибок и предупреждений ... Я попытался найти, где на самом деле он висел. Я построил SessionFactory в отдельной потоке и напечатал трассировку потока каждые 10 нечетных секундов. К моему удивлению, это на самом деле не висило, но Stacktrace менялась, и она всегда была в классах пакетов Annotaion отражения.

Просто чтобы проверить, я увидел свой супер класс и аннотировал его, и вуаля ... это сработало ......

@Emmanuel Bernard: Можете ли вы просто подтвердить, почему Hibernate Search не дал никаких трассировков или ошибок раньше и просто повесил ??

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top