问题标签 [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.
mysql - 即使我没有使用事务,也会出现“超过锁定等待超时;尝试重新启动事务”
我正在运行以下 MySQLUPDATE
语句:
我没有使用交易,为什么会出现此错误?我什至尝试重新启动我的 MySQL 服务器,但没有帮助。
该表有 406,733 行。
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?
database - 事务运行时间超过锁定超时
目前我正在尝试更多地了解数据库,现在我在 DB2 上,并且在 30 秒时设置了 locktimeout 来测试它,我同时运行了几千个事务来对服务器进行压力测试,并记录每个存储过程所花费的时间( SP) 调用。计时器在 SP 中的声明行之后开始,并且在它结束之前记录的结束时间。而且我发现交易花费的时间远远超过 30 秒(有时甚至接近 70 秒)。是不是我做错了什么(我只在 db cfg 中设置了 LOCKTIMEOUT 参数)或者是这样吗?
如果假设线程 1、2、3 同时进入,线程 1 持有锁 29 秒,线程 2 持有锁 29 秒,线程 3 会因为等待太久而被杀死吗?如果它没有在 10 秒内被杀死并完成任务,那么事务时间是 68 秒还是只有 10 秒?
谁能回答我的困惑?
mysql - 更新查询超过了Mysql锁等待超时
在生产服务器的数据库中,调度程序每天运行一个程序,在该程序中我很少有删除插入和更新语句。
但它有时会在使用某些常用表的 1 次更新时抛出 lock wait timeout exceeded 错误。
最初 innodb_lock_wait_timeout 是 50 秒,后来我把它改成了 100,所以问题解决了一段时间,但后来又出现错误,所以我把它改成 120,再次临时解决。现在我已经为全局设置了 150 秒,并在会话中设置了 200(在过程中)。几天后它工作正常。
但是这个过程非常重要,得到错误会产生问题,因为它有非常重要的数据。
那么有没有其他解决方案可以永久解决这个问题?
我是新手请帮忙。
PS Mysql - 5.6 128 GB 内存。使用具有持久连接池的休眠。
sql-server - DB_READER 的 SSMS 扩展表锁定超时
我有一个非常奇怪的问题。
如果具有public
和db_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 操作,但我不明白为什么锁会出现在一个用户而不是另一个用户上?
concurrency - 是什么锁定了我的有状态 bean
我已经在我的 java EE 应用程序中实现了一个断路器模式,并且因为它拥有一个状态(有多少失败的请求、平均响应时间、锁定/解锁等等),所以我将 inte 设置为@Stateful
. 并且为了避免由于容器锁定而导致序列化出现问题,我添加了@ConcurrencyManagement(ConcurrencyManagementType.BEAN)
并确保所有操作都是线程安全的。
所以它目前看起来像这样:
但我仍然得到。
但是,如果我正确理解了所有内容,则CuncurrencyManagement
注释应该将锁定委托给 bean 而不是容器......并且由于CatalogBreaker
没有任何锁或任何类似的东西,那么我怎么会得到这个错误?
logging - 启用 DB2_CAPTURE_LOCKTIMEOUT=ON 后未找到 db2locktimeout 日志
基于以下链接:
我打开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
日志中看到。
我可以知道我犯了什么错误吗?
postgresql - 将 LOCAL 设置为先前存储的值
我想暂时更改lock_timeout
我的 PL/pgSQL 函数中的 ,我认为它会像这样简单:
但这给了我这个结果:
如何lock_timeout
正确存储和重置该设置?
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 小时后挂起,同样的问题再次出现。
这是由于数据损坏导致的死锁或锁定超时吗?
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 并尝试了旧方法中的所有属性。仍然低于错误。
代码块