Frage

Ich benutze Hibernate -Suche nach meiner Anwendung. Es ist gut konfiguriert und läuft perfekt bis vor einiger Zeit, als es plötzlich aufhörte zu arbeiten. Der Grund, warum ich die Anzahl meines Modells (Bean) als Bean -Klassen bin. Ich habe einige 90 Klassen, die ich zu meiner Konfiguration hinzufüge, während ich meine Hibernate -Konfiguration erstelle.

Wenn ich die Suche in der Hibernate -Suche deaktiviere (die Suchanmerkungen entfernen und die Konfiguration anstelle von Anmerkungen verwenden), versuche ich, meine Anwendung zu starten, es funktioniert einwandfrei.

Aber die gleiche App, wenn ich die Suche aktiviere, hängt sie einfach auf. Ich versuchte zu debuggen und fand genau den Ort, an dem es hängt.

Nachdem ich die gesamte Klasse zu meinem Anmerkungskonfigurationsobjekt hinzugefügt habe, kommt es nie aus dieser Aussage, wenn ich sage, dass CFG.BuildSessionFactory () nicht ausgeht. (Ich habe stundenlang gewartet !!!)

Auch wenn ich die Anzahl meiner Modellklassen verringere (wie zum halben IE 50), kommt es aus dieser Aussage und die Anwendung funktioniert einwandfrei.

Kann jemand sagen, warum das passiert? Meine Versionen von Hibernate sind: Hibernate-Core-3.3.1.ga.jar Hibernate-Annotations-Annotationen-0.0.ga.jar Hibernate-commons-Annotations-3.1.0.ga.jar Hibernate-Search-3.1.0.ga .Krug

Auch wenn es vermeiden muss, Anmerkungen zu verwenden, habe ich gelesen, dass ich die Suchereignishörer explizit konfigurieren muss. Kann jemand alle neccessary -Hörer und ihre jeweiligen Klassen auflisten? (Ich habe die Standards in Hibernate -Suchbüchern ausprobiert, aber sie geben mir eine Ausnahme von Classnotfound und ich habe alle Neccesarty -Bibliotheken im Klassenpfad)

Hier sind die letzten Zeilen von Hibernate Trace, die ich zu ziehen habe:

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

Donno, was die letzte Zeile anzeigt ??? (Hibernatere erfasst ....) Nach der letzten Zeile macht es nichts (keine Spur) und hängt nur ....

Keine korrekte Lösung

Andere Tipps

Sie müssen uns weitere Informationen geben. Kannst du eine nehmen? Thread Dump Und zeigen Sie die letzten Zeilen Ihrer Protokolle?

Es ist möglich, dass entweder: - eines Ihrer Entität ein Problem darstellt - eine Sperre oder Datei hängt (welches Betriebssystem verwenden Sie? Einige begrenzen die Anzahl der parallel geöffneten Dateien).

Zum späteren, wenn es unter Linux oder Unix ist, können Sie versuchen, mit zu spielen

ulimit -n <number>

Stellen Sie außerdem sicher, dass Sie den Indexoptimierer von Zeit zu Zeit ausführen (überprüfen Sie den Hibernate Search Ref Doc).

Ich fand das Problem heraus. Ich hatte meine Superklasse nicht kommentiert. Ich habe eine einzelne Klasse, die die Basisklasse für fast alle meine anderen Modellklassen ist. Aber es ist seltsam, dass Hibernate -Suche weder Fehler noch Warnungen gab ... Ich habe einen Trick versucht, um herauszufinden, wo es tatsächlich hing. Ich habe das SessionFactory in einem separaten Thread erstellt und die Spur des Threads alle 10 ungeraden Sekunden gedruckt. Zu meiner Überraschung hing es tatsächlich nicht, aber die Stacktrace änderte sich und es war immer in Annotaion Reflection Paket -Paket.

Nur um es zu überprüfen, ich habe meine Superklasse gesehen und sie kommentierte und voila ...... es hat funktioniert ......

@Emmanuel Bernard: Können Sie nur bestätigen, warum die Suche in Hibernate keine Spuren oder Fehler gegeben hat und nur gehängt hat?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top