CN106708699A - 错误信息记录方法及装置 - Google Patents

错误信息记录方法及装置 Download PDF

Info

Publication number
CN106708699A
CN106708699A CN201611128024.0A CN201611128024A CN106708699A CN 106708699 A CN106708699 A CN 106708699A CN 201611128024 A CN201611128024 A CN 201611128024A CN 106708699 A CN106708699 A CN 106708699A
Authority
CN
China
Prior art keywords
routing iinformation
error
limited cycle
storage location
queue
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.)
Granted
Application number
CN201611128024.0A
Other languages
English (en)
Other versions
CN106708699B (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.)
Bank of China Ltd
Original Assignee
Bank of China 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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN201611128024.0A priority Critical patent/CN106708699B/zh
Publication of CN106708699A publication Critical patent/CN106708699A/zh
Application granted granted Critical
Publication of CN106708699B publication Critical patent/CN106708699B/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/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种错误信息记录方法及装置,该方法包括:在交易进行过程中,记录业务系统中运行的程序模块的路由信息,并将记录的路由信息缓存至内存;在所述业务系统出错时,从所述内存调取出错点之前的程序模块的路由信息,并将调取的路由信息保存至系统错误流水文件,用于获取所述业务系统出错的原因。本发明通过缓存、调取及保存反映程序流转的路由信息,能够同时解决快速定位出错原因和生产的空间占用问题。

Description

