- 博客(3)
- 资源 (1)
- 收藏
- 关注
原创 NC6 关于凭证接口的坑
昨天开始,帮一个老客户处理一个通过接口保存的凭证,凭证号重复的问题。追了很深的代码,从ws实体转换,到凭证号生成和断号处理。有两个问题一定要处理完善,不然接口有问题。1.生成凭证号。如果凭证号字段为空,调用系统凭证保存组件时,系统会使用独立事务,自动生成凭证号,逻辑就是根据账簿,类型,期间在库里存有当前最大号,然后+1。为了防止并发时查询值的时候重复,系统做法是,在同一个事务中,先执行一句update进行锁表,然后查询,补号,设值,跟新最大值,事务提交后,解锁。期间如果有线程访问,由于表被锁,在执行upd
2020-05-24 05:55:24 1309
原创 NC6 锁
最近由于用户使用反向代理,而代理服务器的读取超时只有1分钟,所以在NC上执行较长时间的业务需要改成异步任务,并且提供异步任务监控,由此避免客户端发送IO异常和提升用户体验,这其中涉及到并发情况下的锁的问题,事务的问题,调用信息的问题和token信息的问题,这里我讲讲我阅读NC6锁的相关代码的几点笔记原理:所有锁信息存在单例对象成员位置的一个同步容器里,加锁即put,如果锁存在加锁时返回false,解锁即remove,具体实现可以看LockService4DataSource这个类普通锁: 需要
2020-05-22 12:27:48 450
原创 NC 测试代码执行效率小工具
package fei.time.test;import java.io.PrintStream;import nc.bs.logging.NCSysOutWrapper;public class TimeFei { private static Long lastTime; public static void fei(Long currTime,boolean isnull){ if (isnull) { lastTime = null; } if(lastTime !
2020-05-08 21:27:17 339
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人