[發明專利]對java操作數據庫的監控系統無效
| 申請號: | 201210456345.9 | 申請日: | 2012-11-14 |
| 公開(公告)號: | CN103034679A | 公開(公告)日: | 2013-04-10 |
| 發明(設計)人: | 曾應玉 | 申請(專利權)人: | 上海百事通信息技術有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;G06F11/34 |
| 代理公司: | 上海新天專利代理有限公司 31213 | 代理人: | 田申榮 |
| 地址: | 200233 上海市*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | java 操作 數據庫 監控 系統 | ||
技術領域
一種涉及數據庫操作的系統,具體為一種數據庫監控系統。
現有技術
基于數據庫系統的應用十分廣泛,各種工商業和科研單位都需要穩定安全的數據庫作系統為支撐。例如一般商業公司的數據庫系統主要用于為用戶提供客戶信息,數據庫中的數據包括客戶的個人信息、客戶通過各種途徑訂購和使用公司業務的數據??头藛T為用戶提供語音咨詢服務時,需要快速查詢客戶信息,以及客戶訂購和使用業務的情況,對數據庫系統的調用極為頻繁,對數據庫系統的穩定性有著極高的要求。
在此情況下,數據庫連接池作為一個存放了一定數量的與數據庫服務器的物理連接的容器,一旦未釋放連接將會導致數據庫連接池滿而無法提供可用連接,使得應用程序操作數據庫失敗,嚴重影響系統穩定性。查找未釋放連接的代碼目前還沒有簡單、有效的解決辦法,通常需要查找所有使用數據庫連接的代碼程序,這種方法不僅非常耗時,而且不容易找出具體的有問題的代碼。
執行一個差的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.szxzyx.cn/pat/books/201210456345.9/2.html,轉載請聲明來源鉆瓜專利網。