错误信息记录方法及装置
技术领域
本发明涉及计算机系统技术领域,尤其涉及一种错误信息记录方法及装置。
背景技术
在生产维护中,最大的问题就是不能尽快定位生产问题。生产问题的定位需要基于生产上所保留的信息,而保留的信息通常存在信息量少和缺少错误来源的问题。一方面,对于大型系统,特别是中国大型银行系统等服务于十几亿客户的系统,保留的信息必须尽可能少,所以在生产上,对于程序运行相关的跟踪信息都会被关闭掉,程序出错返回到客户端的信息一般是由错误码构成,即使有附加信息,也会非常少,从而导致保留的信息量少;另一方面,程序的结构是模块间网状调用,程序运行时也会出现多层逻辑的复杂调用关系,所以后台处理逻辑非常复杂,即使可以设计在出错时,记录相关的信息,仅凭出错点的现场信息,也无法让维护人员理解错误出现的原因。
像银行主机这样的大型服务系统,对错误信息的处理方法一般都是向客户端报送错误码和少量的错误信息。虽然后台会有监控机制,但只有在持续发生严重错误时才会开启。对于向客户端报送错误信息:在后台服务端发生错误时,会有标准的错误码和少量的附加信息发送给客户端,客户端根据错误码对照表和附加的信息解析对应的错误,但对于非客户原因引起的系统错误,比如系统逻辑错误或者数据库错误等,则一般没有完整的错误码对照,比如每个中间件或数据库本身,就会有非常复杂的报错机制,而这些通常会以比较简单的方式反馈给客户,因为即使反馈给客户,客户也无法理解和处理。对于服务系统内部错误监控:在系统内部设置监控机制,具体的环境有,记录每个交易的输入输出信息;可根据柜员或渠道输出程序内设置的跟踪信息,当某个渠道或柜员持续出现错误时,可根据柜员或渠道打开跟踪设置,系统把程序的跟踪信息输出到流水中,供维护人员使用;对于报错,记录程序当时相关信息,比如模块名、系统环境信息。维护人员可根据这些环境信息定位当时的错误情况,这是一种快照机制。
向客户端报错机制的主要目的是向客户解释客户的操作逻辑错误,比如本来已经冻结的账户,又去取款,那么会提示客户账户已冻结。而程序逻辑错误、系统环境错误不适于输出大量的信息。在系统监控中的机制,每一种机制都不能使维护人员达到易于排查错误的目的。每个交易的输入/输出信息并不包含客户账户等当时所有的实时信息,维护人员使用输入信息重现该错误时经常会遇到无法复现错误的情况,所以根据输入输出信息无法容易地推导出交易在程序中的流转情况。而且,程序的跟踪信息一般是比较庞大,不可能全面长期开启,如果择机开启,则一定是事后处理,而一般生产非普遍的错误,发生场景都是很特别而且极难复现,所以即使开启,也难以捕捉出错交易。报错场景快照机制是出错点的实时场景,相当于第一种输入输出信息(实际上也是交易开始和结束点的快照)中间增加了一个截面的快照,在出错之前的很长时间之间的程序流转和账户信息变化还是无法获得,如果对于所有的错误增加快照,跟踪信息仍然是比较大的。即使有了这样的机制,仍然不适于实时跟踪生产的错误信息。
发明内容
本发明提供一种错误信息记录方法及装置,以解决大型服务系统只能保留少错误量信息,导致无法由此得知错误原因,进而导致维护人员不能尽快定位生产中错误的问题。
本发明提供一种错误信息记录方法,包括:在交易进行过程中,记录业务系统中运行的程序模块的路由信息,并将记录的路由信息缓存至内存;在所述业务系统出错时,从所述内存调取出错点之前的程序模块的路由信息,并将调取的路由信息保存至系统错误流水文件,用于获取所述业务系统出错的原因。
一个实施例中,将记录的路由信息缓存至内存,包括:在所述内存中定义具有设定容量的缓存区;将距离所述出错点最近的设定条数的记录的路由信息缓存至所述缓存区。
一个实施例中,将距离所述出错点最近的设定条数的记录的路由信息缓存至所述缓存区,包括:利用所述缓存区中存储空间单元的有限循环队列缓存在所述交易进行过程中记录的路由信息,以实现在所述业务系统出错时缓存距离所述出错点最近的设定条数的记录的路由信息。
一个实施例中,利用所述缓存区中存储空间单元的有限循环队列缓存在所述交易进行过程中记录的路由信息,包括:在所述缓存区收到路由信息缓存请求时,判断所述缓存区中是否有数据;若否,将所述有限循环队列中的起始存储位置和结束存储位置均对应至所述有限循环队列中的第1存储空间单元,并将在所述交易进行过程中记录的路由信息存储至所述结束存储位置,其中,所述有限循环队列中的存储空间单元被预先顺序编号为第1存储空间单元至第m存储空间单元,m为大于或等于1的整数。
一个实施例中,利用所述缓存区中存储空间单元的有限循环队列缓存在所述交易进行过程中记录的路由信息,还包括:若所述缓存区中有数据,且所述有限循环队列的结束存储位置对应第n存储空间单元,将所述有限循环队列的结束存储位置更新对应至所述第n存储空间单元的后一存储空间单元,并判断更新后的结束存储位置是否超过所述有限循环队列的存储上限,其中,n为大于或等于1的整数;若否,判断更新后的结束存储位置是否等于所述有限循环队列的起始存储位置,若是,将更新后的结束存储位置再次更新对应至所述有限循环队列中的第1存储空间单元后,判断再次更新后的结束存储位置是否等于所述有限循环队列的起始存储位置;若更新后的结束存储位置不等于所述有限循环队列的起始存储位置或再次更新后的结束存储位置不等于所述有限循环队列的起始存储位置,将在所述交易进行过程中记录的路由信息存储至当前的结束存储位置,若更新后的结束存储位置等于所述有限循环队列的起始存储位置或再次更新后的结束存储位置等于所述有限循环队列的起始存储位置,将所述有限循环队列的起始存储位置更新对应至其当前对应的所述有限循环队列中的存储空间单元的后一存储空间单元后,删除当前的结束存储位置中的数据,并将在所述交易进行过程中记录的路由信息存储至当前的结束存储位置。
一个实施例中,从所述内存调取出错点之前的程序模块的路由信息之前,还包括:
在所述业务系统出错时,判断所述业务系统的错误类型是否属于业务逻辑错误,若是,不从所述内存调取记录的路由信息,且不缓存记录的路由信息。
一个实施例中,记录业务系统中程序模块的路由信息之前,还包括:在所述交易开始之前,在所述业务系统中程序模块的分支、入口及出口预先增加路由信息。
一个实施例中,记录的路由信息包括:标记序号、程序模块名称、关键栏位和值及流转类型。
本发明还提供一种错误信息记录装置,包括:路由信息缓存单元,用于执行:在交易进行过程中,记录业务系统中运行的程序模块的路由信息,并将记录的路由信息缓存至内存;错误信息存储单元,用于执行:在所述业务系统出错时,从所述内存调取出错点之前的程序模块的路由信息,并将调取的路由信息保存至系统错误流水文件,用于获取所述业务系统出错的原因。
一个实施例中,所述路由信息缓存单元,包括:有限缓存定义模块,用于执行:在所述内存中定义具有设定容量的缓存区;最近路由信息缓存模块,用于执行:将距离所述出错点最近的设定条数的记录的路由信息缓存至所述缓存区。
一个实施例中,所述最近路由信息缓存模块,包括:有限循环队列缓存模块,用于执行:利用所述缓存区中存储空间单元的有限循环队列缓存在所述交易进行过程中记录的路由信息,以实现在所述业务系统出错时缓存距离所述出错点最近的设定条数的记录的路由信息。
一个实施例中,所述有限循环队列缓存模块,包括:缓存状态判断模块,用于执行:在所述缓存区收到路由信息缓存请求时,判断所述缓存区中是否有数据;第一路由信息缓存模块,用于执行:若否,将所述有限循环队列中的起始存储位置和结束存储位置均对应至所述有限循环队列中的第1存储空间单元,并将在所述交易进行过程中记录的路由信息存储至所述结束存储位置,其中,所述有限循环队列中的存储空间单元被预先顺序编号为第1存储空间单元至第m存储空间单元,m为大于或等于1的整数。
一个实施例中,所述有限循环队列缓存模块,还包括:队列存储上限判断模块,用于执行:若所述缓存区中有数据,且所述有限循环队列的结束存储位置对应第n存储空间单元,将所述有限循环队列的结束存储位置更新对应至所述第n存储空间单元的后一存储空间单元,并判断更新后的结束存储位置是否超过所述有限循环队列的存储上限,其中,n为大于或等于1的整数;起始结束位置判断模块,用于执行:若否,判断更新后的结束存储位置是否等于所述有限循环队列的起始存储位置,若是,将更新后的结束存储位置再次更新对应至所述有限循环队列中的第1存储空间单元后,判断再次更新后的结束存储位置是否等于所述有限循环队列的起始存储位置;
第二路由信息缓存模块,用于执行:若更新后的结束存储位置不等于所述有限循环队列的起始存储位置或再次更新后的结束存储位置不等于所述有限循环队列的起始存储位置,将在所述交易进行过程中记录的路由信息存储至当前的结束存储位置,若更新后的结束存储位置等于所述有限循环队列的起始存储位置或再次更新后的结束存储位置等于所述有限循环队列的起始存储位置,将所述有限循环队列的起始存储位置更新对应至其当前对应的所述有限循环队列中的存储空间单元的后一存储空间单元后,删除当前的结束存储位置中的数据,并将在所述交易进行过程中记录的路由信息存储至当前的结束存储位置。
一个实施例中,还包括:错误类型过滤单元,用于执行:在所述业务系统出错时,判断所述业务系统的错误类型是否属于业务逻辑错误,若是,不从所述内存调取记录的路由信息,且不缓存记录的路由信息。
一个实施例中,还包括:路由信息增加单元,用于执行:在所述交易开始之前,在所述业务系统中程序模块的分支、入口及出口预先增加路由信息。
一个实施例中,所述路由信息缓存单元,还用于执行:记录的路由信息包括:标记序号、程序模块名称、关键栏位和值及流转类型。
本发明实施例的错误信息记录方法及装置,通过在交易进行过程中,记录业务系统中运行的程序模块的路由信息,并将记录的路由信息缓存至内存,在所述业务系统出错时,从所述内存调取出错点之前的程序模块的路由信息,并将调取的路由信息保存至系统错误流水文件,能够以程序员最易接受的方式,通过保存有限流转信息,帮助维护人员快速、易读地定位出错原因,且同时解决了生产的空间占用问题。进一步,通过定义有限缓存的方式缓存距离出错点最近的一些路由信息,可以进一步减小系统压力。再进一步,通过错误筛选,不保存业务逻辑错误的路由信息,仅保存系统级错误的路由信息,也可以进一步减小系统压力。保留尽可能少、尽可能与系统级错误密切相关的程序路由流转信息能够使得维护人员更方便、快速的定位错误原因。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例的错误信息记录方法的流程示意图;
图2是本发明一实施例中缓存路由信息的方法流程示意图;
图3是本发明一实施例中利用有限循环队列缓存在交易进行过程中记录的路由信息的方法流程示意图;
图4是本发明一实施例中将第一条路由信息存储至有限循环队列的示意图;
图5是本发明一实施例中将第五条路由信息存储至有限循环队列的示意图
图6是本发明一实施例中将第十一条路由信息存储至有限循环队列的示意图
图7是本发明一实施例中缓存数据的队列处理方法的流程示意图;
图8是本发明另一实施例的错误信息记录方法的流程示意图;
图9是本发明一实施例中错误模块处理流程示意图;
图10是本发明又一实施例的错误信息记录方法的流程示意图;
图11是本发明一实施例的记录错误信息的流程示意图;
图12是本发明一实施例的记录错误信息方法的流程示意图;
图13是本发明一实施例的错误信息记录装置的结构示意图;
图14是本发明一实施例中路由信息缓存单元的结构示意图;
图15是本发明一实施例中有限循环队列缓存模块的结构示意图;
图16是本发明另一实施例中有限循环队列缓存模块的结构示意图;
图17是本发明另一实施例的错误信息记录装置的结构示意图;
图18是本发明又一实施例的错误信息记录装置。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
针对现有大型服务系统由于客户量大而无法保存错误跟踪信息,系统错误的相关信息少导致不能让系统维护人员迅速定位错误问题原因的问题,本发明提供一种错误信息记录方法,不需要保留大量的错误信息就能让系统维护人员快速理解系统错误出现的原因。
图1是本发明一实施例的错误信息记录方法的流程示意图。如图1所示,本发明实施例的错误信息记录方法,可包括步骤:
S110:在交易进行过程中,记录业务系统中运行的程序模块的路由信息,并将记录的路由信息缓存至内存;
S120:在所述业务系统出错时,从所述内存调取出错点之前的程序模块的路由信息,并将调取的路由信息保存至系统错误流水文件,用于获取所述业务系统出错的原因。
在上述步骤S110中,该业务系统例如可以是大型银行系统,该交易例如可以是取款、转账等交易。该业务系统可以包括许多程序模块,该些程序模块都是为了实现业务逻辑而开发的功能模块和系统模块。在交易开始后,与该交易相关的程序模块按一定的顺序流转运行。通过记录程序模块的路由信息可以知道交易是如何在复杂的程序中运行的。
一般可在程序模块的路由节点记录反映程序模块流转的路由信息。每个业务系统的用户请求在程序中流转的路径会根据请求的数据和用户的相关信息不同而发生变化,通过记录程序模块的路由信息,可以知道当前交易是如何在复杂的程序中运行的。其中,该路由信息可以在每个程序模块调用和返回点等关键的分支节点预先增加,以便在交易进行中记录所需的路由信息。无论程序多么复杂,代码有多长,对于每个具体的交易,实际走过的程序量会非常少,一次交易走过的程序模块的关键路由节点也是非常有限的。因此,与现有技术中庞大的跟踪信息相比,本发明需要缓存的路由信息较少。
在上述步骤S120中,业务系统出错可能存在多种原因,例如正常的业务逻辑错误、系统级错误等。对出错点起处起作用的代码总和,是一个简化了的超短程序,这个程序的总和是所有程序在这个场景下的一个切片。从所述内存调取出错点之前的程序模块的路由信息,例如程序模块的关键路由信息,能够反映程序切片信息,而且信息量相对较少。该系统错误流水文件可以是数据文件、数据表等。将调取的路由信息保存至系统错误流水文件,可以方便系统维护人员调阅。所以,通过将与错误紧密相关的路由信息保存起来,仅需记录较少的信息就可以让维护人员理解错误的原因。
本发明实施例中,通过记录并缓存交易过程中程序模块的路由信息,在系统出错时,在从缓存的路由信息中调取并保存出错点之前的路由信息,一方面,程序模块的路由信息能够有效反映交易过程中程序流转信息;另一方面,仅保存于出错交易相关的路由信息,保存数据少。而且,技术人员通常知道错误原因是由于流程路由错误引起的,但不知道流程错在哪里,本发明把反映错误流程的路由信息记录下来,遵循技术人员最易接受和理解的思路,能够从根本解决上为技术人员快速定位错误原因提供了解决方案。
图2是本发明一实施例中缓存路由信息的方法流程示意图。如图2所示,在上述步骤S110中,将记录的路由信息缓存至内存的方法,可包括步骤:
S111:在所述内存中定义具有设定容量的缓存区;
S112:将距离所述出错点最近的设定条数的记录的路由信息缓存至所述缓存区。
在上述步骤S111和S112中,通过定义一个有限的缓存容量,并时刻保持离出错点最近的路由信息,在交易出错时,就可以知道最近经过的路径。而且,通过定义有限缓存来设置流水上限能够避免系统容量不够、减少对系统的压力。
一些实施例中,在上述步骤S112中,将距离所述出错点最近的设定条数的记录的路由信息缓存至所述缓存区的方法,具体实施方式可为:利用所述缓存区中存储空间单元的有限循环队列缓存在所述交易进行过程中记录的路由信息,以实现在所述业务系统出错时缓存距离所述出错点最近的设定条数的记录的路由信息。
其中,该缓存区可以预先划分为多个存储空间单元,该些存储空间单元可以按一定顺序构成有限循环队列,每个存储空间单元可以用于存储一条路由信息。该设定条数可以根据系统的情况设定。利用有限循环队列不断缓存在所述交易进行过程中记录的路由信息,例如距离程序模块最新流转所达位置最近的某些路由信息,在业务系统出错时,就能达到缓存距离出错点最近的多条路由信息的目的。
本实施例中,利用有限循环队列缓存路由信息,对于无指针类型的程序可以直接使用固定的内存区,以此能够方便地定义有限缓存。
图3是本发明一实施例中利用有限循环队列缓存在交易进行过程中记录的路由信息的方法流程示意图。如图3所示,利用所述缓存区中存储空间单元的有限循环队列缓存在所述交易进行过程中记录的路由信息的方法,可包括步骤:
S1121:在所述缓存区收到路由信息缓存请求时,判断所述缓存区中是否有数据;
S1122:若否,将所述有限循环队列中的起始存储位置和结束存储位置均对应至所述有限循环队列中的第1存储空间单元,并将在所述交易进行过程中记录的路由信息存储至所述结束存储位置,其中,所述有限循环队列中的存储空间单元被预先顺序编号为第1存储空间单元至第m存储空间单元,m为大于或等于1的整数。
在上述步骤S1122中,所述缓存区可以预先被划分为m个存储空间单元,则所述有限循环队列中可共有m个存储空间单元。该m个存储空间单元可按一定顺序排列,则所述有限循环队列包含第1存储空间单元、第2存储空间单元、第3存储空间单元、……、第m-1存储空间单元、第m存储空间单元。
该起始存储位置表示在该有限循环队列的所有存储空间单元当前存储的数据中最早存储的数据对应的存储空间单元,该结束存储位置表示在该有限循环队列的所有存储空间单元当前存储的数据中最后存储的数据对应的存储空间单元。该起始存储位置处存储的路由信息可以是离出错点最远的路由信息,该结束存储位置处存储的路由信息可以是离出错点最近的路由信息。在首次向有限循环队列存储路由信息时,起始存储位置和结束存储位置可相同。
上述有限循环队列可以循环存储数据,例如第1条路由信息至第m条路由信息可分别存储到第1存储空间单元至第m存储空间单元,当有第m+1条路由信息需要存储时,该第m+1条路由信息可以存储至例如第1存储空间单元,可先删除该第1存储空间单元的原有数据,再将第m+1条路由信息存储至该第1存储空间单元。在其他实施例中,可以通过其他循环方式存储超出队列存储空间单元个数的路由信息。如此一来,可以利用直接使用固定长度的内存区,完成固定长度队列的操作。
再如图3所示,上述利用所述缓存区中存储空间单元的有限循环队列缓存在所述交易进行过程中记录的路由信息的方法,还可包括步骤:
S1123:若所述缓存区中有数据,且所述有限循环队列的结束存储位置对应第n存储空间单元,将所述有限循环队列的结束存储位置更新对应至所述第n存储空间单元的后一存储空间单元,并判断更新后的结束存储位置是否超过所述有限循环队列的存储上限,其中,n为大于或等于1的整数;
S1124:若否,判断更新后的结束存储位置是否等于所述有限循环队列的起始存储位置,若是,将更新后的结束存储位置再次更新对应至所述有限循环队列中的第1存储空间单元后,判断再次更新后的结束存储位置是否等于所述有限循环队列的起始存储位置;
S1125:若更新后的结束存储位置不等于所述有限循环队列的起始存储位置或再次更新后的结束存储位置不等于所述有限循环队列的起始存储位置,将在所述交易进行过程中记录的路由信息存储至当前的结束存储位置,若更新后的结束存储位置等于所述有限循环队列的起始存储位置或再次更新后的结束存储位置等于所述有限循环队列的起始存储位置,将所述有限循环队列的起始存储位置更新对应至其当前对应的所述有限循环队列中的存储空间单元的后一存储空间单元后,删除当前的结束存储位置中的数据,并将在所述交易进行过程中记录的路由信息存储至当前的结束存储位置。
在上述步骤S1123中,从起始存储位置到结束存储位置都存储有数据,若所述缓存区中有数据且所述有限循环队列的结束存储位置对应第n存储空间单元,假如此时起始存储位置对应第1存储空间单元,则可说明所述有限循环队列中从第1存储空间单元至第n存储空间单元都存储有数据。此时若要继续向有限循环队列中存储路由信息,则需将结束存储位置按有限循环队列中存储空间单元排列的顺序向后移动一个位置,以使结束存储位置对应第n存储空间单元的后一存储空间单元。该有限循环队列的存储上限可以是指有限循环队列中最后一个存储空间单元。
在上述步骤S1124中,若当前的结束存储位置未超过所述有限循环队列的存储上限,可以直接判断当前的结束存储位置是否与当前的起始存储位置重叠。若当前的结束存储位置超过所述有限循环队列的存储上限,则可说明该有限循环队列中最后一个存储空间单元已存满数据,将更新后的结束存储位置再次更新对应至所述有限循环队列中的第1存储空间单元之后,再判断当前的结束存储位置是否等于所述有限循环队列的起始存储位置。
在上述步骤S1125中,若更新后的结束存储位置不等于所述有限循环队列的起始存储位置或再次更新后的结束存储位置不等于所述有限循环队列的起始存储位置,则说明当前结束存储位置和当前的起始存储位置不重叠,可认为当前结束存储位置中无数据。若更新后的结束存储位置等于所述有限循环队列的起始存储位置或再次更新后的结束存储位置等于所述有限循环队列的起始存储位置,说明当前结束存储位置和当前的起始存储位置重叠,所述有限循环队列中的所有存储空间单元都存储有数据,将所述有限循环队列的起始存储位置更新对应至其当前对应的所述有限循环队列中的存储空间单元的后一存储空间单元,可以将起始存储位置对应至后一个空间存储单元,此时当前结束存储位置对应当前起始存储位置之前对应的空间存储单元。如此一来,通过删除当前的结束存储位置中的数据,可以实现删除有限循环队列中最早存储的路由信息,通过将在所述交易进行过程中记录的路由信息存储至当前的结束存储位置,可以将最新的路由信息存储起来,从而实现存储距离出错点最近的m条路由信息。
本实施例中,信息在流水上限内按照队列方式管理,对于超出流水上限的情况,最先记录的流水从队列中删除,从而实现存储距离出错点最近一条或多条路由信息。
在其他一些实施例中,对于有指针类型的程序,可以利用指针操作完成将最新的多条路由信息存储至固定长度的队列中,从而实现利用有限缓存存储距离出错点最近的多条路由信息存储。
一些实施例中,业务系统中的程序模块可分别调用路由信息缓冲模块缓存路由信息,在程序遇到环境错误时,可调用错误处理模块进行错误信息处理。错误信息处理模块获取路由信息缓冲模块缓存的路由信息,将这些信息记录在系统错误流水里供维护人员调阅。增加了路由信息缓存模块,用于将有限的(最近的)路由信息时刻保存在内存中,供出错时保存。在错误处理模块中增加获取和保留路由信息的逻辑,这些信息供维护人员在查阅问题时调阅,加快维护人员排查问题的速度。
一个实施例中,例如有限循环队列存储最近十条路由信息。图4是本发明一实施例中将第一条路由信息存储至有限循环队列的示意图。图5是本发明一实施例中将第五条路由信息存储至有限循环队列的示意图。图6是本发明一实施例中将第十一条路由信息存储至有限循环队列的示意图。如图4至图6所示,当将一条信息存入有限循环队列时,第一条指针301(起始存储位置)和最后一条指针302(结束存储位置)都指向第一条信息所在位置(对应第1存储空间单元),当将五条信息存入有限循环队列时,第一条指针301仍指向第一条信息所在位置(对应第1存储空间单元),最后一条指针302指向第五条信息所在位置(对应第5存储空间单元),当将11条信息存入有限循环队列时,第一条指针301指向新的第一条信息所在位置(即,原第二条信息所在位置,对应第2存储空间单元),最后一条指针302指向新的第十条信息所在位置(即,原第一条信息所在位置,对应第1存储空间单元)。如此一来,有限循环队列一直保持存储最新的第一条至第十条路由信息,从而使信息限制在有限的长度内,又是最新的信息。本实施例中,仅以有限循环队列存储十条信息说明本发明的实施,并非用以限定队列存储信息的条数,在其他实施例中队列可以其他数目条数的信息。
图7是本发明一实施例中缓存数据的队列处理方法的流程示意图。如图7所示,队列收到其他程序模块缓存路由信息的请求时,判断缓存中是否有数,若无数据,设置起始结束的位置(起始存储位置和起始结束位置)例如为1,即将起始存储位置和起始结束位置对应至第1存储空间单元,此时直接将路由信息放入结束位置;若有数据,将结束位置+1,即后移一个位置,再判断当前的结束位置(后移一个位置后的结束位置)是否超过上限。若当前的结束位置未超过上限,则直接判断开始位置是否等于结束位置,若当前的结束位置超过上限,则将结束位置赋值为1,即将结束位置对应至第1存储空间单元后,再判断开始位置是否等于结束位置。若当前的开始位置不等于当前的结束位置,则直接将路由信息放入结束位置;若当前的开始位置等于当前的结束位置,则将开始位置+1,即将开始位置后移一个位置,再将路由信息放入结束位置。
图8是本发明另一实施例的错误信息记录方法的流程示意图。如图8所示,图1所示的错误信息记录方法,从所述内存调取出错点之前的程序模块的路由信息之前,还可包括步骤:
S130:在所述业务系统出错时,判断所述业务系统的错误类型是否属于业务逻辑错误,若是,不从所述内存调取记录的路由信息,且不缓存记录的路由信息。
在上述步骤S130中,该错误类型可以包括业务逻辑错误、系统本身错误等。该业务逻辑错误一般可指由于用户作出了违反业务系统功能的操作而导致的错误,例如,用户在余额不足的情况下取款的报错。
本实施例中,当系统报错时,对于正常的业务逻辑错误,比如余额不足,可以不记录路由信息,因为客户可以根据错误提示推测出出错的原因,以此可以减少信息的存储量;而对于系统级的错误,就需要记录下路由信息,从而获知报错原因,而且,生产上系统级的错误是比较少,即使全部记录,也不会对系统产生压力。
一些实施例中,可在错误处理模块中加入过滤和路由信息的记录,错误处理时,对于程序模块传入的错误类型进行过滤,对于业务逻辑错误按照原有处理方式。对于非业务逻辑错误,此时一般是无法分配明确的错误码,或者是统一的系统错误码,增加路由信息缓存的处理。路由信息缓存处理时,可从路由信息缓存模块获取当前交易的路由信息,并将这些路由信息保存在数据文件或数据表中。在错误处理模块调用缓存数据时,缓存数据模块可从第一条位置开始,顺序输出信息,直到最后一条信息输出完毕。
图9是本发明一实施例中错误模块处理流程示意图。如图9所示,收到报错请求后,进行正常的报错处理,进而筛选报错类型,若是业务逻辑错误(客户操作错误引起的报错),则结束处理,若不是业务逻辑错误,认为是系统本身错误,则调用路由缓存模块获取缓存信息,然后将数据保存到系统错误路由信息表。
图10是本发明又一实施例的错误信息记录方法的流程示意图。如图10所示,图1所示的错误信息记录方法,在记录业务系统中程序模块的路由信息之前,还可包括步骤:
S140:在所述交易开始之前,在所述业务系统中程序模块的分支、入口及出口预先增加路由信息。
在上述步骤S140中,对于路由的关键点,比如模块分支、入口和出口预先增加简要的路由信息,反映分支的原因,比如账户需要透支,需要走入另一个透支处理模块时,需要记录下需要透支的原因。入口需要记录下当前模块名称,出口时记录下返回状态等。
本实施例中,通过在所述业务系统中程序模块的分支、入口及出口预先增加路由信息,在业务系统出错是可以获得更具有针对性的路由信息,以此有助于快速获取出错的原因。
图11是本发明一实施例的记录错误信息的流程示意图。如图11所示,交易开始后,程序正常处理(流转)同时记录路由信息,有时需要调用子程序等操作,与此同时也记录路由信息。之后,判断返回的信息是否正确,若是,则进行后续处理;若不正确,即出现错误,则进行错误信息的正常处理,例如格式化、返回调用端等。进而判断发生的错误是否属于业务逻辑错误,若是,则不记录路由信息;若不是逻辑错误,则认为是系统本身错误,此时,获取并保存交易的路由缓存信息,即将与报错密切相关的路由信息筛选、记录下来。
一些实施例中,业务系统中的程序模块流转时,其程序流转信息可以设置固定的格式,这样便于后续使用工具对该数据进行快速分拆、出报告和开发查询交易。
表1是本发明一实施例的出错信息索引,如表1所示,出错信息可包括序号和栏位名称,栏位可包括交易序号、错误类型、错误描述等。其中,由交易序号可查询得知是哪笔交易引起的错误,由错误类型可得知报错是系统错误还是逻辑错误,由错误描述可得到该错误的其他相关信息。
序号 栏位名称 说明
1 交易序号 可由此查询是哪笔交易引起的错误
2 错误类型 系统错误还是逻辑错误
3 错误描述 说明该错误的相关信息
表1出错信息索引
一些实施例中,记录的路由信息可包括:标记序号、程序模块名称、关键栏位和值及流转类型。表2是本发明一实施例的程序流转信息(路由信息)的格式。如表2所示,程序流转信息可包括序号和栏位名称,栏位可包括标记序号、程序模块名称、关键栏位和值、流转类型、备注及其他动态信息等。其中,由标记序号可得知本交易的第几笔流转信息,如果被截取了,就不会从第一条开始。
表2程序流转信息
图12是本发明一实施例的记录错误信息方法的流程示意图。如图12所示,该实施例中,记录错误信息方法可包括步骤:
S401:原有程序模块启动运行;
S402:生成路由流转信息;
S403:调用路由信息处理模块将路由信息保存在内存的有限队列中;
S404:程序在出错时调用错误处理模块;
S405:错误处理模块进行原有的错误处理。
本实施例中,原有程序模块为业务系统中的程序模块。路由流转信息为反映程序流转的路由信息。
对于纯粹采用前端(客户端)返回错误的方式,维护人员定位和复现问题非常困难,与其相比,本发明可以提供非常具象易读的信息供维护人员查阅。与使用输入、输出或出错点快照方案相比,本发明采用动态而非静态的方法,为维护人员提供尽可能长的程序路由流转信息。这个区别可以形象描述为:
快照:现在出错了
数据库出错状态:XX
账号:XXX
出错地点:XX模块
路由流转信息:
A程序,账户因为XXX需要透支,调用B模块
B模块:进行透支检查,调用C模块读取透支表
C模块:读取透支表CT,透支表出现XXX问题,报错。
由此可见,本发明的路由流转信息区别于快照,可以告诉维护人员程序的运行流程和具体的出错原因。
维护人员多半也是程序员,对于生产问题的修复,首先要看明白原有系统的程序出现该种错误的原因,在维护人员收到相应的错误投诉之后,如果没有这样的出错流转信息,只能通过检查出错账户,检查生产环境数据,重现这个错误来定位这个问题可能出现的原因。但往往效果非常差。对于复杂庞大的系统,定位问题往往需要几天甚至数周,有时有些问题可能永远也没有解。
本发明实施例的错误信息记录方法,通过在交易进行过程中,记录业务系统中运行的程序模块的路由信息,并将记录的路由信息缓存至内存,在所述业务系统出错时,从所述内存调取出错点之前的程序模块的路由信息,并将调取的路由信息保存至系统错误流水文件,能够以程序员最易接受的方式,通过保存有限流转信息,帮助维护人员快速、易读地定位出错原因,且同时解决了生产的空间占用问题。进一步,通过定义有限缓存的方式缓存距离出错点最近的一些路由信息,可以进一步减小系统压力。再进一步,通过错误筛选,不保存业务逻辑错误的路由信息,仅保存系统级错误的路由信息,也可以进一步减小系统压力。保留尽可能少、尽可能与系统级错误密切相关的程序路由流转信息能够使得维护人员更方便、快速的定位错误原因。
基于与图1所示的错误信息记录方法相同的发明构思,本申请实施例还提供了一种错误信息记录装置,如下面实施例所述。由于该错误信息记录装置解决问题的原理与错误信息记录方法相似,因此该错误信息记录装置的实施可以参见错误信息记录方法的实施,重复之处不再赘述。
图13是本发明一实施例的错误信息记录装置的结构示意图。如图13所示,本发明实施例的错误信息记录装置,可包括:路由信息缓存单元210和错误信息存储单元220,二者相互连接。
路由信息缓存单元210用于执行:在交易进行过程中,记录业务系统中运行的程序模块的路由信息,并将记录的路由信息缓存至内存。
错误信息存储单元220用于执行:在所述业务系统出错时,从所述内存调取出错点之前的程序模块的路由信息,并将调取的路由信息保存至系统错误流水文件,用于获取所述业务系统出错的原因。
在上述路由信息缓存单元210中,该业务系统例如可以是大型银行系统,该交易例如可以是取款、转账等交易。该业务系统可以包括许多程序模块,该些程序模块都是为了实现业务逻辑而开发的功能模块和系统模块。在交易开始后,与该交易相关的程序模块按一定的顺序流转运行。通过记录程序模块的路由信息可以知道交易是如何在复杂的程序中运行的。
一般可在程序模块的路由节点记录反映程序模块流转的路由信息。每个业务系统的用户请求在程序中流转的路径会根据请求的数据和用户的相关信息不同而发生变化,通过记录程序模块的路由信息,可以知道当前交易是如何在复杂的程序中运行的。其中,该路由信息可以在每个程序模块调用和返回点等关键的分支节点预先增加,以便在交易进行中记录所需的路由信息。无论程序多么复杂,代码有多长,对于每个具体的交易,实际走过的程序量会非常少,一次交易走过的程序模块的关键路由节点也是非常有限的。因此,与现有技术中庞大的跟踪信息相比,本发明需要缓存的路由信息较少。
在上述错误信息存储单元220中,业务系统出错可能存在多种原因,例如正常的业务逻辑错误、系统级错误等。对出错点起处起作用的代码总和,是一个简化了的超短程序,这个程序的总和是所有程序在这个场景下的一个切片。从所述内存调取出错点之前的程序模块的路由信息,例如程序模块的关键路由信息,能够反映程序切片信息,而且信息量相对较少。该系统错误流水文件可以是数据文件、数据表等。将调取的路由信息保存至系统错误流水文件,可以方便系统维护人员调阅。所以,通过将与错误紧密相关的路由信息保存起来,仅需记录较少的信息就可以让维护人员理解错误的原因。
本发明实施例中,通过记录并缓存交易过程中程序模块的路由信息,在系统出错时,在从缓存的路由信息中调取并保存出错点之前的路由信息,一方面,程序模块的路由信息能够有效反映交易过程中程序流转信息;另一方面,仅保存于出错交易相关的路由信息,保存数据少。而且,技术人员通常知道错误原因是由于流程路由错误引起的,但不知道流程错在哪里,本发明把反映错误流程的路由信息记录下来,遵循技术人员最易接受和理解的思路,能够从根本解决上为技术人员快速定位错误原因提供了解决方案。
图14是本发明一实施例中路由信息缓存单元的结构示意图。如图14所示,路由信息缓存单元210,可包括:有限缓存定义模块211和最近路由信息缓存模块212,二者相互连接。
有限缓存定义模块211用于执行:在所述内存中定义具有设定容量的缓存区。
最近路由信息缓存模块212用于执行:将距离所述出错点最近的设定条数的记录的路由信息缓存至所述缓存区。
在上述有限缓存定义模块211和最近路由信息缓存模块212中,通过定义一个有限的缓存容量,并时刻保持离出错点最近的路由信息,在交易出错时,就可以知道最近经过的路径。而且,通过定义有限缓存来设置流水上限能够避免系统容量不够、减少对系统的压力。
一些实施例中,最近路由信息缓存模块212可包括:有限循环队列缓存模块。有限循环队列缓存模块用于执行:利用所述缓存区中存储空间单元的有限循环队列缓存在所述交易进行过程中记录的路由信息,以实现在所述业务系统出错时缓存距离所述出错点最近的设定条数的记录的路由信息。
图15是本发明一实施例中有限循环队列缓存模块的结构示意图。如图15所示,所述有限循环队列缓存模块可包括:缓存状态判断模块2121和第一路由信息缓存模块2122,二者相互连接。
缓存状态判断模块2121用于执行:在所述缓存区收到路由信息缓存请求时,判断所述缓存区中是否有数据。
第一路由信息缓存模块2122用于执行:若否,将所述有限循环队列中的起始存储位置和结束存储位置均对应至所述有限循环队列中的第1存储空间单元,并将在所述交易进行过程中记录的路由信息存储至所述结束存储位置,其中,所述有限循环队列中的存储空间单元被预先顺序编号为第1存储空间单元至第m存储空间单元,m为大于或等于1的整数。
图16是本发明另一实施例中有限循环队列缓存模块的结构示意图。如图16所示,图15所示的有限循环队列缓存模块,还可包括:队列存储上限判断模块2123、起始结束位置判断模块2124及第二路由信息缓存模块2125,上述各模块顺序连接,队列存储上限判断模块2123与缓存状态判断模块2121连接。
队列存储上限判断模块2123用于执行:若所述缓存区中有数据,且所述有限循环队列的结束存储位置对应第n存储空间单元,将所述有限循环队列的结束存储位置更新对应至所述第n存储空间单元的后一存储空间单元,并判断更新后的结束存储位置是否超过所述有限循环队列的存储上限,其中,n为大于或等于1的整数。
起始结束位置判断模块2124用于执行:若否,判断更新后的结束存储位置是否等于所述有限循环队列的起始存储位置,若是,将更新后的结束存储位置再次更新对应至所述有限循环队列中的第1存储空间单元后,判断再次更新后的结束存储位置是否等于所述有限循环队列的起始存储位置。
第二路由信息缓存模块2125用于执行:若更新后的结束存储位置不等于所述有限循环队列的起始存储位置或再次更新后的结束存储位置不等于所述有限循环队列的起始存储位置,将在所述交易进行过程中记录的路由信息存储至当前的结束存储位置,若更新后的结束存储位置等于所述有限循环队列的起始存储位置或再次更新后的结束存储位置等于所述有限循环队列的起始存储位置,将所述有限循环队列的起始存储位置更新对应至其当前对应的所述有限循环队列中的存储空间单元的后一存储空间单元后,删除当前的结束存储位置中的数据,并将在所述交易进行过程中记录的路由信息存储至当前的结束存储位置。
图17是本发明另一实施例的错误信息记录装置的结构示意图。如图17所示,图13所示的错误信息记录装置,还可包括:错误类型过滤单元230,连接于路由信息缓存单元210和错误信息存储单元之间。
错误类型过滤单元230用于执行:在所述业务系统出错时,判断所述业务系统的错误类型是否属于业务逻辑错误,若是,不从所述内存调取记录的路由信息,且不缓存记录的路由信息。
在上述错误类型过滤单元230中,该错误类型可以包括业务逻辑错误、系统本身错误等。该业务逻辑错误一般可指由于用户作出了违反业务系统功能的操作而导致的错误,例如,用户在余额不足的情况下取款的报错。
本实施例中,当系统报错时,对于正常的业务逻辑错误,比如余额不足,可以不记录路由信息,因为客户可以根据错误提示推测出出错的原因,以此可以减少信息的存储量;而对于系统级的错误,就需要记录下路由信息,从而获知报错原因,而且,生产上系统级的错误是比较少,即使全部记录,也不会对系统产生压力。
图18是本发明又一实施例的错误信息记录装置。如图18所示,图13所示的错误信息记录装置,还可包括:路由信息增加单元240,与路由信息缓存单元210连接。
路由信息增加单元240用于执行:在所述交易开始之前,在所述业务系统中程序模块的分支、入口及出口预先增加路由信息。
一些实施例中,所述路由信息缓存单元210还可用于执行:记录的路由信息包括:标记序号、程序模块名称、关键栏位和值及流转类型。
本发明实施例的错误信息记录装置,通过在交易进行过程中,记录业务系统中运行的程序模块的路由信息,并将记录的路由信息缓存至内存,在所述业务系统出错时,从所述内存调取出错点之前的程序模块的路由信息,并将调取的路由信息保存至系统错误流水文件,能够以程序员最易接受的方式,通过保存有限流转信息,帮助维护人员快速、易读地定位出错原因,且同时解决了生产的空间占用问题。进一步,通过定义有限缓存的方式缓存距离出错点最近的一些路由信息,可以进一步减小系统压力。再进一步,通过错误筛选,不保存业务逻辑错误的路由信息,仅保存系统级错误的路由信息,也可以进一步减小系统压力。保留尽可能少、尽可能与系统级错误密切相关的程序路由流转信息能够使得维护人员更方便、快速的定位错误原因。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种错误信息记录方法,其特征在于,包括:
在交易进行过程中,记录业务系统中运行的程序模块的路由信息,并将记录的路由信息缓存至内存;
在所述业务系统出错时,从所述内存调取出错点之前的程序模块的路由信息,并将调取的路由信息保存至系统错误流水文件,用于获取所述业务系统出错的原因。
2.如权利要求1所述的错误信息记录方法,其特征在于,将记录的路由信息缓存至内存,包括:
在所述内存中定义具有设定容量的缓存区;
将距离所述出错点最近的设定条数的记录的路由信息缓存至所述缓存区。
3.如权利要求2所述的错误信息记录方法,其特征在于,将距离所述出错点最近的设定条数的记录的路由信息缓存至所述缓存区,包括:
利用所述缓存区中存储空间单元的有限循环队列缓存在所述交易进行过程中记录的路由信息,以实现在所述业务系统出错时缓存距离所述出错点最近的设定条数的记录的路由信息。
4.如权利要求3所述的错误信息记录方法,其特征在于,利用所述缓存区中存储空间单元的有限循环队列缓存在所述交易进行过程中记录的路由信息,包括:
在所述缓存区收到路由信息缓存请求时,判断所述缓存区中是否有数据;
若否,将所述有限循环队列中的起始存储位置和结束存储位置均对应至所述有限循环队列中的第1存储空间单元,并将在所述交易进行过程中记录的路由信息存储至所述结束存储位置,其中,所述有限循环队列中的存储空间单元被预先顺序编号为第1存储空间单元至第m存储空间单元,m为大于或等于1的整数。
5.如权利要求4所述的错误信息记录方法,其特征在于,利用所述缓存区中存储空间单元的有限循环队列缓存在所述交易进行过程中记录的路由信息,还包括:
若所述缓存区中有数据,且所述有限循环队列的结束存储位置对应第n存储空间单元,将所述有限循环队列的结束存储位置更新对应至所述第n存储空间单元的后一存储空间单元,并判断更新后的结束存储位置是否超过所述有限循环队列的存储上限,其中,n为大于或等于1的整数;
若否,判断更新后的结束存储位置是否等于所述有限循环队列的起始存储位置,若是,将更新后的结束存储位置再次更新对应至所述有限循环队列中的第1存储空间单元后,判断再次更新后的结束存储位置是否等于所述有限循环队列的起始存储位置;
若更新后的结束存储位置不等于所述有限循环队列的起始存储位置或再次更新后的结束存储位置不等于所述有限循环队列的起始存储位置,将在所述交易进行过程中记录的路由信息存储至当前的结束存储位置,若更新后的结束存储位置等于所述有限循环队列的起始存储位置或再次更新后的结束存储位置等于所述有限循环队列的起始存储位置,将所述有限循环队列的起始存储位置更新对应至其当前对应的所述有限循环队列中的存储空间单元的后一存储空间单元后,删除当前的结束存储位置中的数据,并将在所述交易进行过程中记录的路由信息存储至当前的结束存储位置。
6.如权利要求1所述的错误信息记录方法,其特征在于,从所述内存调取出错点之前的程序模块的路由信息之前,还包括:
在所述业务系统出错时,判断所述业务系统的错误类型是否属于业务逻辑错误,若是,不从所述内存调取记录的路由信息,且不缓存记录的路由信息。
7.如权利要求1所述的错误信息记录方法,其特征在于,记录业务系统中程序模块的路由信息之前,还包括:
在所述交易开始之前,在所述业务系统中程序模块的分支、入口及出口预先增加路由信息。
8.如权利要求1所述的错误信息记录方法,其特征在于,记录的路由信息包括:标记序号、程序模块名称、关键栏位和值及流转类型。
9.一种错误信息记录装置,其特征在于,包括:
路由信息缓存单元,用于执行:在交易进行过程中,记录业务系统中运行的程序模块的路由信息,并将记录的路由信息缓存至内存;
错误信息存储单元,用于执行:在所述业务系统出错时,从所述内存调取出错点之前的程序模块的路由信息,并将调取的路由信息保存至系统错误流水文件,用于获取所述业务系统出错的原因。
10.如权利要求9所述的错误信息记录装置,其特征在于,所述路由信息缓存单元,包括:
有限缓存定义模块,用于执行:在所述内存中定义具有设定容量的缓存区;
最近路由信息缓存模块,用于执行:将距离所述出错点最近的设定条数的记录的路由信息缓存至所述缓存区。
11.如权利要求10所述的错误信息记录装置,其特征在于,所述最近路由信息缓存模块,包括:
有限循环队列缓存模块,用于执行:利用所述缓存区中存储空间单元的有限循环队列缓存在所述交易进行过程中记录的路由信息,以实现在所述业务系统出错时缓存距离所述出错点最近的设定条数的记录的路由信息。
12.如权利要求11所述的错误信息记录装置,其特征在于,所述有限循环队列缓存模块,包括:
缓存状态判断模块,用于执行:在所述缓存区收到路由信息缓存请求时,判断所述缓存区中是否有数据;
第一路由信息缓存模块,用于执行:若否,将所述有限循环队列中的起始存储位置和结束存储位置均对应至所述有限循环队列中的第1存储空间单元,并将在所述交易进行过程中记录的路由信息存储至所述结束存储位置,其中,所述有限循环队列中的存储空间单元被预先顺序编号为第1存储空间单元至第m存储空间单元,m为大于或等于1的整数。
13.如权利要求12所述的错误信息记录装置,其特征在于,所述有限循环队列缓存模块,还包括:
队列存储上限判断模块,用于执行:若所述缓存区中有数据,且所述有限循环队列的结束存储位置对应第n存储空间单元,将所述有限循环队列的结束存储位置更新对应至所述第n存储空间单元的后一存储空间单元,并判断更新后的结束存储位置是否超过所述有限循环队列的存储上限,其中,n为大于或等于1的整数;
起始结束位置判断模块,用于执行:若否,判断更新后的结束存储位置是否等于所述有限循环队列的起始存储位置,若是,将更新后的结束存储位置再次更新对应至所述有限循环队列中的第1存储空间单元后,判断再次更新后的结束存储位置是否等于所述有限循环队列的起始存储位置;
第二路由信息缓存模块,用于执行:若更新后的结束存储位置不等于所述有限循环队列的起始存储位置或再次更新后的结束存储位置不等于所述有限循环队列的起始存储位置,将在所述交易进行过程中记录的路由信息存储至当前的结束存储位置,若更新后的结束存储位置等于所述有限循环队列的起始存储位置或再次更新后的结束存储位置等于所述有限循环队列的起始存储位置,将所述有限循环队列的起始存储位置更新对应至其当前对应的所述有限循环队列中的存储空间单元的后一存储空间单元后,删除当前的结束存储位置中的数据,并将在所述交易进行过程中记录的路由信息存储至当前的结束存储位置。
14.如权利要求9所述的错误信息记录装置,其特征在于,还包括:
错误类型过滤单元,用于执行:在所述业务系统出错时,判断所述业务系统的错误类型是否属于业务逻辑错误,若是,不从所述内存调取记录的路由信息,且不缓存记录的路由信息。
15.如权利要求9所述的错误信息记录装置,其特征在于,还包括:
路由信息增加单元,用于执行:在所述交易开始之前,在所述业务系统中程序模块的分支、入口及出口预先增加路由信息。
16.如权利要求9所述的错误信息记录装置,其特征在于,所述路由信息缓存单元,还用于执行:记录的路由信息包括:标记序号、程序模块名称、关键栏位和值及流转类型。
CN201611128024.0A 2016-12-09 2016-12-09 错误信息记录方法及装置 Active CN106708699B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611128024.0A CN106708699B (zh) 2016-12-09 2016-12-09 错误信息记录方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611128024.0A CN106708699B (zh) 2016-12-09 2016-12-09 错误信息记录方法及装置

