Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 选择查询导致死锁_Sql Server_Hibernate_Jakarta Ee - Fatal编程技术网

Sql server 选择查询导致死锁

Sql server 选择查询导致死锁,sql-server,hibernate,jakarta-ee,Sql Server,Hibernate,Jakarta Ee,我们的生产环境中不断出现死锁错误。日志文件中的错误消息如下所示 2013-04-24 01:44:28,893 ERROR [gk.lvl1Executor-1] - Transaction (Process ID 68) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. 2013-04-24 01:44:

我们的生产环境中不断出现死锁错误。日志文件中的错误消息如下所示

2013-04-24 01:44:28,893 ERROR [gk.lvl1Executor-1] - Transaction (Process ID 68) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
2013-04-24 01:44:28,906 ERROR [gk.lvl1Executor-1] - Error in action
org.hibernate.exception.LockAcquisitionException: could not execute query
此错误由以下代码引起:

Transaction transaction = (Transaction) session.createQuery("from Transaction tr where " +
"tr.transactionId = :transId and " +
"tr.aseXml.flowDirection = :flowDirection and " + 
"tr.aseXml.header.to = :from and " +
"tr.aseXml.header.from = :to and " +
"tr.aseXml.header.market = :market and "+
"tr.aseXml.header.transactionGroup = :trGroup")
.setString("transId", aTransactionId)
.setString("flowDirection", aFlowDirection)
.setString("from", aHeader.getFrom())
.setString("to", aHeader.getTo())
.setString("market", aHeader.getMarket())
.setString("trGroup", aHeader.getTransactionGroup())
.setFetchSize(1)
.setMaxResults(1)
.setCacheable(true)
.uniqueResult();

这只是一个选择查询。不知道为什么会导致僵局。我还需要说明的是,隔离级别设置为
REPEATABLE\u READ

您使用的是什么DB和驱动程序?您在同一事务中读写吗?我们使用的是sql server数据库。看起来在同一笔交易中没有写东西。