Question

J'utilise la recherche de mise en veille prolongée pour mon application. Il est bien configuré et fonctionne parfaitement jusqu'à ce que il y a quelque temps, quand il a cessé de fonctionner soudainement. La raison selon moi étant le nombre de mes classes de modèle (haricot). J'ai quelques 90 classes, que j'ajouter à ma configuration, tout en construisant ma configuration Mise en veille prolongée.

Quand, je désactiver la recherche de mise en veille prolongée (supprimer les annotations de recherche et utiliser la configuration au lieu de AnnotationsConfiguration), je tente de démarrer ma demande, il fonctionne très bien.

Mais, la même application lorsque j'active la recherche, il se bloque juste vers le haut. J'ai essayé le débogage et trouvé l'endroit exact où il se bloque.

Après avoir ajouté toute la classe à mon objet AnnotationsConfiguration, quand je dis cfg.buildSessionFactory (), Il ne sort jamais de cette déclaration. (Je l'ai attendu pendant des heures !!!)

De même, lorsque je diminue le nombre de mes classes de modèle (comme, disons, à moitié dire 50), il sort de cette déclaration et l'application fonctionne très bien ..

Quelqu'un peut-il dire pourquoi est-ce qui se passe ?? Mes versions de mise en veille prolongée sont:   hiberner-core-3.3.1.GA.jar   hibernate-annotations-3.4.0.GA.jar   hibernate-commons-annotations-3.1.0.GA.jar   hibernate-recherche-3.1.0.GA.jar

Aussi, si besoin d'éviter d'utiliser AnnotationsConfiguration, je lis que je dois configurer les écouteurs d'événements de recherche explicitement .. peut-on lister tous les auditeurs neccessary et leurs classes respectives? (J'ai essayé les standards donnés dans les livres de recherche Hibernate, mais ils me donner exception ClassNotFound et j'ai tous les libs neccesarty dans classpath)

Voici les dernières lignes de trace de mise en veille prolongée, je réussi à tirer:

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 ce que la dernière ligne indique ??? (Hibernaterecognized ....) Après la dernière ligne, il ne marche pas rien (aucune trace aussi) et se bloque juste ....

Pas de solution correcte

Autres conseils

Vous aurez besoin de nous donner plus d'informations. Pouvez-vous prendre un et afficher les dernières lignes de vos journaux ?

Il est possible que ce soit:  - une de votre entité pose problème  - une serrure ou d'un fichier est suspendu (qui OS utilisez-vous une certaine limite le nombre de fichiers ouverts en parallèle?)

Pour plus tard, si sous Linux ou Unix, vous pouvez essayer de jouer avec

ulimit -n <number>

De plus, assurez-vous que vous exécutez l'optimiseur d'index de temps en temps (vérifier la mise en veille prolongée Rechercher ref doc).

J'ai trouvé le problème. Je ne l'avais pas annoté mon super class.I ont une seule classe qui est la classe de base pour presque tous mes autres classes de modèle. Mais il est étrange que la recherche de mise en veille prolongée n'a pas donné d'erreurs ni avertissements ... J'ai essayé un truc pour trouver où en réalité il a été suspendu. J'ai construit la SessionFactory dans un thread séparé et imprimé la trace de la discussion toutes les 10 secondes impaires. À ma grande surprise, il n'a pas fait pendre, mais le stacktrace changeait, et il a toujours été dans les classes de paquet de réflexion de annotaion.

Juste pour vérifier, j'ai vu ma super classe et annotés, et le tour est joué ...... ça a marché ......

@Emmanuel Bernard: Pouvez-vous confirmer pourquoi ne pas donner Hibernate Search aucune trace ou une erreur avant et juste pendu ??

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top