怎么处理数据源挂了的问题?

jfinal 如何处理数据源挂了的问题?

两个数据源A,B。A数据源是mysql,B数据源是oracle。现在B可能会挂,程序里有用到B的地方,这个怎么去抓异常,然后避免B挂的问题呢?如果B挂了,就忽略B数据源的数据操作,程序里让A去进行这些数据操作。

评论区

JFinal

2017-03-24 11:44

数据源挂掉了,可以自己写点代码,通过 try catch 获取到,可以试试用全局拦截器 catch 住 ActiveRecordException 来处理

ghostsf

2017-03-24 12:40

谢谢,全局拦截器可以捕捉到ActiveRecordException 异常。但是怎么处理这个异常呢?让程序继续执行下去,忽略B数据源的数据操作。

JFinal

2017-03-24 17:35

@ghostsf 既然自己 try catch 住异常,那自然是业务范畴,否则不必 try catch 它,而是让 jfinal 框架自行处理

ghostsf

2017-03-28 11:02

@JFinal 嗯。主要就是不知如何处理这个异常。我想要么切换到备用数据源,要么跳过这个异常(不进行该数据源的数据操作),让程序正常跑下去。但不知道如何去实现。当数据源挂掉了,首先数据库连接池就开始报异常了(这里会有一段请求连接数据库的时间),后面虽然全局拦截器可以捕捉到ActiveRecordException 异常,但是类似这样处理:DbKit.removeConfig("oracle");Config config = new Config("oracle", oracleBackupDataSource); DbKit.addConfig(config); 并不会起到作用。所以有些困惑。望解惑,谢谢!

热门反馈

扫码入社