Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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
在java应用程序中获取insert和select语句(sql server 2014)的死锁_Java_Tomcat7_Deadlock_Sql Server 2014 Express - Fatal编程技术网

在java应用程序中获取insert和select语句(sql server 2014)的死锁

在java应用程序中获取insert和select语句(sql server 2014)的死锁,java,tomcat7,deadlock,sql-server-2014-express,Java,Tomcat7,Deadlock,Sql Server 2014 Express,在我的应用程序中,有许多线程使用insert和select语句来存储/检索数据库中的数据 所以,我在PRD环境中遇到了死锁,我从应用程序日志文件中观察到了死锁 Unable to read Cycle (ID: 1-A | PosID: 1 due to SQL Exception : com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 129) was deadlocked on lock | c

在我的应用程序中,有许多线程使用insert和select语句来存储/检索数据库中的数据 所以,我在PRD环境中遇到了死锁,我从应用程序日志文件中观察到了死锁

Unable to read Cycle (ID: 1-A | PosID: 1 due to SQL Exception : 
com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 129) was deadlocked on lock | 
communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
    at com.microsoft.sqlserver.jdbc.SQLServerResultSet$FetchBuffer.nextRow(SQLServerResultSet.java:4762)
    at com.microsoft.sqlserver.jdbc.SQLServerResultSet.fetchBufferNext(SQLServerResultSet.java:1682)
    at com.microsoft.sqlserver.jdbc.SQLServerResultSet.next(SQLServerResultSet.java:955)
    at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207)
    at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207)
    at com.ilume.db.adapter.module.RoutingModul.getRoutes(RoutingModul.java:2867)
    at com.ilume.db.adapter.module.RoutingModul.getAccounts(RoutingModul.java:2826)
    at com.ilume.db.adapter.module.RoutingModul.getAccounts(RoutingModul.java:2651)
    at com.ilume.db.adapter.module.RoutingModul.getEmployee(RoutingModul.java:2141)
    at com.ilume.db.adapter.module.RoutingModul.getEmployee(RoutingModul.java:1925)
    at com.ilume.db.adapter.module.RoutingModul.getCycle(RoutingModul.java:767)
    at com.ilume.jti.logic.controller.tingController.readCycle(RoutingController.java:225)
    at com.ilume.jti.logic.controller.tingController.<init>(RoutingController.java:137)
    at com.ilume.jti.logic.controller.ukraine.tingController.<init>(tingController.java:30)
    at com.ilume.jti.logic.controller.ukraine.eThread.run(UkraineThread.java:43)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)
无法读取循环(ID:1-A | PosID:1,由于SQL异常:
com.microsoft.sqlserver.jdbc.SQLServerException:事务(进程ID 129)在锁上死锁|
与另一进程的通信缓冲区资源,并且已被选为死锁受害者。请重新运行事务。
位于com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
位于com.microsoft.sqlserver.jdbc.SQLServerResultSet$FetchBuffer.nextRow(SQLServerResultSet.java:4762)
位于com.microsoft.sqlserver.jdbc.SQLServerResultSet.fetchBufferNext(SQLServerResultSet.java:1682)
位于com.microsoft.sqlserver.jdbc.SQLServerResultSet.next(SQLServerResultSet.java:955)
位于org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207)
位于org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:207)
位于com.ilume.db.adapter.module.RoutingModule.getRoutes(RoutingModule.java:2867)
位于com.ilume.db.adapter.module.RoutingModule.getAccounts(RoutingModule.java:2826)
在com.ilume.db.adapter.module.RoutingModule.getAccounts上(RoutingModule.java:2651)
位于com.ilume.db.adapter.module.RoutingModule.getEmployee(RoutingModule.java:2141)
位于com.ilume.db.adapter.module.RoutingModule.getEmployee(RoutingModule.java:1925)
位于com.ilume.db.adapter.module.RoutingModule.getCycle(RoutingModule.java:767)
在com.ilume.jti.logic.controller.tingController.readCycle(RoutingController.java:225)上
位于com.ilume.jti.logic.controller.tingController(RoutingController.java:137)
在com.ilume.jti.logic.controller.nukraine.tingController.(tingController.java:30)
在com.ilume.jti.logic.controller.nukraine.eThread.run(UkraineThread.java:43)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
运行(Thread.java:722)
我不能在我的开发环境中重现同样的情况。 请给我一些建议来解决这种死锁,以及如何更清楚地理解如何捕获死锁


谢谢

不要使用图像显示文本数据。请将stacktrace复制到您的问题中。提问时请正确设置问题格式。根据您提供的信息无法回答您的问题。可能您的事务隔离不正确,可能您编写了易死锁的代码,谁知道呢?