java - 雪花插入锁定表
问题描述
我有一个 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 并且我没有得到表锁定异常时,代码工作正常。我确实查看了雪花论坛和社区,但我没有得到解释。你能帮我解决这个问题吗?? 以及这里出了什么问题。
解决方案
推荐阅读
- typescript - 在打字稿中使用异步等待来等待承诺
- python - 使用正则表达式忽略包含子字符串的单词
- javascript - componentDidUpdate 未正确触发
- javascript - 如何在正则表达式中启用向密码验证添加特殊字符
- ruby - Ampersand 如何将参数作为“obj”传递给#to_proc?—receiving_method(&:method)
- python-3.x - pyqt5,循环 QtWidgets
- javascript - 为什么 openlayers 地图在 vue-cli 3 中不起作用
- java - 注册没有@Bean注解的FilterRegistrationBean
- php - 带 PHP 最大执行时间的 Stripe API 和 autoPagingIterator()
- javascript - 先前在点击数据上显示的 JavaScript