锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲毛片基地4455ww,亚洲日韩一页精品发布,亚洲六月丁香六月婷婷色伊人http://www.tkk7.com/titanaly/category/39909.htmlzh-cnWed, 28 Jul 2010 08:23:55 GMTWed, 28 Jul 2010 08:23:55 GMT60鍙敤Jamon鏉ョ洃嫻嬩綘鐨凷pring搴旂敤,sql鎵ц鏁堢巼(杞?http://www.tkk7.com/titanaly/archive/2010/07/28/327330.html涓嶉珮鍏?/dc:creator>涓嶉珮鍏?/author>Wed, 28 Jul 2010 08:06:00 GMThttp://www.tkk7.com/titanaly/archive/2010/07/28/327330.htmlhttp://www.tkk7.com/titanaly/comments/327330.htmlhttp://www.tkk7.com/titanaly/archive/2010/07/28/327330.html#Feedback0http://www.tkk7.com/titanaly/comments/commentRss/327330.htmlhttp://www.tkk7.com/titanaly/services/trackbacks/327330.html *浣滆咃細寮犺崳鍗?ahuaxuan)
*2007-8-15
*杞澆璇鋒敞鏄庡嚭澶勫強浣滆?
*/

鍓嶄袱澶╁湪鐪婼pring鍐呯疆鐨勬嫤鎴櫒鐨勬椂鍊欙紝鍙戠幇浜嗕竴涓箣鍓嶆病鏈夋敞鎰忕殑綾伙細org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor錛屽ソ濂囧績淇冧嬌鎴戜笂緗戞煡浜嗕竴涓嬭繖涓猨amon銆傚ぇ姒傜湅浜嗕竴涓嬩箣鍚庡彂鐜拌繖涓帺鎰忚繕鐪熸尯濂界敤鐨勮屼笖鎸洪噸瑕佺殑錛岃屼笖鐜板湪鍥藉唴瀵瑰畠鐨勪粙緇嶄篃寰堝皯錛屾墍浠ュ啓浜嗕竴綃囨枃绔犲拰澶у鍒嗕韓銆?

涓錛孞amon綆浠嬶細
Jamon鐨勫叏鍚嶆槸錛欽ava Application Monitor銆傚畠鏄竴涓皬宸х殑錛屽厤璐圭殑錛岄珮鎬ц兘鐨勶紝綰跨▼瀹夊叏鐨勬ц兘鐩戞祴宸ュ叿銆傚畠鍙互鐢ㄦ潵嫻嬪畾緋葷粺鐨勬ц兘鐡墮錛屼篃鍙互鐢ㄦ潵鐩戣鐢ㄦ埛鍜屽簲鐢ㄧ▼搴忎箣闂寸殑浜や簰鎯呭喌銆?Jamon涓昏鏄敤鏉ユ嫻媕ee鐨勫簲鐢ㄧ▼搴忋傚畠鏈鏂扮殑鐗堟湰鏄?.1錛屽彲浠ョ敤鍦?.4浠ヤ笂鐨刯dk涓娿?

浜岋紝灝唈amon瀵煎叆鍒頒綘鐨勫簲鐢ㄧ▼搴忎腑鍘?
棣栧厛涓嬭澆jamon鐨勫紑鍙戝寘錛岃鎴戠殑闄勪歡錛屽悓鏃朵綘涔熷彲浠ュ幓Sourceforge涓婅嚜宸變笅杞姐係ourceforge鐨勪笅杞藉湴鍧涓篽ttp://jamonapi.sourceforge.net銆傝В鍘嬩箣鍚庡彲浠ュ緱鍒頒竴涓猨ar鍖呭拰涓涓獁ar鍖呫俲ar鍖呮槸鑷繁浼氱敤鍒扮殑錛岃寃ar鍖呮槸涓涓緥瀛愶紙涓嶈灝忕湅榪欎釜渚嬪瓙錛屽緟浼氫篃瑕佹妸瀹冨鍏ュ埌欏圭洰涓級銆傛妸war鍖呬箣闂翠涪鍒版湇鍔″櫒涓婏紝璁塊棶錛歭ocalhost:8080/jamon灝卞彲浠ョ湅鍒拌繖涓緥瀛愪簡錛岃繖涓緥瀛愭槸涓涓畝鍗曠殑鎬ц兘鐩戞帶緋葷粺銆?

鎺ョ潃鎶婁緥瀛愪腑鐨勬墍鏈夌殑鍖呴兘瀵煎叆鍒伴」鐩腑錛屽茍鎶妛ar鍖呬腑鐨刯sp鍜宨mages榪樻湁css閮借冨埌欏圭洰涓紝姣斿鏂板緩涓涓洰褰曞彨monitor錛堝畠鍜學EB-INF鏄悓綰х洰褰曪級銆?

涓夛紝姝g‘閰嶇疆鑷繁鐨勫簲鐢?
鎴戜滑鍦ㄦц兘鐩戞祴鐨勬椂鍊欐渶鐩戞祴鐨勫氨鏄〉闈㈢殑璁塊棶鐜囧拰綾諱腑鏂規硶鐨勮闂巼銆傛墍浠ュ湪榪欎竴閮ㄥ垎涓昏璁茶В涓涓嬪浣曠洃嫻嬭嚜宸辯殑欏甸潰鍜岀被涓柟娉曠殑璁塊棶銆?

