CN103019874B - 基于数据同步实现异常处理的方法及装置 - Google Patents
基于数据同步实现异常处理的方法及装置 Download PDFInfo
- Publication number
- CN103019874B CN103019874B CN201210540513.2A CN201210540513A CN103019874B CN 103019874 B CN103019874 B CN 103019874B CN 201210540513 A CN201210540513 A CN 201210540513A CN 103019874 B CN103019874 B CN 103019874B
- Authority
- CN
- China
- Prior art keywords
- exception
- abnormality processing
- abnormal
- information
- module
- 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
Abstract
本发明公开了一种基于数据同步实现异常处理的方法及装置。该方法包括:预先设置包含异常表项的异常处理策略;捕获数据同步过程中的异常信息,提取异常信息中的异常标识或关键词,与预先存储的异常处理策略进行匹配,获取匹配的异常处理策略;获取异常描述参数,根据匹配的异常处理策略,生成异常描述信息;根据异常描述信息生成异常描述代码段信息,运行生成的异常描述代码段信息,对异常进行相应处理,并将携带异常处理结果的响应信息输出至外部的数据同步接收模块,以使数据同步接收模块根据响应信息执行后续数据处理。应用本发明,可以降低异常处理所需的时间、提升应用程序代码的可维护性。
Description
技术领域
本发明涉及计算机同步技术,尤其涉及一种基于数据同步实现异常处理的方法及装置。
背景技术
近年来,随着计算机网络技术的发展,利用磁盘等媒介进行数据传输的方法已被网络传输方式所取代,各种数据能够通过网络进行传输。而随着各种业务技术的迅速发展,为了满足业务的需求,提高数据的利用效率,需要对现有基于单部署点的各类型网络应用系统进行改进。
在当前的网络应用系统中,共享应用数据是一项十分普遍的业务需求,通过数据同步实现网络数据共享,可以有效提高数据的利用效率。在基于Web服务等技术实现数据同步共享的过程中,由于数据本身及网络等各种因素影响,例如,网络传输中断,同步数据不符合目标同步模块中的数据格式等,在数据同步传输中,会出现各种不同类型的异常,从而导致不能正确完成数据同步,造成网络应用系统中共享的应用数据不一致,因此,在系统设计过程中,必须对数据同步过程中出现的异常进行及时捕获及处理,才能保证数据的正确传输及共享数据的一致性,从而保证网络应用系统中各业务子系统的正常运行。
现有技术中,由于数据同步中出现异常的多样性,当应用程序逻辑在处理数据的过程中抛出异常时,只能针对每一种可能发生的具体异常依次进行捕获,分析该异常,分别进行逻辑编码,并通过在业务正常运行的程序逻辑代码段中嵌入编辑的处理异常的程序逻辑代码,以在数据同步的过程中出现数据同步异常时,完成对该异常的处理,例如,在基于JAVA实现的数据同步流程中,当采用结构化查询语言(SQL,StructuredQueryLanguage)在同步数据接收模块中查询相关的异常时,同步数据接收模块中的应用程序逻辑(JAVA程序)根据预先设置的异常条件(java.lang.SQLException)捕获异常,返回java.lang.SQLException异常,在得到java.lang.SQLException异常后,通过try/catch语句捕获java.lang.SQLException异常中包含的异常,并在catch语句块中进行后续逻辑编码的处理,这样,在后续流程中,可以在发生同样的异常的位置,将该编辑的程序代码段嵌入正常程序代码段中,以根据嵌入业务正常运行的程序逻辑代码段中的处理异常的程序逻辑代码进行处理。
由上述可见,现有基于数据同步实现异常处理的方法,当数据同步中出现的异常较多时,在网络应用系统中设计过程中,需要针对大量可能出现异常的应用程序逻辑,分别设计后续处理流程,异常处理的流程较为烦琐,处理异常的程序逻辑代码与业务正常运行的程序逻辑代码出现在同一模块逻辑中,同一异常,发生在不同的位置,需要在不同程序段位置中嵌入处理异常的程序逻辑代码,使得处理异常流程的代码量较多,异常处理所需时间较长,造成应用程序代码的可维护性下降,对应用程序稳定性造成影响,且不利于日后对新出现的异常进行扩展。
发明内容
本发明的实施例提供一种基于数据同步实现异常处理的方法,降低异常处理所需的时间、提升应用程序代码的可维护性。
本发明的实施例还提供一种基于数据同步实现异常处理的装置,降低异常处理所需的时间、提升应用程序代码的可维护性。
为达到上述目的,本发明实施例提供的一种基于数据同步实现异常处理的方法,包括:
预先设置包含异常表项的异常处理策略;
捕获数据同步过程中的异常信息,提取异常信息中的异常标识或关键词,与预先存储的异常处理策略进行匹配,获取匹配的异常处理策略;
获取异常描述参数,根据匹配的异常处理策略,生成异常描述信息;
根据异常描述信息生成异常描述代码段信息,运行生成的异常描述代码段信息,对异常进行相应处理,并将携带异常处理结果的响应信息输出至外部的数据同步接收模块,以使数据同步接收模块根据响应信息执行后续数据处理。
其中,所述异常表项包括:异常项标识符、异常条件、异常项描述以及异常处理代码段。
其中,所述异常表项进一步包括:异常项代码、和/或,上级异常项标识符。
其中,所述异常处理代码段采用可扩展标记语言进行定义并编写。
其中,所述方法进一步包括:
设置数据同步接收模块与异常表项的配置关系。
其中,所述与预先存储的异常处理策略进行匹配,获取匹配的异常处理策略包括:
获取捕获的异常信息所属的数据同步接收模块;
根据预先设置的数据同步接收模块与异常表项的配置关系,获取与该异常信息所属的模块对应的异常表项;
将提取的异常标识或关键词,与获取的异常表项中的异常条件进行匹配,获取匹配的异常条件,根据匹配的异常条件获取异常项对应的异常项描述。
其中,所述获取异常描述参数,根据匹配的异常处理策略,生成异常描述信息包括:
根据异常项对应的异常项定义描述,从异常项发生的数据同步接收模块中的应用程序逻辑块中,获取异常描述参数,或者,从获取到的异常信息中,获取异常描述参数;
根据获取的异常描述参数以及异常项定义描述中定义的描述信息,动态地生成异常描述信息。
其中,所述根据异常描述信息生成异常描述代码段信息包括:
解析异常表项中后续处理方式定义中所描述的结构化信息;
根据解析后得到的异常处理方式说明,将异常描述信息写入异常处理方式说明中的异常处理代码段中,生成异常描述代码段信息。
一种基于数据同步实现异常处理的装置,该装置包括:异常捕获模块、异常匹配模块、异常处理策略存储模块、异常描述生成模块以及异常处理模块,其中,
异常处理策略存储模块,用于存储预先设置的包含异常表项的异常处理策略;
异常捕获模块,用于捕获数据同步过程中的异常信息,输出至异常匹配模块;
异常匹配模块,用于接收异常信息,提取异常信息中的异常标识或关键词,与异常处理策略存储模块存储的异常处理策略进行匹配,获取匹配的异常处理策略;
异常描述生成模块,用于获取异常描述参数,根据匹配的异常处理策略,生成异常描述信息;
异常处理模块,用于根据异常描述信息生成异常描述代码段信息,运行生成的异常描述代码段信息,对异常进行相应处理,并将携带异常处理结果的响应信息输出至数据同步接收模块,以使数据同步接收模块根据响应信息执行后续数据处理。
较佳地,所述异常处理策略存储模块进一步存储有数据同步接收模块与异常表项的配置关系;
所述异常表项包括:异常项标识符、异常条件、异常项描述以及异常处理代码段;
采用Java服务器页面或Servlet实现对异常表项的数据配置。
由上述技术方案可见,本发明实施例提供的一种基于数据同步实现异常处理的方法及装置,该方法包括:预先设置包含异常表项的异常处理策略;捕获数据同步过程中的异常信息,提取异常信息中的异常标识或关键词,与预先存储的异常处理策略进行匹配,获取匹配的异常处理策略;获取异常描述参数,根据匹配的异常处理策略,生成异常描述信息;根据异常描述信息生成异常描述代码段信息,运行生成的异常描述代码段信息,对异常进行相应处理,并将携带异常处理结果的响应信息输出至外部的数据同步接收模块,以使数据同步接收模块根据响应信息执行后续数据处理。这样,将网络应用系统中数据同步过程中的异常项相关信息配置在异常表项中,对产生的异常进行统一处理,无需在不同程序段位置中嵌入相应处理异常的程序逻辑代码,有效减少了网络应用系统相关编码量,降低了异常处理所需的时间、提升了应用程序代码的可维护性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,以下将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,以下描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,还可以根据这些附图所示实施例得到其它的实施例及其附图。
图1本发明实施例基于数据同步实现异常处理的系统结构示意图。
图2为本发明实施例异常处理引擎结构示意图。
图3为本发明实施例基于数据同步实现异常处理的方法流程示意图。
图4为本发明实施例基于数据同步实现异常处理的方法具体流程示意图。
具体实施方式
以下将结合附图对本发明各实施例的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
现有基于数据同步处理数据异常的方法,处理异常的程序逻辑代码与业务正常运行的程序逻辑代码在同一模块逻辑(同一程序代码段)中,同一异常在不同位置发生,需要在不同位置对应的代码段中,嵌入该处理异常的程序逻辑代码,使得处理异常流程的代码量较多,异常处理所需的时间长,造成应用程序代码的可维护性下降,对应用程序稳定性造成影响,且不利于日后对新出现的异常类型进行扩展。
本发明实施例中,考虑对数据同步中应用程序出现的异常,分配异常处理引擎进行集中处理,通过预先设置异常处理策略,对异常后续处理方式提供描述,在数据同步过程中应用程序出现异常时,通过调用异常处理引擎,使得异常处理引擎根据预先设置的该异常对应的异常处理策略进行异常处理,以保障应用程序的连贯执行。具体来说,当基于Web服务等技术实现的网络数据同步功能出现异常时,数据同步发送模块通过预先配置的捕获规则及异常处理策略,对异常信息进行捕获,调用异常处理引擎进行相关异常信息维护的同时,对后续处理方式提供描述,以保证应用程序的连贯执行。这样,在应用程序编码过程中,只需声明本发明中实现的异常处理引擎提供的接口,即可完成异常捕获及处理过程,而无需在不同程序段位置中嵌入相应处理异常的程序逻辑代码,具有较好的灵活性及良好的可扩展性,且能够节约系统开发成本。
本发明实施例提出的基于数据同步实现异常处理的方法,主要针对网络应用系统中基于Web服务等技术实现的数据同步功能模块。
图1为本发明实施例基于数据同步实现异常处理的系统结构示意图。以基于Web服务的实现方法为例,参见图1,该系统包括:同步数据发送模块、同步数据接收模块及异常处理引擎,其中,
同步数据发送模块,即源系统,用于将同步数据以同步数据发送模块预先设置的结构化方法进行组织,然后将目的地址标识符设置为同步数据接收模块(目的系统)标识,通过Web服务客户端方式,将组织的结构化同步数据传输至同步数据接收模块;
本发明实施例中,结构化方法可以是可扩展标记语言(XML,ExtensibleMarkupLanguage)等方法。
同步数据接收模块,即目的系统,用于接收同步数据发送模块传输的结构化同步数据,根据预先设置的解析规则,将结构化同步数据还原为同步数据接收模块需求的数据组织形式,并进行处理;
如果在处理过程中出现异常情况,调用异常处理引擎;接收异常处理引擎返回的异常处理响应信息,继续处理数据;
本发明实施例中,同步数据接收模块可以将还原的同步数据写入数据库,处理完成后,向源系统返回同步数据响应信息,从而完成本次数据同步过程。
异常处理引擎,用于按照预先设置的异常处理策略,将异常进行处理后,将携带异常处理结果的响应信息发送回目的系统,并结束本次服务调用过程。
本发明实施例中,异常处理引擎可以内置在同步数据接收模块中。当数据同步模块中的应用程序执行过程中发生异常时,由异常处理引擎获取发生的异常信息,与预先配置的异常表项进行匹配,并依据异常表项中设置的异常处理策略,对异常进行后续处理。其中,异常处理引擎使用程序编码实现异常处理,并提供与数据同步接收模块中的网络应用程序之间的调用接口。
图2为本发明实施例异常处理引擎结构示意图。参见图2,该异常处理引擎包括:异常捕获模块、异常匹配模块、异常处理策略存储模块、异常描述生成模块以及异常处理模块,其中,
异常处理策略存储模块,用于存储预先设置的包含异常表项的异常处理策略;
本发明实施例中,针对数据同步流程中服务端(目的系统)处理过程中的异常情况,设置异常处理策略,异常处理策略中配置有异常表项。
异常表项包括:异常项标识符、异常条件、异常项描述以及异常处理代码段。当然,还可以进一步包括:异常项编码、和/或,上级异常项标识符。
实际应用中,每一个异常表项采用如下格式进行表示:
(ID_1,Code_1,UpperID_1,Condition_1,Description_1,Approach_1);
(Id_n,Code_n,UpperID_n,Condition_n,Description_n,Approach_n);
其中,n为自然数,表示异常表项中包含的异常项数量。
对上述格式中的每一项,说明如下:
(1)ID,为异常项标识符,用于唯一区分异常项。
本发明实施例中,ID可用正整数或32位通用唯一标识(UUID,UniversalUniqueIdentifier)等表示。
(2)Code,为异常项编码,可选。
本发明实施例中,异常项编码可根据实际应用需要进行定义,例如,可采用不同位数字及字符进行区分,以便于对异常项进行维护和管理,与异常项标识符为一一对应关系。
(3)UpperID,为上级异常项ID,可选。
本发明实施例中,异常项具有上下级关系,即异常项所属的异常类型。UpperID用于描述捕获的异常项的上下级关系,对于最上级异常项,可以设置UpperID为空或预先设置的特殊值,例如,-1。
实际应用中,可将同一种类型的异常项归为同一类,同一类的异常项具有相同的UpperCode。例如,对于数据格式不匹配的异常,可能是由于多种因素造成的,因而,对于每一因素造成的异常,可以对应相应的异常项编码,多个异常项编码可以具有相同的上级异常项标识符,用以表示该多个异常项编码都属于数据格式不匹配的异常。也就是说,类型相似的不同异常,分别用不同的异常项编码表示,但可用相同的上级异常项ID表示。
本发明实施例中,除了定义常见类型格式的异常项之外,还可以定义特殊的异常项编码“Default”,用于表示捕获到异常,但与所有已配置的异常项无法匹配时,默认的匹配异常项。
(4)Condition,为异常项出现的条件定义,即异常条件。
本发明实施例中,每一异常对应有相应的异常条件,在数据同步过程中,只要是在相同异常条件下产生的异常,其表现形式都相同,可以用相同的策略进行处理。因而,通过捕获异常,获取异常的关键词信息,与预先设置的异常条件进行匹配,确定异常标识,根据异常标识以获取对应处理异常的相应策略。
以基于JAVA语言实现的数据同步模块为例,将各种异常条件作为异常出现条件,例如,java.lang.SQLException等,用于异常处理引擎在进行异常处理操作时,根据捕获的异常信息匹配异常出现条件,根据匹配的异常出现条件,从而确定异常标识。
(5)Description,为异常项描述。
本发明实施例中,Description描述异常项详细信息,允许应用程序在调用异常处理引擎接口时,向应用程序传递异常项描述信息参数。
配置异常项描述时,可以使用形如${argN}的格式表示参数,其中,N为整数,例如,一个异常项描述的格式可以设置如下:
“传入数据验证失败,数据ID为${arg0}”
(6)Approach,为异常后续处理方式定义,即异常处理代码段。
本发明实施例中,Approach可采用XML等结构化方法进行定义并编写代码段,生成XML文档。
异常处理引擎捕获异常后,对异常后续处理方式,按照预先设置的规则解析生成的XML文档。
以基于JAVA语言实现的数据同步模块为例,采用XML结构化方法进行定义,生成的XML文档可以如下。
例1:在循环操作中,出现异常时设置需要继续循环,则XML文档中包含的异常处理代码段可定义为:
其中,
<JavaCode>元素内为要执行的JAVA异常项编码。
例2:对于跳转到其他的处理逻辑,例如,其他JAVA类中的方法,出现异常时,设置执行对应JAVA方法,允许传入参数,该传入参数可与Description中定义的参数相同,则XML文档中包含的异常处理代码段可定义如下:
其中,
<ClassName>元素内为要执行的JAVA方法的完整名,<Arguments>字段定义传入该方法的参数,与Description中定义的参数对应相同。
当然,实际应用中,也可以为每一异常表项设置标识。
实际应用中,由于同一网络应用系统中,可能存在多个数据同步模块,例如,多个数据同步发送模块以及多个数据同步接收模块,因而,可以针对不同的数据同步模块,配置相应的异常表项。因此,本发明实施例中,还可以进一步定义每一个数据同步模块与异常表项的配置关系,数据同步模块-异常表项关系可用如下形式表示:
(ModuleName,ExceptionID)
其中,
ModuleName为数据同步模块标识,以基于JAVA语言实现的数据同步模块为例,可为完整的JAVA方法名。
ExceptionID为异常表项唯一ID,与异常表项进行关联。
本发明实施例中,配置异常表项时,可采用可视化配置方法,即采用Java服务器页面(JSP,JavaServerPages)、Servlet等技术实现对异常表项的数据配置及数据同步模块-异常表项关系数据的维护,支持对数据的查看、添加、修改及删除等。其中,
配置异常表项时,可采用XML等结构化形式描述的数据支持直接XML编辑以及页面配置,在页面配置时,可动态添加不同类型的异常处理方式,并根据每种方式进行对应的处理方式(Approach)设计。
表1为配置的异常表项中异常项信息列表样例。
表1
表2为数据同步模块-异常表项关系样例。
表2
ModuleName | ExceptionID |
com.test.mySync | 2 |
tom.test.mySync | 3 |
…… | …… |
异常捕获模块,用于捕获数据同步过程中的异常信息,输出至异常匹配模块;
本发明实施例中,异常捕获模块从数据同步发送模块中存储的信息中捕获异常信息,关于捕获异常信息的详细流程,与现有技术相同,具体可参见相关技术文献,在此不再赘述。
异常匹配模块,用于接收异常信息,提取异常信息中的异常标识或关键词,与异常处理策略存储模块存储的异常处理策略进行匹配,获取匹配的异常处理策略;
本发明实施例中,异常匹配模块根据异常信息所属的模块,查询异常处理策略存储模块,获取与该异常信息所属的模块对应的异常表项;提取接收的异常信息中的关键词,将提取的关键词与获取的异常表项中的异常条件进行匹配,获取匹配的异常条件,根据匹配的异常条件获取对应的异常项描述。
具体来说,在数据同步过程中,由于网络传输中断等客观原因,或被同步的数据不符合数据同步接收模块中预先规定的数据规则等原因,满足产生异常的条件,例如,如果网络传输中断,则数据同步接收模块中存储有由于传输中断产生的相关异常信息;如果被同步的数据不符合数据同步接收模块中预先规定的数据规则,则数据同步接收模块中存储有包含相关异常信息的信息,异常处理引擎通过读取数据同步接收模块中存储的信息,当异常被异常处理引擎捕获时,首先根据该数据同步接收模块,查询数据同步模块-异常表项关系,获取数据同步模块对应的异常表项,然后,在配置的异常表项相关信息中,根据异常条件(Condition)匹配异常信息中包含的异常标识或提取的异常关键词,根据应用程序所采用实现技术的不同,获取到的异常信息中,包含的异常标识或异常关键词可能不相同,例如,基于JAVA语言实现的数据同步模块中,获取到的异常标识可能为异常类型,例如,java.lang.SQLException等;然后,利用该异常标识,在异常表项的异常条件列表中,则采用模糊匹配等匹配方法去匹配列表中的各个异常项,直到匹配成功为止。
异常描述生成模块,用于获取异常描述参数,根据匹配的异常处理策略,生成异常描述信息;
本发明实施例中,匹配到异常项后,根据异常项对应的异常项定义描述(Description),从异常项发生的数据同步接收模块中的应用程序逻辑块中,获取异常描述参数,或者,从获取到的异常信息中,获取异常描述参数,根据获取的异常描述参数以及异常项定义描述中定义的描述信息,动态地生成异常描述信息。
例如,异常项中的异常项定义描述中定义的描述信息为“数据入库出现异常,数据ID为${arg0}”,其中,arg0中的参数为程序逻辑块中的第一个输入参数,值为100,则动态生成的完整的异常描述信息为“数据入库出现异常,数据ID为100”。
异常处理模块,用于根据异常描述信息生成异常描述代码段信息,运行生成的异常描述代码段信息,对异常进行相应处理,并将携带异常处理结果的响应信息输出至数据同步接收模块,以使数据同步接收模块根据响应信息执行后续数据处理。
本发明实施例中,在动态生成异常描述信息后,根据预先设置的规则,解析异常表项中后续处理方式定义(Approach)中所描述的结构化信息,根据解析后得到的异常处理方式说明,将异常描述信息写入异常处理代码段中,生成异常描述代码段信息,运行生成的异常描述代码段信息,得到异常处理结果,将携带异常处理结果的响应信息输出至数据同步接收模块,以使数据同步接收模块根据响应信息对后续的数据进行相应处理,
图3为本发明实施例基于数据同步实现异常处理的方法流程示意图。
步骤301,预先设置包含异常表项的异常处理策略;
本步骤中,异常表项包括:异常项标识符、异常条件、异常项描述以及异常处理代码段。
较佳地,异常处理代码段采用XML等结构化方法进行定义并编写。
实际应用中,可以采用Java服务器页面(JSP,JavaServerPages)、Servlet等可视化技术实现对异常表项的数据配置。
较佳地,该方法还可以进一步包括:
设置数据同步接收模块与异常表项的配置关系。
步骤302,捕获数据同步过程中的异常信息,提取异常信息中的异常标识或关键词,与预先存储的异常处理策略进行匹配,获取匹配的异常处理策略;
本步骤中,在数据同步过程中,数据同步接收模块调用异常处理引擎,对数据同步过程中出现的异常进行捕获。
如前所述,如果预先设置有数据同步接收模块与异常表项的配置关系,则与预先存储的异常处理策略进行匹配,获取匹配的异常处理策略包括:
获取捕获的异常信息所属的数据同步接收模块;
根据预先设置的数据同步接收模块与异常表项的配置关系,获取与该异常信息所属的模块对应的异常表项;
将提取的异常标识或关键词,与获取的异常表项中的异常条件进行匹配,获取匹配的异常条件,根据匹配的异常条件获取异常项对应的异常项描述。
步骤303,获取异常描述参数,根据匹配的异常处理策略,生成异常描述信息;
本步骤具体包括:
根据异常项对应的异常项定义描述,从异常项发生的数据同步接收模块中的应用程序逻辑块中,获取异常描述参数,或者,从获取到的异常信息中,获取异常描述参数;
根据获取的异常描述参数以及异常项定义描述中定义的描述信息,动态地生成异常描述信息。
步骤304,根据异常描述信息生成异常描述代码段信息,运行生成的异常描述代码段信息,对异常进行相应处理,并将携带异常处理结果的响应信息输出至外部的数据同步接收模块,以使数据同步接收模块根据响应信息执行后续数据处理。
本步骤中,根据异常描述信息生成异常描述代码段信息包括:
解析异常表项中后续处理方式定义中所描述的结构化信息;
根据解析后得到的异常处理方式说明,将异常描述信息写入异常处理方式说明中的异常处理代码段中,生成异常描述代码段信息。
图4为本发明实施例基于数据同步实现异常处理的方法具体流程示意图。参见图4,以基于JAVA语言实现的数据同步模块为例,该方法包括:
步骤401,进行异常项配置;
本步骤中,异常项配置包括:异常表项配置以及数据同步模块-异常项关系配置。
较佳地,在异常处理引擎中的业务数据库中进行异常项配置,其中,异常表项中的相关数据表等数据结构可以在安装本发明实施例提出的异常处理引擎的同时,通过可执行文件运行,建立在业务数据库中。在调用异常处理引擎前,可以结合具体网络应用系统中的各数据同步模块,对异常项相关内容进行配置,每一数据同步模块对应一份异常表项,每一异常表项中包含有多个异常项。
步骤402,进行异常处理引擎相关配置;
本步骤中,在调用异常处理引擎前,需对异常处理引擎的调用信息进行相关配置,例如,在Web工程中,异常处理引擎的调用可直接在web.xml文件中进行配置,举例来说,需要捕获异常的相关同步方法名称的关键字等信息均可以XML文件的形式进行配置。而对于需要特殊处理的异常(如传递参数),可另行在应用程序逻辑代码中,直接引用异常处理引擎提供的接口并设置参数。
步骤403,捕获数据同步中的异常;
本步骤中,如果数据同步过程中发生异常,由异常处理引擎根据预先的配置进行异常捕获。
步骤404,根据异常条件(Condition)匹配异常项;
本步骤中,异常条件的来源可以是JAVA异常栈中的信息关键字等。
异常条件的来源是指异常项配置列表中异常项的异常条件,即应用程序中捕获的异常相关信息,与Condition进行匹配。
步骤405,匹配异常项后,由异常处理引擎解析后续处理方式定义(Approach)中描述的结构化信息并生成后续处理规则说明;
本步骤中,异常处理引擎根据捕获的异常信息匹配异常项后,读取匹配的异常项对应的Approach字段中的结构化定义信息,例如,XML文档,由异常处理引擎将结构化信息中的参数写入XML文档,并对写入的文档进行解析,解析后得到规范化的后续处理方法描述说明,例如,生成的Approach为如下XML文档:
其中,arg()与异常描述生成时的参数类似,假设值为100,对上述XML文档解析后,可得到类似如下的数据结构做为后续处理方法描述说明:
ClassName | com.test.exceptionApproach.testApproach |
Args[] | {100} |
步骤406,根据异常项信息进行后续异常处理工作。
本步骤中,可采用JAVA反射机制进行相关程序代码的后续执行,具体来说,规范化的后续处理方法中包含成型的JAVA可执行代码,异常处理引擎将该代码结构放入字符串等基本数据结构中,调用JAVA反射机制中的Class.forName()等方法动态编译及执行该段代码,并将执行结果返回给异常处理引擎调用方,例如,调用如下JAVA代码,动态执行S005步骤举例中ClassName指定的类:
Class.forName("com.test.exceptionApproach").getMethod("testApproach",newClass[]{}).invoke(null,newObject[]{})。
经过以上步骤,通过对异常项配置,有效地组织所有异常项,能够描述各个异常产生的条件、异常后续处理方式等信息;通过对数据同步模块-异常项关系的配置,描述各数据同步模块所需要进行捕获的异常项信息;使得异常管理引擎能够基于数据同步异常项相关信息配置,对数据同步过程中发生的异常进行捕获并处理。这样,将网络应用系统中数据同步过程中的异常项相关信息配置在异常项列表中,并通过统一的异常管理引擎对产生的异常进行处理,实现了对数据同步异常的处理,具有灵活性及良好的可扩展性,且减少了网络应用系统相关编码量,能够提升应用程序代码的可维护性,并提高系统运行效率,降低异常处理所需的时间。
显然,本领域技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也包含这些改动和变型在内。
Claims (8)
1.一种基于数据同步实现异常处理的方法,该方法包括:
预先设置包含异常表项的异常处理策略;
捕获数据同步过程中的异常信息,提取异常信息中的异常标识或关键词;与预先存储的异常处理策略进行匹配,获取匹配的异常处理策略,具体包括:获取捕获的异常信息所属的数据同步接收模块;根据预先设置的数据同步接收模块与异常表项的配置关系,获取与该异常信息所属的模块对应的异常表项;将提取的异常标识或关键词,与获取的异常表项中的异常条件进行匹配,获取匹配的异常条件,根据匹配的异常条件获取异常项对应的异常项描述;
获取异常描述参数,根据匹配的异常处理策略,生成异常描述信息;
根据异常描述信息生成异常描述代码段信息,运行生成的异常描述代码段信息,对异常进行相应处理,并将携带异常处理结果的响应信息输出至外部的数据同步接收模块,以使数据同步接收模块根据响应信息执行后续数据处理。
2.根据权利要求1所述的方法,其中,所述异常表项包括:异常项标识符、异常条件、异常项描述以及异常处理代码段。
3.根据权利要求2所述的方法,其中,所述异常表项进一步包括:异常项代码和/或上级异常项标识符。
4.根据权利要求2所述的方法,其中,所述异常处理代码段采用可扩展标记语言进行定义并编写。
5.根据权利要求1所述的方法,其中,所述获取异常描述参数,根据匹配的异常处理策略,生成异常描述信息包括:
根据异常项对应的异常项定义描述,从异常项发生的数据同步接收模块中的应用程序逻辑块中,获取异常描述参数,或者,从获取到的异常信息中,获取异常描述参数;
根据获取的异常描述参数以及异常项定义描述中定义的描述信息,动态地生成异常描述信息。
6.根据权利要求5所述的方法,其中,所述根据异常描述信息生成异常描述代码段信息包括:
解析异常表项中后续处理方式定义中所描述的结构化信息;
根据解析后得到的异常处理方式说明,将异常描述信息写入异常处理方式说明中的异常处理代码段中,生成异常描述代码段信息。
7.一种基于数据同步实现异常处理的装置,其特征在于,该装置包括:异常捕获模块、异常匹配模块、异常处理策略存储模块、异常描述生成模块以及异常处理模块,其中,
异常处理策略存储模块,用于存储预先设置的包含异常表项的异常处理策略;
异常捕获模块,用于捕获数据同步过程中的异常信息,输出至异常匹配模块;
异常匹配模块,用于接收异常信息,提取异常信息中的异常标识或关键词;与异常处理策略存储模块存储的异常处理策略进行匹配,获取匹配的异常处理策略,具体地:异常匹配模块根据异常信息所属的数据同步模块,查询异常处理策略存储模块,根据预先设置的数据同步接收模块与异常表项的配置关系,获取与该异常信息所属的模块对应的异常表项;将提取的异常标识或关键词与获取的异常表项中的异常条件进行匹配,获取匹配的异常条件,根据匹配的异常条件获取对应的异常项描述;
异常描述生成模块,用于获取异常描述参数,根据匹配的异常处理策略,生成异常描述信息;
异常处理模块,用于根据异常描述信息生成异常描述代码段信息,运行生成的异常描述代码段信息,对异常进行相应处理,并将携带异常处理结果的响应信息输出至数据同步接收模块,以使数据同步接收模块根据响应信息执行后续数据处理。
8.根据权利要求7所述的装置,其特征在于,所述异常处理策略存储模块进一步存储有数据同步接收模块与异常表项的配置关系;
所述异常表项包括:异常项标识符、异常条件、异常项描述以及异常处理代码段;
采用Java服务器页面或Servlet实现对异常表项的数据配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210540513.2A CN103019874B (zh) | 2012-12-13 | 2012-12-13 | 基于数据同步实现异常处理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210540513.2A CN103019874B (zh) | 2012-12-13 | 2012-12-13 | 基于数据同步实现异常处理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103019874A CN103019874A (zh) | 2013-04-03 |
CN103019874B true CN103019874B (zh) | 2016-01-27 |
Family
ID=47968504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210540513.2A Active CN103019874B (zh) | 2012-12-13 | 2012-12-13 | 基于数据同步实现异常处理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103019874B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268355B (zh) * | 2013-06-05 | 2016-12-28 | 中国电子科技集团公司第十五研究所 | 数据问题处理方法和处理系统 |
CN104461843B (zh) * | 2014-10-31 | 2017-11-10 | 北京思特奇信息技术股份有限公司 | 一种异常信息管理的方法及系统 |
CN105790885A (zh) * | 2014-12-23 | 2016-07-20 | 中兴通讯股份有限公司 | 处理异常报文的方法及装置 |
CN104503918B (zh) * | 2015-01-12 | 2017-12-19 | 北京国双科技有限公司 | 异常信息的处理方法及装置 |
CN106610890B (zh) * | 2015-10-21 | 2019-08-20 | 北京国双科技有限公司 | 异常处理方法和装置 |
CN105376778B (zh) * | 2015-11-24 | 2018-06-29 | 广东欧珀移动通信有限公司 | 一种网络通信功能异常的处理方法及移动终端 |
CN106484425B (zh) * | 2016-10-19 | 2019-11-12 | 浪潮通用软件有限公司 | 一种基于策略配置的异常处理方法 |
CN109444716B (zh) * | 2018-11-27 | 2021-08-10 | 中科曙光信息产业成都有限公司 | 一种具有定位功能的扫描测试结构及方法 |
CN111913827A (zh) * | 2020-08-22 | 2020-11-10 | 武汉空心科技有限公司 | 一种基于策略配置的工作平台异常处理方法及系统 |
CN112685045A (zh) * | 2020-12-28 | 2021-04-20 | 北京达佳互联信息技术有限公司 | 页面源文件的处理方法、装置、电子设备以及存储介质 |
CN113760720A (zh) * | 2021-01-07 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种代码的异常信息展示方法和装置 |
CN114419756B (zh) * | 2022-01-30 | 2023-05-16 | 重庆长安汽车股份有限公司 | 一种动态捕获整车异常场景的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436366A (zh) * | 2011-08-22 | 2012-05-02 | 华为技术有限公司 | 数据同步方法和装置 |
CN102523620A (zh) * | 2012-01-13 | 2012-06-27 | 四川奥诚科技有限责任公司 | 数据同步的方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7464374B2 (en) * | 2005-05-26 | 2008-12-09 | International Business Machines Corporation | System and method for error checking of failed I/O open calls |
-
2012
- 2012-12-13 CN CN201210540513.2A patent/CN103019874B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436366A (zh) * | 2011-08-22 | 2012-05-02 | 华为技术有限公司 | 数据同步方法和装置 |
CN102523620A (zh) * | 2012-01-13 | 2012-06-27 | 四川奥诚科技有限责任公司 | 数据同步的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103019874A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103019874B (zh) | 基于数据同步实现异常处理的方法及装置 | |
CN107395353B (zh) | 一种区块链共识方法及装置 | |
US9286368B2 (en) | Linking framework for information technology management | |
CN101551801B (zh) | 数据同步的方法和系统 | |
WO2020029375A1 (zh) | 接口测试方法、系统、计算机设备和存储介质 | |
US20060265469A1 (en) | XML based scripting framework, and methods of providing automated interactions with remote systems | |
CN101295311B (zh) | 一种大规模发布订阅系统的语义匹配算法 | |
CN104484216A (zh) | 服务接口文档和在线测试工具生成方法、装置 | |
CN111580884A (zh) | 配置更新方法、装置、服务器和电子设备 | |
CN104866512A (zh) | 提取网页内容的方法、装置及系统 | |
CN106713469B (zh) | 用于分布式容器的动态加载方法、装置及系统 | |
CN110764752B (zh) | 实现Restful服务图形化服务编排的系统及其方法 | |
CN110222117A (zh) | 一种异构数据库的数据转换同步方法、设备及存储介质 | |
CN103377116A (zh) | 用于在分布式信息系统中记录和分析日志的方法和装置 | |
CN115016784B (zh) | 低代码应用复用方法、应用解析系统、设备及存储介质 | |
CN103092866A (zh) | 数据监控方法及监控装置 | |
US10579366B2 (en) | Data upgrade framework for distributed systems | |
CN104899134A (zh) | 域名注册服务器自动化测试系统和方法 | |
CN107025115B (zh) | 一种适配多种接口采集的方法 | |
CN101944133B (zh) | 一种xml元数据对象化解析方法及系统 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN103646015B (zh) | 发送、接收以及传输xml报文的方法和系统 | |
US20120159266A1 (en) | Method, apparatus or software for processing exceptions produced by an application program | |
CN202143092U (zh) | 报文处理系统 | |
CN112003736B (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 |