CN102156928A - 一种通过业务逻辑锁进行系统并发控制的方法 - Google Patents

一种通过业务逻辑锁进行系统并发控制的方法 Download PDF

Info

Publication number
CN102156928A
CN102156928A CN2011101098412A CN201110109841A CN102156928A CN 102156928 A CN102156928 A CN 102156928A CN 2011101098412 A CN2011101098412 A CN 2011101098412A CN 201110109841 A CN201110109841 A CN 201110109841A CN 102156928 A CN102156928 A CN 102156928A
Authority
CN
China
Prior art keywords
lock
business
function
service logic
logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011101098412A
Other languages
English (en)
Inventor
武蒙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Communication Information System Co Ltd
Original Assignee
Inspur Communication Information System Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Communication Information System Co Ltd filed Critical Inspur Communication Information System Co Ltd
Priority to CN2011101098412A priority Critical patent/CN102156928A/zh
Publication of CN102156928A publication Critical patent/CN102156928A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明提供一种通过业务逻辑锁进行系统并发控制的方法,包括业务逻辑锁基本要素、加解锁方法、超时锁处理;业务逻辑锁的基本要素包括:功能号FUNC_CODE、业务关键数据DATA_CODE、锁编码LOCK_ID、锁定时间LOCKTIME数据,其中关键数据是指业务逻辑处理过程中起关键作用的业务数据,包括订单号、中奖单号、手机号;功能号是指当前锁需要锁定的业务功能,每个功能都唯一相应一个功能号,包括支付业务中订单支付功能号:ORDER_PAY、领奖业务中的领奖功能号:DO_ACTIVITY、用户注册业务功能号DO_REG,这些功能号根据具体业务情况编写;锁定时间标识锁的有效时间,不同的业务逻辑有不同的锁定时间要求;锁编码一条逻辑锁的标识,用于唯一标识一条具体的业务逻辑锁。

Description