1錛?媯嫻嬭嚜宸辯殑欏甸潰璁塊棶鐜?
棣栧厛鎴戜滑闇瑕佸湪web.xml涓坊鍔犱竴涓猣ilter錛岃繖涓猣ilter灝辨槸鐢ㄦ潵鍒ゆ柇鍝簺欏甸潰闇瑕佽鐩戣鐨勶紝濡備笅鎵紺猴細
Java浠g爜 澶嶅埗浠g爜
  1. <filter>   
  2.         <filter-name>JAMonFilter</filter-name>   
  3.         <filter-class>com.easywebwork.filter.EasyPageMonFilter</filter-class>   
  4.     </filter>   
  5.     <filter-mapping>   
  6.         <filter-name>JAMonFilter</filter-name>   
  7.         <url-pattern>/*</url-pattern>   
  8.     </filter-mapping>  
鎺ヤ笅鏉ユ垜浠湅鐪嬭繖涓猣ilter鐨勫啓娉曪細
Java浠g爜 澶嶅埗浠g爜
  1. /**  
  2.  * @author 寮犺崳鍗庯紙ahuaxuan錛? 
  3.  *  
  4.  * @since 2007-8-13  
  5.  */  
  6. public class PageMonFilter extends JAMonFilter{   
  7.   
  8.     private static final long serialVersionUID = 5746197114960908454L;   
  9.   
  10.     public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {   
  11.          Monitor allPages = MonitorFactory.start(new MonKeyImp("org.easywebwork.allPages",getURI(request),"ms."));   
  12.          //榪欓噷灝辨槸鎴戜滑瑕佺洃瑙嗙殑鎵鏈夌殑欏甸潰鐨勯厤緗?  
  13.          Monitor monitor = MonitorFactory.start(getURI(request));   
  14.          //榪欓噷灝辨槸鎴戜滑瑕佺洃瑙嗙殑鏌愪釜欏甸潰鐨勯厤緗?  
  15.          try {   
  16.           filterChain.doFilter(request, response);   
  17.          } finally {   
  18.           monitor.stop();   
  19.           allPages.stop();   
  20.          }   
  21.        }   
  22.   
  23.        protected String getURI(ServletRequest request) {   
  24.          if (request instanceof HttpServletRequest) {   
  25.            return ((HttpServletRequest) request).getRequestURI();   
  26.          }  else {   
  27.            return "Not an HttpServletRequest";   
  28.          }   
  29.        }   
  30.   
  31.        private FilterConfig filterConfig = null;   
  32.           
  33. }}  

榪欎釜綾葷湅涓婂幓寰堢畝鍗曪紝鍏跺疄涔熸尯綆鍗曠殑錛屽氨鏄緱鍒皍ri錛岀劧鍚庢妸瀹冩敞鍐屽埌MonitorFactory綾諱腑銆傝繖鏍峰彧瑕佹垜浠幓璁塊棶鍒氭墠鍒涘緩鐨刴onitor鐩綍涓嬬殑jsp灝卞彲浠ョ湅鍒版ц兘鐩戞祴欏甸潰浜嗐?

2錛?錛屾帴涓嬫潵鎴戜滑鐪嬬湅鍦ㄤ嬌鐢╯pring鐨勬儏鍐典笅濡備綍鐩戞祴涓涓猙ean鐨勬柟娉曡皟鐢ㄣ係pring涔熸彁渚涗簡瀵笿amon鐨勬敮鎸?spring鏀寔鐨勪笢瑗胯繕鐪熷鍟?錛屼篃灝辨槸鏂囩珷寮澶存彁鍑虹殑閭d釜鎷︽埅鍣紝涓轟簡緇欐垜浠殑bean鍔犱笂鎷︽埅鍣紝鎴戜滑鍦╯pring鐨刟pplicationcontext閰嶇疆鏂囦歡涓姞鍏ュ涓嬭鍙ワ細
Java浠g爜 澶嶅埗浠g爜
  1. <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">   
  2.         <property name="beanNames">   
  3.             <list>   
  4.                 <value>userService</value>                 
  5.             </list>   
  6.         </property>   
  7.         <property name="interceptorNames">   
  8.             <list>   
  9.                 <value>jamonInterceptor</value>   
  10.             </list>   
  11.         </property>   
  12.     </bean>   
  13.        
  14.     <bean id="jamonInterceptor" class="org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor">   
  15. </bean>  

涓婇潰榪欎釜鏄吀鍨嬬殑spring鐨刟op鐨勯厤緗紝濡傛灉瀵箂pring鐨刟op閰嶇疆涓嶄簡瑙g殑鍙互鍘葷湅涓涓媠pring涓枃鏂囨。錛屽綋鐒跺鏋滀笉鎯充簡瑙g殑璇濆嵆浣跨洿鎺ユ妸榪欐閰嶇疆鎷峰埌鑷繁鐨勯」鐩腑涔熸槸鍙互鐩存帴浣跨敤鐨勩?

榪樻湁涓涓楠ゅ氨鏄湪浣犵殑log4j.properties涓姞鍏ヨ繖鍙ヤ唬鐮侊細
Java浠g爜 澶嶅埗浠g爜
  1. log4j.logger.org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor = TRACE  

濡傛灉娌℃湁榪欎竴琛岋紝閭d箞榪欎釜鎷︽埅鍣ㄦ槸涓嶄細鎶婃柟娉曡皟鐢ㄧ殑淇℃伅鍚慚onitorFactory娉ㄥ唽鐨勩?

鍙渶瑕佽繖浜涙楠わ紝userservice涓殑鏂規硶鍦ㄨ皟鐢ㄧ殑鏃跺欏氨鍙互琚嫤鎴紝鐒跺悗灝嗗叾娉ㄥ唽鍒癕onitorFactory涓幓浜嗐?

鎵鏈夌殑閰嶇疆瀹屾垚涔嬪悗鎴戜滑鏉ョ湅涓涓嬫晥鏋滃惂:
http://www.javaeye.com/topics/download/b2bac96e-6c18-4340-b7e0-f84c7bb6adca浠庤繖涓浘涓婃垜浠彲浠ョ湅鍒幫紝鎵鏈夐〉闈㈣璁塊棶鐨勬鏁幫紝UserService涓殑getAllUsers琚皟鐢ㄧ殑嬈℃暟錛屾渶鍙寵竟鐨勬槸璁塊棶鏃墮棿銆傝繖鍙槸鏁翠釜鍥劇殑涓閮ㄥ垎錛屽綋鐒惰繖涓〉闈腑涔熷寘鎷瘡涓涓〉闈㈣璁塊棶鐨勬鏁板拰絎竴嬈¤闂殑鏃墮棿絳夌瓑銆備笅杞介檮浠惰繍琛岋紝灝卞彲浠ョ湅鍒版墍鏈夌殑欏甸潰浜嗐?