Publications (2)

Publication Number Publication Date
CN106708699A true CN106708699A (zh) 2017-05-24
CN106708699B CN106708699B (zh) 2020-01-24

Family

ID=58936543

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611128024.0A Active CN106708699B (zh) 2016-12-09 2016-12-09 错误信息记录方法及装置

Country Status (1)

Country Link
CN (1) CN106708699B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144755A (zh) * 2017-06-19 2019-01-04 阿里巴巴集团控股有限公司 网页故障处理方法及设备
CN109726048A (zh) * 2018-12-13 2019-05-07 中国银联股份有限公司 一种交易系统中数据恢复方法及装置
CN111130873A (zh) * 2019-12-20 2020-05-08 北京格林威尔科技发展有限公司 一种告警存储方法、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1886942A (zh) * 2003-12-23 2006-12-27 艾利森电话股份有限公司 用于在ad hoc网中路由业务的方法和系统
CN101174899A (zh) * 2007-11-26 2008-05-07 中兴通讯股份有限公司 用于ason网络中的业务保护与恢复的自动测试方法
KR20080072207A (ko) * 2007-02-01 2008-08-06 삼성전자주식회사 테스트 스펙 자동생성장치 및 그 자동생성방법과자동생성방법을 저장하는 기록매체
CN104301234A (zh) * 2013-07-16 2015-01-21 腾讯科技(深圳)有限公司 一种路由方法和装置
CN105791461A (zh) * 2016-03-09 2016-07-20 浪潮通信信息系统有限公司 一种基于错误域名流量的经营方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1886942A (zh) * 2003-12-23 2006-12-27 艾利森电话股份有限公司 用于在ad hoc网中路由业务的方法和系统
KR20080072207A (ko) * 2007-02-01 2008-08-06 삼성전자주식회사 테스트 스펙 자동생성장치 및 그 자동생성방법과자동생성방법을 저장하는 기록매체
CN101174899A (zh) * 2007-11-26 2008-05-07 中兴通讯股份有限公司 用于ason网络中的业务保护与恢复的自动测试方法
CN104301234A (zh) * 2013-07-16 2015-01-21 腾讯科技(深圳)有限公司 一种路由方法和装置
CN105791461A (zh) * 2016-03-09 2016-07-20 浪潮通信信息系统有限公司 一种基于错误域名流量的经营方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144755A (zh) * 2017-06-19 2019-01-04 阿里巴巴集团控股有限公司 网页故障处理方法及设备
CN109726048A (zh) * 2018-12-13 2019-05-07 中国银联股份有限公司 一种交易系统中数据恢复方法及装置
CN111130873A (zh) * 2019-12-20 2020-05-08 北京格林威尔科技发展有限公司 一种告警存储方法、电子设备和存储介质

