使用 JDBMonitor,您可以把數據庫執行情況記錄通過各種方式記錄下來,比如打印到控制臺、輸出到文件或者通過socket傳送給遠程客戶端。JDBMonitor是可擴展的,您可以擴展它來將執行情況通過其他方式記錄下來,您所需要做的就是寫一個實現IDBListener接口的類即可。
JDBMonitor遵守 GNU Lesser General Public Licence (LGPL)協議。此協議包含在發行包中。
幾乎所有大型數據庫應用都包含有自己的SQL執行日志功能,此功能不僅能幫助開發人員調試,而且可以為DBA(數據庫治理員)提供系統的運行信息。
(1)很難將業務邏輯同日志代碼分離
(2)降低了代碼的可讀性。
(3)降低了系統的運行速度。在記錄日志的時候,程序會暫停運行等待直到記錄完成,而I/O操作是相當耗時的。
(4)很難記錄運行耗時、語句參數等其他信息
(5)很難為我們無法修改代碼的系統(例如沒有源代碼的系統)或者很難增加記錄日志功能代碼的系統(比如系統使用了ORMapping)增加日志功能。
JDBMonitor 則不同:
(1)您最多只需要修改一行代碼。您需要修改的代碼就是這一行:Class.forName("com.cownew.JDBMonitor.jdbc.DBDriver") ,然后再修改一下 JDBC連接字符串,只要從 “jdbc:db2://10.74.198.247:50000/app”修改成” listenerconfig=config.xml:url= jdbc:db2://10.74.198.247:50000/app”就可以了。在您使用WebLogic ,Tomcat或其他服務器的數據源功能的時候,連修改代碼這一步都是無需的。
(2)JDBMonitor另起一個線程來記錄SQL,所以它不會對程序運行速度有任何影響。
(3)它是高度可擴展的,所以您可以擴展它來把執行情況通過其他方式記錄。比如,您可以寫一個擴展類,來通過電子郵件將日志發送出去。
JDBMonitor的最新穩定版本可以在JDBMonitor的網站上取得:
http://www.cownew.com/JDBMonitor
1 將 jdbmonitor.jar放到您系統的類路徑下。
2 讓系統加載 JDBMonitor的JDBC驅動。
這一步將會依您系統加載JDBC驅動的方式的不同而不同。
(1)假如您通過代碼的形式加載JDBC驅動,例如:
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
Connection cn = DriverManager.getConnection(……);
在這種情況下 ,您必須修改 “Class.forName”這一句來加載JDBMonitor的JDBC驅動(“com.cownew.JDBMonitor.jdbc.DBDriver”),而非以前的數據庫JDBC驅動。
例如:
Class.forName(“com.cownew.JDBMonitor.jdbc.DBDriver”);
Connection cn = DriverManager.getConnection(……);
(2)假如您在配置文件中指定JDBC驅動,比如,數據源配置文件或者其他類似的文件。
請修改原來的 JDBC驅動類為 “com.cownew.JDBMonitor.jdbc.DBDriver” 。
3 讓 JDBMonitor加載能夠加載原來的JDBC驅動
JDBMonitor的工作原理就是截獲JDBC驅動的SQL語句調用、記錄SQL語句,然后將SQL語句重新轉發給原來的JDBC驅動,所以JDBMonitor必須首先向DriverManager注冊JDBC驅動。
原來的JDBC驅動定義在配置文件的“JdbcDrivers” 段中。
<JdbcDrivers>
<JdbcDriver class=" com.MySQL.jdbc.Driver"/>
</JdbcDrivers>
4 在原來的JDBC連接字符串前增加 JDBMonitor所需的信息。
您所需要做的就是將” listenerconfig=<configfilepath>:url=” 增加到原來的JDBC連接字符串前?!?lt;configfilepath>”代表配置文件的路徑,下面集中路徑都是合法的:
新聞熱點
疑難解答