涓夛紝鎬葷粨
鏍規嵁浠ヤ笂鐨勬楠わ紝鎴戜滑灝卞彲浠ョ洃嫻嬫垜浠殑紼嬪簭浜嗭紝搴旂敤紼嬪簭涓摢浜涢〉闈㈣璁塊棶鐨勫錛屽摢浜涢〉闈㈣璁塊棶鐨勫皯錛屽摢浜涙柟娉曡璁塊棶鐨勫錛屽摢浜涙柟娉曡璁塊棶鐨勫皯錛屼互鍙婅闂珮宄版湡闆嗕腑鍦ㄤ粈涔堟椂闂寸瓑絳夛紝鏈変簡榪欎簺鍙傛暟錛屾垜浠洿鍙互鏈夐拡瀵規х殑瀵瑰簲鐢ㄧ▼搴忚繘琛屼紭鍖栦簡錛屾瘮濡傝鏌愪釜欏甸潰璁塊棶姣旇緝棰戠箒錛屾垜灝卞彲浠ョ敤ehcache鎴杘scache緇欒繖涓〉闈㈠仛涓涓紦瀛樸傚鏋滄煇涓柟娉曠殑璁塊棶姣旇緝棰戠箒閭e氨鐪嬬湅榪欎釜鏂規硶鑳藉惁榪涗竴姝ヤ紭鍖栵紝鏄渶瑕佸紓姝ワ紝榪樻槸闇瑕佺紦瀛橈紝榪樻槸闇瑕佸叾浠栫瓑絳夛紝鎬諱箣鏈変簡jamon鍙互緇欐垜浠甫鏉ユ洿澶氱殑渚挎嵎錛屾棦鍙互璁╂垜浠煡閬撴垜浠殑瀹㈡埛鐨勮涓猴紝涔熷彲浠ヨ鎴戜滑鐭ラ亾鎴戜滑寮鍙戠殑紼嬪簭鐨?#8220;鑳藉姏”銆?

鍏跺疄鏈枃鎻愪緵鐨勫彧鏄欏甸潰鍜屾柟娉曡皟鐢ㄧ殑鐩戞帶錛屼絾鏄痡amon鍙互鎻愪緵鏇村鍔熻兘錛屾瘮濡傝sql璇彞鐨勭洃鎺х瓑絳夛紝榪欏氨闇瑕佹垜浠叡鍚屽幓鍙戞帢浜嗐?

闄勪歡涓寘鎷簡涓涓猠asywebwork鐨勪緥瀛愶紝鎴戞妸jamon瀵煎叆鍒拌繖涓緥瀛愬伐紼嬩腑鍘伙紝澶у鍙互鐩存帴涓嬭澆榪愯瑙傜湅鏁堟灉銆侲asywebwork鏄竴涓棬鍦ㄥ噺灝憌ebwork2.2.x緋誨垪鐨剎ml閰嶇疆鏂囦歡鐨勯」鐩紝
濡傛灉瀵硅繖涓富棰樻劅鍏磋叮璇峰埌
http://www.javaeye.com/topic/91614
http://www.javaeye.com/topic/93814
鍙傚姞璁ㄨ銆?





