gpt4 book ai didi

spring - 非事务性请求尝试使用 Derby 获得锁

转载 作者:行者123 更新时间:2023-12-02 09:47:06 25 4
gpt4 key购买 nike

我目前正在使用 spring、hibernate 和 derby。两个进程同时访问同一个数据库,一个是事务性的并进行更改,另一个是非事务性的并读取数据。但是第二个(非事务性的)被阻止执行,堆栈跟踪是:

12:02:29.743 [http-8080-1] DEBUG o.h.e.jdbc.spi.SqlExceptionHelper - could not execute query [select count(clienttemp0_.id) as col_0_0_ from CLIENT_TEMPLATE_SET clienttemp0_]
java.sql.SQLTransactionRollbackException: A lock could not be obtained within the time requested
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) ~[derby-10.10.2.0.jar:na]
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) ~[derby-10.10.2.0.jar:na]
at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) ~[derby-10.10.2.0.jar:na]
at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) ~[derby-10.10.2.0.jar:na]
at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) ~[derby-10.10.2.0.jar:na]
at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) ~[derby-10.10.2.0.jar:na]
at org.apache.derby.impl.jdbc.EmbedResultSet.closeOnTransactionError(Unknown Source) ~[derby-10.10.2.0.jar:na]
at org.apache.derby.impl.jdbc.EmbedResultSet.movePosition(Unknown Source) ~[derby-10.10.2.0.jar:na]
at org.apache.derby.impl.jdbc.EmbedResultSet.next(Unknown Source) ~[derby-10.10.2.0.jar:na]
at org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207) ~[commons-dbcp-1.4.jar:1.4]

我想知道为什么非事务性请求试图获得锁。我通过使用@Transactional(propagation = Propagation.NEVER) 检查了它确实是非事务性的。使用 Postgres,这两个进程都可以正常工作。事务请求具有以下参数:PROPAGATION_REQUIRED、ISOLATION_DEFAULT。自动提交设置为假。
我还检查了事务过程中的请求是否都包含在同一个事务中(根据日志: DEBUG o.s.orm.jpa.JpaTransactionManager - Participating in existing transaction),而没有任何迹象表明非事务过程是这种情况。

谢谢你的帮助

最佳答案

我忘了说它是关于嵌入式 Derby 的,根据文档,它不允许同时进行多个操作。见 http://db.apache.org/derby/docs/10.10/devguide/
“部署选项以及线程和连接模式”部分。它似乎回答了我的问题。然后我会看看我是否可以更改要求。

关于spring - 非事务性请求尝试使用 Derby 获得锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24164910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com