2016-12-30 4 views
0

Tout d'abord, laissez-moi vous remercier d'avance pour votre temps. Permettez-moi de vous présenter ma question:Effectuer une recherche JNDI lorsque la base de données est disponible au printemps

J'ai une application printanière avec une source de données "optionnelle", qui effectue la recherche jndi de manière "paresseuse" (lookupOnStartup: false). Logiquement, lorsque la source de données est nécessaire, le look jndi est terminé. Mais que s'est-il passé lorsque la recherche est effectuée par lazylie et que la base de données n'est pas disponible: JndiLookupFailureException est augmenté. Droite. À partir de ce moment, chaque fois que vous utilisez la source de données, vous obtiendrez l'exception, peu importe si la base de données est & en cours d'exécution.

Et voici ma question: existe-t-il un moyen de détecter que la base de données est en place et pour la recherche à nouveau, afin de se débarrasser de l'exception ??

Merci beaucoup pour votre temps!

Répondre

0

Malheureusement, ce n'est pas possible.

Vous pouvez créer votre propre implémentation d'un DataSource qui implémente le composant composite et basculer entre la base de données réelle si disponible ou une mémoire de base de données HSQLDB vide. Oui, Connectionpool peut être rempli avec HSQLDB-Connections même si la base de données sera disponible après la recherche, mais dans ce cas, vous devez recharger la webapp.