博主在传统行业写代码,目前遇到了这样一个需求:客户那边数据显示经常出现问题,希望看到问题出在哪里,但是log4j日志他们看不懂,所以希望我们提供一个通俗的说法给他们看,给他们展示是哪些数据库出了问题,出了什么样的问题。我们暂把数据库连接的状态定为四种:第一次连接初始化成功;初始化失败;数据库连接异常;数据库连接恢复。首先我们要知道程序启动过后,数据库断开连接,程序不会停止,也就是说还运行在后台,在数据库重新连接上后,程序又可以继续运行。说一下解决思路,以供参考:
1.接受数据库连接参数和对应的程序名称作为形参:
public ConnectionCheckThread(String projName, String url, String usr, String pass, String classname) {
this.s_url2 = url;
this.s_usr2 = usr;
this.s_pass2 = pass;
this.classname = classname;
this.projName = projName;
}
2.先连接一次对应的数据库,看能不能连接成功,思路就是在try块中尝试连接该数据库,如果成功的话向数据库插入一条首次启动成功的记录;如果失败的话在异常处理的catch块中插入失败的记录,最后不管成功失败,一定要关闭con连接
try {
d = new Date();
stamp = new Timestamp(d.getTime());
con2 = java.sql.DriverManager.getConnection(s_url2, s_usr2, s_pass