Also Published As

Publication number Publication date
CN106708699B (zh) 2020-01-24

Similar Documents

Publication Publication Date Title
CN108667725A (zh) 一种基于多种接入及边缘计算的工业软网关以及实现方法
Van Der Aalst Process mining
CN103970902B (zh) 一种大量数据情况下的可靠即时检索方法及系统
CN108205486A (zh) 一种基于机器学习的智能分布式调用链跟踪方法
US20190026290A1 (en) Optimization method, evaluation method, and processing method and apparatuses for data migration
CN107273556A (zh) 区块链数据索引方法和设备
DE112010004187T5 (de) Verfahren und System zum Verarbeiten von Netzwerkereignissen
CN101876934B (zh) 一种用于对输入数据进行采样的方法和系统
CN106708699A (zh) 错误信息记录方法及装置
CN104156400B (zh) 一种海量网络流数据的存储方法及装置
CN110019133A (zh) 数据在线迁移方法和装置
CN104462606B (zh) 一种基于日志数据确定诊断处理措施的方法
CN109614262A (zh) 业务校验方法、装置及计算机可读存储介质
CN105912479A (zh) 一种并发数据的缓存方法及结构
CN105260374B (zh) 异步流水线式的图查询方法及系统
CN111083662A (zh) 基于云计算的水质监测物联网系统
CN104461862B (zh) 数据处理系统以及线程崩溃后的资源恢复方法和装置
CN106648994A (zh) 一种备份操作日志的方法,设备和系统
CN102982037B (zh) 检测数据库节点健康状况的方法及装置
CN106897338A (zh) 一种针对数据库的数据修改请求处理方法及装置
CN104573135B (zh) 基于反射内存网与中间件技术的实时数据采集方法及装置
CN111881105A (zh) 业务数据的标注模型及其模型训练方法
CN206021244U (zh) 一种分布式计算机集群下的数据采集系统
US10089350B2 (en) Proactive query migration to prevent failures
CN106909977A (zh) 航空电子票务系统

Legal Events

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