java 微信请求超时_java – SQL服务器“超出锁定请求超时时间”..再次

本文探讨了解决SQL Server中锁定超时问题的方法。针对使用JAVAJTDS1.2.2、c3p00.9.1及SQLServer2008环境下出现的锁定超时错误,提供了一系列解决方案,包括设置无限超时、优化锁定查询以及监控锁定资源等。
摘要由CSDN通过智能技术生成

我在尝试扩展sql server SP中的锁定超时时遇到问题.无论我尝试什么,它都会继续投掷“锁定请求超时时间超出”.

我正在使用

java jtds 1.2.2,c3p0 0.9.1和sql server 2008.

我试过的设置:

在SP内部设置LOCK_TIMEOUT 10000并使用con.createStatement().执行(“SET LOCK_TIMEOUT 10000”),然后再调用SP.

并在SP语句中:statement.setQueryTimeout(10);

SP由以下语句调用:statement = con.prepareCall(“dbo.store_procedure?,?,?”,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);

并在里面设置“SET TRANSACTION ISOLATION LEVEL REPEATABLE READ”

任何sugestions?有类似问题的人?

提前致谢

最佳答案 如果您没有使用SQL Server 2008及其以后,并指定LOCK_ESCALATION = Disabled,则可以忘记ROWLOCK提示.根据我自己的经验,SQL Server可能会忽略它并采取它填充的任何锁(页面或表).在SQL Server 2008之前没有强制锁定提示.

清除后,您可以使用SET LOCK_TIMEOUT -1指定无限超时.

我强烈反对你这样做,而是尝试排除故障并优化(假设你对此负责)真正需要锁定该表的查询,尽可能加快它们以减少时间锁定.

使用EXEC sp_lock TargetSPID监视锁定的资源,以检查实际采用的锁类型

另一个注释:SET LOCK_TIMEOUT设置当前连接的超时,如果使用连接池,则为重用该连接的所有内容设置锁定超时可能会导致应用程序出现意外行为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值