当数据库在春季可用时执行JNDI查找

时间:2016-12-30 08:02:42

标签: java spring datasource jndi spring-jdbc

首先,我要提前感谢您的时间。让我来介绍一下我的问题:

我有一个带有"可选"的弹簧应用程序。数据源,以懒惰的方式执行jndi查找" (lookupOnStartup:false)。从逻辑上讲,当需要数据源时,jndi外观就完成了。

但是当查找完成并且数据库不可用时发生了什么:JndiLookupFailureException上升了。右。

从那一刻开始,每次使用数据源时,无论数据库是否已启动,您都将获得异常。在此期间运行。

这是我的问题:有没有办法检测数据库已启动并再次查找,以便摆脱异常?

非常感谢你的时间!

1 个答案:

答案 0 :(得分:0)

不幸的是,这是不可能的。

您可以创建自己的DataSource实现,它实现Composite-Pattern并在真实数据库(如果可用)或空的HSQLDB-Database内存之间切换。是的,即使数据库在查找后可用,Connectionpool也可能填充HSQLDB-Connections,但在这种情况下,您需要重新加载Web应用程序。