【ORA-02049】超时分布式事务处理等待锁 解决方法

(1)以sys用户登陆数据库查询死锁:

SQL> select username,lockwait,status,machine,program from v$session where sid in (select session_id from v$locked_object);

(2)然后使用一下语句查找被死锁的语句

SQL> select sql_text from v$sql where hash_value in
(select sql_hash_value from v$session where sid

in (select session_id from v$locked_object));

(3)再使用以下语句查找被死锁的进程

SQL> SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#, l.ORACLE_USERNAME, l.OS_USER_NAME,l.PROCESS FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;

(4)根据步骤(3)查到的sid、serial#,使用以下语句把死锁的进程kill

SQL>alter system kill session ‘sid,serial’; (其中sid=l.session_id)

时间: 2024-12-22 03:32:18

【ORA-02049】超时分布式事务处理等待锁 解决方法的相关文章

ORA-02049: 超时: 分布式事务处理等待锁

java.sql.SQLSyntaxErrorException: ORA-02049: 超时: 分布式事务处理等待锁 ORA-06512: 在 "HECDEV.BGT_JOURNAL_BALANCE_PKG", line 107 ORA-06512: 在 "HECDEV.BGT_JOURNAL_BALANCE_PKG", line 902 ORA-06512: 在 "HECDEV.BGT_JOURNAL_BALANCE_PKG", line 1

ORA-02049: 超时: 分布式事务处理等待锁诊断

正式环境有两个数据库A和B,在A库上建的dblink,业务是要将A库中的一些表,通过dblink更新到B库中去,更新的时候总是报错:ORA-02049: 超时: 分布式事务处理等待超时. 之前我写过一篇blog:ORA-02049: 超时: 分布式事务处理等待锁模拟,大致的意思是通过A更新B中的数据时,由于B库中的数据有锁,一直都不释放,导致通过A更新报错. 诊断如下: 在B库上执行,找到产生锁的会话 select s.owner, s.object_name, l.SID, l.TYPE, l

Oracle用户密码过期和用户被锁解决方法

[原因/触发因素] 确定是由于oracle11g中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180天"所导致. [影响和风险] 影响    密码过期后,业务进程连接数据库异常,影响业务使用.    问题发生频率    数据库密码过期后,业务进程一旦重启会提示连接失败. [解决方案] 按照如下步骤进行操作: 1.查看用户的proifle是哪个,一般是default: sql>SELECT username,PROFILE FROM dba_user

jquery.form.js不能解决连接超时(timeout)的解决方法

最近在使用jquery.form.js提交包含文件的表单时,碰到了一个问题:当碰上网速较慢时,而我们又设置了timeout时,例如: var options = { timeout: 3000 //限制请求的时间,当请求大于3秒后,跳出请求 } 我们的页面会死在这里,贴上F12开发者工具返回的结果: 此时,我们并没有处理错误的回调函数,而百度出来的例子中也只有这两个回调函数: beforeSubmit: showRequest, //提交前的回调函数 success: showResponse,

ajax 请求登录超时跳转登录页解决方法

在Filter里判断是否登录,如果未登录返回401状态 public class SelfOnlyAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { HttpResponseBase response = filterContext.HttpContext.Response; HttpRequestBase reques

【转】错误: ORA-01591: 锁被未决分布式事务处理 7.2.428982 持有--解决方案

SQL 错误: ORA-01591: 锁被未决分布式事务处理 7.2.428982 持有 01591. 00000 -  "lock held by in-doubt distributed transaction %s" *Cause:    Trying to access resource that is locked by a dead two-phase commit transaction that is in prepared state. *Action:   DBA

ORA-01591: 锁被未决分布式事务处理解决方案

现场报有一个功能走不下去,后台日志报错:java.sql.SQLException: ORA-01591: 锁被未决分布式事务处理 657.7.39336 持有.    解决方案: rollback force '657.7.39336';--执行可能会比较慢 执行完成后,查询DBA_2PC_PENDING, select * from DBA_2PC_PENDING s  where s.local_tran_id='657.7.39336'; 657.7.39336 SP4GD.a6dfea

Redis分布式锁解决抢购问题

首先分享一个业务场景-抢购.一个典型的高并发问题,所需的最关键字段就是库存,在高并发的情况下每次都去数据库查询显然是不合适的,因此把库存信息存入Redis中,利用redis的锁机制来控制并发访问,是一个不错的解决方案. 首先是一段业务代码: @Transactional public void orderProductMockDiffUser(String productId){ //1.查库存 int stockNum = stock.get(productId); if(stocknum =

【故障处理】分布式事务ORA-01591错误解决

[故障处理]分布式事务ORA-01591错误解决 1  BLOG文档结构图       2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 分布式事务的简单概念         ② ORA-01591错误解决   Tips: ① 本文在ITpub(http://blog.itpub.net/26736162).博客园(http://www.cnblogs.com/lhrbest)和微信公众号(x