監控和剖析資料庫操作 -- P6Spy、SQL Profiler、IronTrack SQL的文章網上有很多,我是參照http://www.ibm.com/developerworks/cn/java/j-lo-p6spy/來做的,
我們的監控是使用了P6Spy 和 IronTrack SQL
網上寫的實施流程都是
下載 P6Spy 的檔案包,也可以下載它的源檔案包來研究;
把 P6Spy 的 jar 包 p6spy.jar 放到 CLASSPATH 中,如果是 Web 應用程式則放在 YourWebApp/WEB-INF/lib/ 目錄下;
把 spy.properties 放到 CLASSPATH 目錄下,如果是 Web 應用程式放在 YourWebApp/WEB-INF/classess/ 目錄下,注意不是 lib/ 目錄
修改你應用系統中的資料庫驅動名稱為 P6Spy 的驅動程式名稱 com.p6spy.engine.spy.P6SpyDriver 其它的全部使用預設值,暫時先都不用修改;
開啟設定檔 spy.properties 檔案,找到 realdriver,把它的值改為你的應用系統的真正的資料庫驅動名稱;
運行你的應用程式或 Web 應用程式,可以在 spy.log 裡看到 P6Spy 監測到的 SQL 詳細的執行與操作的記錄資訊了,包含有完整的 SQL 執行參數。
下載 IronTrack SQL 的檔案包進行安裝;
把 irontracksql.jar, p6spy.jar 和 log4j-1.2.8.jar 放到 CLASSPATH 中,如果是 Web 應用程式則放在 YourWebApp/WEB-INF/lib/ 目錄下;
把 spy.properties 放到 CLASSPATH 目錄下,如果是 Web 應用程式就放在 YourWebApp/WEB-INF/classess/ 目錄下,注意不是 lib/ 目錄;
修改你程式的資料庫驅動名稱為 P6Spy 的驅動程式名稱 com.p6spy.engine.spy.P6SpyDriver 其它的都不用更改;
開啟設定檔 spy.properties 檔案,找到 realdriver,把它的值改為你的應用系統的真正的資料庫驅動名稱;
設定監聽連接埠號碼 monitorport=2000;
先運行 java -jar irontracksql.jar 來啟動 IronTrack SQL;
再啟動你的應用程式或伺服器;
可以在 IronTrack SQL 圖形化的介面上看到結果並進行分析了。
我在參照實施時出現了問題,按照下面的編寫實施完成,可以進行監控
1)把 irontracksql.jar, p6spy.jar放到應用程式則放在 YourWebApp/WEB-INF/lib/ 目錄下(需要把IronTrackSQL/lib這個檔案夾和下面的JAR都要COPY進LIB目錄下,不然只靠irontracksql.jar, p6spy.jar啟動會包檔案找不到);
2)把 spy.properties 放到%WebApp%/WEB-INF/classess/ 目錄下,注意不是 lib/ 目錄; (如果直接放在classess/目錄下面,工程一編譯之後就沒有了,需要放到xBankMIBS2.0Dev/src目錄下,然後一編譯就自動放到了/classess目錄下了)
網上寫的很詳細,但是按照他們的步驟在我機器上面不行,呵呵,我的環境是DB9.1,MYECLIPSE6.0,做了上面2個修改就可以了
另外測試發現:
並不要求先啟動 Iron TrackSQL,相比於 SQL Profiler 的被動監聽,它採取的是主動去查詢。更適於遠程監控,想在何時監控就啟動,完事就關閉,不至於像 SQL Profiler 那樣一旦監聽視窗壞了一下,就得重啟應用。而且我想它對應用程式的效能影響也較小些的
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/xiaxiaorui2003/archive/2009/12/01/4915032.aspx