CN105183620A - 一种对业务运行状态进行跟踪的方法及*** - Google Patents
一种对业务运行状态进行跟踪的方法及*** Download PDFInfo
- Publication number
- CN105183620A CN105183620A CN201510484963.8A CN201510484963A CN105183620A CN 105183620 A CN105183620 A CN 105183620A CN 201510484963 A CN201510484963 A CN 201510484963A CN 105183620 A CN105183620 A CN 105183620A
- Authority
- CN
- China
- Prior art keywords
- component
- calls
- call
- invoked procedure
- record
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种对业务运行状态进行跟踪的方法及***,所述方法包括:在特定业务的各构件相互调用位置处设置一构件调用函数;在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录;根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。通过本发明提供的方法,在各构件调用位置处设置一构件调用函数,能够获取到各构件的调用记录,通过对调用记录的分析,可以判断调用异常情况,也能够跟踪业务各构件调用运行轨迹。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种对业务运行状态进行跟踪的方法及***。
背景技术
电信运营商的业务支撑***中,由于业务繁多且流程复杂,并且存在多***之间的交互。想要了解每一个业务的各个运行环节,或者业务处理过程出现故障时希望能快速定位故障的环节,都会因为***的复杂度而面临巨大的挑战。
传统的业务***维护过程中,有处理失败的业务,需要前台营业员或者其他业务人员提交故障单,故障单提交后通过人工分类再分发给对应的维护人员手里,维护人员再根据故障描述细节,在服务器上搜索当时的处理日志,通过日志定位出错环节,如果日志信息不够,还需要重现故障业务处理过程,以便分析原因;确定环节后再根据具体情况或修复bug,或修正数据;或撤销交易等手段做故障处理;处理完成后关闭故障单。
通常在人工定位故障的环节会花费较长时间,因为业务流程可能会拉的很长,或者跨越多个***,或者业务日志提供的信息不足以确认问题原因。
为了提高故障处理效率,需要对***的运行信息的记录进行优化,但传统的业务日志输出都依赖开发人员的自己的日志输出习惯,经验丰富的开发者的日志更容易定位问题,但经验缺乏者可能相反,这导致业务日志的质量不容易控制。
发明内容
本发明所要解决的技术问题是提供一种对业务运行状态进行跟踪的方法及***,能够对业务运行异常进行精确定位,还能获得业务各构件之间调用的运行轨迹。
本发明解决上述技术问题的技术方案如下:
一方面,本发明提供了一种对业务运行状态进行跟踪的方法,所述方法包括:
S1、在特定业务的各构件相互调用位置处设置一构件调用函数;
S2、在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录;
S3、根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。
另一方面,本发明提供了一种对业务运行状态进行跟踪的***,所述***包括:
构件调用函数设置模块,用于在特定业务的各构件相互调用位置处设置一构件调用函数;
调用记录获取模块,用于在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录;
运行轨迹生成模块,用于根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。
本发明提供的一种对业务运行状态进行跟踪的方法及***,通过在业务的各构件相互调用位置处设置一构件调用函数,在构件进行调用的过程中,能够获得调用过程的调用记录,然后对调用记录进行异常检测,输出异常信息,还能够根据业务各构件之间调用的调用记录,得到业务各构件调用的运行轨迹,能够跟踪业务运行状态,对业务的异常快速准确定位。
附图说明
图1为现有技术业务构件之间调用关系拓扑图;
图2为本发明实施例一的一种对业务运行状态进行跟踪的方法流程图;
图3为本发明实施例一业务构件调用过程中构件调用函数处理流程图;
图4为本发明实施例一中业务构件调用关系的部分处理流程图;
图5为本发明实施例二的一种对业务运行状态进行跟踪的***图示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例一、一种对业务运行状态进行跟踪的方法。下面结合图1-图4对本实施例提供的方法进行详细说明。
参见图2,S1、在特定业务的各构件相互调用位置处设置一构件调用函数。
具体的,参见图1,一个特定业务通常包含若干个业务构件(BP),每一个业务构件实际上就是一个函数,单个业务构件完成单一的数据处理或者条件检查,比如,在电信***中,单个业务构件用于用户状态的检查或当前话费余额的获取等。业务构件之间通过相互调用形成树状结构成为一个完整的业务过程,比如用户缴费、资费套餐变更等。现有技术中一个构件调用其它的构件是直接的函数调用,难以在业务的各构件的调用之间加入额外的处理代码,因此,首先需要对业务中的各构件调用的方法进行调整,本实施例在业务的各构件相互调用位置处设置一构件调用函数,比如,定义如下的函数和宏:
utype*__CALLBP(TUtypeFuncPtrbpfunc,constchar*bpname,constutype*uInParam,TCtrlInfo*ctrlInfo);
#defineCALLBP(bpname,uInParam,ctrlInfo)__CALLBP(bpname,#bpname,uInParam,ctrlInfo)
对现有的构件代码进行改造,所有调用构件的地方改为使用宏CALLBP(即在构件调用处设置的构件调用函数)来调用,这个宏的实际处理过程在函数_CALLBP中实现,通过上面的代码片段可以看到,__CALLBP函数可以获得构件调用过程中的一些参数,比如,构件名称,以及全部输入和输出参数,实际的构件调用在该函数中完成。另外,对于业务异常的处理,构件服务框架的处理机制是使用C++的Exception机制,因此,如果要获取构件的调用异常,还应该在函数中加入异常处理。
S2、在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录。
具体的,在业务各构件调用位置处设置一构件调用函数,参见图3,在当前构件调用其它构件的过程中,可以利用设置的构件调用函数获取当前构件标识(比如当前构件名称)、当前构件所调用的构件标识(比如,构件名称),以及本次调用的输入参数和输出参数,另外,还能获取本次调用的服务标识(比如,服务名称,即本次调用所完成的功能)和本次调用服务入口产生的唯一流水号(即本次调用的服务入口标识)。根据构件调用函数获取的这些参数,能够生成本次调用过程中的调用记录。
S3、根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。
具体的,上述步骤S2在业务构件相互调用的过程中,构件调用函数获取调用过程中的调用记录,本步骤对获得的调用记录进行检测分析,比如,进行异常检测,检测本次调用过程是否出现异常,若出现异常,则获取异常信息并保存。当本次调用过程出现异常时,本次调用过程中断,因此本次调用的服务标识或者本次调用服务入口产生的唯一流水号能够作为构件调用过程中的异常位置标识。通过该异常位置标识,能够对业务构件调用过程中的故障进行准确定位,以便对故障及时的处理。若没有检测到调用过程中的异常状况,则保存输出参数。
另外,在业务的各构件相互调用的过程中,引入了链表结构对调用过程中的上下级构件进行存储,能够获取各构件的调用关系。参见图4,在整个业务的各构件调用的过程中,当开始调用一个构件时,则在链表尾上添加该构件标识(比如,该构件名称);当调用返回时,删除该构件标识,当业务的各构件相互调用完毕后,链表结构按顺序保存了所有已调用过的构件标识(构件名称)。根据链表结构中保存的各构件标识的顺序,可以生成该业务各构件调用的运行轨迹,而不是用流程图的形式来表示,因此可以清晰的看出各构件的调用关系。
实施例二、一种对业务运行状态进行跟踪的***。下面结合图5对本实施例提供的***进行详细说明。
参见图5,本实施例提供的***包括构件调用函数设置模块501、调用记录获取模块502、异常检测模块503、异常信息保存模块504、异常位置标识获得模块505和运行轨迹生成模块506。
其中,构件调用函数设置模块501主要用于在特定业务的各构件相互调用位置处设置一构件调用函数。
具体的,本实施例对现有构件调用的方法进行调整,其中,构件调用函数设置模块501在业务的各构件相互调用位置处设置一构件调用函数,比如,定义如下的函数和宏:
utype*__CALLBP(TUtypeFuncPtrbpfunc,constchar*bpname,constutype*uInParam,TCtrlInfo*ctrlInfo);
#defineCALLBP(bpname,uInParam,ctrlInfo)__CALLBP(bpname,#bpname,uInParam,ctrlInfo)
构件调用函数设置模块501对现有的构件代码进行改造,所有调用构件的地方改为使用宏CALLBP来调用,这个宏的实际处理过程在函数_CALLBP中实现,通过上面的代码片段可以看到,__CALLBP函数可以获得构件调用过程中的一些参数,比如,构件名称,以及全部输入和输出参数,实际的构件调用在该函数中完成。另外,对于业务异常的处理,构件服务框架的处理机制是使用C++的Exception机制,因此,如果要获取构件的调用异常,还应该在函数中加入异常处理。
调用记录获取模块502主要用于在当前构件调用其它构件时,利用设置的构件调用函数获取调用过程中的调用记录。
具体的,构件调用函数设置模块501在业务各构件调用位置处设置一构件调用函数,因而在当前构件调用其它构件的过程中,调用记录获取模块502可以利用设置的构件调用函数获取当前构件标识(比如当前构件名称)、当前构件所调用的构件标识(比如,构件名称),以及本次调用的输入参数和输出参数,另外,还能获取本次调用的服务标识(比如,服务名称,即本次调用所完成的功能)和本次调用服务入口产生的唯一流水号(即本次调用的服务入口标识)。调用记录获取模块502根据构件调用函数获取的这些参数,能够生成本次调用过程中的调用记录。
异常检测模块503主要用于对调用记录获取模块502获取的调用记录进行异常检测,判断该次调用过程是否出现异常。
异常信息保存模块504主要用于当判断出本次构件调用过程出现异常时,获取并保存异常信息。
异常位置标识获取模块505主要用于当本次调用过程出现异常时,本次调用过程中断,则将本次调用的服务标识或者本次调用入口产生的唯一流水号作为该特定业务的异常位置标识。
具体的,调用记录获取模块502在业务构件相互调用的过程中,利用构件调用函数获取调用过程中的调用记录,异常检测模块503对获得的调用记录进行检测分析,比如,进行异常检测,检测本次调用过程是否出现异常,若出现异常,则异常信息保存模块504获取并保存异常信息。当本次调用过程出现异常时,本次调用过程中断,因此异常位置标识获取模块505将本次调用的服务标识或者本次调用服务入口产生的唯一流水号作为构件调用过程中的异常位置标识。通过该异常位置标识,能够对业务构件调用过程中的故障进行准确定位,以便对故障及时的处理。若没有检测到调用过程中的异常状况,则保存输出参数。
运行轨迹生成模块506主要用于根据特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。
具体的,在业务的各构件相互调用的过程中,引入了链表结构对调用过程中的上下级构件进行存储,能够获取各构件的调用关系。具体的实现过程:在整个业务各构件调用的过程中,当开始调用一个构件时,则在链表尾上添加该构件标识(比如,该构件名称);当调用返回时,删除该构件标识,当业务的各构件相互调用完毕后,链表结构按顺序保存了所有已调用过的构件标识(构件名称)。运行轨迹生成模块506根据链表结构中保存的各构件标识的顺序,可以生成该业务各构件调用的运行轨迹,而不是用流程图的形式来表示,因此可以清晰的看出各构件的调用关系。
本发明提供的一种对业务运行状态进行跟踪的方法及***,通过在业务的各构件相互调用位置处设置一构件调用函数,在构件进行调用的过程中,能够获得调用过程的调用记录,然后对调用记录进行异常检测,输出异常信息,还能够准确快速得到异常位置标识,进而能够对业务故障进行准确的定位,以便及时对业务故障进行处理;另外,本发明还引入了链表结构对构件的调用关系进行存储,得到业务各构件调用的运行轨迹,能够实时的跟踪业务运行状态,能够更方便得了解业务的每一个运行环节。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种对业务运行状态进行跟踪的方法,所述业务包括多个业务构件,其特征在于,所述方法包括:
S1、在特定业务的各构件相互调用位置处设置一构件调用函数;
S2、在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录;
S3、根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。
2.如权利要求1所述的一种对业务运行状态进行跟踪的方法,其特征在于,所述步骤S2具体包括:
在当前构件调用其它构件时,利用所述设置的构件调用函数获取当前构件标识、当前构件所调用的构件标识、以及本次调用的输入参数和输出参数,以生成本次调用过程中的调用记录。
3.如权利要求2所述的一种对业务运行状态进行跟踪的方法,其特征在于,还包括:
在当前构件调用其它构件的过程中,获取本次调用的服务标识以及本次调用入口产生的唯一流水号。
4.如权利要求3所述的一种对业务运行状态进行跟踪的方法,其特征在于,所述步骤S2还包括:
对所述调用记录进行异常检测,判断该次构件调用过程是否出现异常;
当判断出本次构件调用过程出现异常时,获取并保存异常信息。
5.如权利要求4所述的一种对业务运行状态进行跟踪的方法,其特征在于,当本次调用过程出现异常时,本次调用过程中断,则将本次调用的服务标识或者本次调用入口产生的唯一流水号作为所述特定业务的异常位置标识。
6.如权利要求1所述的一种对业务运行状态进行跟踪的方法,其特征在于,所述步骤S3中根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹具体包括:
在所述特定业务的各构件相互调用的过程中,利用链表结构来存储调用过程中的上下级构件标识,当开始调用一个构件时,在链表尾上添加本构件标识,当调用返回时,删除本构件标识,当各构件相互调用完毕后,链表结构中顺序保存了所有调用过的构件标识;
根据链表结构中保存的各构件标识的顺序,生成该特定业务各构件调用的运行轨迹。
7.一种对业务运行状态进行跟踪的***,其特征在于,所述***包括:
构件调用函数设置模块,用于在特定业务的各构件相互调用位置处设置一构件调用函数;
调用记录获取模块,用于在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录;
运行轨迹生成模块,用于根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹。
8.如权利要求7所述的一种对业务运行状态进行跟踪的***,其特征在于,所述调用记录获取模块,用于在当前构件调用其它构件时,利用所述设置的构件调用函数获取调用过程中的调用记录具体包括:
在当前构件调用其它构件时,利用所述设置的构件调用函数获取当前构件标识、当前构件所调用的构件标识、以及本次调用的输入参数和输出参数,以生成本次调用过程中的调用记录;
以及获取本次调用的服务标识和本次调用入口产生的唯一流水号。
9.如权利要求8所述的一种对业务运行状态进行跟踪的***,其特征在于,所述***还包括:
异常检测模块,用于对所述调用记录进行异常检测,判断该次调用过程是否出现异常;
异常信息保存模块,用于当判断出本次构件调用过程出现异常时,获取并保存异常信息;
异常位置标识获得模块,用于当本次调用过程出现异常时,本次调用过程中断,则将本次调用的服务标识或者本次调用入口产生的唯一流水号作为所述特定业务的异常位置标识。
10.如权利要求7所述的一种对业务运行状态进行跟踪的***,其特征在于,所述运行轨迹生成模块,用于根据所述特定业务的各构件相互调用过程中的调用记录,生成该特定业务各构件调用的运行轨迹具体包括:
在所述特定业务的各构件相互调用的过程中,利用链表结构来存储调用过程中的上下级构件标识,当开始调用一个构件时,在链表尾上添加本构件标识,当调用返回时,删除本构件标识,当各构件相互调用完毕后,链表结构中顺序保存了所有调用过的构件标识;
根据链表结构中保存的各构件标识的顺序,生成该特定业务各构件调用的运行轨迹。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510484963.8A CN105183620A (zh) | 2015-08-07 | 2015-08-07 | 一种对业务运行状态进行跟踪的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510484963.8A CN105183620A (zh) | 2015-08-07 | 2015-08-07 | 一种对业务运行状态进行跟踪的方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105183620A true CN105183620A (zh) | 2015-12-23 |
Family
ID=54905712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510484963.8A Pending CN105183620A (zh) | 2015-08-07 | 2015-08-07 | 一种对业务运行状态进行跟踪的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105183620A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105591821A (zh) * | 2016-01-06 | 2016-05-18 | 北京京东尚科信息技术有限公司 | 监控***和业务*** |
CN107609871A (zh) * | 2017-09-07 | 2018-01-19 | 携程旅游网络技术(上海)有限公司 | 支付轨迹重现方法、装置、***、电子设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060683A (zh) * | 2006-04-20 | 2007-10-24 | 大唐移动通信设备有限公司 | 通信***中告警信息的生成方法及装置 |
US20090164978A1 (en) * | 2007-12-20 | 2009-06-25 | International Business Machines Corporation | Method and system for providing post-mortem service level debugging |
CN101620567A (zh) * | 2009-08-13 | 2010-01-06 | 恒生电子股份有限公司 | 一种错误定位辅助方法及装置 |
CN101848477A (zh) * | 2009-03-24 | 2010-09-29 | 亚信科技(中国)有限公司 | 一种故障诊断方法及*** |
US8972791B2 (en) * | 2012-01-31 | 2015-03-03 | Ncr Corporation | Managing code-tracing data |
-
2015
- 2015-08-07 CN CN201510484963.8A patent/CN105183620A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060683A (zh) * | 2006-04-20 | 2007-10-24 | 大唐移动通信设备有限公司 | 通信***中告警信息的生成方法及装置 |
US20090164978A1 (en) * | 2007-12-20 | 2009-06-25 | International Business Machines Corporation | Method and system for providing post-mortem service level debugging |
CN101848477A (zh) * | 2009-03-24 | 2010-09-29 | 亚信科技(中国)有限公司 | 一种故障诊断方法及*** |
CN101620567A (zh) * | 2009-08-13 | 2010-01-06 | 恒生电子股份有限公司 | 一种错误定位辅助方法及装置 |
US8972791B2 (en) * | 2012-01-31 | 2015-03-03 | Ncr Corporation | Managing code-tracing data |
Non-Patent Citations (3)
Title |
---|
刘国成,张丹彤等: "《C语言程序设计》", 31 August 2011 * |
杨丽波: "《C语言程序设计教程》", 28 February 2014 * |
邓俊辉: "《数据结构 C++语言版》", 30 September 2013 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105591821A (zh) * | 2016-01-06 | 2016-05-18 | 北京京东尚科信息技术有限公司 | 监控***和业务*** |
CN105591821B (zh) * | 2016-01-06 | 2020-06-30 | 北京京东尚科信息技术有限公司 | 监控***和业务*** |
CN107609871A (zh) * | 2017-09-07 | 2018-01-19 | 携程旅游网络技术(上海)有限公司 | 支付轨迹重现方法、装置、***、电子设备、存储介质 |
CN107609871B (zh) * | 2017-09-07 | 2021-05-28 | 携程旅游网络技术(上海)有限公司 | 支付轨迹重现方法、装置、***、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105721193B (zh) | 一种***信息监控的方法和设备 | |
CN102236672B (zh) | 一种数据导入方法及装置 | |
US20130007772A1 (en) | Method and system for automated system migration | |
CN111061696B (zh) | 一种交易报文日志的解析方法及装置 | |
CN111667368B (zh) | 反洗钱监测***及方法 | |
CN104077217A (zh) | 代码文件的编译发布方法及*** | |
CN103425585B (zh) | 一种osgi集成测试方法 | |
CN110471949A (zh) | 数据血缘分析方法、装置、***、服务器及存储介质 | |
CN104424018A (zh) | 分布式计算事务处理方法及装置 | |
CN106612204B (zh) | 业务校验方法及装置 | |
CN104317921A (zh) | 一种跨数据库数据同步***及方法 | |
CN105701009B (zh) | 移动终端中的安全性应用测试方法 | |
CN105630667A (zh) | 一种测试方法和终端设备 | |
WO2019056770A1 (zh) | 基于关联交易的数据处理方法、装置和计算机设备 | |
CN105279196A (zh) | 测试脚本的生成方法和装置 | |
CN105260168B (zh) | 日志输出方法和装置 | |
CN105183620A (zh) | 一种对业务运行状态进行跟踪的方法及*** | |
CN103679355B (zh) | 控制业务流程的方法和装置 | |
US20130040627A1 (en) | Data Cut-over Method and Apparatus | |
US20150046393A1 (en) | Method and device for executing an enterprise process | |
CN114092246A (zh) | 金融交易链路的问题定位方法及装置 | |
CN110297748A (zh) | 一种定位调用出错的方法、装置和计算机可读存储介质 | |
CN112087320A (zh) | 一种异常定位方法、装置、电子设备和可读存储介质 | |
CN109508204B (zh) | 一种前端代码质量检测方法及装置 | |
CN109460529A (zh) | 一种基于iframe的前端微服务模块通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151223 |
|
WD01 | Invention patent application deemed withdrawn after publication |