`
mj-beijing
  • 浏览: 38886 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

设置业务锁

 
阅读更多

  //设置业务锁
         boolean lockPeriod  = false;
         lockPeriod = nc.bs.uap.lock.PKLock.getInstance().acquireLock(psndocWadocs[0].getPk_wa_grd(), PubEnv.getPk_user(), null);
         if (!lockPeriod) {
      throw new nc.vo.pub.BusinessException(NCLangResOnserver.getInstance().getStrByID("60131004", "UPP60131004-000303")/*
                         * @res
                         * "有人正在处理该数据,请稍候再试!"
                         */);
         }
         try {
            Hashtable<String, String> ht = new Hashtable<String, String>();
            for (int i = 0; i < psndocWadocs.length; i++) {
                if (psndocWadocs[i].getRecordnum() == null) {
                    psndocWadocs[i].setRecordnum(new Integer(0));
                }
                if (psndocWadocs[i].getLastflag() == null) {
                    psndocWadocs[i].setLastflag(new nc.vo.pub.lang.UFBoolean(true));
                }
                if (!psndocWadocs[i].getPk_wa_item().equals(ht.get(psndocWadocs[i].getPk_psndoc()))) {// 保证同一批插入的数据,同一人同一项目的记录号只更新一次
                    dmo.updatePrePsnWadocFlag(psndocWadocs[i].getPk_psndoc(), psndocWadocs[i].getPk_wa_item(), "insertarray", psndocWadocs[i].getRecordnum(), new Boolean(true));
                    ht.put(psndocWadocs[i].getPk_psndoc(), psndocWadocs[i].getPk_wa_item());
                }
            }
            String[] keys = dmo.insertArray(psndocWadocs);
            return keys;
        } catch (Exception e) {
            Logger.error(e);
            return null;
        }finally{
      //打开业务锁
      if(lockPeriod)
       PKLock.getInstance().releaseLock(psndocWadocs[0].getPk_wa_grd(),  PubEnv.getPk_user(), null);
      
     }

分享到:
评论

相关推荐

    广联达无驱锁升级网络锁

    另一方面,【无驱写锁20190922】可能是这次升级中使用的特定版本的工具或补丁,用于更新加密锁的固件或者设置网络锁的功能。这个文件名中的日期可能表示该工具的发布日期,用户需要确认这与他们当前的加密锁和系统...

    基于redis分布式锁实现“秒杀”

    为防止因异常而导致锁未释放的情况,还可以为锁设置一个过期时间(通过`EXPIRE`命令),让Redis在一定时间后自动删除该键。 #### 五、示例代码框架 ```java public class DistributedLock { private Jedis jedis; ...

    泛微 契约锁私有化系统V4.1操作手册.rar

    - `契约锁私有化系统V4.1-配置管理平台V1.0.docx`:这份文档主要涵盖了系统的初始化配置和设置,包括服务器配置、数据库配置、用户权限分配等,确保系统的正常运行和安全管理。 2. **角色与权限**: - `契约锁...

    thinkPHP框架乐观锁和悲观锁实例分析

    并且,在使用悲观锁时,要注意合理设置事务的隔离级别,以避免脏读、幻读等现象。 在实际应用中,选择使用乐观锁还是悲观锁,需要根据具体的业务场景和并发需求来定。如果业务操作大部分时间不会出现并发冲突,乐观...

    redis实现分布式锁,自旋式加锁,lua原子性解锁

    在分布式系统中,为了保证数据的一致性和安全性,分布式锁是一种常见的解决方案。Redis作为一个高性能的键值存储系统,常被...在实际应用中,还可以根据业务需求添加锁续租、超时自动解锁等功能,以提升系统的健壮性。

    oracle存储过程解锁

    在Oracle数据库中,存储过程是一种预先编译并存储在数据库中的SQL代码块,用于执行复杂的业务逻辑或数据处理任务。然而,在多用户并发访问的环境下,存储过程可能会因为某些操作而被锁定,导致其他进程无法访问或...

    ET199写锁文件,部分广联达2018授权过期,亲测可用使用,但无写锁工具,可使用旧版写锁工具。

    在IT行业中,尤其是在软件授权和管理领域,"ET199写锁文件"是一个特定的概念,主要关联于广联达公司的产品。...在软件使用过程中,保持授权的合法性和有效性是至关重要的,以免影响业务的正常运行。

    SAP ABAP应用程序中"锁"的介绍

    在SAP ABAP应用程序中,锁机制是保证数据一致性、防止并发访问时产生数据不一致性的关键工具。...开发者应根据业务场景选择合适的锁模式,合理设置锁参数,以确保系统的稳定运行和数据的准确无误。

    php 给 redis锁 续期

    首先,我们需要理解Redis的`SET`命令,它可以设置键值对,当配合`EX`(过期时间)和`NX`(如果不存在则设置)或`XX`(如果存在则设置)选项时,可以实现简单的分布式锁。例如: ```php $redis-&gt;set('lock_key', '...

    php-redis锁-多种加锁解锁

    - **加锁策略**:使用`SET`命令时可以附加`NX`(如果不存在则设置)和`EX`(设置过期时间)参数,确保了锁的互斥性。例如,`SET key value EX timeout NX`会在键不存在时设置,并设置过期时间,防止死锁。 2. **...

    Hibernate的乐观锁与悲观锁

    在上述代码中,`query.setLockMode`方法用于对查询结果中的每一行数据设置悲观锁。Hibernate会在执行查询时生成如下SQL语句: ```sql SELECT tuser0_.id AS id, tuser0_.name AS name, tuser0_.group_id AS group_...

    Hibernate乐观锁和悲观锁分析

    【Hibernate乐观锁与悲观锁详解】 在开发过程中,尤其是在并发环境下,确保...开发者应根据具体业务需求选择合适的锁策略。在使用Hibernate时,理解并正确配置这两种锁机制,能有效避免并发环境下的数据不一致性问题。

    浅谈分布式锁

    4. 阻塞锁和非阻塞锁:线程在尝试获取锁时,应根据业务需求选择是立即得到响应(非阻塞锁)还是等待直到锁被释放(阻塞锁)。 5. 锁的有效性:网络中断或节点宕机时,锁必须能够被清除,避免死锁。 分布式锁的实现...

    基于 Redis 的分布式锁

    通常的做法是,在设置锁时使用一个唯一标识作为锁的值,在删除锁之前检查这个唯一标识是否与自己设置的一致。如果不一致,则不进行删除操作。 3. 避免锁失效:如果Redis采用主从架构,当主节点故障时,可能会发生锁...

    一个应用于springboot项目的,基于redis的分布式锁 可用于多节点项目防重复业务调用

    Spring Boot作为流行的Java微服务开发框架,结合Redis这一高效缓存和数据结构服务器,可以实现强大的分布式锁机制,防止多节点项目中的重复业务调用。本项目提供了一种简单且实用的解决方案,利用Redis作为分布式锁...

    hibernate乐观锁和悲观锁学习

    在IT领域,尤其是在数据库管理和分布式系统中,锁机制是确保数据一致性的重要手段。本文主要讨论的是Hibernate框架中两种锁机制的...在实际开发中,开发者应根据具体业务需求和系统负载情况,合理选择合适的锁策略。

    oracle数据库锁使用

    Oracle 数据库锁是确保数据完整性、一致性以及并发操作的关键机制。在Oracle中,锁主要分为两类:数据锁(DML...在设计事务和处理并发操作时,应根据业务需求选择合适的锁类型,并注意锁的兼容性和可能引发的并发问题。

    门锁管理软件V6.06Z

    它允许管理员远程设置和更改门锁的访问权限,分配和撤销用户权限,以及实时监控门锁的状态,如开闭记录、异常报警等。此外,软件还可能具备数据分析功能,帮助管理者了解门禁系统的使用情况,以便于优化安全管理策略...

Global site tag (gtag.js) - Google Analytics