一种通过业务逻辑锁进行系统并发控制的方法
技术领域
本发明涉及一种计算机应用,具体地说是一种通过业务逻辑锁进行系统并发控制的方法。
背景技术
随着中国大型IT企业信息化速度的加快,大部分应用的数据量和访问量都急剧增加,大型企业网站正面临性能和高数据访问量的压力,而且对并发处理等方面都提出了更高的要求。
由于用户的误操作(如双击提交按钮)、业务逻辑处理不是很合理(如未合理校验单价的状态或校验成功后与业务处理存在较长的时间间隔),经常会出现诸如一个订单重复扣费、一个用户重复注册、一个奖项重复领取等问题,给用户和企业网站带来麻烦甚至是经济上的损失。
因此,本发明是利用现有技术,对业务逻辑的关键数据进行锁定。保证了业务逻辑处理时关键数据的唯一性、准确性。
发明内容
本发明的目的是提供一种通过业务逻辑锁机制进行系统并发控制及其方法,本发明的业务逻辑锁功能主要用于控制业务逻辑的并发问题,来保证了业务逻辑处理时数据的唯一性、准确性。
本发明的目的是按以下方式实现的,包括业务逻辑锁基本要素、加解锁方法、超时锁处理;
业务逻辑锁的基本要素包括:功能号FUNC_CODE、业务关键数据DATA_CODE、锁编码LOCK_ID、锁定时间LOCKTIME数据,其中关键数据是指业务逻辑处理过程中起关键作用的业务数据,包括订单号、中奖单号、手机号;功能号是指当前锁需要锁定的业务功能,每个功能都唯一相应一个功能号,包括支付业务中订单支付功能号:ORDER_PAY、领奖业务中的领奖功能号:DO_ACTIVITY、用户注册业务功能号DO_REG,这些功能号根据具体业务情况编写;锁定时间标识锁的有效时间,不同的业务逻辑有不同的锁定时间要求;锁编码一条逻辑锁的标识,用于唯一标识一条具体的业务逻辑锁;
业务逻辑处理之前需要进行加锁操作,步骤如下:
将功能号、业务关键数据、锁编码、锁定时间数据在一个单独的数据库事务中保存到一个以功能号、业务关键数据为主键的业务逻辑锁表中,并将此事务单独提交,在保存业务逻辑锁的时候,如果存在相同的未失效锁,即功能号和业务关键数据与当前锁的功能号和业务关键数据相同且未到失效时间,则属于加锁失败,即说明出现的并发问题,如果保存业务锁成功,则说明加锁成功,业务系统可以进行具体业务处理;
加锁失败处理:加锁操作失败:是指在保存业务逻辑锁的时候,存在相同的功能号和业务关键数据,并且已存在的锁并未超时,如果加锁操作失败,则说明此业务存在并发问题,进行错误处理;
如果加锁失败,即存在有着相同功能号、关键数据且未失效的业务逻辑锁,业务系统需要根据具体情况进行处理,其中:1)如果确实发生了并发问题,则要终止当前业务,直到正常解锁或锁失效再重新发起业务;2)当前业务可能存在死锁的情况,包括:用户强制中止了业务逻辑,则在锁超期前可由用户决定是否强行终止业务逻辑锁,并将解锁以后的风险告知用户,用户要求解锁的话,则先将上次的锁删除,再重新进行加锁,加锁成功后调用业务逻辑处理,处理完成后进行解锁;
加锁成功后,进行业务逻辑处理;只有业务逻辑锁加锁成功后,才能进行具体的业务逻辑处理;
业务逻辑处理完成后进行解锁操作;解锁操作是指在业务逻辑锁表中删除或标记为超时以当前业务编号为业务功能号和当前业务数据为业务关键数据的记录,业务逻辑处理完成后应该在单独的数据库事务中执行此业务对应的解锁操作;
步骤如下:
1)对于明确知道锁编码的解锁操作,可直接根据锁编码进行删除操作;
2)根据之前加锁时的功能号、业务关键数据,删除将其对应的业务逻辑锁,与之相关联的父锁、子锁一并删除;
超时锁的解锁处理:是指对于已中断但仍在锁定的业务逻辑,要通过人工和自动两种解锁机制进行解锁,系统通过锁定超时机制定期删除无效的锁,超时时间包括:10分钟、半小时、1小时、24小时或24小时以上,对于已中断但仍在锁定的业务逻辑,在超期前如果用户需要操作此业务逻辑,则可由用户决定是否强行终止当前业务逻辑锁,并通过系统提示让用户了解到强制解锁以后可能存在的风险;
由于可能存在不完整的业务出来逻辑,从而造成一些超时锁的存在,故需要针对这些超时的锁进行处理,步骤如下:
定时扫描业务逻辑锁表,检查现有的业务逻辑锁是否超出了预先设定的有效期,如果发现超时的锁,则进行删除操作。
本发明的优异效果:减少用户的误操作(如双击提交按钮)、业务逻辑处理不是很合理(如未合理校验单价的状态或校验成功后与业务处理存在较长的时间间隔),所出现诸如一个订单重复扣费、一个用户重复注册、一个奖项重复领取等问题,避免给用户和企业网站带来麻烦甚至是经济上的损失。通过对业务逻辑的关键数据进行锁定,保证了业务逻辑处理时关键数据的唯一性、准确性。
附图说明
图1是逻辑锁控制流程图;
图2是锁监控流程图。
具体实施方式
参照说明书附图对本发明的方法作以下详细的说明。
本发明的通过业务逻辑锁进行系统并发控制的方法,包括业务逻辑锁基本要素、加解锁方法、超时锁处理。
业务逻辑锁的基本要素包括:功能号(FUNC_CODE)、业务关键数据(DATA_CODE)、锁编码(LOCK_ID)、锁定时间(LOCKTIME)等数据,其中关键数据是指业务逻辑处理过程中起关键作用的业务数据,如:订单号、中奖单号、手机号等;功能号是指当前锁需要锁定的业务功能,每个功能都唯一相应一个功能号,如支付业务中订单支付功能号:ORDER_PAY、领奖业务中的领奖功能号:DO_ACTIVITY、用户注册业务功能号DO_REG,这些功能号可根据具体业务情况编写;锁定时间标识锁的有效时间,不同的业务逻辑有不同的锁定时间要求;锁编码一条逻辑锁的标识,用于唯一标识一条具体的业务逻辑锁。
本发明可以为业务应用系统提供业务并发控制,一般的应用流程如下:
业务逻辑处理之前需要进行加锁操作,方法如下:
将功能号、业务关键数据、锁编码、锁定时间等数据在一个单独的数据库事务中保存到一个以功能号、业务关键数据为主键的业务逻辑锁表中,并将此事务单独提交。在保存业务逻辑锁的时候,如果存在相同的未失效锁,即功能号和业务关键数据与当前锁的功能号和业务关键数据相同且未到失效时间,则属于加锁失败,即说明出现的并发问题。如果保存业务锁成功,则说明加锁成功,业务系统可以进行具体业务处理。
加锁失败处理:如果加锁失败,即存在有着相同功能号、关键数据且未失效的业务逻辑锁,业务系统需要根据具体情况进行处理。一:如果确实发生了并发问题,则要终止当前业务,直到正常解锁或锁失效再重新发起业务;二、当前业务可能存在死锁的情况,如:用户强制中止了业务逻辑,则在锁超期前可由用户决定是否强行终止业务逻辑锁,并将解锁以后的风险告知用户,用户要求解锁的话,则先将上次的锁删除,再重新进行加锁,加锁成功后调用业务逻辑处理,处理完成后进行解锁。
加锁成功后进行业务逻辑处理。
业务逻辑处理完成后,进行解锁操作,方法如下:
方式一:对于明确知道锁编码的解锁操作,可直接根据锁编码进行删除操作;方式二:根据之前加锁时的功能号、业务关键数据,删除将其对应的业务逻辑锁,与之相关联的父锁、子锁一并删除。
由于可能存在不完整的业务出来逻辑,从而造成一些超时锁的存在,故需要针对这些超时的锁进行处理,方法如下:
定时扫描业务逻辑锁表,检查现有的业务逻辑锁是否超出了预先设定的有效期,如果发现超时的锁,则进行删除操作。
本发明专利是用于系统并发控制机制系统及方法。例如,用户在订单支付的时候保证即使在用户多次提交请求后也是按照一次交易进行支付。本发明所提供的机制及方法用于并发检测及控制。

