应用程序监控系统和监控方法技术方案

技术编号:2827564 阅读:250 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种应用程序监控系统,包括JDBC驱动接口、至少一数据库驱动和至少一数据库,至少一数据库通过相应的数据库驱动与JDBC驱动接口连接,通过JDBC驱动接口接收并执行应用程序发出的语句,还包括代理驱动,代理驱动通过JDBC驱动接口和至少一数据库驱动分别与相应的数据库连接,接收来自应用程序的语句,记录执行语句产生的监控信息。本发明专利技术还提供一种应用程序监控方法。本发明专利技术提供的应用程序监控系统与监控方法通过代理驱动的方式,对SQL语句的执行情况进行监控和管理,可方便地实现跨数据库的监控及管理;在数据库驱动层上实现了对SQL语句的监控及管理,不需要第三方监控工具,具有跨数据库、易于监控及方便管理的优点。

【技术实现步骤摘要】

本专利技术涉及电数字数据处理领域,特别涉及应用程序监控系统和监控方法
技术介绍
现有应用程序中,需要对发送到数据库的SQL语句的执行进行监控和管理,以找出系统的性能瓶颈或对操作进行统计。大多数应用程序本身并没有监控和管理SQL的功能,而是通过数据库服务器带有的监控程序来查看发送的SQL语句。由于数据库的JDBC实现大都是由数据库生产商提供,应用程序无法干涉创建数据库连接及使用数据库连接来执行查询或更新语句过程,所以大多数应用程序采用在需要监控的地方加入监控程序的方式来实现。现有技术使用监控程序实现监控的流程包括:步骤S01,使用数据库驱动创建数据库连接;步骤S02,记录监控信息;步骤S03,使用数据库连接执行SQL语句;步骤S04,记录监控信息,将监控信息输出到指定地址。上述流程需要在应用程序的多个地方增加监控程序,影响应用程序的正常流程;应用程序维护困难,监控程序分布在应用程序的多个地方,不便于修改;不易实现监控的统一开启或关闭,需要增加额外的代码及全局配置项才能实现;无法实现跨数据库监控,改变目标数据库时必须对应用程序中的监控程序重新编码;某些需要的信息如连接信息无法通过标准的JDBC接口获取,从而无法记录。
技术实现思路
本专利技术目的在于提供应用程序监控系统和监控方法,实现对跨数据库的SQL语句执行情况进行监控和管理。本专利技术提供一种应用程序监控系统,包括JDBC驱动接口、至少一数据库驱动和至少一数据库,至少一数据库通过相应的数据库驱动与JDBC驱动接口连接,通过JDBC驱动接口接收并执行应用程序发出的语句,还包括代理驱动,-->代理驱动通过JDBC驱动接口和至少一数据库驱动分别与相应的数据库连接,接收来自应用程序的语句,记录执行语句产生的监控信息。优选地,上述应用程序通过代理驱动创建至少一数据库连接,代理驱动创建并返回代理连接。优选地,上述代理连接实现标准的JDBC接口,引用由JDBC驱动创建的原始连接对象,以保存应用程序的连接信息及附加的管理配置信息;代理连接创建代理声明,实现标准的声明接口,引用由原始连接对象创建的原始声明对象。优选地,上述代理声明执行应用程序发出的语句,代理驱动记录代理声明执行的语句和/或产生的监控信息。本专利技术还提供一种应用程序监控方法,基于应用程序监控系统实现应用程序监控,应用程序监控系统包括代理驱动、JDBC驱动接口、至少一数据库驱动和至少一数据库,至少一数据库通过相应的数据库驱动与JDBC驱动接口连接,代理驱动分别与JDBC驱动接口应用程序连接,接收来自应用程序的语句,记录执行语句产生的监控信息,包括:代理驱动打开数据库连接的步骤;代理驱动接收来自应用程序的语句的步骤;代理驱动记录监控信息的步骤;数据库执行语句的步骤;代理驱动记录监控信息的步骤;代理驱动关闭数据库连接的步骤。优选地,上述应用程序监控方法还包括分析监控信息,得出监控报表的步骤。优选地,上述应用程序监控方法还包括:设置监控标记的步骤;代理驱动根据监控标记记录监控信息或不记录监控信息的步骤。优选地,上述监控标记由代理驱动设置在连接信息中,由代理驱动修改。优选地,上述代理驱动提供接口供应用程序调用,以控制代理驱动记录监控信息。优选地,上述应用程序监控方法还包括:应用程序调用接口,控制代理驱动记录监控信息的步骤;和/或应用程序调用接口,控制代理驱动停止记录监控信息的步骤。本专利技术提供的应用程序监控系统与监控方法通过代理驱动的方式,对SQL语句的执行情况进行监控和管理,可方便地实现跨数据库的监控及管理。由于本专利技术是在数据库驱动层上实现了对SQL语句的监控及管理,不需要第三方监控工具,具有跨数据库、易于监控及方便管理的优点。-->附图说明图1是本专利技术第一实施例的应用程序监控系统示意图;图2是本专利技术第一实施例的代理驱动工作原理示意图;图3是本专利技术第三实施例的应用程序监控过程示意图;图4是本专利技术采用第三实施的应用程序执行流程示意图;图5是本专利技术第四实施例的应用程序监控过程示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式参照图1,示出本专利技术第一实施例的应用程序监控系统示意图。本实施例提出代理驱动12,用于创建数据库连接,封装实际的本地数据库驱动,实现跨多种数据库的连接。代理驱动12接收来自应用程序11的SQL语句,通过JDBC驱动接口13分别与多种数据库连接。本实施例的多种数据库包括Oracle数据库151、SQL Server数据库152和My SQL数据库153,JDBC驱动接口13分别通过相应的数据库驱动,如Oracle JDBC驱动141、SQL Server JDBC驱动142和My SQLJDBC驱动143与JDBC驱动接口13连接。代理驱动12与多种数据库的连接实现标准的JDBC驱动接口(java.sql.Driver),创建各种代理声明对象(Statement),在执行语句之前记录相关信息,并将SQL语句通过真正的声明对象(Statement)执行。代理驱动12通过连接信息(包含管理配置信息)中的具体数据库驱动创建代理连接,并将连接信息(包含管理配置信息)传到代理连接中。其中连接信息除了包含原始连接对象即应用程序11的连接信息之外,还包含用于监控及管理的信息,称为管理配置信息。代理驱动12创建连接时将连接信息中的部分或全部内容保存到与应用程序11相应的管理配置信息中。上述管理配置信息是针对数据库连接信息而设置的必要信息,是连接信息的一部分。数据库连接信息如数据库服务器地址、数据库名称、登录用户服务名和密码等,管理配置信息是在这些数据库连接信息之外的用于管理监控的配置信息.如日志应该输出到哪个地方、是否要记录参数等信息。本实施例的代理驱动12工作原理如图2所示,包括:步骤S11,应用程序11与各数据库通过本实施例的代理驱动12进行连接,为实现对应用程序11的SQL语句的监控及管理提供前提条件;步骤S12,通过代理驱动12创建一个数据库连接时,会在该数据库连接-->外面包装一层,创建并返回代理连接。代理连接实现标准的JDBC接口(java.sql.Connection),同时引用原始的连接对象(原始连接对象由数据库驱动创建),用于保存应用程序11的连接信息及附加的管理配置信息;代理连接创建代理声明,实现标准的声明接口(java.sql.Statement),同时引用原始的声明对象(由原始的连接对象创建);步骤S13,代理声明执行应用程序11发出的SQL语句,包括查询、创建、删除、修改等;步骤S14,代理驱动12记录声明执行的SQL语句及产生的监控信息,监控信息包括连接信息、执行的方法、开始时间、执行时间、执行的语句和执行的参数等。经过上面四个步骤的监控信息捕获之后,就可以对应用程序11的SQL语句执行情况进行监控和管理,进一步可得出统计报表。上述代理声明中包括执行的方法、执行语句、开始时间、执行时间、执行的语句和执行的参数等。代理驱动、代理连接和代理声明的关系为:代理驱动根据连接信息创建代理连接,代理连接创建代理声明,代理声明执行应用程序发出的SQL语句。本实施例适用于多种数据库,不仅限于Oracle数据库、SQL Server数据库和My SQL数据库,并且本文档来自技高网...

