暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 会话并发问题

askTom 2017-05-08
185

问题描述

嗨,
我们在表中维护唯一的会话id。一旦会话id选择为随机,我们将更改状态为使用模式,直到从第三方服务获得响应,然后再次同时可重用。我的场景是并行地一次给出相同的会话,甚至处理更新等待2如下
SELECT session_id  
        INTO v_session_id  
        FROM lf_session_log  
       WHERE (ROWID) IN (SELECT row_id  
                           FROM (SELECT ROWID row_id  
                                    FROM lf_session_log  
                                   WHERE query_state = 'R'  
                                         AND expdttime > sysdate  
                                         AND service_type = 1  
                                         AND session_type = 'P')  
                          WHERE rownum = 1)  
         FOR UPDATE wait 2;  
      
      UPDATE lf_session_log  
         SET query_state = 'U', expdttime = p_expdttime  
       WHERE session_id = v_session_id  
      RETURNING session_id INTO p_session_id;  
commit;  
复制


谢谢,
Jai

专家解答

检查跳过锁定

https://asktom.oracle.com/pls/asktom/f%3Fp%3D100:11:0::::P11_QUESTION_ID:2060739900346201280
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论