CN100452707C - 一种保持数据一致性的方法及系统 - Google Patents
一种保持数据一致性的方法及系统 Download PDFInfo
- Publication number
- CN100452707C CN100452707C CNB2006101706510A CN200610170651A CN100452707C CN 100452707 C CN100452707 C CN 100452707C CN B2006101706510 A CNB2006101706510 A CN B2006101706510A CN 200610170651 A CN200610170651 A CN 200610170651A CN 100452707 C CN100452707 C CN 100452707C
- Authority
- CN
- China
- Prior art keywords
- transaction
- information
- water meter
- dashing
- flow water
- 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.)
- Active
Links
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种联机数据交互中保持数据一致性的方法,所述联机数据交互涉及客户端、交互平台和服务器,其特征在于,所述方法包括:通过客户端提交数据交互请求,触发交互平台生成唯一对应的交互顺序号并通知服务器;所述服务器完成数据处理并返回结果,所述交互平台同步记录交互过程信息至第一信息表;如果所述数据交互失败,则发起回滚操作请求,由交互平台在第二信息表中记录回滚操作信息,并向客户端返回交互结束信息;所述交互平台连接所述服务器根据第二信息表完成回滚操作。本发明在客户端即时结束失败的数据交互,由服务器来处理其它事务,不会占用客户端资源,使得客户端可以继续处理其他交易,有效提高了系统处理效率。
Description
技术领域
本发明涉及基于网络的联机数据交互领域,特别是涉及一种联机数据交互中保持数据一致性的方法和系统。
背景技术
联机数据交互的基本特征是由客户端处理数据的输入输出和基本预处理,服务器进行具体的数据处理,客户端和服务器之间进行数据的交互需要通过交互平台实现,所述交互平台用于保存数据交互的过程信息。具体地说,数据交互的过程为:客户端接受用户的请求,通过交互平台向服务器提出请求,服务器从数据库中获得数据,对数据进行处理或计算,并将结果通过交互平台提交给客户端,同时,交互平台记录客户端与服务器之间数据交互的过程信息;最后,客户端将结果呈现给用户。这样,用户就看到了数据从客户到服务器,经过服务器的处理再返回到客户端,由客户端软件(如IE)显示结果。
当交互全部完成时,数据的一致性可以保持;但当存在如服务器未响应、服务器调用超时、交互平台未进行交互、以及其它网络传输或硬件故障导致数据交互失败的情况时,必然会造成数据交互不完整,数据不一致的结果,在这种情况下,必然有一端的数据是错误数据。现有的处理方法是在每天的固定时间,例如,在每天的18:00,由人工对执行失败的交互进行回滚操作,这种方法虽然可以在人工操作后保证交互过程的完整性和数据的一致性,但是,在人工没有进行操作以前,错误数据一直存在于系统中,比如,在8:00时由于服务器未响应出现的交互失败,那么在服务器中记录的数据与客户端的数据不一致的情况需要在系统中存在10小时,这样就容易使系统在处理其他数据交互调用该错误数据时,引起一连串的数据处理错误。
具体地说,银行的柜面业务、清算业务、信用卡业务以及其它中间业务等都是属于联机数据交互处理的范畴。以现有客户端/服务器结构的银行联机交易处理系统为例,其中,数据交互对应于银行联机交易,交互的数据具体为账务数据,交互平台对应于银行联机交易处理系统的中间件,一笔联机交易至少包含如下四个过程:①请求传输过程;②服务器交易处理过程;③应答传输过程;④客户端处理应答过程。所述四个过程都有可能出现因为网络或硬件故障而导致传输失败的情况,例如,在服务器,该笔交易已处理或完成;在客户端,没有收到应答,因此该笔交易失败,导致服务器与客户端的交易不完整,数据不一致。
另外,现有的银行联机交易处理系统往往涉及多个银行主机系统,当交易在执行过程中,也可能由于交易过程中的通讯错误、网络故障或硬件故障等异常情况,导致某个主机系统由于某种原因不能正常执行其服务。一旦出现这种情况,对于一笔需要执行多个主机系统的不同服务的交易,例如异地提款业务,则会造成银行主机系统之间的账务不一致。
对于各种在联机交易处理系统中出现的数据不一致的情况,现有的解决办法是通过在日终轧账时对不一致的账务通过人工调账的方式来解决,这种方式的基本思想是当数据不一致性问题的发生后,通过事后附加的干预过程来进行补救,然而这种方式有可能导致数据不一致的情况存在较长的时间,使系统在处理其他交易需要调用该错误数据时,会导致一连串的数据处理错误,由于无法控制风险存在的时间,所以对整个交易系统产生影响。此外,通过人工调账的方法既耗费人力、时间,又效率低下。
总之,随着客户端/服务器之间的数据交互的日益频繁,迫切需要发展出一种缩短风险存在的时间,实时保持联机数据交互处理系统中数据的一致性的方法,尤其对于银行联机数据交互中的账务一致性而言更是如此。
发明内容
本发明所要解决的技术问题是提供一种保持数据一致性的方法,以保证基于网络的联机数据交互中数据的一致性,对由于各种原因产生的数据不一致的情况即时处理。
本发明的另一个目的是将上述方法应用于实际中,提供一种保持数据一致性的系统,可以使服务提供商不需要额外购买设备、也不需要额外支出,即保证上述方法的实现和应用。
为解决上述技术问题,本发明提供了一种联机数据交互中保持数据一致性的方法,所述联机数据交互涉及客户端、前置机和服务器,包括;
通过客户端提交交易请求,触发前置机生成唯一对应的交易顺序号并通知服务器;
所述服务器完成交易处理并返回结果,所述前置机同步记录交易流水信息至交易流水表;
如果所述交易失败,则发起冲正请求,由所述前置机在冲正流水表中记录冲正信息,并向客户端返回交易结束信息;
所述前置机连接所述服务器根据所述冲正流水表通过以下步骤完成冲正:
判断所述冲正请求在所述交易流水表中是否存在匹配的交易流水信息;如果是,则执行冲正;如果否,则根据该交易的交易顺序号生成一个新的交易流水号;以及在所述交易流水表中记录一条交易流水信息,所述交易流水信息包括该交易流水号和冲正报文。
优选的是,当所述交易为单笔服务时,前置机接收客户端发起的冲正请求,在冲正流水表中记录一条冲正信息,并向客户端返回虚假的冲正成功消息作为交易结束信息,客户端记录冲正成功并结束此次交易。
优选的是,当所述交易由多笔服务组成时,前置机发起冲正请求,在冲正流水表中记录一条冲正信息,并向客户端返回交易失败消息作为交易结束信息,客户端记录交易失败并结束此次交易。
优选的是,完成冲正还包括以下步骤:如果所述冲正匹配的正常交易流水信息到达,则删除包括该交易流水号和冲正报文的交易流水信息,记录所述正常的交易流水信息。
优选的是,通过以下步骤执行冲正:读取冲正流水表中的冲正信息,并发送至消息队列;处理消息队列中的冲正;如果冲正失败,则根据指定的时间间隔重复处理该冲正。
优选的是,所述交易流水表采用两张表交替记录交易流水信息,每张表记录一天的交易流水信息,记录当天交易流水信息的表为有效交易流水表。
优选的是,还包括以下步骤执行冲正:判断冲正的执行是否超过了预置的时间阈值,如果是,则执行手工冲正。
本发明还公开了一种保持数据一致性的系统,包括:
前置机:包括号码生成模块、流水模块和回滚操作模块,所述号码生成模块用于根据交易请求生成交易顺序号,以及根据交易顺序号生成交易流水号;所述流水模块用于根据所述交易顺序号在交易流水表中同步记录交易流水信息;所述回滚操作模块用于在数据交互失败时发起冲正请求在冲正流水表中记录冲正信息,向客户端返回交易结束信息,并连接服务器根据冲正流水表通过以下单元完成冲正:
判断单元,用于判断冲正请求在交易流水表中是否存在匹配的交易流水信息;
执行单元:用于当所述冲正请求在交易流水表中存在匹配的交易流水信息时,执行冲正;
重置单元,用于当所述冲正请求在交易流水表中不存在匹配的交易流水信息时,根据该交易的交易顺序号生成一个新的交易流水号;以及在交易流水表中记录一条交易流水信息,所述交易流水信息包括该交易流水号和冲正报文。
优选的是,所述执行单元包括以下子单元:
读取子单元,用于读取冲正流水表中的冲正信息,并发送至消息队列;
处理子单元,用于处理消息队列中的冲正;
重复处理子单元,用于当冲正失败时,根据指定的时间间隔重复处理该冲正。
优选的是,当所述交易由多笔服务组成时,前置机发起冲正请求,在冲正流水表中记录一条冲正信息,并向客户端返回交易失败消息作为交易结束信息,客户端记录交易失败并结束此次交易。
优选的是,所述交易流水表采用两张表交替记录交易流水信息,每张表记录一天的交易流水信息,记录当天交易流水信息的表为有效交易流水表。
优选的是,所述执行单元还包括以下子单元:
同步冲正子单元:用于判断冲正的执行是否超过了预置的时间阈值,如果是,则执行手工冲正。
本发明实施例还公开了一种保持数据一致性的系统,包括:
前置机:包括号码生成模块、流水模块和回滚操作模块,所述号码生成模块用于根据交易请求生成交易顺序号,以及根据交易顺序号生成交易流水号;所述流水模块用于根据所述交易顺序号在交易流水表中同步记录交易流水信息;所述回滚操作模块用于在数据交互失败时接收客户端发起的冲正请求在冲正流水表中记录冲正信息,向客户端返回交易结束信息,并连接服务器根据冲正流水表通过以下单元完成冲正:
判断单元,用于判断冲正请求在交易流水表中是否存在匹配的交易流水信息;
执行单元:用于当所述冲正请求在交易流水表中存在匹配的交易流水信息时,执行冲正;
重置单元,用于当所述冲正请求在交易流水表中不存在匹配的交易流水信息时,根据该交易的交易顺序号生成一个新的交易流水号;以及在交易流水表中记录一条交易流水信息,所述交易流水信息包括该交易流水号和冲正报文。
与现有技术相比,本发明具有以下优点:
首先,本发明对于失败的数据交互,由交互平台连接服务器即时发起和完成回滚操作,可以即时的保证联机数据交互中的数据一致性;并且本发明在客户端即时结束失败的数据交互,回滚操作由交互平台连接服务器完成,不需要客户端参与,从而不会占用客户端资源,使得客户端可以继续处理其他交易,有效提高了系统处理效率;
其次,本发明通过查找冲正匹配的交易流水信息,防止了一种时序错误产生的风险,进而有效保持了数据的一致性;
再者,本发明采用两张表交替记录交易流水信息,每张表只记录一天的交易流水信息,提高了对数据进行查询的效率,并且简化了数据备份操作,减少了系统资源的占用;
此外,对于其它产生数据不一致的极端情况,本发明还通过采用同步冲正进行防范,进一步保持了数据的一致性。对于服务提供商来说,本发明技术实现简单、无特殊保密算法,不需要额外支出及额外配置设备,成本和风险较低。
附图说明
图1是本发明一种保持数据一致性的方法的流程图;
图2是本发明一种保持数据一致性的系统的结构框图;
图3是使用如图2所示系统在银行联机交易处理系统中保持账务一致性的方法的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参考图1,是本发明一种联机数据交互中保持数据一致性的方法的流程图,包括以下步骤:
步骤101、通过客户端提交数据交互请求,触发交互平台生成唯一对应的交互顺序号并通知服务器;
步骤102、所述服务器完成数据处理并返回结果,所述交互平台同步记录交互过程信息至第一信息表;
步骤103、如果所述数据交互失败,则发起回滚操作请求,由交互平台在第二信息表中记录回滚操作信息,并向客户端返回交互结束信息;
步骤104、所述交互平台连接所述服务器根据第二信息表完成回滚操作。
为使本领域技术人员更好地理解本发明,以下将根据银行联机交易处理业务对本发明进行详细说明。
需要说明的是,现有的银行联机交易处理系统基本为三层架构,最下层为客户端,所述客户端用于处理交易数据的输入输出和基本预处理,例如柜面前端、ATM、POS等都是客户端;中间层为前置机,所述前置机作为中间件连接银行联机交易处理系统中的上层和下层,用于管理计算资源和网络资源;最上层是服务器,所述服务器用于存储交易数据或进行具体的交易处理。在银行联机交易处理系统中,所述数据交互即为交易,所述交互平台为前置机,所述第一信息表为交易流水表,所述回滚操作为冲正,所述第二信息表为冲正流水表。
在实际应用中,可以在银行联机交易处理系统中设置多台前置机来完成交易,也可以采用一台高性能前置机代替所有的前置机,本发明对此不加以限制。此外,当涉及多个银行主机系统时,所述主机系统统称为服务器。
用户通过客户端提起交易请求,对于每一笔交易请求,前置机会产生一个唯一的交易顺序号产生进程。当交易顺序号产生进程启动后,该进程首先去交易流水表中获取最后一笔交易的交易顺序号,然后循环进行以下操作:
加1产生新的交易顺序号,如果超过最大值,例如超过9999999,则归0;
记录到交易流水表,并通过消息队列发送给交易顺序号请求进程,所述进程是指程序在计算机上的一次执行活动。
其中,所述交易顺序号由配置文件手工设定,范围是0~9,在使用多台前置机的银行联机交易处理系统中,应当保证交易顺序号在多台前置机部署的范围内是唯一的。此外,传送交易顺序号的消息队列键值通过配置文件sys.ini进行配置,优选的是,需要保证前置机的内部通讯消息队列键值不冲突,即,每一个前置机节点上的一个用户只能启动一个交易顺序号产生进程,用以保证对于每一个交易请求生成唯一对应的交易顺序号。
本发明根据交易顺序号顺序执行所述交易,并将交易执行中每一次服务同步记录到交易流水表中,也就是说,每执行一笔交易中的一次服务就记录一条流水信息,对于多笔服务的交易,则记录多条流水信息。例如,对于一笔本地提款交易,只需要访问前置机的一次服务,则记录一条流水信息;对于一笔异地转账交易,其中交易收款方为异地卡,付款方为本地卡,则要将访问本地卡系统执行扣款操作记录一条流水信息;再将访问网络执行存款操作记录一条流水信息,总共记录两条流水信息。进行同步记录的好处是,当需要冲正时,回滚操作模块可以根据交易流水表恢复交易执行的现场环境,用以通过准确地查找冲正匹配的原交易,避免由于交易不对应产生账务不一致的情况。
如果交易在执行过程中没有出现任何错误,则向客户端返回交易结束信息为交易成功,客户端结束此次交易。如果在交易执行过程中,由于服务器调用超时、返回报文不可识别、组合交易执行过一步或多步后,再次执行出现调用失败、应答客户端时组包错误或前置机内部其他无法预知的异常等情况而导致交易执行失败,当所述交易是单笔服务时,由客户端发起冲正请求,前置机接收客户端发起的冲正请求,在冲正流水表中记录一条冲正信息,并即时向客户端返回虚假的冲正成功消息作为交易结束信息,客户端记录冲正成功并结束此次交易。例如,执行一笔ATM取款交易,在服务器记账成功,但在出款时ATM出现机械故障而导致出款失败,此时客户端发起冲正请求,前置机接收该冲正请求并自动生成一条冲正信息记录至冲正流水表,然后向ATM返回一个“冲正成功”的信息,此时,ATM记录这笔取款交易为“冲正成功”并立刻结束此交易,需要注意的是,这里的“冲正成功”并不是指真正意义上地完成了冲正,而是将冲正的处理通过前置机转到了服务器,由服务器进行处理,即时返回“冲正成功”是为了使客户端即时结束交易,使此笔交易不再占用ATM,方便下一笔交易的继续执行。当所述交易是由多笔服务组成时,由前置机发起冲正请求,于是回滚操作模块在冲正流水表中记录一条冲正信息,并即时向客户端返回交易失败消息作为交易结束信息,客户端记录交易失败并结束此次交易。例如,执行一笔ATM上的异地转账组合交易,如果访问本地卡系统执行扣款操作的服务成功,而访问网络执行存款操作的服务失败,在这种情况下,由前置机内部即时发起冲正请求,并自动生成一条冲正信息记录至冲正流水表,然后向ATM返回一个“交易失败”的信息,此时,ATM记录这笔取款交易为“交易失败”并立刻结束此交易。
无论交易执行结果是成功还是失败,本发明在记录冲正信息后,客户端都会结束交易,从而缩短了系统内交易不完整、数据不一致存在的时间,有效降低了产生账务不一致的风险,有效地提高了系统的处理效率。
优选的是,本发明的前置机连接服务器根据冲正流水表完成冲正包括以下步骤:
判断冲正请求在交易流水表中是否存在匹配的交易流水信息;
如果是,则执行冲正;
如果否,则根据该交易的交易顺序号生成一个新的交易流水号;以及在交易流水表中记录一条交易流水信息,所述交易流水信息包括该交易流水号和冲正报文。
由于交易流水已经进行了同步记录,服务器完成冲正时,需要恢复交易执行的现场环境,查找到冲正匹配的原交易进行冲正。如果在交易流水表中存在匹配的交易流水信息,即表示交易的交易请求是优先于冲正请求到达的,符合正常的交易时序。在这种情况下,本发明通过从交易流水表获取匹配的那条交易流水信息,并根据该交易流水信息组织报文发送给前置机,前置机连接服务器执行冲正。
如果冲正请求在交易流水表中不存在匹配的交易流水信息,可以判定交易时序出现异常,即交易的冲正请求是优先于交易请求到达的。事实上,所述交易请求必然是优先于冲正请求发出的,但由于网络传输或硬件故障而使冲正请求优先于交易请求到达前置机。本发明考虑到这种情况并进行了相应处理,有效避免了产生数据不一致的风险。
需要说明的是,所述交易流水号至少包括交易顺序号和交易步骤号,用以唯一识别一笔交易的交易执行进度。此外,前置机处理的所有交易都是以报文为基础的,利用报文可以很容易地将交易的各项要求表述清楚。只要将报文格式定义明确,任何交易的细节都可以包含在报文之中。交易报文的制定可以参照ISO 8583国际标准。本发明所述冲正报文的内容主要包括交易流水号、交易日期、要冲正的交易的交易流水号及要冲正的交易的交易日期。如果所述冲正匹配的正常交易流水信息到达,即可发现冲正报文中已经存在与正常交易流水信息相关的内容,此时,所述前置机则删除该交易流水号和冲正报文的交易流水信息,记录所述正常的交易流水信息。
优选的是,前置机连接服务器执行冲正的过程为:
读取冲正流水表中的冲正信息,并发送至消息队列;
处理消息队列中的冲正;
如果冲正失败,则根据指定的时间间隔重复处理该冲正。
优选的是,上述步骤可以由冲正进程组完成。所述冲正进程组由一个冲正信息读取进程和多个冲正执行进程组成,所述冲正信息读取进程和冲正执行进程基于消息队列通讯,因此,消息队列是进程间通讯的工具,在所述冲正信息读取进程和冲正执行进程之间传送冲正请求,所述消息队列的键值通过配置文件sys.ini设定。
冲正进程组启动后,由冲正信息读取进程从冲正流水表中读取待冲正信息,并将冲正流水表中记录的冲正信息状态更改为“正在冲正”,再将待冲正信息发送给一个冲正执行进程完成冲正。如果一次冲正失败,则返回并记录冲正失败,优选的是,设置时间间隔重复执行该冲正,直至冲正成功。在实际中,可以根据实际需要灵活调节冲正执行进程的数量,达到效率与性能兼顾的目标,例如,对于出现大量冲正请求的情况,可以启动多个相应数量的冲正执行进程,以便及时的处理冲正;对冲正请求较少的情况,可以减少相应数量的冲正执行进程,以避免占用过多系统资源。
对于冲正的执行过程还可以预置时间阈值,例如,预置为24小时,在对于多次重复处理冲正仍未冲正成功的情况下,判断冲正的执行是否超过了预置的时间阈值,如果是,则执行同步冲正。所述同步冲正是由人工发起的,对极端情况下自动冲正不能完成的冲正执行回滚操作,用以保持账务一致性。对于如何进行同步冲正,本领域技术人员可以采用现有的各种方法,本发明并不对此进行限制。
优选的是,所述交易流水表采用两张表交替记录交易流水信息,每张表只记录一天的交易流水信息,记录当天交易流水信息的表为有效交易流水表。
为使本领域技术人员更好地理解,以下举例说明两张交易流水表的工作过程。
例如,用户可以通过修改tablenameconfig表记录的信息,控制当前使用的有效交易流水表的表名,流水表表名为wastebook1和wastebook2,以及当前交易日期标识。
在2006年1月16日tablenameconfig表中的记录信息如下:
前置机每次记录交易流水前都会检查tablenameconfig表中frontrecycle active为Y的这一条信息,可以得知当前的交易日期是2006-01-15,当前使用的有效交易流水表是wastebook1。于是就把交易流水信息都记录到wastebook1表中,每条交易流水信息中交易日期也都记为20060115。当冲正请求在交易流水表中查找是否具有匹配的交易流水信息时,可以通过匹配交易流水号和交易日期在有效交易流水表wastebook1中查找。
在记录完一天的交易流水信息后,在2006-01-15当天晚上日终轧账时(也可以设置为其它时间,用户根据需要设置即可)会执行一个“翻牌”操作,所述翻牌操作首先检查tablenameconfig表,把frontrecycleactive为N的wastebook2表中记录的交易流水信息进行备份和清理,然后把tablenameconfig表中的数据修改为:
因此,所述有效交易流水表已被更换为wastebook2表,前置机会将第二天的交易流水信息都记录到wastebook2表中,并且每条交易流水中交易日期都记为20060116。同样地,当冲正请求在交易流水表中查找是否具有匹配的交易流水信息时,可以通过匹配交易流水号和交易日期在有效交易流水表wastebook2中查找。优选的是,还可以通过限制日终轧账前的交易不允许再被冲正,简单地说,即昨天及以前的交易都不允许再被冲正。采用两张流水表交替使用的方法可以提高对数据进行查询的效率,简化数据备份操作,同时减少了系统资源的占用。
参照图2,是本发明一种保持数据一致性的系统的结构框图,包括以下部件:
交互平台201:包括号码生成模块2011、流水模块2012和回滚操作模块2013,所述号码生成模块2011用于根据数据交互请求生成交互顺序号,以及根据交互顺序号生成交互流水号;所述流水模块2012用于根据所述交互顺序号在第一信息表中同步记录交互过程信息;所述回滚操作模块2013用于在数据交互失败时发起回滚操作请求,在第二信息表中记录回滚操作信息,向客户端202返回交互结束信息,并连接服务器根据第二信息表完成回滚操作。所述服务器用于调用交互平台完成数据处理、返回结果和进行回滚操作。
客户端202:用于与交互平台201连接,提供用户数据交互的接口。具体包括,接收数据交互请求启动交易;根据交互结束信息结束交互;以及提供给用户可视化界面显示交互执行结果。
将本发明应用于银行联机交易处理系统中,所述数据交互为交易,所述交互平台为前置机,所述第一信息表为交易流水表,所述回滚操作为冲正,所述第二信息表为冲正流水表。
优选的是,所述回滚操作模块2013连接服务器通过以下单元完成冲正:
判断单元131,用于判断冲正请求在交易流水表中是否存在匹配的交易流水信息;
执行单元132,用于当所述冲正请求在交易流水表中存在匹配的交易流水信息时,执行冲正;
重置单元133,用于当所述冲正请求在交易流水表中不存在匹配的交易流水信息时,根据该交易的交易顺序号生成一个新的交易流水号;以及在交易流水表中记录一条交易流水信息,所述交易流水信息包括该交易流水号和冲正报文。
优选的是,所述执行单元132进一步包括以下子单元:
读取子单元,用于读取冲正流水表中的冲正信息,并发送至消息队列;
处理子单元,用于处理消息队列中的冲正;
重复处理子单元,用于当冲正失败时,根据指定的时间间隔重复处理该冲正。
优选的是,所述执行单元132还可以包括以下子单元处理不能自动完成的冲正:
同步冲正子单元:用于判断冲正的执行是否超过了预置的时间阈值,如果是,则执行同步冲正。
参考图3,是使用图2所示系统在银行联机交易处理系统中保持账务一致性的方法的流程图,包括以下步骤:
步骤301、接收交易请求,生成唯一对应的交易顺序号;
步骤302、执行所述交易,并在交易流水表中同步记录交易流水信息;
步骤303、如果交易执行失败,则发起冲正请求,由前置机在冲正流水表中记录冲正信息,并向客户端返回交易结束信息;
当所述交易为单笔服务时,前置机接收客户端发起的冲正请求,在冲正流水表中记录一条冲正信息,并向客户端返回虚假的冲正成功消息作为交易结束信息,客户端记录冲正成功并结束此次交易。
当所述交易由多笔服务组成时,前置机发起冲正请求,在冲正流水表中记录一条冲正信息,并向客户端返回交易失败消息作为交易结束信息,客户端记录交易失败并结束此次交易。
步骤304、前置机连接服务器根据冲正流水表完成冲正。包括以下子步骤:
步骤3041、判断冲正请求在交易流水表中是否存在匹配的交易流水信息;
步骤3042、当所述冲正请求在交易流水表中存在匹配的交易流水信息时,则执行冲正,具体过程为:
读取冲正流水表中的冲正信息,并发送至消息队列;
处理消息队列中的冲正;
如果冲正失败,则根据指定的时间间隔重复处理该冲正。
对于多次重复处理冲正仍不成功的情况,判断冲正的执行是否超过了预置的时间阈值,如果是,则执行同步冲正。
步骤3043、当所述冲正请求在交易流水表中不存在匹配的交易流水信息,则:
根据该交易的交易顺序号生成一个新的交易流水号;
在交易流水表中记录一条交易流水信息,所述交易流水信息包括该交易流水号和冲正报文;
如果所述冲正匹配的正常交易流水信息到达,则删除包括该交易流水号和冲正报文的交易流水信息,记录所述正常的交易流水信息。
作为另一实施例,本发明还可以采用两张表交替记录交易流水信息,每张表记录一天的交易流水信息,记录当天交易流水信息的表为有效交易流水表,其具体处理过程可以参见本说明前述相关部分。
以上对于图2、3的描述未详尽之处,也可以参见本说明书前述相关部分。
以上对本发明所提供的一种保持数据一致性的方法和系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (13)
1、一种联机数据交互中保持数据一致性的方法,所述联机数据交互涉及客户端、前置机和服务器,其特征在于,所述方法包括:
通过客户端提交交易请求,触发前置机生成唯一对应的交易顺序号并通知服务器;
所述服务器完成交易处理并返回结果,所述前置机同步记录交易流水信息至交易流水表;
如果所述交易失败,则发起冲正请求,由所述前置机在冲正流水表中记录冲正信息,并向客户端返回交易结束信息;
所述前置机连接所述服务器根据所述冲正流水表通过以下步骤完成冲正:
判断所述冲正请求在所述交易流水表中是否存在匹配的交易流水信息;如果是,则执行冲正;如果否,则根据该交易的交易顺序号生成一个新的交易流水号;以及在所述交易流水表中记录一条交易流水信息,所述交易流水信息包括该交易流水号和冲正报文。
2、如权利要求1所述的方法,其特征在于,当所述交易为单笔服务时,前置机接收客户端发起的冲正请求,在冲正流水表中记录一条冲正信息,并向客户端返回虚假的冲正成功消息作为交易结束信息,客户端记录冲正成功并结束此次交易。
3、如权利要求1所述的方法,其特征在于,当所述交易由多笔服务组成时,前置机发起冲正请求,在冲正流水表中记录一条冲正信息,并向客户端返回交易失败消息作为交易结束信息,客户端记录交易失败并结束此次交易。
4、如权利要求1所述的方法,其特征在于,完成冲正还包括以下步骤:
如果冲正匹配的正常交易流水信息到达,则删除包括该交易流水号和冲正报文的交易流水信息,记录所述正常的交易流水信息。
5、如权利要求1所述的方法,其特征在于,通过以下步骤执行冲正:
读取冲正流水表中的冲正信息,并发送至消息队列;
处理消息队列中的冲正;
如果冲正失败,则根据指定的时间间隔重复处理该冲正。
6、如权利要求1所述的方法,其特征在于,所述交易流水表采用两张表交替记录交易流水信息,每张表记录一天的交易流水信息,记录当天交易流水信息的表为有效交易流水表。
7、如权利要求5所述的方法,其特征在于,还包括以下步骤执行冲正:
判断冲正的执行是否超过了预置的时间阈值,如果是,则执行手工冲正。
8、一种保持数据一致性的系统,其特征在于,包括:
前置机:包括号码生成模块、流水模块和回滚操作模块,所述号码生成模块用于根据交易请求生成交易顺序号,以及根据交易顺序号生成交易流水号;所述流水模块用于根据所述交易顺序号在交易流水表中同步记录交易流水信息;所述回滚操作模块用于在数据交互失败时发起冲正请求在冲正流水表中记录冲正信息,向客户端返回交易结束信息,并连接服务器根据冲正流水表通过以下单元完成冲正:
判断单元,用于判断冲正请求在交易流水表中是否存在匹配的交易流水信息;
执行单元:用于当所述冲正请求在交易流水表中存在匹配的交易流水信息时,执行冲正;
重置单元,用于当所述冲正请求在交易流水表中不存在匹配的交易流水信息时,根据该交易的交易顺序号生成一个新的交易流水号;以及在交易流水表中记录一条交易流水信息,所述交易流水信息包括该交易流水号和冲正报文。
9、如权利要求8所述的系统,其特征在于,所述执行单元包括以下子单元:
读取子单元,用于读取冲正流水表中的冲正信息,并发送至消息队列;
处理子单元,用于处理消息队列中的冲正;
重复处理子单元,用于当冲正失败时,根据指定的时间间隔重复处理该冲正。
10、如权利要求8所述的系统,其特征在于,当所述交易由多笔服务组成时,前置机发起冲正请求,在冲正流水表中记录一条冲正信息,并向客户端返回交易失败消息作为交易结束信息,客户端记录交易失败并结束此次交易。
11、如权利要求8所述的系统,其特征在于,所述交易流水表采用两张表交替记录交易流水信息,每张表记录一天的交易流水信息,记录当天交易流水信息的表为有效交易流水表。
12、如权利要求9所述的系统,其特征在于,所述执行单元还包括以下子单元:
同步冲正子单元:用于判断冲正的执行是否超过了预置的时间阈值,如果是,则执行手工冲正。
13、一种保持数据一致性的系统,其特征在于,包括:
前置机:包括号码生成模块、流水模块和回滚操作模块,所述号码生成模块用于根据交易请求生成交易顺序号,以及根据交易顺序号生成交易流水号;所述流水模块用于根据所述交易顺序号在交易流水表中同步记录交易流水信息;所述回滚操作模块用于在数据交互失败时接收客户端发起的冲正请求在冲正流水表中记录冲正信息,向客户端返回交易结束信息,并连接服务器根据冲正流水表通过以下单元完成冲正:
判断单元,用于判断冲正请求在交易流水表中是否存在匹配的交易流水信息;
执行单元:用于当所述冲正请求在交易流水表中存在匹配的交易流水信息时,执行冲正;
重置单元,用于当所述冲正请求在交易流水表中不存在匹配的交易流水信息时,根据该交易的交易顺序号生成一个新的交易流水号;以及在交易流水表中记录一条交易流水信息,所述交易流水信息包括该交易流水号和冲正报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101706510A CN100452707C (zh) | 2006-12-22 | 2006-12-22 | 一种保持数据一致性的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101706510A CN100452707C (zh) | 2006-12-22 | 2006-12-22 | 一种保持数据一致性的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1996855A CN1996855A (zh) | 2007-07-11 |
CN100452707C true CN100452707C (zh) | 2009-01-14 |
Family
ID=38251807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101706510A Active CN100452707C (zh) | 2006-12-22 | 2006-12-22 | 一种保持数据一致性的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100452707C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101232540B (zh) * | 2008-02-21 | 2012-04-04 | 中兴通讯股份有限公司 | 系统间消息交互方法及消息交互系统 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2309389A1 (en) | 2009-10-09 | 2011-04-13 | Amadeus s.a.s | Delivery with reconciliation on client side |
CN101895416A (zh) * | 2010-07-06 | 2010-11-24 | 中兴通讯股份有限公司 | 一种实现嵌入式系统事务机制的方法及装置 |
JP2013250625A (ja) * | 2012-05-30 | 2013-12-12 | Oki Electric Ind Co Ltd | 帳票入力システム及び帳票入力方法 |
CN102881091B (zh) * | 2012-07-25 | 2015-03-25 | 北京数码视讯软件技术发展有限公司 | 空中圈存控制装置、控制方法和空中圈存系统及用户终端 |
CN104732438A (zh) * | 2013-12-20 | 2015-06-24 | 中国银联股份有限公司 | 一种交易冲正方法和交易处理系统 |
CN103699681B (zh) * | 2013-12-31 | 2017-01-04 | 华为技术有限公司 | 数据回滚的处理方法和装置 |
CN104794138B (zh) * | 2014-01-22 | 2018-08-24 | 深圳市沃信科技有限公司 | 一种数据库交易结果确认方法、装置及系统 |
CN106375354B (zh) * | 2015-07-20 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置 |
CN105447757A (zh) * | 2015-11-20 | 2016-03-30 | 中国建设银行股份有限公司 | 一种保持交易信息一致性的方法及系统 |
CN107277083B (zh) * | 2016-04-06 | 2021-03-02 | 创新先进技术有限公司 | 一种数据交互的处理方法、装置及系统 |
CN106875269B (zh) * | 2016-08-16 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 资源置换方法及装置 |
CN109583873B (zh) * | 2017-09-28 | 2021-02-02 | 北京三快在线科技有限公司 | 交易通信方法、服务器、pos机及电子设备 |
CN108494859B (zh) * | 2018-03-28 | 2020-07-14 | 烽火通信科技股份有限公司 | 网络数据的同步方法及系统 |
CN109271443A (zh) * | 2018-08-02 | 2019-01-25 | 中国建设银行股份有限公司 | 分布式数据一致性处理方法、系统、装置和存储介质 |
CN109102292B (zh) * | 2018-08-21 | 2021-03-16 | 联动优势电子商务有限公司 | 一种监控客户端运行状态的方法及装置 |
CN110246015A (zh) * | 2019-05-20 | 2019-09-17 | 平安银行股份有限公司 | 资源转移方法、装置、计算机设备和存储介质 |
CN110489253A (zh) * | 2019-07-05 | 2019-11-22 | 中国平安财产保险股份有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN111277639B (zh) * | 2020-01-16 | 2022-08-09 | 中国建设银行股份有限公司 | 一种保持数据一致性的方法和装置 |
CN111626858A (zh) * | 2020-05-28 | 2020-09-04 | 北京金山云网络技术有限公司 | 冲正交易的处理方法、装置、电子设备和计算机可读介质 |
CN113837881B (zh) * | 2021-09-28 | 2023-02-28 | 中电金信软件有限公司 | 更新交易数据方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1199897A (zh) * | 1998-04-28 | 1998-11-25 | 北京东方通科技发展有限责任公司 | 保证交易一致性的方法 |
US20040255298A1 (en) * | 2003-06-10 | 2004-12-16 | International Business Machines Corporation | Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment |
US20050262077A1 (en) * | 2004-05-21 | 2005-11-24 | Bea Systems, Inc. | Logging last resource system |
-
2006
- 2006-12-22 CN CNB2006101706510A patent/CN100452707C/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1199897A (zh) * | 1998-04-28 | 1998-11-25 | 北京东方通科技发展有限责任公司 | 保证交易一致性的方法 |
US20040255298A1 (en) * | 2003-06-10 | 2004-12-16 | International Business Machines Corporation | Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment |
US20050262077A1 (en) * | 2004-05-21 | 2005-11-24 | Bea Systems, Inc. | Logging last resource system |
Non-Patent Citations (8)
Title |
---|
"银期通系统"的设计及实现. 庞慧.河北工业科技,第23卷第3期. 2006 |
"银期通系统"的设计及实现. 庞慧.河北工业科技,第23卷第3期. 2006 * |
交易中间件的研究与实现. 廖清远等.电脑与信息技术,第14卷第3期. 2006 |
交易中间件的研究与实现. 廖清远等.电脑与信息技术,第14卷第3期. 2006 * |
银行C/S系统中数据不一致性的解决方案. 蒋芳方.中国金融电脑,第8期. 1998 |
银行C/S系统中数据不一致性的解决方案. 蒋芳方.中国金融电脑,第8期. 1998 * |
银行中间业务系统的方案设计. 檀吉波等.华南金融电脑,第9期. 2002 |
银行中间业务系统的方案设计. 檀吉波等.华南金融电脑,第9期. 2002 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101232540B (zh) * | 2008-02-21 | 2012-04-04 | 中兴通讯股份有限公司 | 系统间消息交互方法及消息交互系统 |
Also Published As
Publication number | Publication date |
---|---|
CN1996855A (zh) | 2007-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100452707C (zh) | 一种保持数据一致性的方法及系统 | |
US9519478B2 (en) | Session management in a mixed mode environment | |
US7047243B2 (en) | Coordinating transactional web services | |
CN109802916B (zh) | 资源转移方法、系统、服务器和计算机可读存储介质 | |
AU2006228895B2 (en) | Self-owned resources interactive method and processing method of electronic trade information and system | |
KR100442812B1 (ko) | 인터넷망 기반의 채권 상환 중계시스템 및 중계방법 | |
CN107194810B (zh) | 资产配置系统和操作方法 | |
CN107527222B (zh) | 信息处理方法和装置及系统 | |
CN110135966B (zh) | 授信额度管理方法与系统 | |
CN106874130A (zh) | 一种微服务架构中分布式事务的处理方法 | |
CN107194812A (zh) | 供应商债权转让的服务系统及其方法 | |
US6330686B1 (en) | Handling protected conversation messages across IMS restart in shared queues environment | |
CN110889765B (zh) | 交易信息报送方法及装置 | |
CN116384993B (zh) | 基于云支付中心实现订单支付状态高一致性的方法与系统 | |
CN110852731B (zh) | 一种基金交易的方法以及相关装置 | |
CN113435943A (zh) | 基于区块链的权益处理方法及装置 | |
CN110717756B (zh) | 基于合约的支付数据处理装置及方法 | |
CN106845966B (zh) | 货款信息处理方法及装置 | |
KR101270760B1 (ko) | 자동 이체 관리 시스템 및 그 관리 방법 | |
CN111242762A (zh) | 金融产品购买方法、装置以及系统 | |
CN110009483A (zh) | 一种基于时间信息的数据处理方法及装置 | |
CN114595071A (zh) | 一种券商核心交易数据同步系统及方法 | |
CN114612204A (zh) | 对账方法及装置 | |
CN113760580A (zh) | 一种金融机构间的报文流转系统 | |
CN111061573A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |