//设置业务锁
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);
}
发表评论
-
NC客户化开发群 75930309
2014-01-02 12:37 4NC客户化开发群 75930309 -
NC二次开发群 75930309
2014-01-02 12:36 3NC二次开发群 75930309 用友NC二次开发群 75 ... -
北京用友NC二次开发群75930309
2013-12-05 00:23 13北京用友NC二次开发群 75930309 用友NC二次 ... -
NC参照客户化开发设置
2013-05-08 13:56 2359NC参照客户化开发设置 1. ... -
NC自定义参照开发方法
2013-05-08 13:57 5402自定义参照开发规范 自定义参照可以定义参照的UI界 ... -
单据开发步骤
2013-05-08 13:57 11940. 做单据(字段不能变): 名称 编码 数据库模型 ... -
单据动作执行脚本标准写法示例
2013-05-07 22:11 1112单据动作执行脚本标准写法示例 ************** ... -
NC代码中执行公式方法
2013-05-07 22:09 1455/** * 公式查询 * * @param tabl ... -
NC人员信息维护中任职记录顺序按照日期顺序排序解决方法
2013-05-07 22:06 1117--修改任职信息表中的信息 --备份任职信息表create ... -
常用数据库表操作语句
2013-05-07 22:04 540为表增加字段的方法: alter tabl ... -
NC单据开发的一般步骤
2013-05-07 21:56 1842单据开发的一般步骤: 1. 数据建模,生成数 ... -
各种各样的选中和行编辑问题
2013-05-06 11:01 12161.各种各样的选中,以及代码设置选中以及得到选中行的 ... -
NC审批流涉及的表
2013-05-06 11:01 2029---审批流涉及的表 select * from p ... -
oracle中dblink 的创建方法
2013-05-06 11:02 646oracle中dblink ... -
NC报表导出Excel的工具类
2013-05-06 11:03 1018package nc.ui.fh.des.excel; ... -
导出Excel的工具类,对BillListPanel进行导出
2013-05-06 11:03 928package nc.ui.fh.des.excel; ... -
在人员信息维护节点增加批量导出员工照片实现方法
2013-05-05 18:18 869/** * 批量导出照片 * add by majie ... -
FTP工具类,在NC客开过程中遇到使用ftp的可以直接使用
2013-05-05 18:16 820package nc.bs.ht.ftp; import ... -
NC全选全消按钮实现方法
2013-05-05 18:07 1204//全选 publicvo ... -
NC平台添加自定义按钮组步骤
2013-05-05 18:05 3116NC平台添加自定义按钮组步骤 1,在ICust ...
相关推荐
在分布式系统中,为了保证数据的一致性和安全性,分布式锁是一种常见的解决方案。Redis作为一个高性能的键值存储系统,常被...在实际应用中,还可以根据业务需求添加锁续租、超时自动解锁等功能,以提升系统的健壮性。
为防止因异常而导致锁未释放的情况,还可以为锁设置一个过期时间(通过`EXPIRE`命令),让Redis在一定时间后自动删除该键。 #### 五、示例代码框架 ```java public class DistributedLock { private Jedis jedis; ...
- `契约锁私有化系统V4.1-配置管理平台V1.0.docx`:这份文档主要涵盖了系统的初始化配置和设置,包括服务器配置、数据库配置、用户权限分配等,确保系统的正常运行和安全管理。 2. **角色与权限**: - `契约锁...
并且,在使用悲观锁时,要注意合理设置事务的隔离级别,以避免脏读、幻读等现象。 在实际应用中,选择使用乐观锁还是悲观锁,需要根据具体的业务场景和并发需求来定。如果业务操作大部分时间不会出现并发冲突,乐观...
在Oracle数据库中,存储过程是一种预先编译并存储在数据库中的SQL代码块,用于执行复杂的业务逻辑或数据处理任务。然而,在多用户并发访问的环境下,存储过程可能会因为某些操作而被锁定,导致其他进程无法访问或...
在SAP ABAP应用程序中,锁机制是保证数据一致性、防止并发访问时产生数据不一致性的关键工具。...开发者应根据业务场景选择合适的锁模式,合理设置锁参数,以确保系统的稳定运行和数据的准确无误。
在IT行业中,尤其是在软件授权和管理领域,"ET199写锁文件"是一个特定的概念,主要关联于广联达公司的产品。...在软件使用过程中,保持授权的合法性和有效性是至关重要的,以免影响业务的正常运行。
首先,我们需要理解Redis的`SET`命令,它可以设置键值对,当配合`EX`(过期时间)和`NX`(如果不存在则设置)或`XX`(如果存在则设置)选项时,可以实现简单的分布式锁。例如: ```php $redis->set('lock_key', '...
- **加锁策略**:使用`SET`命令时可以附加`NX`(如果不存在则设置)和`EX`(设置过期时间)参数,确保了锁的互斥性。例如,`SET key value EX timeout NX`会在键不存在时设置,并设置过期时间,防止死锁。 2. **...
在上述代码中,`query.setLockMode`方法用于对查询结果中的每一行数据设置悲观锁。Hibernate会在执行查询时生成如下SQL语句: ```sql SELECT tuser0_.id AS id, tuser0_.name AS name, tuser0_.group_id AS group_...
【Hibernate乐观锁与悲观锁详解】 在开发过程中,尤其是在并发环境下,确保...开发者应根据具体业务需求选择合适的锁策略。在使用Hibernate时,理解并正确配置这两种锁机制,能有效避免并发环境下的数据不一致性问题。
4. 阻塞锁和非阻塞锁:线程在尝试获取锁时,应根据业务需求选择是立即得到响应(非阻塞锁)还是等待直到锁被释放(阻塞锁)。 5. 锁的有效性:网络中断或节点宕机时,锁必须能够被清除,避免死锁。 分布式锁的实现...
通常的做法是,在设置锁时使用一个唯一标识作为锁的值,在删除锁之前检查这个唯一标识是否与自己设置的一致。如果不一致,则不进行删除操作。 3. 避免锁失效:如果Redis采用主从架构,当主节点故障时,可能会发生锁...
Spring Boot作为流行的Java微服务开发框架,结合Redis这一高效缓存和数据结构服务器,可以实现强大的分布式锁机制,防止多节点项目中的重复业务调用。本项目提供了一种简单且实用的解决方案,利用Redis作为分布式锁...
在IT领域,尤其是在数据库管理和分布式系统中,锁机制是确保数据一致性的重要手段。本文主要讨论的是Hibernate框架中两种锁机制的...在实际开发中,开发者应根据具体业务需求和系统负载情况,合理选择合适的锁策略。
Oracle 数据库锁是确保数据完整性、一致性以及并发操作的关键机制。在Oracle中,锁主要分为两类:数据锁(DML...在设计事务和处理并发操作时,应根据业务需求选择合适的锁类型,并注意锁的兼容性和可能引发的并发问题。
它允许管理员远程设置和更改门锁的访问权限,分配和撤销用户权限,以及实时监控门锁的状态,如开闭记录、异常报警等。此外,软件还可能具备数据分析功能,帮助管理者了解门禁系统的使用情况,以便于优化安全管理策略...
8. **恢复与更新**:解锁后的设备仍可以接收官方系统更新,但通常需要先重新锁住Bootloader,刷回官方Recovery,然后再升级。之后可能需要再次解锁。 9. **注意事项**:每次更新系统后,Bootloader状态可能会被重置...