com.fr.engine.exception.SqlEngineException: 错误代码:62400001connection holder is null

万俟小林
2023-12-01

1.现象

帆软更新数据集报错 如下。
数据集可以正常预览。 但是更新数据集就报错

业务包: 推广运营类
数据集名: 推广最终数据集
************************************************
2022-01-05 17:34:36  INFO   [LockFacade] wait(1000) EXCLUSIVE Acquiring for db,dummyT_814D63
2022-01-05 17:34:36  INFO   [LockFacade] wait(1000) EXCLUSIVE Acquired for db,dummyT_814D63
2022-01-05 17:34:36  INFO   dummyT_814D63.super slice size: 100000
2022-01-05 17:34:36  WARN   Caught error around row 0
2022-01-05 17:34:36  WARN   receive cancel signal, cancel append task(maybe error in jdbc thread baseTable-load-pool-13-thread-2)
2022-01-05 17:34:36  INFO   cancel wait cost 1ms
2022-01-05 17:34:36  ERROR  catch exception
com.fr.engine.exception.SqlEngineException: 错误代码:62400001connection holder is null
    	at com.fr.engine.model.AbstractDirectResultSetRowIterator.open(AbstractDirectResultSetRowIterator.java:72)
    	at com.finebi.spider.db.table.sync.loading.RowIteratorAdapter.open(RowIteratorAdapter.java:19)
    	at com.finebi.spider.db.table.sync.loading.TableLoadImpl.writerDataToTable(TableLoadImpl.java:223)
    	at com.finebi.spider.db.table.sync.loading.TableLoadImpl.loadData(TableLoadImpl.java:113)
    	at com.finebi.spider.client.TableOperateImpl.load(TableOperateImpl.java:200)
    	at com.fr.engine.bi.config.scheduler.DefaultTableUpdateManager.load(DefaultTableUpdateManager.java:116)
    	at com.fr.engine.distribute.local.timerjob.task.load.FullLoad.load(FullLoad.java:74)
    	at com.finebi.fun.extension.UpdateLoadExtension.load(UpdateLoadExtension.java:35)
    	at com.fr.engine.distribute.local.timerjob.task.load.AbstractLoad.loadProcess(AbstractLoad.java:127)
    	at com.fr.engine.distribute.local.timerjob.task.load.AbstractLoad.loadWithResult(AbstractLoad.java:76)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLException: connection holder is null
    	at com.fr.third.alibaba.druid.pool.DruidPooledConnection.checkStateInternal(DruidPooledConnection.java:1134)
    	at com.fr.third.alibaba.druid.pool.DruidPooledConnection.checkState(DruidPooledConnection.java:1127)
    	at com.fr.third.alibaba.druid.pool.DruidPooledConnection.createStatement(DruidPooledConnection.java:629)
    	at com.fr.data.core.db.dialect.base.key.create.executequery.DialectExecutePreparedQueryExecutor.execute(Unknown Source)
    	at com.fr.data.core.db.dialect.base.key.create.executequery.DialectExecutePreparedQueryExecutor.execute(Unknown Source)
    	at com.fr.data.core.db.dialect.AbstractDialect.execute(Unknown Source)
    	at com.fr.data.core.db.dialect.DefaultDialect.executeQuery(Unknown Source)
    	at com.fr.engine.model.AbstractDirectResultSetRowIterator.open(AbstractDirectResultSetRowIterator.java:61)
    	... 13 more
Caused by: java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@7a3344af is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:868)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:864)
    	at com.mysql.jdbc.MysqlIO.checkForOutstandingStreamingData(MysqlIO.java:3214)
    	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2450)
    	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
    	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2483)
    	at com.mysql.jdbc.StatementImpl.executeSimpleNonQuery(StatementImpl.java:1465)
    	at com.mysql.jdbc.StatementImpl.setupStreamingTimeout(StatementImpl.java:726)
    	at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1939)
    	at com.fr.third.alibaba.druid.pool.DruidPooledPreparedStatement.executeQuery(DruidPooledPreparedStatement.java:226)
    	... 18 more
2022-01-05 17:34:36  INFO   delete dummy table:dummyT_814D63
2022-01-05 17:34:36  INFO   [LockFacade] Released EXCLUSIVE lock for db,dummyT_814D63
2022-01-05 17:34:36  ERROR  tableId: 814d63ca2165e464,table: T_814D63, name: 推广最终数据集 , package: 推广运营类。请检查SQL或数据库配置
com.fr.engine.exception.DatabaseException: 请检查SQL或数据库配置
    	at com.fr.engine.distribute.local.timerjob.util.UpdateExceptionUtils.formatException(UpdateExceptionUtils.java:24)
    	at com.fr.engine.distribute.local.timerjob.task.load.AbstractLoad.loadWithResult(AbstractLoad.java:82)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at java.lang.Thread.run(Thread.java:748)

2.报错解决

数据集sql后面有个分号; 将分号去掉后数据集恢复正常

SELECT
	bpc.business_date 数据日期,
	bps.NAME 店铺名,
	CONCAT( bpp.NAME, '-', bps.NAME ) 完整店铺,
	pc.NAME 渠道名,
	case pc.NAME when '海投' then '智能推广' 
when '京速推' then '智能推广'
when '万相台' then '智能推广'
when '品销宝' then '智能推广'
else '竞价推广' end 投放类,
	bpp.NAME 平台名,
	pcy.NAME 品类名,
	bi.plan 计划名称,
	bi.unit 单元,
	bi.direct 定向,
	bpc.make_deal_amount AS 15天成交金额,
	bpc.cost AS 15天消耗,
	bpc.make_deal_count AS 15天成交量,
	bpc.click_count AS 15天点击量,
	bpc.direct_deal_amount AS 15天直接成交金额,
	bpc.direct_deal_count AS 15天直接成交笔数
FROM
	base_promotion_content bpc
	LEFT JOIN base_promotion_info bi ON bpc.fk_base_promotion_info_id = bi.id
	LEFT JOIN base_platform_shop bps ON bi.shop_id = bps.id
	LEFT JOIN base_promotion_channel pc ON bi.fk_base_promotion_channel_id = pc.id
	LEFT JOIN base_promotion_platform bpp ON pc.fk_base_promotion_platform_id = bpp.id
	LEFT JOIN promotion_category pcy ON bps.fk_promotion_category_id = pcy.id 
WHERE
	bpc.delete_status = 1 
	AND bi.id IS NOT NULL 
	AND bpc.date_type = 15;
 类似资料: