首页 > 解决方案 > 雪花插入锁定表

问题描述

我有一个 API,它使用 JBDC 连接池在 Snowflake 中插入(仅插入和选择 API 调用)记录。当我配置连接池大小> 20

net.snowflake.client.jdbc.SnowflakeSQLException: Statement 'YY' has locked table 'XXX' in transaction ZZ and this lock has not yet been released.

我正在使用 Java 和 dbcp2 作为连接池。下面是我的代码示例

try{
    conn = snowflakeconnection.getDataSource().getConnection();
    conn.setAutoCommit(false);
    PreparedStatement pstmt = conn.prepareStatement(INSERTSQL);
    pstmt.executeQuery();
    conn.commit();
}  catch (Exception e) {
    conn.rollback();
} finally {
    if (!conn.isClosed()) {
    conn.setAutoCommit(false);
    conn.close();
}
}

我不确定为什么要在 Snowflake 中为插入语句锁定表。当我配置连接池 < 20 并且我没有得到表锁定异常时,代码工作正常。我确实查看了雪花论坛和社区,但我没有得到解释。你能帮我解决这个问题吗?? 以及这里出了什么问题。

标签: javaconnection-poolingsnowflake-cloud-data-platform

解决方案


推荐阅读