【技术保护点】
一种应用程序监控系统,包括JDBC驱动接口、至少一数据库驱动和至少一数据库,所述至少一数据库通过相应的数据库驱动与所述JDBC驱动接口连接,通过所述JDBC驱动接口接收并执行所述应用程序发出的语句,其特征在于:还包括代理驱动,所述代理驱动通过JDBC驱动接口和至少一数据库驱动分别与相应的数据库连接,接收来自所述应用程序的语句,记录执行所述语句产生的监控信息。

【技术特征摘要】
1.一种应用程序监控系统,包括JDBC驱动接口、至少一数据库驱动和至少一数据库,所述至少一数据库通过相应的数据库驱动与所述JDBC驱动接口连接,通过所述JDBC驱动接口接收并执行所述应用程序发出的语句,其特征在于:还包括代理驱动,所述代理驱动通过JDBC驱动接口和至少一数据库驱动分别与相应的数据库连接,接收来自所述应用程序的语句,记录执行所述语句产生的监控信息。2.根据权利要求1所述的应用程序监控系统,其特征在于,所述应用程序通过代理驱动创建至少一数据库连接,所述代理驱动创建并返回代理连接。3.根据权利要求1或2所述的应用程序监控系统,其特征在于,所述代理连接实现标准的JDBC接口,引用由所述JDBC驱动创建的原始连接对象,以保存所述应用程序的连接信息及附加的管理配置信息;所述代理连接创建代理声明,实现标准的声明接口,引用由原始连接对象创建的原始声明对象。4.根据权利要求3所述的应用程序监控系统,其特征在于,所述代理声明执行应用程序发出的语句,所述代理驱动记录代理声明执行的语句和/或产生的监控信息。5.一种应用程序监控方法,基于应用程序监控系统实现应用程序监控,所述应用程序监控系统包括代理驱动、JDBC驱动接口、至少一数据...

【专利技术属性】
技术研发人员:潘国林
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1