CN111367705B - 一种sql报错的处理方法及装置 - Google Patents

一种sql报错的处理方法及装置 Download PDF

Info

Publication number
CN111367705B
CN111367705B CN202010242096.8A CN202010242096A CN111367705B CN 111367705 B CN111367705 B CN 111367705B CN 202010242096 A CN202010242096 A CN 202010242096A CN 111367705 B CN111367705 B CN 111367705B
Authority
CN
China
Prior art keywords
sql
information
sql error
reporting information
error reporting
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
Application number
CN202010242096.8A
Other languages
English (en)
Other versions
CN111367705A (zh
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010242096.8A priority Critical patent/CN111367705B/zh
Publication of CN111367705A publication Critical patent/CN111367705A/zh
Application granted granted Critical
Publication of CN111367705B publication Critical patent/CN111367705B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种SQL报错的处理方法及装置,所述方法包括:获取SQL报错信息,所述SQL报错信息包括SQL返回码;若判断获知所述SQL返回码与自恢复返回码匹配,则判断所述SQL报错信息是否有记录;其中,所述自恢复返回码是预设的;若判断获知所述SQL报错信息没有记录,则对所述SQL报错信息进行自恢复处理,登记所述SQL报错信息至SQL报错信息库并标记所述SQL报错信息的状态为自恢复中。所述装置用于执行上述方法。本发明实施例提供的SQL报错的处理方法及装置,提高了SQL报错信息的处理效率。

Description

一种SQL报错的处理方法及装置
技术领域
本发明涉及数据处理技术领域,具体涉及一种SQL报错的处理方法及装置。
背景技术
结构化查询语言(Structured Query Language,简称SQL)是一种数据库查询和程序设计语言,由于具有功能丰富、使用方便灵活、语言简洁易学等优点得到了广泛应用。
IBM大型主机的联机应用***所使用的数据库通常是DB2数据库,IBM大型主机在通过DB2数据库执行SQL语句时要装载程序的SQL信息,这就要求执行程序里的SQL语句要与DB2数据库***表中的SQL语句的结构一致。而在主机应用项目研发阶段,由于程序版本和数据库***表版本会频繁更新,经常会发生因为程序版本和数据库***表版本更新不同步而导致的SQL报错,例如IBM大型主机在联机交易执行SQL语句时返回-805、-904等返回码,表明出现版本不一致的问题。现有技术中,要解决这些问题需要单步跟踪联机交易的执行过程才能定位具体的程序和详细报错信息,不仅需要耗费大量人力,处理还很耗时间,并且在问题发生到解决的期间内相关联机交易都会失败。
发明内容
针对现有技术中的问题,本发明实施例提供一种SQL报错的处理方法及装置,能够至少部分地解决现有技术中存在的问题。
一方面,本发明提出一种SQL报错的处理方法,包括:
获取SQL报错信息,所述SQL报错信息包括SQL返回码;
若判断获知所述SQL返回码与自恢复返回码匹配,则判断所述SQL报错信息是否有记录;其中,所述自恢复返回码是预设的;
若判断获知所述SQL报错信息没有记录,则对所述SQL报错信息进行自恢复处理,登记所述SQL报错信息至SQL报错信息库并标记所述SQL报错信息的状态为自恢复中。
另一方面,本发明提供一种SQL报错的处理装置,包括:
报错信息获取单元,用于获取SQL报错信息,所述SQL报错信息包括SQL返回码;
判断单元,用于在判断获知所述SQL返回码与自恢复返回码匹配之后,判断所述SQL报错信息是否有记录;其中,所述自恢复返回码是预设的;
自恢复处理单元,用于在判断获知所述SQL报错信息没有记录之后,对所述SQL报错信息进行自恢复处理,登记所述SQL报错信息至SQL报错信息库并标记所述SQL报错信息的状态为自恢复中。
再一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述SQL报错的处理方法的步骤。
又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述SQL报错的处理方法的步骤。
本发明实施例提供的SQL报错的处理方法及装置,能够获取SQL报错信息,在判断获知SQL返回码与自恢复返回码匹配之后,判断SQL报错信息是否有记录,在判断获知SQL报错信息没有记录之后,对SQL报错信息进行自恢复处理,登记SQL报错信息至SQL报错信息库并标记SQL报错信息的状态为自恢复中,能够自动对SQL报错信息进行处理,减少人工参与,提高了SQL报错信息的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例提供的SQL报错的处理方法的流程示意图。
图2是本发明另一实施例提供的SQL报错的处理方法的流程示意图。
图3是本发明又一实施例提供的SQL报错的处理方法的流程示意图。
图4是本发明再一实施例提供的SQL报错的处理方法的流程示意图。
图5是本发明一实施例提供的SQL报错的处理***的结构示意图。
图6是本发明一实施例提供的SQL报错的处理装置的结构示意图。
图7是本发明另一实施例提供的SQL报错的处理装置的结构示意图。
图8是本发明又一实施例提供的SQL报错的处理装置的结构示意图。
图9是本发明再一实施例提供的SQL报错的处理装置的结构示意图。
图10是本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1是本发明一实施例提供的SQL报错的处理方法的流程示意图,如图1所示,本发明实施例提供的SQL报错的处理方法,包括:
S101、获取SQL报错信息,所述SQL报错信息包括SQL返回码;
具体地,在进行联机交易时,服务器上的应用程序会执行SQL语句,如果执行完SQL语句产生SQL报错信息,所述服务器会获取所述SQL报错信息,所述SQL报错信息可以包括中间件名称、程序名称、程序编译时间、SQL语句序号和SQL返回码等信息。其中,本发明实施例提供的SQL报错的处理方法的执行主体包括但不限于服务器。
S102、若判断获知所述SQL返回码与自恢复返回码匹配,则判断所述SQL报错信息是否有记录;其中,所述自恢复返回码是预设的;
具体地,所述服务器在获得所述SQL报错信息之后,会将所述SQL报错信息包括的SQL返回码与自恢复返回码进行比较,如果SQL返回码与所述自恢复返回码中的一个返回码相同,那么所述SQL返回码与自恢复返回码匹配,表明可以对所述报错信息进行自恢复的处理流程,所述服务器会判断所述SQL报错信息是否有记录,即判断是否已经记录过相同的报错信息。其中,所述自恢复返回码是预设的,可以包括多个返回码,例如包括-805和-904等常见的SQL报错码,根据实际需要进行设置,本发明实施例不做限定。可理解的是,如果所述SQL返回码与自恢复返回码不匹配,那么不会对所述报错信息进行自恢复的处理。
例如,所述服务器在判断所述SQL报错信息是否有记录时,可以将当前的SQL报错信息与SQL报错信息库登记的SQL报错信息逐一进行比较,如果当前的SQL报错信息与登记的一条SQL报错信息匹配,那么当前的SQL报错信息有记录,如果SQL报错信息与SQL报错信息库登记的任何一条SQL报错信息都不匹配,那么当前的SQL报错信息没有记录。在判断当前的SQL报错信息与登记的SQL报错信息是否匹配时,可以判断当前的SQL报错信息包括的中间件名称、程序名称、SQL语句序号和SQL返回码与登记的SQL报错信息包括的中间件名称、程序名称、SQL语句序号和SQL返回码是否相同,如果当前的SQL报错信息包括的中间件名称、程序名称、SQL语句序号和SQL返回码与登记的SQL报错信息包括的中间件名称、程序名称、SQL语句序号和SQL返回码对应的信息都相同,那么当前的SQL报错信息与登记的SQL报错信息匹配,如果当前的SQL报错信息包括的中间件名称、程序名称、SQL语句序号和SQL返回码与登记的SQL报错信息包括的中间件名称、程序名称、SQL语句序号和SQL返回码对应的信息有任何一个不相同,那么当前的SQL报错信息与登记的SQL报错信息不匹配。
S103、若判断获知所述SQL报错信息没有记录,则对所述SQL报错信息进行自恢复处理,登记所述SQL报错信息至SQL报错信息库并标记所述SQL报错信息的状态为自恢复中。
具体地,所述服务器在判断所述SQL报错信息是否有记录之后,如果判断出所述SQL报错信息没有记录,那么会对所述SQL报错信息进行自恢复处理,同时在SQL报错信息库中登记所述SQL报错信息,并将所述SQL报错信息的状态标记为自恢复中。
本发明实施例提供的SQL报错的处理方法,能够获取SQL报错信息,在判断获知SQL返回码与自恢复返回码匹配之后,判断SQL报错信息是否有记录,在判断获知SQL报错信息没有记录之后,对SQL报错信息进行自恢复处理,登记SQL报错信息至SQL报错信息库并标记SQL报错信息的状态为自恢复中,能够自动对SQL报错信息进行处理,减少人工参与,提高了SQL报错信息的处理效率。
图2是本发明另一实施例提供的SQL报错的处理方法的流程示意图,如图2所示,在上述各实施例的基础上,进一步地,所述对所述SQL报错信息进行自恢复处理包括:
S1031、根据所述SQL报错信息包括的程序名称,获取所述程序名称对应的程序可执行文件并装载到中间件;
具体地,所述服务器可以从所述SQL报错信息中获得程序名称,然后根据所述程序名称查询获得所述程序名称对应的程序可执行文件,然后将所述程序可执行文件装载到中间件,以保证在联机交易时,执行的是最新版本的程序。其中,所述中间件可以采用客户信息控制***(Customer Information Control System,简称CICS)。
例如,所述服务器根据程序名称,在CICS程序库中获得程序名称对应的程序可执行文件,然后通过执行CICS NEWCOPY命令将上述程序可执行文件加载到CICS中,可以保证在进行联机交易时,在执行所述程序名称对应的程序可执行文件时,执行的是最新版本的程序。
S1032、根据所述SQL报错信息包括的程序名称,获取所述程序名称对应的SQL语句描述文件并导入到数据库***表;
具体地,所述服务器可以从所述SQL报错信息中获得程序名称,然后然后根据所述程序名称查询获得所述程序名称对应的SQL语句描述文件,再将所述SQL语句描述文件包括的SQL语句导入到数据库***表,以保证程序版本和数据库***表版本一致。其中,所述数据库***表可以是DB2数据库的数据库***表。
例如,所述服务器根所述SQL报错信息包括的程序名称查询获得所述程序名称对应的SQL语句描述文件,通过执行DB2 BIND操作将上述SQL语句描述文件包括的SQL语句抽取导入到DB2数据库的数据库***表中。
S1033、重新执行所述SQL报错信息对应的SQL语句并设置所述SQL报错信息的状态为自恢复完成。
具体地,所述服务器将所述程序名称对应的程序可执行文件装载到中间件之后,可以获得装载成功的反馈信息,并且所述服务器在将所述程序名称对应的SQL语句描述文件导入到数据库***表之后,可以获得导入成功的反馈信息。所述服务器在获得装载成功和导入成功的反馈信息之后,会重新执行所述SQL报错信息对应的SQL语句,如果没有再出现SQL报错信息,说明解决了导致SQL报错信息产生的问题,可以进行联机交易的后续操作。所述服务器在获得装载成功和导入成功的反馈信息之后,还会将所述SQL报错信息的状态由自恢复中变更为自恢复完成。
图3是本发明又一实施例提供的SQL报错的处理方法的流程示意图,如图3所示,在上述各实施例的基础上,进一步地,本发明实施例提供的SQL报错的处理方法还包括:
S301、若判断获知所述SQL报错信息有记录,则获取所述SQL报错信息的状态;
具体地,所述服务器在判断所述SQL报错信息是否有记录之后,如果判断出所述SQL报错信息有记录,说明所述SQL报错信息已经在SQL报错信息库登记过,会获取所述SQL报错信息的状态。对于已经登记过的SQL报错信息存在自恢复中和自恢复完成两种状态。
S302、若判断获知所述SQL报错信息的状态为自恢复中,则在SQL报错信息库中增加所述SQL报错信息对应的交易任务号;其中,所述SQL报错信息包括交易任务号;
具体地,所述服务器在获取所述SQL报错信息的状态之后,如果所述SQL报错信息的状态为自恢复中,说明与所述SQL报错信息匹配的一个SQL报错信息进行正在进行自恢复处理,可以不用对所述SQL报错信息进行自恢复处理,所述服务器会将所述SQL报错信息对应的交易任务号增加到SQL报错信息库中,在与所述SQL报错信息匹配的一个SQL报错信息自恢复处理完成之后,所述SQL报错信息对应的所有交易任务号都可以获得进行自恢复处理的SQL报错信息的处理结果。
S303、若判断获知所述SQL报错信息的状态为自恢复完成,则提示进行报错处理。
具体地,所述服务器在获取所述SQL报错信息的状态之后,如果所述SQL报错信息的状态为自恢复完成,说明所述SQL报错信息已经进行过自恢复处理,但导致SQL报错信息的问题并没有得到解决,此时需要人工介入,所述服务器会向运维人员提示进行报错处理。
例如,所述服务器发送邮件通知运维人员提示进行报错处理,所述邮件中可以包括所述SQL报错信息。
图4是本发明再一实施例提供的SQL报错的处理方法的流程示意图,如图4所示,在上述各实施例的基础上,进一步地,本发明实施例提供的SQL报错的处理方法还包括:
S401、在获取SQL报错信息时,触发所述SQL报错信息对应的交易任务号对应的联机交易的等待;
具体地,现有技术中,当出现SQL报错信息时,会导致联机交易失败,由于对所述SQL报错信息进行自恢复处理之后,可以解决部分导致SQL报错信息的问题,因此所述服务器在获取SQL报错信息时,可以触发所述SQL报错信息对应的交易任务号对应的联机交易的等待。
例如,所述服务器在获取SQL报错信息时,执行CICS DELAY指令使所述SQL报错信息对应的交易任务号对应的联机交易进行等待,等待所述SQL报错信息的处理结果。
S402、在达到预设条件时,解除所述SQL报错信息对应的交易任务号对应的联机交易的等待。
具体地,在联机交易的等待的过程中,如果达到预设条件,那么所述服务器会解除所述述SQL报错信息对应的交易任务号对应的联机交易的等待。
其中,所述预设条件为所述SQL报错信息有记录且所述SQL报错信息的状态为自恢复完成,所述SQL报错信息对应的程序可执行文件成功装载到中间件且所述SQL报错信息对应的SQL语句成功导入到数据库***表或者在获取到所述SQL报错信息之后超过预设时间。
当所述服务器判断出所述SQL报错信息有记录且所述SQL报错信息的状态为自恢复完成时,说明导致SQL报错信息产生的问题并没有得到解决,在解除所述SQL报错信息对应的交易任务号对应的联机交易的等待之后,可以将所述SQL报错信息返回给执行SQL语句的应用程序。
当所述服务器判断出所述SQL报错信息对应的程序可执行文件成功装载到中间件且所述SQL报错信息对应的SQL语句成功导入到数据库***表之后,会解除所述述SQL报错信息对应的交易任务号对应的联机交易的等待,重新执行所述SQL报错信息对应的SQL语句,如果不再产生SQL报错信息,可以进行联机交易的后续操作。通过在获取SQL报错信息时触发联机交易等待,对所述SQL报错信息进行自恢复处理,不再产生SQL报错信息,在自动解决导致SQL报错信息的问题的同时,避免了交易失败,提高了联机交易的可靠性。
当所述服务器判断出在获取到所述SQL报错信息之后超过预设时间,没有收到对所述SQL报错信息的处理结果,那么解除所述述SQL报错信息对应的交易任务号对应的联机交易的等待,并将所述SQL报错信息返回给执行SQL语句的应用程序。其中,所述预设时间根据实际需要进行设置,例如设置为100毫秒,本发明实施例不做限定。
图5是本发明一实施例提供的SQL报错的处理***的结构示意图,如图5所示,本发明实施例提供的SQL报错的处理***包括SQL出口模块501、自恢复主控模块502、程序装载模块503、程序绑定模块504和通知模块505,其中:
SQL出口模块501与自恢复主控模块502通信连接,自恢复主控模块502分别与程序装载模块503、程序绑定模块504和通知模块505通信连接。
具体地,自恢复主控模块502可以通过CICS ENABLE指令激活SQL出口模块501,SQL出口模块501激活之后,在CICS***层面SQL语句的执行将与SQL出口模块501关联在一起。
联机交易运行时,应用程序执行SQL语句时,会触发SQL出口模块501的运行,SQL出口模块501会获取SQL报错信息,SQL报错信息包括中间件名称、程序名称、程序编译时间、SQL语句序号和SQL返回码、交易任务号等信息。SQL出口模块501在获得SQL报错信息时,可以执行CICS DELAY指令触发交易任务号对应的联机交易的等待。其中,所述联机交易例如为取款、查询账户余额等。
SQL出口模块501判断SQL返回码是否与自恢复返回码匹配,如果匹配,将SQL报错信息发送给自恢复主控模块502进行处理。如果不匹配,可以执行CICS CANCLE DELAY指令解除交易任务号对应的联机交易的等待。
自恢复主控模块502判断所述SQL报错信息在SQL报错信息库中是否有记录,如果没有记录,登记所述SQL报错信息至SQL报错信息库并标记所述SQL报错信息的状态为自恢复中。自恢复主控模块502将SQL报错信息包括的程序名称发送给程序装载模块503,程序装载模块503执行CICS NEWCOPY指令从CICS程序库里获得程序名称对应的程序可执行文件,并将程序可执行文件加载到CICS里,以保证联机交易在执行SQL报错信息对应的SQL语句时调用的是最新版本的程序。自恢复主控模块502将SQL报错信息包括的程序名称发送给程序绑定模块504,程序绑定模块504根据程序名称获取到所述程序名称对应的SQL语句描述文件,并通过执行DB2 BIND操作将SQL语句描述文件包括的SQL语句抽取导入到DB2数据库的数据库***表,以保证程序版本和数据库***表的版本一致。
自恢复主控模块502接收程序装载模块503返回的装载成功的反馈信息,并接收程序绑定模块504返回的导入成功的反馈信息,自恢复主控模块502向SQL出口模块501发送重新执行信息并设置SQL报错信息的状态为自恢复完成。自恢复主控模块502可以执行CICSCANCLE DELAY指令解除SQL报错信息对应的交易任务号对应的联机交易的等待,即根据交易任务号通过SQL出口模块501逐一通知交易任务号对应的联机交易解除等待。其中,SQL报错信息对应的交易任务号可以有多个。
SQL出口模块501接收到重新执行信息之后,会重新执行SQL报错信息对应的SQL语句,如果没有出现SQL报错信息,那么将执行结果返回给所述应用程序。如果依然出现SQL报错信息,SQL出口模块501会获取SQL报错信息,并执行CICS DELAY指令触发交易任务号对应的联机交易的等待。
SQL出口模块501判断SQL返回码是否与自恢复返回码匹配,如果匹配,将SQL报错信息发送给自恢复主控模块502进行处理。自恢复主控模块502判断所述SQL报错信息在SQL报错信息库中是否有记录,如果有记录,从SQL报错信息库中获取SQL报错信息的状态。如果所述SQL报错信息的状态为自恢复中,在SQL报错信息库中增加所述SQL报错信息对应的交易任务号。所述SQL报错信息的状态为自恢复完成,说明所述SQL报错信息经过处理之后依然报错,自恢复主控模块502会发送SQL报错信息给通知模块505,通知模块505可以通知运维人员进行报错处理,通知模块505可以通过SMTP协议发邮件通知运维人员。
自恢复主控模块502在判断出所述SQL报错信息有记录且所述SQL报错信息的状态为自恢复完成之后,可以执行CICS CANCLE DELAY指令解除SQL报错信息对应的交易任务号对应的联机交易的等待。自恢复主控模块502会向SQL出口模块501发送自恢复失败信息,SQL出口模块501接收到自恢复失败信息之后,会向所述应用程序返回SQL报错信息。
SQL出口模块501在获取SQL报错信息之后超过100毫秒没有接收到自恢复主控模块502发送的对SQL报错信息的反馈信息,则执行CICS CANCLE DELAY指令解除SQL报错信息对应的交易任务号对应的联机交易的等待。
图6是本发明一实施例提供的SQL报错的处理装置的结构示意图,如图6所示,本发明实施例提供的SQL报错的处理装置包括报错信息获取单元601、判断单元602和自恢复处理单元603,其中:
报错信息获取单元601用于获取SQL报错信息,所述SQL报错信息包括SQL返回码;判断单元602用于在判断获知所述SQL返回码与自恢复返回码匹配之后,判断所述SQL报错信息是否有记录;其中,所述自恢复返回码是预设的;自恢复处理单元603用于在判断获知所述SQL报错信息没有记录之后,对所述SQL报错信息进行自恢复处理,登记所述SQL报错信息至SQL报错信息库并标记所述SQL报错信息的状态为自恢复中。
具体地,在进行联机交易时,应用程序会执行SQL语句,如果执行完SQL语句产生SQL报错信息,报错信息获取单元601会获取所述SQL报错信息,所述SQL报错信息可以包括中间件名称、程序名称、程序编译时间、SQL语句序号和SQL返回码等信息。
在获得所述SQL报错信息之后,判断单元602会将所述SQL报错信息包括的SQL返回码与自恢复返回码进行比较,如果SQL返回码与所述自恢复返回码中的一个返回码相同,那么所述SQL返回码与自恢复返回码匹配,表明可以对所述报错信息进行自恢复的处理流程,判断单元602会判断所述SQL报错信息是否有记录,即判断是否已经记录过相同的报错信息。其中,所述自恢复返回码是预设的,可以包括多个返回码,例如包括-805和-904等常见的SQL报错码,根据实际需要进行设置,本发明实施例不做限定。可理解的是,如果所述SQL返回码与自恢复返回码不匹配,那么不会对所述报错信息进行自恢复的处理。
在判断所述SQL报错信息是否有记录之后,自恢复处理单元603如果判断出所述SQL报错信息没有记录,那么会对所述SQL报错信息进行自恢复处理,同时在SQL报错信息库中登记所述SQL报错信息,并将所述SQL报错信息的状态标记为自恢复中。
本发明实施例提供的SQL报错的处理装置,能够获取SQL报错信息,在判断获知SQL返回码与自恢复返回码匹配之后,判断SQL报错信息是否有记录,在判断获知SQL报错信息没有记录之后,对SQL报错信息进行自恢复处理,登记SQL报错信息至SQL报错信息库并标记SQL报错信息的状态为自恢复中,能够自动对SQL报错信息进行处理,减少人工参与,提高了SQL报错信息的处理效率。
图7是本发明另一实施例提供的SQL报错的处理装置的结构示意图,如图7所示,在上述各实施例的基础上,进一步地,自恢复处理单元603包括装载子单元6031、导入子单元6032和执行子单元6033,其中:
装载子单元6031用于根据所述SQL报错信息包括的程序名称,获取所述程序名称对应的程序可执行文件并装载到中间件;导入子单元6032用于根据所述SQL报错信息包括的程序名称,获取所述程序名称对应的SQL语句描述文件并导入到数据库***表;执行子单元6033用于重新执行所述SQL报错信息对应的SQL语句并设置所述SQL报错信息的状态为自恢复完成。
具体地,装载子单元6031可以从所述SQL报错信息中获得程序名称,然后根据所述程序名称查询获得所述程序名称对应的程序可执行文件,然后将所述程序可执行文件装载到中间件,以保证在联机交易时,执行的是最新版本的程序。其中,所述中间件可以采用CICS。
导入子单元6032可以从所述SQL报错信息中获得程序名称,然后然后根据所述程序名称查询获得所述程序名称对应的SQL语句描述文件,再将所述SQL语句描述文件包括的SQL语句导入到数据库***表,以保证程序版本和数据库***表版本一致。其中,所述数据库***表可以是DB2数据库的数据库***表。
在将所述程序名称对应的程序可执行文件装载到中间件之后,执行子单元6033可以获得装载成功的反馈信息,并且在将所述程序名称对应的SQL语句描述文件导入到数据库***表之后,执行子单元6033可以获得导入成功的反馈信息。执行子单元6033在获得装载成功和导入成功的反馈信息之后,会重新执行所述SQL报错信息对应的SQL语句,如果没有再出现SQL报错信息,说明解决了导致SQL报错信息产生的问题,可以进行联机交易的后续操作。所述服务器在获得装载成功和导入成功的反馈信息之后,还会将所述SQL报错信息的状态由自恢复中变更为自恢复完成。
图8是本发明又一实施例提供的SQL报错的处理装置的结构示意图,如图8所示,在上述各实施例的基础上,进一步地,本发明实施例提供的SQL报错的处理装置还包括状态获取单元604、增加单元605和提示单元606,其中:
状态获取单元604用于在判断获知所述SQL报错信息有记录之后,获取所述SQL报错信息的状态;增加单元605用于在判断获知所述SQL报错信息的状态为自恢复中之后,在SQL报错信息库中增加所述SQL报错信息对应的交易任务号;其中,所述SQL报错信息包括交易任务号;提示单元606用于在判断获知所述SQL报错信息的状态为自恢复完成之后,提示进行报错处理。
具体地,在判断所述SQL报错信息是否有记录之后,状态获取单元604如果判断出所述SQL报错信息有记录,说明所述SQL报错信息已经在SQL报错信息库登记过,会获取所述SQL报错信息的状态。对于已经登记过的SQL报错信息存在自恢复中和自恢复完成两种状态。
在获取所述SQL报错信息的状态之后,如果所述SQL报错信息的状态为自恢复中,说明与所述SQL报错信息匹配的一个SQL报错信息进行正在进行自恢复处理,可以不用对所述SQL报错信息进行自恢复处理,增加单元605会将所述SQL报错信息对应的交易任务号增加到SQL报错信息库中,在与所述SQL报错信息匹配的一个SQL报错信息自恢复处理完成之后,所述SQL报错信息对应的所有交易任务号都可以获得进行自恢复处理的SQL报错信息的处理结果。
在获取所述SQL报错信息的状态之后,如果所述SQL报错信息的状态为自恢复完成,说明所述SQL报错信息已经进行过自恢复处理,但导致SQL报错信息的问题并没有得到解决,此时需要人工介入,提示单元606会向运维人员提示进行报错处理。
图9是本发明再一实施例提供的SQL报错的处理装置的结构示意图,如图9所示,在上述各实施例的基础上,进一步地,本发明实施例提供的SQL报错的处理装置还包括触发等待单元607和解除等待单元608,其中:
触发等待单元607用于在获取SQL报错信息时,触发所述SQL报错信息对应的交易任务号对应的联机交易的等待;解除等待单元608用于在达到预设条件时,解除所述SQL报错信息对应的交易任务号对应的联机交易的等待。
具体地,现有技术中,当出现SQL报错信息时,会导致联机交易失败,由于对所述SQL报错信息进行自恢复处理之后,可以解决部分导致SQL报错信息的问题,因此触发等待单元607在获取SQL报错信息时,可以触发所述SQL报错信息对应的交易任务号对应的联机交易的等待。
具体地,在联机交易的等待的过程中,如果达到预设条件,那么解除等待单元608会解除所述述SQL报错信息对应的交易任务号对应的联机交易的等待。
其中,所述预设条件为所述SQL报错信息有记录且所述SQL报错信息的状态为自恢复完成,所述SQL报错信息对应的程序可执行文件成功装载到中间件且所述SQL报错信息对应的SQL语句成功导入到数据库***表或者在获取到所述SQL报错信息之后超过预设时间。
当解除等待单元608判断出所述SQL报错信息有记录且所述SQL报错信息的状态为自恢复完成时,说明导致SQL报错信息产生的问题并没有得到解决,在解除所述SQL报错信息对应的交易任务号对应的联机交易的等待之后,可以将所述SQL报错信息返回给执行SQL语句的应用程序。
当解除等待单元608判断出所述SQL报错信息对应的程序可执行文件成功装载到中间件且所述SQL报错信息对应的SQL语句成功导入到数据库***表之后,会解除所述述SQL报错信息对应的交易任务号对应的联机交易的等待,重新执行所述SQL报错信息对应的SQL语句,如果不再产生SQL报错信息,可以进行联机交易的后续操作。通过在获取SQL报错信息时触发联机交易等待,对所述SQL报错信息进行自恢复处理,不再产生SQL报错信息,在自动解决导致SQL报错信息的问题的同时,避免了交易失败,提高了联机交易的可靠性。
当解除等待单元608判断出在获取到所述SQL报错信息之后超过预设时间,没有收到对所述SQL报错信息的处理结果,那么解除所述述SQL报错信息对应的交易任务号对应的联机交易的等待,并将所述SQL报错信息返回给执行SQL语句的应用程序。其中,所述预设时间根据实际需要进行设置,例如设置为100毫秒,本发明实施例不做限定。
本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图10是本发明一实施例提供的电子设备的实体结构示意图,如图10所示,该电子设备可以包括:处理器(processor)1001、通信接口(Communications Interface)1002、存储器(memory)1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信。处理器1001可以调用存储器1003中的逻辑指令,以执行如下方法:获取SQL报错信息,所述SQL报错信息包括SQL返回码;若判断获知所述SQL返回码与自恢复返回码匹配,则判断所述SQL报错信息是否有记录;其中,所述自恢复返回码是预设的;若判断获知所述SQL报错信息没有记录,则对所述SQL报错信息进行自恢复处理,登记所述SQL报错信息至SQL报错信息库并标记所述SQL报错信息的状态为自恢复中。
此外,上述的存储器1003中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取SQL报错信息,所述SQL报错信息包括SQL返回码;若判断获知所述SQL返回码与自恢复返回码匹配,则判断所述SQL报错信息是否有记录;其中,所述自恢复返回码是预设的;若判断获知所述SQL报错信息没有记录,则对所述SQL报错信息进行自恢复处理,登记所述SQL报错信息至SQL报错信息库并标记所述SQL报错信息的状态为自恢复中。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取SQL报错信息,所述SQL报错信息包括SQL返回码;若判断获知所述SQL返回码与自恢复返回码匹配,则判断所述SQL报错信息是否有记录;其中,所述自恢复返回码是预设的;若判断获知所述SQL报错信息没有记录,则对所述SQL报错信息进行自恢复处理,登记所述SQL报错信息至SQL报错信息库并标记所述SQL报错信息的状态为自恢复中。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种SQL报错的处理方法,其特征在于,包括:
获取SQL报错信息,所述SQL报错信息包括SQL返回码;
若判断获知所述SQL返回码与自恢复返回码匹配,则判断所述SQL报错信息是否有记录;其中,所述自恢复返回码是预设的;
若判断获知所述SQL报错信息没有记录,则对所述SQL报错信息进行自恢复处理,登记所述SQL报错信息至SQL报错信息库并标记所述SQL报错信息的状态为自恢复中;
其中,所述对所述SQL报错信息进行自恢复处理包括:
根据所述SQL报错信息包括的程序名称,获取所述程序名称对应的程序可执行文件并装载到中间件;
根据所述SQL报错信息包括的程序名称,获取所述程序名称对应的SQL语句描述文件并导入到数据库***表;
重新执行所述SQL报错信息对应的SQL语句并设置所述SQL报错信息的状态为自恢复完成。
2.根据权利要求1所述的方法,其特征在于,还包括:
若判断获知所述SQL报错信息有记录,则获取所述SQL报错信息的状态;
若判断获知所述SQL报错信息的状态为自恢复中,则在SQL报错信息库中增加所述SQL报错信息对应的交易任务号;其中,所述SQL报错信息包括交易任务号;
若判断获知所述SQL报错信息的状态为自恢复完成,则提示进行报错处理。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
在获取SQL报错信息时,触发所述SQL报错信息对应的交易任务号对应的联机交易的等待;
在达到预设条件时,解除所述SQL报错信息对应的交易任务号对应的联机交易的等待。
4.根据权利要求3所述的方法,其特征在于,所述预设条件为所述SQL报错信息有记录且所述SQL报错信息的状态为自恢复完成;所述SQL报错信息对应的程序可执行文件成功装载到中间件且所述SQL报错信息对应的SQL语句成功导入到数据库***表;或者在获取到所述SQL报错信息之后超过预设时间。
5.一种SQL报错的处理装置,其特征在于,包括:
报错信息获取单元,用于获取SQL报错信息,所述SQL报错信息包括SQL返回码;
判断单元,用于在判断获知所述SQL返回码与自恢复返回码匹配之后,判断所述SQL报错信息是否有记录;其中,所述自恢复返回码是预设的;
自恢复处理单元,用于在判断获知所述SQL报错信息没有记录之后,对所述SQL报错信息进行自恢复处理,登记所述SQL报错信息至SQL报错信息库并标记所述SQL报错信息的状态为自恢复中;
其中,所述自恢复处理单元包括:
装载子单元,用于根据所述SQL报错信息包括的程序名称,获取所述程序名称对应的程序可执行文件并装载到中间件;
导入子单元,用于根据所述SQL报错信息包括的程序名称,获取所述程序名称对应的SQL语句描述文件并导入到数据库***表;
执行子单元,用于重新执行所述SQL报错信息对应的SQL语句并设置所述SQL报错信息的状态为自恢复完成。
6.根据权利要求5所述的装置,其特征在于,还包括:
状态获取单元,用于在判断获知所述SQL报错信息有记录之后,获取所述SQL报错信息的状态;
增加单元,用于在判断获知所述SQL报错信息的状态为自恢复中之后,在SQL报错信息库中增加所述SQL报错信息对应的交易任务号;其中,所述SQL报错信息包括交易任务号;
提示单元,用于在判断获知所述SQL报错信息的状态为自恢复完成之后,提示进行报错处理。
7.根据权利要求5或6所述的装置,其特征在于,还包括:
触发等待单元,用于在获取SQL报错信息时,触发所述SQL报错信息对应的交易任务号对应的联机交易的等待;
解除等待单元,用于在达到预设条件时,解除所述SQL报错信息对应的交易任务号对应的联机交易的等待。
8.根据权利要求7所述的装置,其特征在于,所述预设条件为所述SQL报错信息有记录且所述SQL报错信息的状态为自恢复完成;所述SQL报错信息对应的程序可执行文件成功装载到中间件且所述SQL报错信息对应的SQL语句成功导入到数据库***表;或者在获取到所述SQL报错信息之后超过预设时间。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述方法的步骤。
CN202010242096.8A 2020-03-31 2020-03-31 一种sql报错的处理方法及装置 Active CN111367705B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010242096.8A CN111367705B (zh) 2020-03-31 2020-03-31 一种sql报错的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010242096.8A CN111367705B (zh) 2020-03-31 2020-03-31 一种sql报错的处理方法及装置

Publications (2)

Publication Number Publication Date
CN111367705A CN111367705A (zh) 2020-07-03
CN111367705B true CN111367705B (zh) 2023-08-04

Family

ID=71207050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010242096.8A Active CN111367705B (zh) 2020-03-31 2020-03-31 一种sql报错的处理方法及装置

Country Status (1)

Country Link
CN (1) CN111367705B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112148528A (zh) * 2020-09-14 2020-12-29 北京同邦卓益科技有限公司 一种实现自动容错的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107566392A (zh) * 2017-09-22 2018-01-09 北京知道创宇信息技术有限公司 一种报错型sql注入的检测方法和代理服务器
CN110362428A (zh) * 2019-06-27 2019-10-22 北京人大金仓信息技术股份有限公司 在线自动恢复数据库块的方法和***
CN110427422A (zh) * 2019-05-23 2019-11-08 武汉达梦数据库有限公司 数据同步异常时数据一致性校验方法、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7447732B2 (en) * 2003-05-23 2008-11-04 International Business Machines Corporation Recoverable return code tracking and notification for autonomic systems
US8538930B2 (en) * 2009-10-09 2013-09-17 International Business Machines Corporation Method and system for database recovery

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107566392A (zh) * 2017-09-22 2018-01-09 北京知道创宇信息技术有限公司 一种报错型sql注入的检测方法和代理服务器
CN110427422A (zh) * 2019-05-23 2019-11-08 武汉达梦数据库有限公司 数据同步异常时数据一致性校验方法、设备及存储介质
CN110362428A (zh) * 2019-06-27 2019-10-22 北京人大金仓信息技术股份有限公司 在线自动恢复数据库块的方法和***

Also Published As

Publication number Publication date
CN111367705A (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
CN107025224B (zh) 一种监控任务运行的方法和设备
CN112257733B (zh) 一种模型迭代方法、第二电子设备及存储介质
CN106528316A (zh) 一种网络游戏服务器防崩溃方法和***
CN110275992B (zh) 应急处理方法、装置、服务器及计算机可读存储介质
CN111367705B (zh) 一种sql报错的处理方法及装置
CN109284331B (zh) 基于业务数据资源的制证信息获取方法、终端设备及介质
CN111367531B (zh) 代码处理方法及装置
CN113886590A (zh) 数据汇总方法、装置、计算机设备及存储介质
US8135393B2 (en) System and method for transactional application lifecycle management for mobile devices
CN107016613B (zh) 数据修改的方法和装置
CN111240891A (zh) 基于数据库多表间数据一致性的数据恢复方法及装置
CN112765188B (zh) 配置信息处理方法、配置管理***、电子设备及存储介质
CN110765144B (zh) 分布式异构数据库数据处理方法及装置
CN114064488A (zh) 交易测试方法、装置、存储介质和设备
CA2679021C (en) System and method for transactional application lifecycle management for mobile devices
CN112965984A (zh) 一种执行数据库事务的方法及装置
CN115248827A (zh) 分布式事务提交方法及装置
CN112328382A (zh) 一种任务调度方法、装置、服务器及存储介质
CN111737036A (zh) 一种基于机器人流程自动化的业务处理方法及装置
CN114546629B (zh) 任务执行***、方法、服务器及计算机可读存储介质
CN114510337B (zh) 任务执行方法、***及计算机可读存储介质
CN113204566B (zh) Sql脚本的执行方法及装置
CN115729946B (zh) 一种处理分布式事务的方法、装置、设备及存储介质
CN116932944A (zh) 前端资源更新方法及装置
CN116756003A (zh) 一种接口测试方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant