当数据库在 spring 中可用时执行 JNDI 查找

Perform JNDI lookup when database is available in spring

首先,让我提前感谢您抽出宝贵时间。先介绍一下我的问题:

我有一个带有 "optional" 数据源的 spring 应用程序,它在 "lazy way" (lookupOnStartup: false ) 中执行 jndi 查找。从逻辑上讲,当需要数据源时,jndi look 就完成了。

但是当查找被懒惰地完成并且数据库不可用时发生了什么:JndiLookupFailureException 出现了。对。

从那一刻起,每次使用数据源时,无论数据库是否已启动,您都会遇到异常 & 运行。

我的问题是:有什么方法可以检测到数据库已启动并再次进行查找,以消除异常??

非常感谢您的宝贵时间!

很遗憾,这是不可能的。

您可以创建自己的 DataSource 实现,它实现了复合模式并在可用的真实数据库或内存中的空 HSQLDB 数据库之间切换。是的,即使数据库在查找后可用,Connectionpool 也可能充满 HSQLDB-Connections,但在这种情况下,您需要重新加载 webapp。