Claims (1)

1.一种通过业务逻辑锁进行系统并发控制的方法,其特征在于,包括业务逻辑锁基本要素、加解锁方法、超时锁处理;
业务逻辑锁的基本要素包括:功能号FUNC_CODE、业务关键数据DATA_CODE、锁编码LOCK_ID、锁定时间LOCKTIME数据,其中关键数据是指业务逻辑处理过程中起关键作用的业务数据,包括订单号、中奖单号、手机号;功能号是指当前锁需要锁定的业务功能,每个功能都唯一相应一个功能号,包括支付业务中订单支付功能号:ORDER_PAY、领奖业务中的领奖功能号:DO_ACTIVITY、用户注册业务功能号DO_REG,这些功能号根据具体业务情况编写;锁定时间标识锁的有效时间,不同的业务逻辑有不同的锁定时间要求;锁编码一条逻辑锁的标识,用于唯一标识一条具体的业务逻辑锁;
业务逻辑处理之前需要进行加锁操作,步骤如下:
将功能号、业务关键数据、锁编码、锁定时间数据在一个单独的数据库事务中保存到一个以功能号、业务关键数据为主键的业务逻辑锁表中,并将此事务单独提交,在保存业务逻辑锁的时候,如果存在相同的未失效锁,即功能号和业务关键数据与当前锁的功能号和业务关键数据相同且未到失效时间,则属于加锁失败,即说明出现的并发问题,如果保存业务锁成功,则说明加锁成功,业务系统可以进行具体业务处理;
加锁失败处理:加锁操作失败:是指在保存业务逻辑锁的时候,存在相同的功能号和业务关键数据,并且已存在的锁并未超时,如果加锁操作失败,则说明此业务存在并发问题,进行错误处理;
如果加锁失败,即存在有着相同功能号、关键数据且未失效的业务逻辑锁,业务系统需要根据具体情况进行处理,其中:1)如果确实发生了并发问题,则要终止当前业务,直到正常解锁或锁失效再重新发起业务;2)当前业务可能存在死锁的情况,包括:用户强制中止了业务逻辑,则在锁超期前可由用户决定是否强行终止业务逻辑锁,并将解锁以后的风险告知用户,用户要求解锁的话,则先将上次的锁删除,再重新进行加锁,加锁成功后调用业务逻辑处理,处理完成后进行解锁;
加锁成功后,进行业务逻辑处理;只有业务逻辑锁加锁成功后,才能进行具体的业务逻辑处理;
业务逻辑处理完成后进行解锁操作;解锁操作是指在业务逻辑锁表中删除或标记为超时以当前业务编号为业务功能号和当前业务数据为业务关键数据的记录,业务逻辑处理完成后应该在单独的数据库事务中执行此业务对应的解锁操作;步骤如下:
1)对于明确知道锁编码的解锁操作,可直接根据锁编码进行删除操作;
2)根据之前加锁时的功能号、业务关键数据,删除将其对应的业务逻辑锁,与之相关联的父锁、子锁一并删除;
超时锁的解锁处理:是指对于已中断但仍在锁定的业务逻辑,要通过人工和自动两种解锁机制进行解锁,系统通过锁定超时机制定期删除无效的锁,超时时间包括:10分钟、半小时、1小时、24小时或24小时以上,对于已中断但仍在锁定的业务逻辑,在超期前如果用户需要操作此业务逻辑,则可由用户决定是否强行终止当前业务逻辑锁,并通过系统提示让用户了解到强制解锁以后可能存在的风险;
由于可能存在不完整的业务出来逻辑,从而造成一些超时锁的存在,故需要针对这些超时的锁进行处理,步骤如下:
定时扫描业务逻辑锁表,检查现有的业务逻辑锁是否超出了预先设定的有效期,如果发现超时的锁,则进行删除操作。
CN2011101098412A 2011-04-29 2011-04-29 一种通过业务逻辑锁进行系统并发控制的方法 Pending CN102156928A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011101098412A CN102156928A (zh) 2011-04-29 2011-04-29 一种通过业务逻辑锁进行系统并发控制的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011101098412A CN102156928A (zh) 2011-04-29 2011-04-29 一种通过业务逻辑锁进行系统并发控制的方法