涔嬪墠鏈変竴綃囨枃绔犺鍒板浣曚嬌鐢╦amon鏉ョ洃鎺ц姹備互鍙婃柟娉曞緱璋冪敤(鍘熸枃鍦板潃瑙侊細[url]http://www.javaeye.com/post/354575 [/url])錛屾湰鏂囧睘浜庡叾濮婂綃囷紝浣跨敤jamon鐩戞帶緋葷粺鐨剆ql璋冪敤鍙婂叾璋冪敤鏁堢巼銆?

闇姹傦細
1鎴戜滑鐭ラ亾鍦ㄤ嬌鐢╤ibernate寰楁椂鍊欙紝鎴戜滑鍙互鎵撳紑show sql閫夐」錛屽彲浠ョ洿鎺ユ煡鐪媠ql璇彞璋冪敤鐨勬儏鍐碉紝閭d箞褰撴垜浠嬌鐢ㄥ叾浠栨寔涔呮妧鏈殑鏃跺欐垜浠篃闇瑕佽繖涓姛鑳芥庝箞鍔炲憿錛屾病鏈夊叧緋伙紝jamon鑳藉甯垜浠仛鍒般?

2 寰堝鏃跺欙紝涓嶅悓鐨勭▼搴忓憳浼氬啓鍑轟笉鍚岀殑鎬ц兘鐨剆ql錛屾湁鏃跺欏彲鑳戒細涓嶅皬蹇冩垨鑰呭洜涓轟笉鐭ラ亾鑰屽啓鍑烘ц兘寰堝樊鐨剆ql錛屾垜鑷繁鏇劇粡灝卞彂鐢熻繃榪欑浜嬫儏錛屽湪500w鏉℃暟鎹殑琛ㄩ噷浣跨敤浜嗕竴涓猯imit鏉ュ垎欏碉紝鍒板悗闈紝鎵ц涓鏉ql閮介渶瑕佸嚑鍒嗛挓錛岃濡傛綾葷殑鏃跺欏彲鑳藉ぇ瀹墮兘鏈夌鍒拌繃錛屽鏋滆兘鏈夌洃鎺ql鎬ц兘鐨勫伐鍏峰祵鍦ㄥ簲鐢ㄩ噷璇ュ濂斤紝褰撶劧鏈塲amon灝卞彲浠ュ府鎴戜滑鍋氬埌銆?

瀵逛簬jamon鏉ヨ錛屾瘡涓涓猶uery鐨勬墽琛屼箣鍚庣殑緇熻緇撴灉閮戒細琚繚瀛樹笅鏉ワ紝榪欎簺姒傝緇熻閮戒互MonProxy-SQL寮澶淬傝繖浜涚粺璁′腑鍖呮嫭鏌ヨ鎵ц鐨勬椂闂達紝鏈夋瘮濡傚鉤鍧囨椂闂達紝鎵ц鎬繪椂闂達紝鏈灝忔墽琛屾椂闂達紝鏈澶ф墽琛屾椂闂達紝榪欎簺涓滆タ闅鵑亾涓嶆槸鎴戜滑姝f兂瑕佺殑鍚椼?

閭d箞璁╂垜浠紑濮嬪惂錛屾垜浠煡閬擄紝榪欎簺query鎵ц鐨勭粺璁″簲璇ユ槸鍦╟onnection涓緇熻鐨勶紝涔熷氨鏄鎴戜滑瑕佷唬鐞嗕竴鑸殑connection錛岃宑onnection鍙堟槸鐢眃atasource浜х敓鐨勶紝鎵浠ユ垜浠彲浠ヤ唬鐞哾atasource錛岃騫插氨騫層?

涓涓猟atasource鎺ュ彛涓叧浜巆onnection鐨勬柟娉曞彧鏈変袱涓細
Java浠g爜 澶嶅埗浠g爜
  1. /**  
  2.    * <p>Attempts to establish a connection with the data source that  
  3.    * this <code>DataSource</code> object represents.  
  4.    *  
  5.    * @return  a connection to the data source  
  6.    * @exception SQLException if a database access error occurs  
  7.    */  
  8.   Connection getConnection() throws SQLException;   
  9.          
  10.   /**  
  11.    * <p>Attempts to establish a connection with the data source that  
  12.    * this <code>DataSource</code> object represents.  
  13.    *  
  14.    * @param username the database user on whose behalf the connection is   
  15.    *  being made  
  16.    * @param password the user's password  
  17.    * @return  a connection to the data source  
  18.    * @exception SQLException if a database access error occurs  
  19.    * @since 1.4  
  20.    */  
  21.   Connection getConnection(String username, String password)    
  22.     throws SQLException;  

涔熷氨鏄鎴戜滑鍙override榪欎袱涓柟娉曞嵆鍙?
鏍規嵁榪欎釜鎬濊礬鎴戝啓浜嗕互涓嬩唬鐮侊細
Java浠g爜 澶嶅埗浠g爜
  1. /**  
  2.  * @author ahuaxuan(aaron zhang)  
  3.  * @since 2008-2-25  
  4.  * @version $Id$  
  5.  */  
  6. public class MonitorDataSource implements DataSource {   
  7.     public DataSource realDataSource;   
  8.   
  9.     public void setRealDataSource(DataSource realDataSource) {   
  10.         this.realDataSource = realDataSource;   
  11.     }   
  12.   
  13.     public DataSource getRealDataSource() {   
  14.         return realDataSource;   
  15.     }   
  16.     public Connection getConnection() throws SQLException {   
  17. //琛ㄧず鐢眏amon鏉ヤ唬鐞唕ealDataSource榪斿洖鐨凜onnection   
  18.         return MonProxyFactory.monitor(realDataSource.getConnection());   
  19.     }   
  20.   
  21.     public Connection getConnection(String username, String password)   
  22.             throws SQLException {   
  23. //琛ㄧず鐢眏amon鏉ヤ唬鐞唕ealDataSource榪斿洖鐨凜onnection   
  24.   
  25.         return MonProxyFactory.monitor(realDataSource.getConnection(username,   
  26.                 password));   
  27.     }   
  28. }  

鏄劇劧榪欎釜涓涓唬鐞嗘ā寮忋傛帴涓嬫潵灝辨槸鐢熸垚榪欎釜浠g悊綾?鎴戞槸鍦╯pring涓敞鍐屼簡榪欎箞涓涓被錛?
Java浠g爜 澶嶅埗浠g爜
  1. <bean id="writeMonitorDataSource" class="org.ahuaxuan.MonitorDataSource" destroy-method="close">   
  2.         <property name="realDataSource" ref="writeDataSource"/>   
  3.     </bean>  


writeMonitorDataSource 鎵渚濊禆鐨剋riteDataSource灝辨槸鎴戜滑鐪熸閰嶇疆鐨刣atasource錛屾瘮濡傦細
Java浠g爜 澶嶅埗浠g爜
  1. <bean id="writeDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">   
  2.         <property name="driverClassName">   
  3.             <value>${jdbc.driverClassName}</value>   
  4.         </property>   
  5.         <property name="url">   
  6.             <value>${jdbc.url}</value>   
  7.         </property>   
  8.         <property name="username">   
  9.             <value>${jdbc.username}</value>   
  10.         </property>   
  11.         <property name="password">   
  12.             <value>${jdbc.password}</value>   
  13.         </property>   
  14.         <property name="maxActive">   
  15.             <value>${jdbc.maxActive}</value>   
  16.         </property>   
  17.         <property name="maxIdle">   
  18.             <value>${jdbc.maxIdle}</value>   
  19.         </property>   
  20.         <property name="maxWait">   
  21.             <value>${jdbc.maxWait}</value>   
  22.         </property>   
  23. </bean>  

濂戒簡錛岄偅涔堝湪浣跨敤datasource鐨勬椂鍊欙紝鎴戜滑搴旇鐢ㄥ摢涓憿錛屽綋鐒舵槸writeMonitorDataSource榪欎釜閲岋紝鎴戜滑鍙互鎶婂畠娉ㄥ叆緇檍dbcTemplate錛屾垨鑰卻essionfactory錛屾垨鑰呭叾浠栭渶瑕佺敤鍒癲atasource鐨勫湴鏂廣?

鍒拌繖閲岋紝灝變竴鍒囧噯澶囧畬姣曚簡錛屾垜浠彲浠ョ湅鐪嬫垜浠瑂ql璇彞鐨勬墽琛屾晥鐜囦簡(榪欎釜欏甸潰鐨勫湴鍧涓簊ql.jsp)錛?
瑙佸浘1
褰撶劧瑕佹垜浠殑搴旂敤鑳藉鏄劇ず榪欎釜欏甸潰錛屾垜浠渶瑕佹妸jamon鐨勪竴緇勯〉闈㈡嫹鍒版垜浠殑搴旂敤涓紝榪欎竴緇勯〉闈㈠寘鍚湪鎴戞彁渚涗笅杞界殑鍖呬腑錛屾渶鏂扮殑jamon鐗堟湰鏄?.7銆?

鎴戜滑鍙互鐪嬪埌id涓?53鐨勯偅鏉ql璇彞鎵ц浜?8ms錛屾垜瑕佸幓鐪嬬湅榪欐潯sql璇彞鏄笉鏄湁鐐逛粈涔堥棶棰樻垨鑰呮槸鍚︽湁浼樺寲鐨勫彲鑳芥с?

褰撶劧錛屽垰鎵嶈鍒版瘡涓鏉ql璇彞閮芥槸鏈夌粺璁″鉤鍧囨椂闂達紝鏈澶ф渶灝忔墽琛屾椂闂寸瓑絳夛紝娌¢敊錛屽湪鍙﹀涓涓〉闈amonadmin.jsp涓婂氨鍖呭惈榪欎簺鍐呭
瑙佸浘2
      

涓婇潰鐨勫浘鐗囦唬琛╤its琛ㄧず鎵ц嬈℃暟錛宎vg琛ㄧずsql鎵ц鐨勫鉤鍧囨椂闂達紝鍚庨潰鐨刴in鍜宮ax琛ㄧずsql鎵ц鐨勬渶灝忚楁椂鍜屾渶澶ц楁椂銆備粠榪欓噷鎴戜滑鑳藉鏇寸洿瑙傜殑鐪嬪埌鎴戜滑姣忔潯sql璇彞鎵ц鐨勬儏鍐點傚緢鏈夌敤鐨勪竴涓姛鑳姐?

鑰屼笖鍦ㄤ笂闈㈤偅涓や釜欏甸潰涓婏紝鎴戜滑榪樺彲浠ラ夋嫨鎶妔ql鎵ц鐨勭粨鏋滃鍑烘潵錛屽彲浠ュ鎴恱ml鎴杄xcel鏍煎紡銆?

鎬葷粨錛氫嬌鐢╦amon鏉ョ洃鎺ф垜浠殑sql璇彞鎴戣寰楀緢鏈変嬌鐢ㄦ剰涔夛紝鑰屼笖浣跨敤jamon瀵規垜浠殑搴旂敤鏉ヨ瀹屽叏鏄澗鑰﹀悎鐨勶紝鏍規湰涓嶉渶瑕佹洿鏀規垜浠殑涓氬姟閫昏緫浠g爜錛屽畬鍏ㄦ槸鍙彃鎷旂殑錛屾垜浠篃鍙互寮鍙戞椂浣跨敤jamon錛岄儴緗叉椂鎷旀帀jamon銆傛湁浜嗗畠鑳藉浣夸竴浜涚▼搴忓憳鑳藉鏇村涓鐐圭殑鍏蟲敞鑷繁鎵鍐欑殑sql鐨勬晥鐜囷紝褰撶劧濡傛灉涔嬪墠寮鍙戠殑鏃跺欐病鏈変嬌鐢╦amon涔熸病鏈夊叧緋伙紝鍗充嬌涓婄嚎鍚庝篃鍙互鏌ョ湅涓涓媠ql璇彞鏄惁鏈夐棶棰橈紝姣斿鍝簺sql璇彞鎵ц寰楁瘮杈冮綣侊紝鏄惁瀛樺湪緇欏叾鍋氱紦瀛樺緱鍙兘鎬х瓑絳夈傛諱箣浣跨敤jamon鍦ㄥ簲鐢ㄧ▼搴忎腑鏉ョ洃鎺ф垜浠緱sql璇彞鍏鋒湁寰堝己寰楀疄鐢ㄦ剰涔夛紝

鍐嶆鎬葷粨錛歫amon錛屽緢濂斤紝寰堝己澶с?


]]>
C3P0榪炴帴姹犺緇嗛厤緗?/title><link>http://www.tkk7.com/titanaly/archive/2009/08/11/290696.html</link><dc:creator>涓嶉珮鍏?/dc:creator><author>涓嶉珮鍏?/author><pubDate>Tue, 11 Aug 2009 09:47:00 GMT</pubDate><guid>http://www.tkk7.com/titanaly/archive/2009/08/11/290696.html</guid><wfw:comment>http://www.tkk7.com/titanaly/comments/290696.html</wfw:comment><comments>http://www.tkk7.com/titanaly/archive/2009/08/11/290696.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/titanaly/comments/commentRss/290696.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/titanaly/services/trackbacks/290696.html</trackback:ping><description><![CDATA[<<span id="m6o8c4g" class="hilite1">c3p0</span>-config> <br />   <default-config> <br /> <!--褰撹繛鎺ユ睜涓殑榪炴帴鑰楀敖鐨勬椂鍊?span class="hilite1">c3p0</span>涓嬈″悓鏃惰幏鍙栫殑榪炴帴鏁般侱efault: 3 --> <br /> <property name="acquireIncrement">3</property> <br /> <br /> <!--瀹氫箟鍦ㄤ粠鏁版嵁搴撹幏鍙栨柊榪炴帴澶辮觸鍚庨噸澶嶅皾璇曠殑嬈℃暟銆侱efault: 30 --> <br /> <property name="acquireRetryAttempts">30</property> <br /> <br /> <!--涓ゆ榪炴帴涓棿闅旀椂闂達紝鍗曚綅姣銆侱efault: 1000 --> <br /> <property name="acquireRetryDelay">1000</property> <br /> <br /> <!--榪炴帴鍏抽棴鏃墮粯璁ゅ皢鎵鏈夋湭鎻愪氦鐨勬搷浣滃洖婊氥侱efault: false --> <br /> <property name="autoCommitOnClose">false</property> <br /> <br /> <!--<span id="igqaiaq" class="hilite1">c3p0</span>灝嗗緩涓寮犲悕涓篢est鐨勭┖琛紝騫朵嬌鐢ㄥ叾鑷甫鐨勬煡璇㈣鍙ヨ繘琛屾祴璇曘傚鏋滃畾涔変簡榪欎釜鍙傛暟閭d箞 <br />   灞炴referredTestQuery灝嗚蹇界暐銆備綘涓嶈兘鍦ㄨ繖寮燭est琛ㄤ笂榪涜浠諱綍鎿嶄綔錛屽畠灝嗗彧渚?span class="hilite1">c3p0</span>嫻嬭瘯 <br />   浣跨敤銆侱efault: null--> <br /> <property name="automaticTestTable">Test</property> <br /> <br /> <!--鑾峰彇榪炴帴澶辮觸灝嗕細寮曡搗鎵鏈夌瓑寰呰繛鎺ユ睜鏉ヨ幏鍙栬繛鎺ョ殑綰跨▼鎶涘嚭寮傚父銆備絾鏄暟鎹簮浠嶆湁鏁?<br />   淇濈暀錛屽茍鍦ㄤ笅嬈¤皟鐢╣etConnection()鐨勬椂鍊欑戶緇皾璇曡幏鍙栬繛鎺ャ傚鏋滆涓簍rue錛岄偅涔堝湪灝濊瘯 <br />   鑾峰彇榪炴帴澶辮觸鍚庤鏁版嵁婧愬皢鐢蟲槑宸叉柇寮騫舵案涔呭叧闂侱efault: false--> <br /> <property name="breakAfterAcquireFailure">false</property> <br /> <br /> <!--褰撹繛鎺ユ睜鐢ㄥ畬鏃跺鎴風璋冪敤getConnection()鍚庣瓑寰呰幏鍙栨柊榪炴帴鐨勬椂闂達紝瓚呮椂鍚庡皢鎶涘嚭 <br />   SQLException,濡傝涓?鍒欐棤闄愭湡絳夊緟銆傚崟浣嶆縐掋侱efault: 0 --> <br /> <property name="checkoutTimeout">100</property> <br /> <br /> <!--閫氳繃瀹炵幇ConnectionTester鎴朡ueryConnectionTester鐨勭被鏉ユ祴璇曡繛鎺ャ傜被鍚嶉渶鍒跺畾鍏ㄨ礬寰勩?<br />   Default: com.mchange.v2.<span id="qqiissk" class="hilite1">c3p0</span>.impl.DefaultConnectionTester--> <br /> <property name="connectionTesterClassName"></property> <br /> <br /> <!--鎸囧畾<span id="s4uwu44" class="hilite1">c3p0</span> libraries鐨勮礬寰勶紝濡傛灉錛堥氬父閮芥槸榪欐牱錛夊湪鏈湴鍗沖彲鑾峰緱閭d箞鏃犻渶璁劇疆錛岄粯璁ull鍗沖彲 <br />   Default: null--> <br /> <property name="factoryClassLocation">null</property> <br /> <br /> <!--Strongly disrecommended. Setting this to true may lead to subtle and bizarre bugs. <br />   錛堟枃妗e師鏂囷級浣滆呭己鐑堝緩璁笉浣跨敤鐨勪竴涓睘鎬?-> <br /> <property name="forceIgnoreUnresolvedTransactions">false</property> <br /> <br /> <!--姣?0縐掓鏌ユ墍鏈夎繛鎺ユ睜涓殑絀洪棽榪炴帴銆侱efault: 0 --> <br /> <property name="idleConnectionTestPeriod">60</property> <br /> <br /> <!--鍒濆鍖栨椂鑾峰彇涓変釜榪炴帴錛屽彇鍊煎簲鍦╩inPoolSize涓巑axPoolSize涔嬮棿銆侱efault: 3 --> <br /> <property name="initialPoolSize">3</property> <br /> <br /> <!--鏈澶х┖闂叉椂闂?60縐掑唴鏈嬌鐢ㄥ垯榪炴帴琚涪寮冦傝嫢涓?鍒欐案涓嶄涪寮冦侱efault: 0 --> <br /> <property name="maxIdleTime">60</property> <br /> <br /> <!--榪炴帴姹犱腑淇濈暀鐨勬渶澶ц繛鎺ユ暟銆侱efault: 15 --> <br /> <property name="maxPoolSize">15</property> <br /> <br /> <!--JDBC鐨勬爣鍑嗗弬鏁幫紝鐢ㄤ互鎺у埗鏁版嵁婧愬唴鍔犺澆鐨凱reparedStatements鏁伴噺銆備絾鐢變簬棰勭紦瀛樼殑statements <br />   灞炰簬鍗曚釜connection鑰屼笉鏄暣涓繛鎺ユ睜銆傛墍浠ヨ緗繖涓弬鏁伴渶瑕佽冭檻鍒板鏂歸潰鐨勫洜绱犮?<br />   濡傛灉maxStatements涓巑axStatementsPerConnection鍧囦負0錛屽垯緙撳瓨琚叧闂侱efault: 0--> <br /> <property name="maxStatements">100</property> <br /> <br /> <!--maxStatementsPerConnection瀹氫箟浜嗚繛鎺ユ睜鍐呭崟涓繛鎺ユ墍鎷ユ湁鐨勬渶澶х紦瀛榮tatements鏁般侱efault: 0  --> <br /> <property name="maxStatementsPerConnection"></property> <br /> <br /> <!--<span id="qiqqiye" class="hilite1">c3p0</span>鏄紓姝ユ搷浣滅殑錛岀紦鎱㈢殑JDBC鎿嶄綔閫氳繃甯姪榪涚▼瀹屾垚銆傛墿灞曡繖浜涙搷浣滃彲浠ユ湁鏁堢殑鎻愬崌鎬ц兘 <br />   閫氳繃澶氱嚎紼嬪疄鐜板涓搷浣滃悓鏃惰鎵ц銆侱efault: 3--> <br /> <property name="numHelperThreads">3</property> <br /> <br /> <!--褰撶敤鎴瘋皟鐢╣etConnection()鏃朵嬌root鐢ㄦ埛鎴愪負鍘昏幏鍙栬繛鎺ョ殑鐢ㄦ埛銆備富瑕佺敤浜庤繛鎺ユ睜榪炴帴闈?span class="hilite1">c3p0</span> <br />   鐨勬暟鎹簮鏃躲侱efault: null--> <br /> <property name="overrideDefaultUser">root</property> <br /> <br /> <!--涓巓verrideDefaultUser鍙傛暟瀵瑰簲浣跨敤鐨勪竴涓弬鏁般侱efault: null--> <br /> <property name="overrideDefaultPassword">password</property> <br /> <br /> <!--瀵嗙爜銆侱efault: null--> <br /> <property name="password"></property> <br /> <br /> <!--瀹氫箟鎵鏈夎繛鎺ユ祴璇曢兘鎵ц鐨勬祴璇曡鍙ャ傚湪浣跨敤榪炴帴嫻嬭瘯鐨勬儏鍐典笅榪欎釜涓鏄捐憲鎻愰珮嫻嬭瘯閫熷害銆傛敞鎰忥細 <br />   嫻嬭瘯鐨勮〃蹇呴』鍦ㄥ垵濮嬫暟鎹簮鐨勬椂鍊欏氨瀛樺湪銆侱efault: null--> <br /> <property name="preferredTestQuery">select id from test where id=1</property> <br /> <br /> <!--鐢ㄦ埛淇敼緋葷粺閰嶇疆鍙傛暟鎵ц鍓嶆渶澶氱瓑寰?00縐掋侱efault: 300 --> <br /> <property name="propertyCycle">300</property> <br /> <br /> <!--鍥犳ц兘娑堣楀ぇ璇峰彧鍦ㄩ渶瑕佺殑鏃跺欎嬌鐢ㄥ畠銆傚鏋滆涓簍rue閭d箞鍦ㄦ瘡涓猚onnection鎻愪氦鐨?<br />   鏃跺欓兘灝嗘牎楠屽叾鏈夋晥鎬с傚緩璁嬌鐢╥dleConnectionTestPeriod鎴朼utomaticTestTable <br />   絳夋柟娉曟潵鎻愬崌榪炴帴嫻嬭瘯鐨勬ц兘銆侱efault: false --> <br /> <property name="testConnectionOnCheckout">false</property> <br /> <br /> <!--濡傛灉璁句負true閭d箞鍦ㄥ彇寰楄繛鎺ョ殑鍚屾椂灝嗘牎楠岃繛鎺ョ殑鏈夋晥鎬с侱efault: false --> <br /> <property name="testConnectionOnCheckin">true</property> <br /> <br /> <!--鐢ㄦ埛鍚嶃侱efault: null--> <br /> <property name="user">root</property> <br /> <br /> <!--鏃╂湡鐨?span class="hilite1">c3p0</span>鐗堟湰瀵笿DBC鎺ュ彛閲囩敤鍔ㄦ佸弽灝勪唬鐞嗐傚湪鏃╂湡鐗堟湰鐢ㄩ斿箍娉涚殑鎯呭喌涓嬭繖涓弬鏁?<br />   鍏佽鐢ㄦ埛鎭㈠鍒板姩鎬佸弽灝勪唬鐞嗕互瑙e喅涓嶇ǔ瀹氱殑鏁呴殰銆傛渶鏂扮殑闈炲弽灝勪唬鐞嗘洿蹇茍涓斿凡緇忓紑濮?<br />   騫挎硾鐨勮浣跨敤錛屾墍浠ヨ繖涓弬鏁版湭蹇呮湁鐢ㄣ傜幇鍦ㄥ師鍏堢殑鍔ㄦ佸弽灝勪笌鏂扮殑闈炲弽灝勪唬鐞嗗悓鏃跺彈鍒?<br />   鏀寔錛屼絾浠婂悗鍙兘鐨勭増鏈彲鑳戒笉鏀寔鍔ㄦ佸弽灝勪唬鐞嗐侱efault: false--> <br /> <property name="usesTraditionalReflectiveProxies">false</property> <br /> <br />     <property name="automaticTestTable">con_test</property> <br />     <property name="checkoutTimeout">30000</property> <br />     <property name="idleConnectionTestPeriod">30</property> <br />     <property name="initialPoolSize">10</property> <br />     <property name="maxIdleTime">30</property> <br />     <property name="maxPoolSize">25</property> <br />     <property name="minPoolSize">10</property> <br />     <property name="maxStatements">0</property> <br />     <user-overrides user="swaldman"> <br />     </user-overrides> <br />   </default-config> <br />   <named-config name="dumbTestConfig"> <br />     <property name="maxStatements">200</property> <br />     <user-overrides user="poop"> <br />       <property name="maxStatements">300</property> <br />     </user-overrides> <br />    </named-config> <br /> </<span id="uoyq8wm" class="hilite1">c3p0</span>-config> <br /> <img src ="http://www.tkk7.com/titanaly/aggbug/290696.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/titanaly/" target="_blank">涓嶉珮鍏?/a> 2009-08-11 17:47 <a href="http://www.tkk7.com/titanaly/archive/2009/08/11/290696.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Communications link failure due to underlying exceptionhttp://www.tkk7.com/titanaly/archive/2009/08/11/290691.html涓嶉珮鍏?/dc:creator>涓嶉珮鍏?/author>Tue, 11 Aug 2009 09:27:00 GMThttp://www.tkk7.com/titanaly/archive/2009/08/11/290691.htmlhttp://www.tkk7.com/titanaly/comments/290691.htmlhttp://www.tkk7.com/titanaly/archive/2009/08/11/290691.html#Feedback0http://www.tkk7.com/titanaly/comments/commentRss/290691.htmlhttp://www.tkk7.com/titanaly/services/trackbacks/290691.html

