一种日志记录方法、装置及系统的制作方法
【技术领域】
[0001]本申请涉及数据处理技术领域,具体涉及一种日志记录方法和装置。本申请同时涉及一种业务处理的请求方法和装置,以及一种日志记录系统。
【背景技术】
[0002]企业级应用是指为商业组织、大型企业而创建并部署的解决方案及应用。随着互联网技术的不断发展,当代的企业级应用不再是一个个相互独立的系统。在企业中,一般都会部署多个彼此连接的、相互通过不同集成层次进行交互的企业级应用,同时这些应用又都有可能与其它企业的相关应用连接,从而构成一个结构复杂的、跨越Intranet和Internet的分布式企业应用群集。在这种系统架构下,要实现一个系统中的某个功能,可能需要多个系统相互配合才能完成。
[0003]在分布式企业应用群集中,各个系统产生的日志信息通常存储在各自的前置服务器中。当一个系统接收到业务处理请求时,首先生成对应本次请求的事务处理标识符,通过在请求处理过程中将事务处理标识符传递至数据库,实现系统内部从中间件到数据库整个处理过程的一体化监控,建立了前置服务器和数据库具体处理逻辑的关联关系。当该系统需要调用其它系统以完成业务处理请求时,其它系统将生成新的事务处理标识符。可见,当一个业务处理请求在不同系统中逐级进行处理时,对于该请求而言,各个系统生成的事务处理标识符是不一致的,即:同一事务处理在不同系统中产生的日志信息之间不具有关联性。
[0004]由于分布式企业应用群集的各个系统之间的耦合度较高,当一个系统出现的问题时,既可能是该系统本身的原因,还可能是其它关联系统相互作用的结果。要判定哪一个系统是问题产生的根源,不仅需要从显式发生问题的系统的前置服务器获取与事务处理相关的日志信息,还需要登录该系统所调用的其它系统的前置服务器中,获取与该事务处理相关的其它相关系统的日志信息,将这些日志信息综合起来进行问题分析,以确定问题出现的根源。
[0005]例如,A系统的一个功能在运行过程中出现运行缓慢的问题,假如A系统中该功能的实现需要调用B系统的b接口和C系统的c接口,而C系统的c接口的实现还需要调用D系统的d接口,那么当A系统出现运行缓慢的情况时,很可能是由于B、C或D三个系统提供的接口引起的。要分析上述不同系统间调用过程中出现的问题,需要维护人员将A、B、C、D四个系统的日志信息分别读取出来,然后再对它们进行关联分析。特别的,如果这些系统还是集群部署的,则要获取一个事务处理相关的所有日志,就需要从B、C、D三个系统的所有前置服务中找到相关的日志信息。
[0006]然而,由于同一事务处理在不同系统中产生的日志信息之间不具有关联性,使得很难获取同一事务处理相关的各系统日志信息,更加无法定位到问题产生的根源。因此,现有技术存在同一事务处理在不同系统中产生的日志信息之间不具有关联性的问题。
【发明内容】
[0007]本申请提供一种日志记录方法和装置,以解决现有技术存在同一事务处理在不同系统中产生的日志信息之间不具有关联性的问题。本申请另外提供一种业务处理的请求方法和装置,以及一种日志记录系统。
[0008]本申请提供一种日志记录方法,包括:
[0009]接收调用方发送的对应特定业务的业务处理请求;
[0010]将所述业务处理请求中包括的所述调用方预先生成的程序执行标识符,作为与所述特定业务的本次执行相对应的事务处理标识符;
[0011]执行所述特定业务,并对应所述特定业务的本次执行产生由所述事务处理标识符标识的业务处理日志信息。
[0012]可选的,所述执行所述特定业务包括:
[0013]在执行所述特定业务包括的子程序之前,为所述子程序的执行生成对应所述子程序的程序执行标识符;
[0014]执行所述子程序,并对应所述子程序的执行产生子程序起始执行的日志信息和子程序终止执行的日志信息;所述子程序起始执行的日志信息和子程序终止执行的日志信息由所述事务处理标识符和对应所述子程序的所述程序执行标识符共同标识。
[0015]可选的,所述子程序的执行需要调用下一级特定业务;
[0016]相应的,所述执行所述子程序包括:
[0017]向执行所述下一级特定业务的系统发送对应所述下一级特定业务的业务处理请求;所述下一级业务处理请求包括对应所述子程序的所述程序执行标识符。
[0018]可选的,所述特定业务包括WebService应用程序。
[0019]可选的,所述业务处理请求包括的所述程序执行标识符存储在SOAP头文件中。
[0020]可选的,在所述接收调用方发送的对应特定业务的业务处理请求之后,还包括:
[0021]验证所述调用方是否有权请求所述特定业务。
[0022]可选的,在所述接收调用方发送的对应特定业务的业务处理请求之后,还包括:
[0023]从所述业务处理请求中获取所述程序执行标识符,并将其绑定到执行所述特定业务的线程。
[0024]可选的,若所述业务处理请求中既未包括所述调用方的程序执行标识符,也未包括调用方事务处理标识符,则在所述接收调用方发送的对应特定业务的业务处理请求之后,还包括:
[0025]为所述特定业务的执行生成所述事务处理标识符。
[0026]可选的,所述事务处理标识符根据所述调用方的IP地址、所述事务处理标识符的生成时间以及所述业务处理请求的标识符的至少一者生成。
[0027]可选的,所述程序执行标识符根据所述程序执行标识符对应的程序的程序名和所述程序执行标识符的生成时间生成。
[0028]相应的,本申请还提供一种日志记录装置,包括:
[0029]接收单元,用于接收调用方发送的对应特定业务的业务处理请求;
[0030]设置单元,用于将所述业务处理请求中包括的所述调用方预先生成的程序执行标识符,作为与所述特定业务的本次执行相对应的事务处理标识符;
[0031]执行单元,用于执行所述特定业务,并对应所述特定业务的本次执行产生由所述事务处理标识符标识的业务处理日志信息。
[0032]可选的,所述执行单元包括:
[0033]生成子单元,用于在执行所述特定业务包括的子程序之前,为所述子程序的执行生成对应所述子程序的程序执行标识符;
[0034]子程序执行子单元,用于执行所述子程序,并对应所述子程序的执行产生子程序起始执行的日志信息和子程序终止执行的日志信息;所述子程序起始执行的日志信息和子程序终止执行的日志信息由所述事务处理标识符和对应所述子程序的所述程序执行标识符共同标识。
[0035]可选的,所述子程序的执行需要调用下一级特定业务;
[0036]相应的,所述子程序执行子单元包括:
[0037]请求子单元,用于向执行所述下一级特定业务的系统发送对应所述下一级特定业务的业务处理请求;所述下一级业务处理请求包括对应所述子程序的所述程序执行标识符。
[0038]可选的,还包括:
[0039]验证单元,用于验证所述调用方是否有权请求所述特定业务。
[0040]此外,本申请还提供一种业务处理的请求方法,包括:
[0041]为发送业务处理请求的程序生成程序执行标识符;
[0042]向执行第一特定业务的系统发送对应所述第一特定业务的所述业务处理请求;所述业务处理请求包括所述程序执行标识符。
[0043]可选的,所述程序执行标识符根据其对应的程序的程序名和所述程序执行标识符的生成时间生成。
[0044]可选的,发送所述业务处理请求的程序所属的特定业务为第二特定业务,所述方法还包括:
[0045]接收上一级调用方发送的对应所述第二特定业务的业务处理请求;
[0046]若所述对应所述第二特定业务的业务处理请求中既未包括所述上一级调用方预先生成的程序执行标识符,也未包括所述上一级调用方预先生成的事务处理标识符,则为所述第二特定业务的执行生成对应所述第二特定业务的事务处理标识符;
[0047]根据所述对应所述第二特定业务的业务处理请求执行所述第二特定业务,并对应所述第二特定业务的本次执行产生业务处理日志信息;所述业务处理日志信息由所述对应所述第二特定业务的事务处理标识符标识。
[0048]可选的,所述对应所述第二特定业务的事务处理标识符根据所述上一级调用方的IP地址、所述对应所述第二特定业务的事务处理标识符的生成时间以及所述对应所述第二特定业务的业务处理请求的标识符的至少一者生成。
[0049]可选的,所述第一特定业务包括WebService应用程序。
[0050]可选的,所述业务处理请求包括的所述程序执行标识符存储在SOAP头文件中。
[0051]相应的,本申请还提供一种业务处理的请求装置,包括:
[0052]第一生成单元,用于为发送业务处理请求的程序生成程序执行标识符;
[0053]发送单元,用于向执行第一特定业务的系统发送对应所述第一特定业务的所述业务处理请求;所述业务处理请求包括所述程序执行标识符。
[0054]可选的,发送所述业