Publications (1)

Publication Number Publication Date
CN102156928A true CN102156928A (zh) 2011-08-17

Family

ID=44438414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011101098412A Pending CN102156928A (zh) 2011-04-29 2011-04-29 一种通过业务逻辑锁进行系统并发控制的方法

Country Status (1)

Country Link
CN (1) CN102156928A (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103634347A (zh) * 2012-08-24 2014-03-12 腾讯科技(深圳)有限公司 一种并行业务处理方法、设备及系统
CN106570027A (zh) * 2015-10-10 2017-04-19 阿里巴巴集团控股有限公司 一种事务型任务处理方法及装置
CN106651333A (zh) * 2016-09-20 2017-05-10 联动优势电子商务有限公司 一种防止重复支付的方法和装置
CN106921646A (zh) * 2016-07-26 2017-07-04 阿里巴巴集团控股有限公司 业务处理方法及装置
CN106919640A (zh) * 2016-11-16 2017-07-04 阿里巴巴集团控股有限公司 一种业务处理方法和装置
CN107346273A (zh) * 2017-06-14 2017-11-14 北京奇艺世纪科技有限公司 一种数据恢复方法、装置及电子设备
CN108089926A (zh) * 2018-01-08 2018-05-29 马上消费金融股份有限公司 一种获取分布式锁的方法、装置、设备及可读存储介质
CN109246077A (zh) * 2018-08-01 2019-01-18 广州唯品会信息科技有限公司 分布式并发交易校验方法、装置和计算机存储介质
CN109558218A (zh) * 2018-12-04 2019-04-02 山东浪潮通软信息科技有限公司 一种基于Redis的分布式业务数据锁实现方法
CN110032424A (zh) * 2019-01-28 2019-07-19 阿里巴巴集团控股有限公司 分布式锁的实现方法和装置
CN110716948A (zh) * 2019-12-12 2020-01-21 四川新网银行股份有限公司 一种基于数据定期处理的双锁控制方法及介质
CN111258976A (zh) * 2018-12-03 2020-06-09 北京京东尚科信息技术有限公司 分布式锁实现方法、系统、设备及存储介质
CN112289439A (zh) * 2020-11-17 2021-01-29 北京沃东天骏信息技术有限公司 权益兑换方法和装置
CN112363932A (zh) * 2020-11-11 2021-02-12 网易(杭州)网络有限公司 待测试业务对象的测试方法及装置、电子装置
CN113627917A (zh) * 2021-07-08 2021-11-09 浙江吉利控股集团有限公司 一种订单处理方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1809815A (zh) * 2003-05-01 2006-07-26 国际商业机器公司 管理锁定和事务
CN1858745A (zh) * 2006-04-05 2006-11-08 华为技术有限公司 实现内存数据和数据库数据事务一致性的处理方法
CN101464670A (zh) * 2007-12-17 2009-06-24 英华达(上海)科技有限公司 数据库实时监控系统
CN101576830A (zh) * 2009-06-04 2009-11-11 中兴通讯股份有限公司 数据库事务锁机制的死锁检测方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1809815A (zh) * 2003-05-01 2006-07-26 国际商业机器公司 管理锁定和事务
CN1858745A (zh) * 2006-04-05 2006-11-08 华为技术有限公司 实现内存数据和数据库数据事务一致性的处理方法
CN101464670A (zh) * 2007-12-17 2009-06-24 英华达(上海)科技有限公司 数据库实时监控系统
CN101576830A (zh) * 2009-06-04 2009-11-11 中兴通讯股份有限公司 数据库事务锁机制的死锁检测方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
左万利,金阳,赫枫龄: "主动规则的并发控制与死锁处理", 《小型微型计算机系统》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10310913B2 (en) 2012-08-24 2019-06-04 Tencent Technology (Shenzhen) Company Limited Method, device and system for processing parallel services
CN103634347A (zh) * 2012-08-24 2014-03-12 腾讯科技(深圳)有限公司 一种并行业务处理方法、设备及系统
CN106570027A (zh) * 2015-10-10 2017-04-19 阿里巴巴集团控股有限公司 一种事务型任务处理方法及装置
CN106570027B (zh) * 2015-10-10 2020-08-25 阿里巴巴集团控股有限公司 一种事务型任务处理方法及装置
CN106921646A (zh) * 2016-07-26 2017-07-04 阿里巴巴集团控股有限公司 业务处理方法及装置
CN106651333A (zh) * 2016-09-20 2017-05-10 联动优势电子商务有限公司 一种防止重复支付的方法和装置
CN106919640A (zh) * 2016-11-16 2017-07-04 阿里巴巴集团控股有限公司 一种业务处理方法和装置
CN107346273A (zh) * 2017-06-14 2017-11-14 北京奇艺世纪科技有限公司 一种数据恢复方法、装置及电子设备
CN107346273B (zh) * 2017-06-14 2020-09-04 北京奇艺世纪科技有限公司 一种数据恢复方法、装置及电子设备
CN108089926A (zh) * 2018-01-08 2018-05-29 马上消费金融股份有限公司 一种获取分布式锁的方法、装置、设备及可读存储介质
CN109246077A (zh) * 2018-08-01 2019-01-18 广州唯品会信息科技有限公司 分布式并发交易校验方法、装置和计算机存储介质
CN111258976A (zh) * 2018-12-03 2020-06-09 北京京东尚科信息技术有限公司 分布式锁实现方法、系统、设备及存储介质
CN109558218A (zh) * 2018-12-04 2019-04-02 山东浪潮通软信息科技有限公司 一种基于Redis的分布式业务数据锁实现方法
CN110032424A (zh) * 2019-01-28 2019-07-19 阿里巴巴集团控股有限公司 分布式锁的实现方法和装置
CN110032424B (zh) * 2019-01-28 2023-10-20 创新先进技术有限公司 分布式锁的实现方法和装置
CN110716948A (zh) * 2019-12-12 2020-01-21 四川新网银行股份有限公司 一种基于数据定期处理的双锁控制方法及介质
CN112363932A (zh) * 2020-11-11 2021-02-12 网易(杭州)网络有限公司 待测试业务对象的测试方法及装置、电子装置
CN112363932B (zh) * 2020-11-11 2024-03-22 网易(杭州)网络有限公司 待测试业务对象的测试方法及装置、电子装置
CN112289439A (zh) * 2020-11-17 2021-01-29 北京沃东天骏信息技术有限公司 权益兑换方法和装置
CN113627917A (zh) * 2021-07-08 2021-11-09 浙江吉利控股集团有限公司 一种订单处理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN102156928A (zh) 一种通过业务逻辑锁进行系统并发控制的方法
CN103782574B (zh) 用于数据库事务的幂等性
CN102460441A (zh) 从数据库操作审核交易数据的方法和系统
CN104272247B (zh) 元数据驱动的撤销方法和系统
EP2797014B1 (en) Database update execution according to power management schemes
CN101350022B (zh) 基于数据库逻辑锁的变更处理方法
CN101877157A (zh) 银行终端安全设备密钥管理系统及方法
CN101546311A (zh) 回收站的数据处理方法及数据处理装置
CN102118436A (zh) 用于实现在计算设备上的远程控制协助会话的方法和系统
CN101697136B (zh) 一种资源控制方法和装置
CN1210669C (zh) 实现不间断服务的数据处理方法和系统
CN102968457B (zh) 数据库间切换方法和系统
CN106371953A (zh) 紧凑二进制事件日志生成
WO2020015116A1 (zh) 数据库监控方法及终端设备
RU2677384C1 (ru) Способ автоматического зачисления внесенных денежных средств при возникновении сбоев
RU2463658C2 (ru) Предварительно оплаченный доступ к обработке данных с использованием переносных устройств хранения данных
CN108415758B (zh) 分布式事务协调方法及装置
CN101420773A (zh) 传感器网络操作系统自保护系统
CN108460142A (zh) 一种基于区块链技术的数据库系统
CN106204263B (zh) 交易运行控制方法和装置
CN101281623A (zh) 建构管理软件的验证方法
CN106570807A (zh) 全国居民身份证信息维护平台
CN104484331B (zh) 基于erp系统的电子报账模块性能优化方法
CN112257034A (zh) 一种贴片机加密授权算法和管理系统
CN102231199A (zh) 一种交易信息异步处理的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110817