GBase 8s使用C3P0连接池时去除SQLWarning警告

通过C3P0连接池连接到GBase 8s数据库时,可能会碰到这样的SQLWarning:

六月 16, 2023 3:40:55 下午 com.mchange.v2.c3p0.SQLWarnings 
信息: Database has transactions
java.sql.SQLWarning: Database has transactions

或者

六月 16, 2023 3:40:55 下午 com.mchange.v2.c3p0.SQLWarnings 
信息: Database selected
java.sql.SQLWarning: Database selected

以上警告,虽然不影响操作,但该日志频繁出现,将影响系统性能。

在com.mchange.v2.c3p0.SQLWarnings类中,我们可以看到:MLevel.INFO时,就将java.sql.SQLWarning的信息写到日志信息中

   public static void logAndClearWarnings(Connection con) throws SQLException
    {
        if (logger.isLoggable(MLevel.INFO))
        {
            for(SQLWarning w = con.getWarnings(); w != null; w = w.getNextWarning())
                logger.log(MLevel.INFO, w.getMessage(), w);
        }
        con.clearWarnings();
    }

因此:
最简单的规避出现上面两个Warning的方式就是:
在资源文件的根目录下创建mchange-log.properties配置文件,内容如下:

com.mchange.v2.log.MLog=com.mchange.v2.log.FallbackMLog
# LEVEL设置为WARNING,高于INFO
com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=WARNING

标签: c3p0, GBase, sqlwarning

添加新评论