主机数据双写方法及装置与流程

专利查询15天前  10

1.本技术涉及数据备份领域,也可用于金融领域,具体涉及一种主机数据双写方法及装置。
背景技术
::2.在下主机上平台的建设过程中,为保证业务功能连续性和在平台发生故障时支持快速回切主机,现有技术中通常会通过在平台服务中调用每个功能对应的主机数据更新接口或mdsp(mainframedataserviceplatform,主机数据服务平台)数据更新服务进行主机数据库的双写,由此导致了需要新增调用代码、开发成本高,且每个业务功能需要单独调用双写处理,对平台业务逻辑代码有入侵的问题。技术实现要素:3.针对现有技术中的问题,本技术提供一种主机数据双写方法及装置,能够有效提高主机数据双写效率和准确性。4.为了解决上述问题中的至少一个,本技术提供以下技术方案:5.第一方面,本技术提供一种主机数据双写方法,包括:6.在监测到联机交易请求时拦截所述联机交易请求中的数据库更新操作请求,并对拦截到的所述数据库更新操作请求进行解析;7.根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述数据库更新操作请求在执行前和执行后的更新记录信息;8.在监测到联机交易提交事务指令时拦截所述联机交易提交事务指令,并根据所述更新记录信息生成一主机数据服务平台的数据更新服务调用报文,根据所述数据更新服务调用报文执行主机数据库更新操作。9.进一步地,所述根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述数据库更新操作请求在执行前和执行后的更新记录信息,包括:10.判断与所述数据库更新操作请求对应的更新表是否为无需双写的技术表,若是,则根据所述数据库更新操作请求对主存储系统进行更新操作;11.否则,根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述更新表对应的字段值以及所述数据库更新操作请求执行完成后所述更新表对应的字段值;12.根据所述更新表名称、所述更新记录查询请求对应的更新类型以及所述数据库更新操作请求执行前后的字段值,确定更新记录信息。13.进一步地,所述在监测到联机交易请求时拦截所述联机交易请求中的数据库更新操作请求,包括:14.在设定时间周期内首次监测到联机交易请求时,将业务交易标识放入双写任务线程上下文,并清空更新表中的更新记录信息。15.进一步地,所述根据所述更新记录信息生成一主机数据服务平台的数据更新服务调用报文,根据所述数据更新服务调用报文执行主机数据库更新操作,包括:16.判断与所述数据更新服务调用报文对应的双写任务线程上下文中是否存在业务交易标识,若否,则返回双写失败信号;17.否则,遍历获取所述更新表中的更新记录信息,并根据所述更新记录信息中的更新表名称、更新类型、所述数据库更新操作请求执行前后的字段值以及设定报文数据格式生成一主机数据服务平台的数据更新服务调用报文,以使所述主机数据服务平台根据所述数据更新服务调用报文对从存储系统进行更新操作。18.进一步地,所述在监测到联机交易请求时拦截所述联机交易请求中的数据库更新操作请求,包括:19.在监测到联机交易请求时通过持久层框架配置文件中配置的拦截器拦截所述联机交易请求中的数据库更新操作请求,其中,所述数据库更新操作请求是对主存储系统的更新表进行数据更新操作的请求。20.进一步地,所述对拦截到的所述数据库更新操作请求进行解析,包括:21.通过预设连接池组件对所述数据库更新操作请求进行解析并将相应的数据库操作语句中的参数占位符替换为预设绑定参数,得到经过换参后的数据库操作语句,其中,所述数据库操作语句包含更新操作条件和更新表名称。22.第二方面,本技术提供一种主机数据双写装置,包括:23.交易请求拦截模块,用于在监测到联机交易请求时拦截所述联机交易请求中的数据库更新操作请求,并对拦截到的所述数据库更新操作请求进行解析;24.更新信息记录模块,用于根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述数据库更新操作请求在执行前和执行后的更新记录信息;25.数据同步操作模块,用于在监测到联机交易提交事务指令时拦截所述联机交易提交事务指令,并根据所述更新记录信息生成一主机数据服务平台的数据更新服务调用报文,根据所述数据更新服务调用报文执行主机数据库更新操作。26.进一步地,所述更新信息记录模块包括:27.主存储操作单元,用于判断与所述数据库更新操作请求对应的更新表是否为无需双写的技术表,若是,则根据所述数据库更新操作请求对主存储系统进行更新操作;28.更新记录查询单元,用于当判定与所述数据库更新操作请求对应的更新表不为无需双写的技术表时,根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述更新表对应的字段值以及所述数据库更新操作请求执行完成后所述更新表对应的字段值;29.更新记录信息确定单元,用于根据所述更新表名称、所述更新记录查询请求对应的更新类型以及所述数据库更新操作请求执行前后的字段值,确定更新记录信息。30.进一步地,所述交易请求拦截模块包括:31.业务交易标识单元,用于在设定时间周期内首次监测到联机交易请求时,将业务交易标识放入双写任务线程上下文,并清空更新表中的更新记录信息。dataserviceplatform,主机数据服务平台)数据更新服务进行主机数据库的双写,由此导致了需要新增调用代码、开发成本高,且每个业务功能需要单独调用双写处理,对平台业务逻辑代码有入侵的问题,本技术提供一种主机数据双写方法及装置,通过对联机交易请求和联机交易提交事务指令进行及时拦截,同步生成主机数据服务平台的数据更新服务调用报文,独立于业务处理逻辑外准确执行主机数据库主从存储系统的数据双写操作,由此能够有效提高主机数据双写效率和准确性。49.为了能够有效提高主机数据双写效率和准确性,本技术提供一种主机数据双写方法的实施例,参见图1,所述主机数据双写方法具体包含有如下内容:50.步骤s101:在监测到联机交易请求时拦截所述联机交易请求中的数据库更新操作请求,并对拦截到的所述数据库更新操作请求进行解析。51.可选的,本技术可以将联机服务或批量处理等实体的入口定义为spring(javaweb开发框架)的切点,在监测到发生联机交易(即监测到联机交易请求)或批量开始处理时将触发切面,其中,可选的,本技术可以在切面内将业务交易标识放入双写线程的上下文中,依次标识该双写线程进入业务交易处理,同时清空设定更新表中的记录信息。52.可选的,在上述步骤s101中,本技术可以在项目的mybatis(基于java的持久层框架)配置文件中配置一拦截器,以用于拦截数据库更新操作请求或联机交易提交事务指令,在拦截到用户端发送的联机交易请求后,本技术可以从中获取或识别得到数据库更新操作请求,其中,所述数据库更新操作请求是指针对主存储系统的更新表(即目标数据表)进行增、删、改等数据更新操作的请求。53.可选的,在上述步骤s101中,本技术可以对拦截到的所述数据库更新操作请求进行解析可以为将数据库更新操作请求(即sql请求)中的参数占位符替换为预设绑定参数,以得到最终执行的sql。54.具体的,本技术可以通过druid(jdbc连接池组件)的sql解析工具解析sql语句。55.步骤s102:根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述数据库更新操作请求在执行前和执行后的更新记录信息。56.可选的,在对数据库更新操作请求进行解析后可以得到更新操作条件(例如where条件)以及更新表名称(即目标数据表的表名),并可据此生成一更新记录查询请求,即在执行更新前和更新后,使用“表名+where条件”进行查询,获取到更新前和更新后的表记录值,即更新记录信息,并缓存在双写线程上下文之中。57.步骤s103:在监测到联机交易提交事务指令时拦截所述联机交易提交事务指令,并根据所述更新记录信息生成一主机数据服务平台的数据更新服务调用报文,根据所述数据更新服务调用报文执行主机数据库更新操作。58.可选的,当联机交易发起提交事务指令时,本技术的拦截器可以拦截该联机交易提交事务指令,将读取上述缓存好的更新记录信息,拼装成调用mdsp(主机数据服务平台)数据更新服务的报文,以用于调用mdsp服务实现主机数据库从存储系统的数据更新。59.从上述描述可知,本技术实施例提供的主机数据双写方法,能够通过对联机交易请求和联机交易提交事务指令进行及时拦截,同步生成主机数据服务平台的数据更新服务调用报文,独立于业务处理逻辑外准确执行主机数据库主从存储系统的数据双写操作,由此能够有效提高主机数据双写效率和准确性。60.为了能够准确获取主存储系统在更新前后的更新记录信息,在本技术的主机数据双写方法的一实施例中,参见图2,上述步骤s102还可以具体包含如下内容:61.步骤s201:判断与所述数据库更新操作请求对应的更新表是否为无需双写的技术表,若是,则根据所述数据库更新操作请求对主存储系统进行更新操作。62.步骤s202:否则,根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述更新表对应的字段值以及所述数据库更新操作请求执行完成后所述更新表对应的字段值。63.步骤s203:根据所述更新表名称、所述更新记录查询请求对应的更新类型以及所述数据库更新操作请求执行前后的字段值,确定更新记录信息。64.可选的,在对数据库更新操作请求进行解析后可以得到更新操作条件(例如where条件)以及更新表名称(即目标数据表的表名),并可据此生成一更新记录查询请求,即在执行更新前和更新后,使用“表名+where条件”进行查询,获取到更新前和更新后的表记录值,即更新记录信息,并缓存在双写线程上下文之中。65.举例来说,首先通过druid的sql解析工具解析sql语句。66.若解析后判定为更新语句,则获取更新的where条件及更新表名,然后在执行更新前和更新后,使用表名+where条件进行查询,获取到更新前和更新后表记录值。67.若解析后判定为插入语句,则通过druid的sql解析工具解析每个列名以及对应的列值,然后存入hashmap中。68.若解析后判定为删除语句,则获取删除的where条件及删除表名,然后在执行更新前使用表名+where条件进行查询,获取到删除记录的内容。69.然后,将更新前后的记录转化成json格式字符串,将更新表记录的表名、更新类型(插入、更新、删除)、更新前后字段值按下表1所示格式保存在交易线程上下文中:70.表1更新记录信息表格式71.表名1操作类型1操作前值1操作后值1表名2操作类型2操作前值2操作后值2表名3操作类型3操作前值3操作后值372.在实际行过程存储如下表2所示:73.表2更新记录信息表示例[0074][0075]为了能够准确针对业务触发的联机交易请求进行数据双写操作,在本技术的主机数据双写方法的一实施例中,上述步骤s101还可以具体包含如下内容:[0076]在设定时间周期内首次监测到联机交易请求时,将业务交易标识放入双写任务线程上下文,并清空更新表中的更新记录信息。[0077]可选的,本技术可以在设定时间周期内首次监测到联机交易请求时,将业务交易标识放入双写任务线程上下文,并清空更新表中的更新记录信息,由此,在后续拦截事务提交动作时,判断双写线程上下文是否存在业务交易标识,如果没有,则表示非业务处理触发,直接返回双写失败信号。[0078]为了能够准确将数据双写至从存储系统,在本技术的主机数据双写方法的一实施例中,参见图3,上述步骤s103还可以具体包含如下内容:[0079]步骤s301:判断与所述数据更新服务调用报文对应的双写任务线程上下文中是否存在业务交易标识,若否,则返回双写失败信号。[0080]步骤s302:否则,遍历获取所述更新表中的更新记录信息,并根据所述更新记录信息中的更新表名称、更新类型、所述数据库更新操作请求执行前后的字段值以及设定报文数据格式生成一主机数据服务平台的数据更新服务调用报文,以使所述主机数据服务平台根据所述数据更新服务调用报文对从存储系统进行更新操作。[0081]可选的,在判断双写线程上下文包含有业务交易标识,且更新记录信息不为空时,遍历更新记录信息并根据所述更新记录信息中的更新表名称、更新类型、所述数据库更新操作请求执行前后的字段值以及设定报文数据格式拼装调用mdsp服务的数据报文。[0082]可选的,mdsp在接收到平台上送的报文后,可以将josn报文数据转化成表处理对象,涉及到中文ascii码时,为避免插入数据时会出现乱码,可以将主机表里涉及到ascii码的字段类型修改为charforbit格式,同时sqlj程序中这个字段类型定义成byte[]。[0083]然后,mdsp调用每个表处理器进行数据的更新处理,每个表处理器定义增、删、改方法,其中删除操作根据表的唯一索引进行更新,改操作根据表的唯一索引进行全表更新。[0084]同时,如果更新发生异常,返回报错,让平台端同步回滚,保证两端数据一致。[0085]为了能够有效提高主机数据双写效率和准确性,本技术提供一种用于实现所述主机数据双写方法的全部或部分内容的主机数据双写装置的实施例,参见图4,所述主机数据双写装置具体包含有如下内容:[0086]交易请求拦截模块10,用于在监测到联机交易请求时拦截所述联机交易请求中的数据库更新操作请求,并对拦截到的所述数据库更新操作请求进行解析。[0087]更新信息记录模块20,用于根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述数据库更新操作请求在执行前和执行后的更新记录信息。[0088]数据同步操作模块30,用于在监测到联机交易提交事务指令时拦截所述联机交易提交事务指令,并根据所述更新记录信息生成一主机数据服务平台的数据更新服务调用报文,根据所述数据更新服务调用报文执行主机数据库更新操作。[0089]从上述描述可知,本技术实施例提供的主机数据双写装置,能够通过对联机交易请求和联机交易提交事务指令进行及时拦截,同步生成主机数据服务平台的数据更新服务调用报文,独立于业务处理逻辑外准确执行主机数据库主从存储系统的数据双写操作,由此能够有效提高主机数据双写效率和准确性。[0090]为了能够准确获取主存储系统在更新前后的更新记录信息,在本技术的主机数据双写装置的一实施例中,参见图5,所述更新信息记录模块20包括:[0091]主存储操作单元21,用于判断与所述数据库更新操作请求对应的更新表是否为无需双写的技术表,若是,则根据所述数据库更新操作请求对主存储系统进行更新操作。[0092]更新记录查询单元22,用于当判定与所述数据库更新操作请求对应的更新表不为无需双写的技术表时,根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述更新表对应的字段值以及所述数据库更新操作请求执行完成后所述更新表对应的字段值。[0093]更新记录信息确定单元23,用于根据所述更新表名称、所述更新记录查询请求对应的更新类型以及所述数据库更新操作请求执行前后的字段值,确定更新记录信息。[0094]为了能够准确针对业务触发的联机交易请求进行数据双写操作,在本技术的主机数据双写装置的一实施例中,参见图6,所述交易请求拦截模块10包括:[0095]业务交易标识单元11,用于在设定时间周期内首次监测到联机交易请求时,将业务交易标识放入双写任务线程上下文,并清空更新表中的更新记录信息。[0096]为了能够准确将数据双写至从存储系统,在本技术的主机数据双写装置的一实施例中,参见图7,所述数据同步操作模块30包括:[0097]业务交易标识判断单元31,用于判断与所述数据更新服务调用报文对应的双写任务线程上下文中是否存在业务交易标识,若否,则返回双写失败信号。[0098]从存储操作单元32,用于在判定与所述数据更新服务调用报文对应的双写任务线程上下文中存在业务交易标识时,遍历获取所述更新表中的更新记录信息,并根据所述更新记录信息中的更新表名称、更新类型、所述数据库更新操作请求执行前后的字段值以及设定报文数据格式生成一主机数据服务平台的数据更新服务调用报文,以使所述主机数据服务平台根据所述数据更新服务调用报文对从存储系统进行更新操作。[0099]为了更进一步说明本方案,本技术还提供一种应用上述主机数据双写装置实现主机数据双写方法的具体应用实例,具体包含有如下内容:[0100]1、初始化双写线程上下文[0101](1)将联机服务或批量处理实体的入口定义为spring的切点,发生联机交易或批量开始处理,将触发切面。[0102](2)定义上述切面,在切面内将业务交易标志放入线程上下文,标志该线程进入业务交易处理,同时清空双写表记录内容。[0103]2、拦截更新sql[0104](1)在项目的mybatis配置文件中配置的拦截器,拦截更新、提交事务处理。[0105](2)拦截更新sql,将sql中的参数占位符替换为绑定参数,获取最终执行的sql。[0106](3)判断如果目前操作的表名是无需双写的技术表,则跳过后续的解析处理,直接返回。[0107](4)解析更新语句,通过druid的sql解析工具解析sql语句,判断如果是更新sql,获取更新的where条件及更新表名,然后在执行更新前和更新后,使用表名+where条件进行查询,获取到更新前和更新后表记录值。[0108](5)解析插入语句,通过druid的sql解析工具解析每个列名以及对应的列值,然后存入hashmap中。[0109](6)解析删除语句,通过druid的sql解析工具解析sql语句,判断如果是删除sql,获取删除的where条件及删除表名,然后在执行更新前使用表名+where条件进行查询,获取到删除记录的内容。[0110](7)将更新前后的记录转化成json格式字符串。[0111](8)将更新表记录的表名、更新类型(插入、更新、删除)、更新前后字段值按设定格式保存在交易线程上下文中。[0112]3、拦截事务提交动作并调用mdsp服务进行双写。[0113](1)拦截事务提交动作,判断线程上下文是否存在双写标志,如果没有,表示非业务处理触发,直接返回。[0114](2)判断线程上下文更新内容清单是否为空,如果不为空,则遍历更新记录,拼装调用mdsp服务的数据报文。[0115]4、mdsp服务双写处理[0116](1)接收平台上送报文,将josn报文数据转化成表处理对象,其中表处理对象定义格式如下:[0117]tabledata{[0118]privatelist《tablerecord》before;[0119]privatelist《tablerecord》after;[0120]}[0121](2)涉及到中文ascii码时,为避免插入数据时会出现乱码,将主机表里涉及到ascii码的字段类型修改为charforbit格式,同时sqlj程序中这个字段类型定义成byte[]。[0122](3)调用每个表处理器进行数据的更新处理,每个表处理器定义增、删、改方法,其中删除操作根据表的唯一索引进行更新,改操作根据表的唯一索引进行全表更新。[0123](4)如果更新发生异常,返回报错,让平台端同步回滚,保证两端数据一致。[0124]有上述内容可知,本技术至少还可以实现以下技术效果:[0125]1、使用spring切面和mybatis拦截器方式,对新平台功能开发人员透明,降低实现主机双写的难度。[0126]2、与具体业务规则解耦,适用所有下主机场景,可以将平台处理构件化,mdsp的程序实现工具化,实现一次书写,各应用直接复用的效果。[0127]从硬件层面来说,为了能够有效提高主机数据双写效率和准确性,本技术提供一种用于实现所述主机数据双写方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:[0128]处理器(processor)、存储器(memory)、通信接口(communicationsinterface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现主机数据双写装置与核心业务系统、用户终端以及相关数据库等相关设备之间的信息传输;该逻辑控制器可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该逻辑控制器可以参照实施例中的主机数据双写方法的实施例,以及主机数据双写装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。[0129]可以理解的是,所述用户终端可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(pda)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。[0130]在实际应用中,主机数据双写方法的部分可以在如上述内容所述的电子设备侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本技术对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。[0131]上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。[0132]图8为本技术实施例的电子设备9600的系统构成的示意框图。如图8所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图8是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。[0133]一实施例中,主机数据双写方法功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:[0134]步骤s101:在监测到联机交易请求时拦截所述联机交易请求中的数据库更新操作请求,并对拦截到的所述数据库更新操作请求进行解析。[0135]步骤s102:根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述数据库更新操作请求在执行前和执行后的更新记录信息。[0136]步骤s103:在监测到联机交易提交事务指令时拦截所述联机交易提交事务指令,并根据所述更新记录信息生成一主机数据服务平台的数据更新服务调用报文,根据所述数据更新服务调用报文执行主机数据库更新操作。[0137]从上述描述可知,本技术实施例提供的电子设备,通过对联机交易请求和联机交易提交事务指令进行及时拦截,同步生成主机数据服务平台的数据更新服务调用报文,独立于业务处理逻辑外准确执行主机数据库主从存储系统的数据双写操作,由此能够有效提高主机数据双写效率和准确性。[0138]在另一个实施方式中,主机数据双写装置可以与中央处理器9100分开配置,例如可以将主机数据双写装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现主机数据双写方法功能。[0139]如图8所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图8中所示的所有部件;此外,电子设备9600还可以包括图8中没有示出的部件,可以参考现有技术。[0140]如图8所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。[0141]其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。[0142]输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。[0143]该存储器9140可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。[0144]存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。[0145]通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。[0146]基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。[0147]本技术的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的主机数据双写方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的主机数据双写方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:[0148]步骤s101:在监测到联机交易请求时拦截所述联机交易请求中的数据库更新操作请求,并对拦截到的所述数据库更新操作请求进行解析。[0149]步骤s102:根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述数据库更新操作请求在执行前和执行后的更新记录信息。[0150]步骤s103:在监测到联机交易提交事务指令时拦截所述联机交易提交事务指令,并根据所述更新记录信息生成一主机数据服务平台的数据更新服务调用报文,根据所述数据更新服务调用报文执行主机数据库更新操作。[0151]从上述描述可知,本技术实施例提供的计算机可读存储介质,通过对联机交易请求和联机交易提交事务指令进行及时拦截,同步生成主机数据服务平台的数据更新服务调用报文,独立于业务处理逻辑外准确执行主机数据库主从存储系统的数据双写操作,由此能够有效提高主机数据双写效率和准确性。[0152]本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。[0153]本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0154]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。[0155]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0156]本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12当前第1页12
技术特征:
1.一种主机数据双写方法,其特征在于,所述方法包括:在监测到联机交易请求时拦截所述联机交易请求中的数据库更新操作请求,并对拦截到的所述数据库更新操作请求进行解析;根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述数据库更新操作请求在执行前和执行后的更新记录信息;在监测到联机交易提交事务指令时拦截所述联机交易提交事务指令,并根据所述更新记录信息生成一主机数据服务平台的数据更新服务调用报文,根据所述数据更新服务调用报文执行主机数据库更新操作。2.根据权利要求1所述的主机数据双写方法,其特征在于,所述根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述数据库更新操作请求在执行前和执行后的更新记录信息,包括:判断与所述数据库更新操作请求对应的更新表是否为无需双写的技术表,若是,则根据所述数据库更新操作请求对主存储系统进行更新操作;否则,根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述更新表对应的字段值以及所述数据库更新操作请求执行完成后所述更新表对应的字段值;根据所述更新表名称、所述更新记录查询请求对应的更新类型以及所述数据库更新操作请求执行前后的字段值,确定更新记录信息。3.根据权利要求1所述的主机数据双写方法,其特征在于,所述在监测到联机交易请求时拦截所述联机交易请求中的数据库更新操作请求,包括:在设定时间周期内首次监测到联机交易请求时,将业务交易标识放入双写任务线程上下文,并清空更新表中的更新记录信息。4.根据权利要求3所述的主机数据双写方法,其特征在于,所述根据所述更新记录信息生成一主机数据服务平台的数据更新服务调用报文,根据所述数据更新服务调用报文执行主机数据库更新操作,包括:判断与所述数据更新服务调用报文对应的双写任务线程上下文中是否存在业务交易标识,若否,则返回双写失败信号;否则,遍历获取所述更新表中的更新记录信息,并根据所述更新记录信息中的更新表名称、更新类型、所述数据库更新操作请求执行前后的字段值以及设定报文数据格式生成一主机数据服务平台的数据更新服务调用报文,以使所述主机数据服务平台根据所述数据更新服务调用报文对从存储系统进行更新操作。5.根据权利要求1所述的主机数据双写方法,其特征在于,所述在监测到联机交易请求时拦截所述联机交易请求中的数据库更新操作请求,包括:在监测到联机交易请求时通过持久层框架配置文件中配置的拦截器拦截所述联机交易请求中的数据库更新操作请求,其中,所述数据库更新操作请求是对主存储系统的更新表进行数据更新操作的请求。6.根据权利要求1所述的主机数据双写方法,其特征在于,所述对拦截到的所述数据库更新操作请求进行解析,包括:通过预设连接池组件对所述数据库更新操作请求进行解析并将相应的数据库操作语
句中的参数占位符替换为预设绑定参数,得到经过换参后的数据库操作语句,其中,所述数据库操作语句包含更新操作条件和更新表名称。7.一种主机数据双写装置,其特征在于,包括:交易请求拦截模块,用于在监测到联机交易请求时拦截所述联机交易请求中的数据库更新操作请求,并对拦截到的所述数据库更新操作请求进行解析;更新信息记录模块,用于根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述数据库更新操作请求在执行前和执行后的更新记录信息;数据同步操作模块,用于在监测到联机交易提交事务指令时拦截所述联机交易提交事务指令,并根据所述更新记录信息生成一主机数据服务平台的数据更新服务调用报文,根据所述数据更新服务调用报文执行主机数据库更新操作。8.根据权利要求7所述的主机数据双写装置,其特征在于,所述更新信息记录模块包括:主存储操作单元,用于判断与所述数据库更新操作请求对应的更新表是否为无需双写的技术表,若是,则根据所述数据库更新操作请求对主存储系统进行更新操作;更新记录查询单元,用于当判定与所述数据库更新操作请求对应的更新表不为无需双写的技术表时,根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述更新表对应的字段值以及所述数据库更新操作请求执行完成后所述更新表对应的字段值;更新记录信息确定单元,用于根据所述更新表名称、所述更新记录查询请求对应的更新类型以及所述数据库更新操作请求执行前后的字段值,确定更新记录信息。9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6任一项所述的主机数据双写方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6任一项所述的主机数据双写方法的步骤。

技术总结
本申请实施例提供一种主机数据双写方法及装置,可用于金融领域,方法包括:在监测到联机交易请求时拦截所述联机交易请求中的数据库更新操作请求,并对拦截到的所述数据库更新操作请求进行解析;根据解析得到的更新操作条件和更新表名称生成一更新记录查询请求,并根据所述更新记录查询请求获取所述数据库更新操作请求在执行前和执行后的更新记录信息;在监测到联机交易提交事务指令时拦截所述联机交易提交事务指令,并根据所述更新记录信息生成一主机数据服务平台的数据更新服务调用报文,根据所述数据更新服务调用报文执行主机数据库更新操作;本申请能够有效提高主机数据双写效率和准确性。写效率和准确性。写效率和准确性。


技术研发人员:田小龙 罗剑平 蓝振杰 马瑞岳
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2021.11.24
技术公布日:2022/3/7

最新回复(0)