鏈榪戠殑涓涓」鐩湪Hibernate浣跨敤C3P0鐨勮繛鎺ユ睜錛屾暟鎹簱涓篗ysql銆傚紑鍙戞祴璇曟病鏈夐棶棰橈紝鍦ㄨ繍琛屼腑姣忎釜涓孌甸暱鐨勭┖闂叉椂闂村氨鍑虹幇寮傚父:


  1. org.hibernate.exception.JDBCConnectionException: could not execute query
  2. at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
  3. at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
  4. .......
  5. Caused by: com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:
  6. ** BEGIN NESTED EXCEPTION **
  7. com.mysql.jdbc.CommunicationsException
  8. MESSAGE: Communications link failure due to underlying exception:
  9. ** BEGIN NESTED EXCEPTION **
  10. java.net.SocketException
  11. MESSAGE: Broken pipe
  12. STACKTRACE:
  13. java.net.SocketException: Broken pipe
  14. at java.net.SocketOutputStream.socketWrite0(Native Method)
  15. ......
  16. ** END NESTED EXCEPTION **

鏌ョ湅浜哅ysql鐨勬枃妗o紝浠ュ強Connector/J鐨勬枃妗d互鍙婂湪綰胯鏄庡彂鐜幫紝鍑虹幇榪欑寮傚父鐨勫師鍥犳槸錛?/p>

