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

Java 在spring中数据库可用时执行JNDI查找,java,spring,datasource,jndi,spring-jdbc,Java,Spring,Datasource,Jndi,Spring Jdbc,首先,请允许我提前感谢您抽出时间。让我介绍我的问题: 我有一个带有“可选”数据源的spring应用程序,它以“惰性方式”执行jndi查找(lookupOnStartup:false)。从逻辑上讲,当需要数据源时,jndi外观就完成了 但是,当懒散地完成查找而数据库不可用时会发生什么:引发JNDILOOKUPFAILUREEException。对 从那一刻起,每次使用数据源时,都会出现异常,无论数据库是否同时启动和运行 我的问题是:是否有任何方法可以检测到数据库已启动并再次进行查找,以消除异常 非

首先,请允许我提前感谢您抽出时间。让我介绍我的问题:

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

但是,当懒散地完成查找而数据库不可用时会发生什么:引发JNDILOOKUPFAILUREEException。对

从那一刻起,每次使用数据源时,都会出现异常,无论数据库是否同时启动和运行

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


非常感谢您抽出时间

不幸的是,这是不可能的

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