Hibernate-Search appeso con molte (90) classi di entità.
-
23-09-2019 - |
Domanda
Sto usando Hibernate di ricerca per la mia applicazione. E 'ben configurato e funziona perfettamente fino a qualche tempo fa, quando ha smesso di funzionare improvvisamente. Il motivo secondo me è il numero del mio modello (di semi) classi. Ho circa 90 classi, che aggiungo alla mia configurazione, mentre la costruzione di mia Hibernate configurazione.
Quando ho Disable Search Hibernate (rimuovere le annotazioni di ricerca e l'uso di configurazione, invece di AnnotationsConfiguration), cerco di iniziare la mia domanda, funziona benissimo.
Ma, la stessa applicazione quando abilito di ricerca, appena riaggancia. Ho provato il debug e trovato il luogo esatto in cui si blocca.
Dopo aver aggiunto tutta la classe di mio oggetto AnnotationsConfiguration, quando dico cfg.buildSessionfactory (), Non è mai esce da questa affermazione. (Ho aspettato per ore !!!)
Anche quando ho diminuire il numero delle mie classi del modello (come dire a metà cioè 50) viene fuori di questa dichiarazione e l'applicazione funziona bene ..
Qualcuno può dire perché sta succedendo questo ?? Le mie versioni di Hibernate sono: hibernate-core-3.3.1.GA.jar hibernate-annotazioni-3.4.0.GA.jar hibernate-Commons-annotazioni-3.1.0.GA.jar hibernate-search-3.1.0.GA.jar
Anche se necessità di evitare l'uso di AnnotationsConfiguration, ho letto che ho bisogno di configurare gli ascoltatori di ricerca di eventi in modo esplicito .. chiunque può elencare tutti gli ascoltatori necessari e le loro rispettive classi? (Ho provato quelli standard indicati nella Hibernate ricerca libri, ma mi danno eccezione ClassNotFound e ho tutte le librerie neccesarty in classpath)
Qui ci sono le ultime righe di traccia Hibernate sono riuscito a tirare:
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 ciò che l'ultima riga indica ??? (Hibernaterecognized ....) Dopo l'ultima riga che pretende molto fare nulla (nessuna traccia troppo) e si blocca solo ....
Nessuna soluzione corretta
Altri suggerimenti
Sarà necessario darci più informazioni. Si può prendere un discarica filo e visualizzare le ultime righe del vostro log ?
E 'possibile che sia: - uno di vostra entità sta proponendo problema - un po 'di blocco o il file è appesa (quale sistema operativo stai usando un po' di limitare il numero di file aperti in parallelo?)
Per il seguito, se su Linux o UNIX, è possibile provare a giocare con il
ulimit -n <number>
Inoltre, assicurarsi di eseguire l'ottimizzatore indice di tanto in tanto (controllare la Hibernate Search ref doc).
ho scoperto il problema. Non avevo annotato i miei piano.Vorrei eccellenti hanno una sola classe che è la classe base per quasi tutte le mie altre classi del modello. Ma è strano che la ricerca di ibernazione non ha dato errori né avvisi ... Ho provato un trucco per trovare dove in realtà era appeso. Ho costruito la SessionFactory in un thread separato e stampato traccia del thread ogni 10 secondi dispari. Con mia grande sorpresa che in realtà non appendere, ma lo stacktrace stava cambiando, ed è sempre stato in annotaion classi del pacchetto di riflessione.
Proprio per controllare, ho visto la mia classe super e annotato, e voilà ...... ha funzionato ......
@Emmanuel Bernard: Si può solo confermare il motivo per cui ha ibernazione non di ricerca danno alcuna traccia o errore di prima e subito impiccato ??