<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dev Zone
    偏執(zhí)狂才能生存,人生/事業(yè)的路上需要再堅持一下
    但是又怎么說得清堅持的結果,道得盡堅持的含義
    1. sleepTime:PoolKeeper檢測時間間隔
    2. lifeTime:連接生命周期(上次訪問時間-當前時間)
    3. deadLockMaxWait(:超過最大連接之后的調用getConnection的等待時間
    4. deadLockRetryWait:超過最大連接之后的調用getConnection等待,在等待中重試的時間間隔
    5. maxSize:連接池的容量

    deald-lock-max-wait和dead-lock-retry-wait的設置要小心,這兩個參數(shù)的意義見我的另一個日志:XAPool原理簡要分析。dead-lock-retry-wait最好設置得比較短,這樣不至于線程等待很長時間,dead-lock-max-wait的設置不要太長,一般是設置成比最高并發(fā)數(shù)下應用處理時間稍長一點,設置過短在大并發(fā)下會造成提交實效導致應用數(shù)據(jù)的丟失,因為超過xapool在超過等待dead-lock-max-wait之后會異常:沒有可用連接分配。

     

    sleepTime是對Connection idle檢測線程PoolKeeper的檢測時間間隔設置。PoolKeeper會定時監(jiān)測是否存在超過lifeTime的connection然后釋放掉這些connection。不過PoolKeeper在運行的時候會檢查running屬性,以下是它的run方法中的代碼片斷:

      while (! running && !Thread.interrupted()) {
          System.err.println(
    "!!!!"+System.currentTimeMillis());
       
    try {
        synchronized (
    this) {
         wait(
    this.sleepTime); // wait for timeout ms before attack
        }
       } 
    catch (InterruptedException e) {
                                    
    break;
       }
       
    this.pool.cleanUp(); // clean up the Pool and reallocate objects
      }
      
    // release the pool.
      this.pool = null;

    之所以把這段代碼粘出來,是因為running屬性默認是true,而GenericPool在啟動PookKeeper的時候并沒有改變這個值,因此PookKeeper永遠不會運行起來。也許這是xapool的另一個bug:)

    連接池的容量設置是有講究的,一般至少等于AppServer(或者叫WEB 容器)的最大并發(fā)數(shù)。因為xapool在達到maxSize的時候,如果還有線程需要連接,會進入等待狀態(tài)(通過deadLockMaxWait設置最大等待時間,deadLockRetryWait設置等待間隔),在大并發(fā)下會造成App Server容器線程池滿,Server在一段時間內(deadLockMaxWait)停止響應的現(xiàn)象。將連接池的容量設置成大于App Server的最大并發(fā)數(shù),可以盡可能的避免這種情況。App Server的最大并發(fā)數(shù)=App Server的線程池線程數(shù),Tomcat默認是75,Websphere默認是50。集群環(huán)境下,集群的最大并發(fā)數(shù)=每臺集群服務器的最大并發(fā)數(shù)之和

    posted on 2005-05-17 22:06 dev 閱讀(2396) 評論(1)  編輯  收藏
    Comments
    • # re: XAPool的參數(shù)設置
      路人甲
      Posted @ 2008-11-04 09:22
      XA1.5的這段代碼已修改了:

      public void run() {
      while (running && !Thread.interrupted()) {
      try {
      synchronized (this) {
      wait(this.sleepTime); // wait for timeout ms before attack
      }
      } catch (InterruptedException e) {
      break;
      }
      this.pool.cleanUp(); // clean up the Pool and reallocate objects
      }
      // release the pool.
      this.pool = null;
      }  回復  更多評論   

    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     
     
    主站蜘蛛池模板: 成年丰满熟妇午夜免费视频| 无码人妻一区二区三区免费手机 | 亚洲精品mv在线观看| a毛片久久免费观看| 亚洲精品乱码久久久久久自慰| 香蕉免费在线视频| 亚洲成a人片77777老司机| 在线观看免费中文视频| 亚洲另类自拍丝袜第1页| 成人免费午夜无码视频 | 日韩精品免费一线在线观看| 亚洲AV无码之日韩精品| 成人妇女免费播放久久久| 国产亚洲人成网站观看| 99久久99久久精品免费观看 | 亚洲精品A在线观看| 中文字幕免费人成乱码中国| 亚洲国产精品不卡在线电影| 天天影院成人免费观看| 亚洲精品宾馆在线精品酒店| 亚洲成a人片在线观看老师| 野花香在线视频免费观看大全| 亚洲欧洲精品视频在线观看| 天天干在线免费视频| 一个人看的在线免费视频| 久久亚洲国产欧洲精品一| 日本阿v免费费视频完整版| 亚洲av综合日韩| 久久久久久久尹人综合网亚洲| 免费精品国产自产拍在| 老司机午夜性生免费福利| 亚洲AV日韩AV永久无码久久| 青青青国产免费一夜七次郎| 久久成人永久免费播放| 亚洲youjizz| 亚洲综合伊人久久综合| 成人性生交大片免费看无遮挡| 一级女性全黄生活片免费看| 亚洲福利一区二区精品秒拍| 日韩精品成人亚洲专区| 91麻豆最新在线人成免费观看|