log4j 数据库断连接解决办法

来源:互联网 发布:mac粉底液专柜价格 编辑:程序博客网 时间:2024/06/05 09:54

1、用自定义的JDBCAppender,获取连接后校验下合法性,非法的话重新取得连接。

package org.pentaho.di.dxt.common.Util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import org.apache.log4j.jdbc.JDBCAppender;public class DxtJdbcAppender extends JDBCAppender {    @Override    protected Connection getConnection() throws SQLException {        if (!DriverManager.getDrivers().hasMoreElements())            setDriver("sun.jdbc.odbc.JdbcOdbcDriver");        if ((null != connection) && !connection.isValid(2)) {            connection = null;        }                if (connection == null) {            connection = DriverManager.getConnection(databaseURL, databaseUser, databasePassword);        }        return connection;    }}

2、log4j.properties中指定database为自定义的这个appender

######################### JDBC Appender#######################log4j.appender.DATABASE = org.pentaho.di.dxt.common.Util.DxtJdbcAppender


0 0
原创粉丝点击