Mysql鏈嶅姟鍣ㄩ粯璁ょ殑“wait_timeout”鏄?灝忔椂錛屼篃灝辨槸璇翠竴涓猚onnection絀洪棽瓚呰繃8涓皬鏃訛紝Mysql灝嗚嚜鍔ㄦ柇寮璇onnection銆傝繖灝辨槸闂鐨勬墍鍦紝鍦–3P0 pools涓殑connections濡傛灉絀洪棽瓚呰繃8灝忔椂錛孧ysql灝嗗叾鏂紑錛岃孋3P0騫朵笉鐭ラ亾璇onnection宸茬粡澶辨晥錛屽鏋滆繖鏃舵湁Client璇鋒眰connection錛孋3P0灝嗚澶辨晥鐨凜onnection鎻愪緵緇機lient錛屽皢浼氶犳垚涓婇潰鐨勫紓甯搞?/p>

瑙e喅鐨勬柟娉曟湁3縐嶏細

  1. 澧炲姞wait_timeout鐨勬椂闂淬?
  2. 鍑忓皯Connection pools涓璫onnection鐨刲ifetime銆?
  3. 嫻嬭瘯Connection pools涓璫onnection鐨勬湁鏁堟с?

褰撶劧鏈濂界殑鍔炴硶鏄悓鏃剁患鍚堜嬌鐢ㄤ笂榪?縐嶆柟娉曪紝涓嬮潰灝盌BCP鍜孋3P0鍒嗗埆鍋氫竴璇存槑錛屽亣璁緒ait_timeout涓洪粯璁ょ殑8灝忔椂

