• How to sync between processes rather than threads


    # lock across process
    e.g. Server handles request from different clients, there clients are essentially different processes, they could potentially write to the same piece
    of data(e.g. same records in table), so we need to make sure these access well synchronized.

    Since normal locking mechnism applies only to inter process(inter-threads), for normal lock from JDK won't work here.

    In this case, we need to use some medium from outside, which could be database records or some file on our hard disk.

    ## Using database records to be mutual exclusive

    CREATE OR REPLACE PROCEDURE BBDEV_DBO.Prcubblock(txtType IN CHAR, success OUT INT) IS
    intRecCount INT;
    BEGIN
         DELETE FROM UBBMSTLOCK WHERE dtlastmodified <= SYSDATE - 1/48;
         SELECT COUNT(*) INTO intRecCount FROM UBBMSTLOCK;
         IF (intRecCount = 0) THEN
             INSERT INTO UBBMSTLOCK VALUES (' ', 0, SYSDATE);
         END IF;
         IF (txtType = 'U') THEN
              UPDATE UBBMSTLOCK l
              SET l.txtlocktype = 'U', l.dtlastmodified = SYSDATE
              WHERE l.txtlocktype = ' ' OR l.txtlocktype = 'U';
              success := SQL%Rowcount;
         ELSIF txtType = 'S' THEN
              UPDATE UBBMSTLOCK l
              SET l.txtlocktype = 'S', l.dtlastmodified = SYSDATE
              WHERE l.txtlocktype = ' ' OR l.txtlocktype = 'S';
              success := SQL%Rowcount;
              IF (success > 0) THEN
                 UPDATE UBBMSTLOCK l
                 SET l.Intlockcount = l.Intlockcount + 1, l.dtlastmodified = SYSDATE
                 WHERE l.txtlocktype = 'S';
              END IF;
         ELSE
              success := 0;
         END IF;
         COMMIT;
    EXCEPTION
    WHEN OTHERS THEN
         ROLLBACK;
         success := 0;
    END;
    /
    View Code



  • 相关阅读:
    pycharm中Terminal中运行用例
    python pandas模块简单使用(读取excel为例)
    pytest框架,使用print在控制台输入
    CentOS7配置python3教程
    linux 添加与修改用户归属组
    python 连接oracle基础环境配置方法
    robot framework 接口post请求需要加headers
    unittest中的parameterized参数化
    json格式
    Django_URL
  • 原文地址:https://www.cnblogs.com/glf2046/p/4740539.html
Copyright © 2020-2023  润新知