[发明专利]共享资源访问方法和装置有效
申请号: | 201611116940.2 | 申请日: | 2016-12-07 |
公开(公告)号: | CN106776052B | 公开(公告)日: | 2019-12-10 |
发明(设计)人: | 涂克东 | 申请(专利权)人: | 金蝶软件(中国)有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 44224 广州华进联合专利商标代理有限公司 | 代理人: | 谢曲曲 |
地址: | 518000 广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 共享资源 访问 方法 装置 | ||
本发明涉及一种共享资源访问方法和装置,所述方法包括:获取业务处理请求,开始业务处理;当所述业务处理使用共享资源时,创建独立的内部事务调用所述共享资源;执行所述内部事务,并在所述内部事务完成时释放共享资源的资源锁;执行与所述内部事务对应的外部事务,所述外部事务使用所述内部事务的处理结果。该方法使得共享资源可以及时被使用,减少锁等待,从而减少系统资源的占用。
技术领域
本发明涉及计算机技术领域,特别是涉及一种共享资源访问方法和装置。
背景技术
在软件系统中,通常有些共享资源,例如:单据编码的最大号获取、获取当前预算额度、获取当前账户余额等。这些共享资源有一个特性,必须排队执行,上一次调用完成,下一次调用必须依赖上一次调用完成的结果进行处理,以保证数据的及时和正确性。如果把这些共享资源放在一个事务环境中,一次共享资源调用消耗的时间就取决于这个事务完成所需的时间,如果占用共享资源的事务耗时很长,就会造成大量锁等待,因此会占用大量的系统资源,甚至引起服务器宕机。
传统技术中,一般是通过减少占用共享资源的事务的耗时,来减少锁等待。然而,事务本身是比较难优化的,其本身就是需要一定的时间才能处理完成。因此,传统技术不能有效减少锁等待,减少系统资源的占用。
发明内容
基于此,有必要针对上述技术问题,提供了一种能减少锁等待,从而减少系统资源占用的共享资源访问方法和装置。
一种共享资源访问方法,所述方法包括:
获取业务处理请求,开始业务处理;
当所述业务处理使用共享资源时,创建独立的内部事务调用所述共享资源;
执行所述内部事务,并在所述内部事务完成时释放共享资源的资源锁;
执行与所述内部事务对应的外部事务,所述外部事务使用所述内部事务的处理结果。
在其中一个实施例中,所述方法还包括:
若所述外部事务执行过程正常,则进行提交操作,修改数据库对应的日志状态为提交;若所述外部事务执行过程出现异常,则进行回滚操作,修改数据库对应的日志状态为回滚。
在其中一个实施例中,所述进行提交操作,包括:
调用在外部事务中注册的提交事件,在所述提交时间中提交外部事务的处理结果。
在其中一个实施例中,所述进行回滚操作,包括:
调用在外部事务中注册的回滚事件,在所述回滚事件中释放所述内部事务的处理结果,将所述内部事务的处理结果返回到所述数据库中。
在其中一个实施例中,所述方法还包括:
当执行与所述内部事务对应的外部事务时,修改数据库对应的日志状态为进行中;定时检测数据库日志状态,若所述数据库日志状态为进行中的时间超过预设的时间阈值,则对外部事务的处理结果进行补偿。
一种共享资源访问装置,所述装置包括:
请求获取模块,用于获取业务处理请求,开始业务处理;
事务创建模块,用于当所述业务处理使用共享资源时,创建独立的内部事务调用所述共享资源;
第一事务执行模块,用于执行所述内部事务,并在所述内部事务完成时释放共享资源的资源锁;
第二事务执行模块,用于执行与所述内部事务对应的外部事务,所述外部事务使用所述内部事务的处理结果。
在其中一个实施例中,所述装置还包括:
提交模块,用于若所述外部事务执行过程正常,则进行提交操作;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于金蝶软件(中国)有限公司,未经金蝶软件(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611116940.2/2.html,转载请声明来源钻瓜专利网。