DBCP澧炲姞浠ヤ笅閰嶇疆淇℃伅:

  • //set to 'SELECT 1'
  • validationQuery = "SELECT 1"
  • //set to 'true'
  • testWhileIdle = "true"
  • //some positive integer
  • timeBetweenEvictionRunsMillis = 3600000
  • //set to something smaller than 'wait_timeout'
  • minEvictableIdleTimeMillis = 18000000
  • //if you don't mind a hit for every getConnection(), set to "true"
  • testOnBorrow = "true"




    C3P0澧炲姞浠ヤ笅閰嶇疆淇℃伅:
     

  • //鑾峰彇connnection鏃舵祴璇曟槸鍚︽湁鏁?/span>
  • testConnectionOnCheckin = true
  • //鑷姩嫻嬭瘯鐨則able鍚嶇О
  • automaticTestTable=C3P0TestTable
  • //set to something much less than wait_timeout, prevents connections from going stale
  • idleConnectionTestPeriod = 18000
  • //set to something slightly less than wait_timeout, preventing 'stale' connections from being handed out
  • maxIdleTime = 25000
  • //if you can take the performance 'hit', set to "true"
  • testConnectionOnCheckout = true
  •  

     

     

    鍦ㄩ厤緗枃浠朵腑瑕佸啓鎴?nbsp; <property name="minPoolSize"><value>1</value></property> 鏍煎紡

    涓嶈兘鍐欐垚 榪欐牱<property name="properties">
       <props>
        <prop key="c3p0.initialPoolSize">1</prop>

       </props>

    </property>

    c3p0涓嶈兘瀹屽叏璇嗗埆!!



    ]]>
    主站蜘蛛池模板: 在线看免费观看AV深夜影院| 国产午夜无码精品免费看动漫| 曰批全过程免费视频网址| 红杏亚洲影院一区二区三区| 成年网站免费入口在线观看| 午夜亚洲国产成人不卡在线| 免费国产污网站在线观看不要卡| 国产精品二区三区免费播放心 | 老司机在线免费视频| 亚洲国产香蕉碰碰人人| 2019中文字幕免费电影在线播放| 亚洲成a人片毛片在线| 亚洲精品免费网站| 亚洲性色AV日韩在线观看| 嫩草视频在线免费观看| 边摸边吃奶边做爽免费视频网站| 亚洲av手机在线观看| 久久精品免费网站网| 久久亚洲国产中v天仙www| 69式互添免费视频| 亚洲欧美成人综合久久久| 亚洲国产激情一区二区三区| 99精品免费视品| 亚洲日本国产精华液| 国产精品嫩草影院免费| 精品国产污污免费网站入口在线| 亚洲av中文无码乱人伦在线播放 | xxxx日本在线播放免费不卡| 久久九九亚洲精品| 国产在线观看片a免费观看| 国产精品亚洲专区无码WEB| 国内精品99亚洲免费高清| 最近中文字幕完整版免费高清| 亚洲人成77777在线观看网| 亚洲av无码成人精品区在线播放 | 免费国产在线观看不卡| 国产在线播放线91免费| 亚洲熟妇无码爱v在线观看| 国产美女无遮挡免费网站| 鲁丝片一区二区三区免费| 亚洲欧美自偷自拍另类视|