问题标签 [lock-timeout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
20 回答
788275 浏览

mysql - 即使我没有使用事务,也会出现“超过锁定等待超时;尝试重新启动事务”

我正在运行以下 MySQLUPDATE语句:

我没有使用交易,为什么会出现此错误?我什至尝试重新启动我的 MySQL 服务器,但没有帮助。

该表有 406,733 行。

0 投票
3 回答
7001 浏览

timeout - Is there a liquibase lock timeout?

You can see in the issue here: (liquibase-lock-reasons) at situation where the client Liquibase locks when a Liquibase operation has been interrupted, leaving liquibase in a locked state.

I'm wondering if there is a way to configure Liquibase to automatically detect this situation from the date and time in the LOCKGRANTED column. I think if you've held onto the lock for an hour - you should call that an expired lock.

My question is: Is there a liquibase lock timeout?

0 投票
1 回答
72 浏览

database - 事务运行时间超过锁定超时

目前我正在尝试更多地了解数据库,现在我在 DB2 上,并且在 30 秒时设置了 locktimeout 来测试它,我同时运行了几千个事务来对服务器进行压力测试,并记录每个存储过程所花费的时间( SP) 调用。计时器在 SP 中的声明行之后开始,并且在它结束之前记录的结束时间。而且我发现交易花费的时间远远超过 30 秒(有时甚至接近 70 秒)。是不是我做错了什么(我只在 db cfg 中设置了 LOCKTIMEOUT 参数)或者是这样吗?

如果假设线程 1、2、3 同时进入,线程 1 持有锁 29 秒,线程 2 持有锁 29 秒,线程 3 会因为等待太久而被杀死吗?如果它没有在 10 秒内被杀死并完成任务,那么事务时间是 68 秒还是只有 10 秒?

谁能回答我的困惑?

0 投票
1 回答
3750 浏览

mysql - 更新查询超过了Mysql锁等待超时

在生产服务器的数据库中,调度程序每天运行一个程序,在该程序中我很少有删除插入和更新语句。

但它有时会在使用某些常用表的 1 次更新时抛出 lock wait timeout exceeded 错误。

最初 innodb_lock_wait_timeout 是 50 秒,后来我把它改成了 100,所以问题解决了一段时间,但后来又出现错误,所以我把它改成 120,再次临时解决。现在我已经为全局设置了 150 秒,并在会话中设置了 200(在过程中)。几天后它工作正常。

但是这个过程非常重要,得到错误会产生问题,因为它有非常重要的数据。

那么有没有其他解决方案可以永久解决这个问题?

我是新手请帮忙。

PS Mysql - 5.6 128 GB 内存。使用具有持久连接池的休眠。

0 投票
0 回答
1568 浏览

sql-server - DB_READER 的 SSMS 扩展表锁定超时

我有一个非常奇怪的问题。

如果具有publicdb_datareader访问权限的用户尝试在 SSMS 17.2 中扩展表,他们会收到Lock request time out period exceeded. (Microsoft SQL Server, Error: 1222)错误消息。

如果用户sysadmin执行相同的操作,则操作按预期工作。

我在 SSMS 扩展返回以下代码的表时运行了分析器。

如果我以管理员身份运行此代码,它会在不到一秒的时间内完成。但是,当具有db_datareader访问权限的用户运行它时,它需要 20 多秒才能执行。

可能是什么原因造成的?

编辑 1: @Dan Guzman 检查执行计划的建议是一个很好的建议。两个用户之间的执行计划是相同的,除了以下等待 db_datareader 用户:<Wait WaitType="LCK_M_SCH_S" WaitTimeMs="7868" WaitCount="1" />

对该数据库运行了一个大型 INSERT BULK 操作,但我不明白为什么锁会出现在一个用户而不是另一个用户上?

0 投票
1 回答
1098 浏览

concurrency - 是什么锁定了我的有状态 bean

我已经在我的 java EE 应用程序中实现了一个断路器模式,并且因为它拥有一个状态(有多少失败的请求、平均响应时间、锁定/解锁等等),所以我将 inte 设置为@Stateful. 并且为了避免由于容器锁定而导致序列化出现问题,我添加了@ConcurrencyManagement(ConcurrencyManagementType.BEAN)并确保所有操作都是线程安全的。

所以它目前看起来像这样:

但我仍然得到。

但是,如果我正确理解了所有内容,则CuncurrencyManagement注释应该将锁定委托给 bean 而不是容器......并且由于CatalogBreaker没有任何锁或任何类似的东西,那么我怎么会得到这个错误?

0 投票
1 回答
414 浏览

logging - 启用 DB2_CAPTURE_LOCKTIMEOUT=ON 后未找到 db2locktimeout 日志

基于以下链接:

https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.admin.regvars.doc/doc/r0005657.html

我打开DB2_CAPTURE_LOCKTIMEOUT=ON,然后我检查我是否成功更改它db2set -all,我可以看到它已经打开了。

之后,我通过以下链接成功模拟了锁定超时:

https://db2forum.wordpress.com/2011/10/17/new-options-for-analyzing-lock-timeouts-in-db2-9-5/

我成功得到Reason code "68". SQLSTATE=40001.

但是,我仍然无法db2locktimeout/home/db2inst1/sqllib/db2dump.

我只能db2diag.log在这条路径中看到,但不能在db2locktimeout日志中看到。

我可以知道我犯了什么错误吗?

0 投票
1 回答
133 浏览

postgresql - 将 LOCAL 设置为先前存储的值

我想暂时更改lock_timeout我的 PL/pgSQL 函数中的 ,我认为它会像这样简单:

但这给了我这个结果:

如何lock_timeout正确存储和重置该设置?

0 投票
1 回答
124 浏览

db2 - 应用服务器 CPU 达到 >80 并在近 24 小时后挂起 同样的问题每天都在重复

我有 IBM WebSphere Application 8.5 服务器与 Db2 11.1 一起工作 2 年。由于应用程序服务器挂起一个月,dB CPU 变为 0 并且应用程序服务器 CPU 变为 >80 ,并且在近 24 小时后挂起,同样的问题每天都在重复。在应用服务器上登录

db2diag 今天错误 2020-12-09-10.03.24.732486+120 I1234525159E610 LEVEL:错误 PID:5737 TID:139739072030464 PROC:db2sysc 0 INSTANCE:db2inst1 NODE:000 ff ff0x8.161 APPID:::ff0x8.161 APPPID: 42258.201209075007 UOWID:199 ACTID:1 AUTHID:DB2INST1 主机名:ERTUWCMDB1Az EDUID:1760 EDUNAME:db2agent (WPJCR) 0 功能:DB2 UDB,通用通信,sqlcctest,探针:50 消息:sqlcctest RC 数据 8 字节 9FCx02:007F17, 3600 6。

2020-12-09-10.03.24.732661+120 I1234525770E601 LEVEL: Error PID : 5737 TID : 139739072030464 PROC : db2sysc 0 INSTANCE: db2inst1 NODE : 000 DB : WPJCR APPHDL : 0-38161 APPID: ::ffff:x.42258.201209075007 UOWID : 199 ACTID:1 AUTHID:DB2INST1 主机名:ERTUWCMDB1Az EDUID:1760 EDUNAME:db2agent (WPJCR) 0 功能:DB2 UDB,基本 sys 实用程序,sqeAgent::AgentBreathingPoint,探针:10 CALLED:DB2 UDB,通用通信,sqlcctest RETCODE:ZRC= 0x00000036=54

[11/3/20 6:42:13:596 EET] 000006ad XATransaction E J2CA0027E: 在事务 ID {XidImpl: formatId(57415344), gtrid_length( 36), bqual_length(54),

data(000001758c648aa7000000082a775800f8c220c5f6bdab92156eae0be31e28ea7605ade8000001758c648aa7000000082a775800f8c220c5f6bdab92156eae0be31e28ea7605ade8000000010000000000000000000000000001)} : com.ibm.db2.jcc.am.XaException: [jcc][t4][2041][12326][4.25.13] Error executing XAResource.rollback(). 服务器返回 XAER_NOTA。错误代码=-4203,SQLSTATE=null

一段时间后,dB CPU 变为 0,应用程序服务器 CPU 变为 >80,并在近 24 小时后挂起,同样的问题再次出现。

这是由于数据损坏导致的死锁或锁定超时吗?

0 投票
0 回答
27 浏览

spring-boot - 带有spring数据jpa LockModeType.pessimistic_write的Mysql在10个并行调用时给出超时异常,并且对于旧的lock.upgrade也可以正常工作

旧系统在 spring 中使用一些数据库配置和 lockmode.upgrade 在 50+ 并行调用中正常工作,而在 spring boot 微服务中相同的 lockmode.upgrade 或 lockmodetype.pessimistic_write 对特定行的 10+ 并行调用会产生错误。我们使用相同的 min、maxPoolSize 并尝试了旧方法中的所有属性。仍然低于错误。

代码块