[发明专利]对java操作数据库的监控系统无效
申请号: | 201210456345.9 | 申请日: | 2012-11-14 |
公开(公告)号: | CN103034679A | 公开(公告)日: | 2013-04-10 |
发明(设计)人: | 曾应玉 | 申请(专利权)人: | 上海百事通信息技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F11/34 |
代理公司: | 上海新天专利代理有限公司 31213 | 代理人: | 田申荣 |
地址: | 200233 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | java 操作 数据库 监控 系统 | ||
技术领域
一种涉及数据库操作的系统,具体为一种数据库监控系统。
现有技术
基于数据库系统的应用十分广泛,各种工商业和科研单位都需要稳定安全的数据库作系统为支撑。例如一般商业公司的数据库系统主要用于为用户提供客户信息,数据库中的数据包括客户的个人信息、客户通过各种途径订购和使用公司业务的数据。客服人员为用户提供语音咨询服务时,需要快速查询客户信息,以及客户订购和使用业务的情况,对数据库系统的调用极为频繁,对数据库系统的稳定性有着极高的要求。
在此情况下,数据库连接池作为一个存放了一定数量的与数据库服务器的物理连接的容器,一旦未释放连接将会导致数据库连接池满而无法提供可用连接,使得应用程序操作数据库失败,严重影响系统稳定性。查找未释放连接的代码目前还没有简单、有效的解决办法,通常需要查找所有使用数据库连接的代码程序,这种方法不仅非常耗时,而且不容易找出具体的有问题的代码。
执行一个差的SQL语句有时会导致数据库系统的堵塞甚至崩溃,如果要找出这条SQL语句非常难,需要由专项通过数据库工具可以找出来,普通程序员要解决这个问题往往束手无策。同时目前还没有好的拦截和记录应用程序执行的所有SQL语句的方法。
发明内容
为了解决上述技术问题,本发明所提供一种可以对java操作数据库的行为进行监控的系统。
本发明所提出的一种数据监控系统,包数据库计算机组,监控计算机组,数据库计算机组和监控计算机组通过网络连接,数据库计算机组包括一台以上的计算机。
其中,所述数据库计算机运行一数据库,所述数据库包括一连接池,监控计算机组1使用JAVA的JDBC 接口,通过JAVA的代理模式对DataSource进行代理,获得DataSourceProxy,调用DataSourceProxy的getConnection方法获得ConnectionProxy,在getConnection过程中,DataSourceProxy将真实的Connection注入ConnectionProxy,并通过Monitor类记录获取连接的时间,Connection和当前线程堆栈;通过java的代理模式对Connection,Statement和PreparedStatement进行代理,获得ConnectionProxy,StatementProxy和PreparedStatementProxy,拦截ConnectionProxy,StatementProxy和PreparedStatementProxy中的 SQL语句,将SQL语句记录到日志或Monitor类的一个静态属性中在执行SQL语句前记录执行开始时间,在SQL语句执行结束后,清除Monitor类静态属性中的SQL语句和执行开始时间,比较执行开始时间与执行结束时间即可得出执行时间,并记录到日志文件。
其中,监控计算机组用于查看Monitor类的静态属性,查看到数据库连接的使用情况,使用数据库连接的方法,占用数据库连接的时间。
其中,监控计算机组用于查看Monitor类的静态属性,定位未释放连接的代码,释放连接。
其中,监控计算机组用于查看Monitor类的静态属性,确定数据库正在执行的SQL语句,SQL语句经执行时间。
本发明通过设置监控计算组对数据库计算机组的运行的数据库进行监控,特别是监控java对数据库的操作行为,使得普通程序员可以及时发现问题,例如一个导致数据库系统的堵塞的SQL语句,或未释放数据库连接。进而使得数据库稳定性提高,减少了运行数据库的计算机组为了处理数据库堵塞或奔溃的峰值运算时间及运行数据库的计算机组的处理器的负载。
附图说明
图1为对java操作数据库的监控系统的示意图。
图例说明:1.数据库计算机组2.监控计算机组
具体实施方式
在本发明设计的一项优选例中,如附图1所示运行数据库的数据库计算机组1、监控计算机组2,监控计算机组2通过局域网与数据库计算机组1连接。
在监控计算机组2端,安装java客户端,对DataSource,Connection,Statement和PreparedStatement的代理,在代理方法里实现对数据库连接的监控,SQL语句执行时间的监控和SQL语句的拦截,编辑和记录。
通过对DataSource和Connection的代理实现。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海百事通信息技术有限公司,未经上海百事通信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210456345.9/2.html,转载请声明来源钻瓜专利网。