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

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

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

    走自己的路

    路漫漫其修遠兮,吾將上下而求索

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      50 隨筆 :: 4 文章 :: 118 評論 :: 0 Trackbacks

    PooledConnectionFactory有兩個屬性maxConnections,maximumActive。咋一看來,用人類的常識理解,maxConnection應(yīng)該表示最大可建的connection數(shù),maximumActive應(yīng)該表示最大活躍的connection數(shù),當pool中的連接數(shù)大于最大活躍數(shù)時,又超過idleTimeout會被回收線程回收到。

    如果是這樣理解的,就大錯特錯了。PooledConnetionFactory的這兩個參數(shù)根本不是這個意思。

    看一下PooledConnectionFactory的組成結(jié)構(gòu):


    注:ConnectionPool其實存儲的就是一個ActivemqConnection,起的名字真是蛋疼。

    更糟的是上面兩個屬性也不是我們想的一樣。maxConnections表示的是LinkedList中connection的數(shù)目。maximumActive表示的是SessionPool中session的最大數(shù)目。IdleTime是Connection的回收時間,回收時也不是多線程的,每次getConnection時,都會檢測是否超時,如果超時,就是立即回收,此時立即重建,真蛋疼。SeesionPool是用Commons-pool實現(xiàn)的。

    上圖的結(jié)構(gòu)表示的是一個PooledConnetion維護了一個Map,Map的Key可以是由username,password決定的, LinkedList維護了一個循環(huán)鏈表的ActivemqConnection。每次從LinkedList中的頭部取出一個AactivemqConnection,然后再添加到尾部,簡單的輪詢式的負載均衡。而這些ActivemqConnection是可以被多線程重用的。Pool實現(xiàn)中也沒有connection是否inactive的檢測機制,因為ActivemqConnection有自己的heartbeat檢測機制。每次發(fā)送或接收時候先從ConnectionPool中取出一個connection,如果Connection都用光了,就會重用在鏈表頭部的Connection的SessionPool,所以一個Connection可能會被多個線程使用,但一個session只會對應(yīng)一個線程,保證上下文隔離性。多線程同享一個物理信道,這需要Activemq有自己的拆包機制,才不會混亂。而上面提到的負載均衡,也沒考慮到session的使用情況,可能我從頭部拿出的connection的session pool已經(jīng)被耗光,而尾部的connection session pool卻很空閑,這樣就要無辜的阻塞等待session。

    這樣看來在我們設(shè)置PooledConnection時,建議有條件的還是需要把maxConnections設(shè)置的大一些。它的默認值是1。maximumActive可以設(shè)的相對小一些,它的默認值是500,這值太大,擔心內(nèi)存溢出。IdleTime有條件的可以設(shè)置的大一些,增加connection的重用時間,默認值是30秒。



    posted on 2010-11-02 08:55 叱咤紅人 閱讀(11592) 評論(2)  編輯  收藏 所屬分類: Other Java and J2EE frameworks

    評論

    # re: 蛋疼的PooledConnectionFactory(activemq-pool)[未登錄] 2010-11-02 09:38 samuel
    果然是這樣的。汗顏 activemq-pool的設(shè)計者。

    不好用,就不用他的了,自己寫一個就是了。  回復(fù)  更多評論
      

    # re: 蛋疼的PooledConnectionFactory(activemq-pool) 2013-09-03 12:10 呂春龍
    我還以為就我一個人覺得這個玩意寫的操蛋!遇到知音了!  回復(fù)  更多評論
      

    主站蜘蛛池模板: 男人的好免费观看在线视频| 黄网站色成年片大免费高清| 国产成人久久AV免费| 亚洲欧洲精品成人久久曰影片 | 午夜小视频免费观看| 久久亚洲精品国产精品婷婷 | 日本免费网站观看| 亚洲国产成人AV网站| 亚洲?V乱码久久精品蜜桃 | 免费网站观看WWW在线观看| 亚洲AV综合色区无码另类小说| 亚欧免费无码aⅴ在线观看| 久久亚洲国产精品成人AV秋霞| 18禁男女爽爽爽午夜网站免费| 亚洲天堂中文字幕在线观看| 免费观看AV片在线播放| 亚洲人AV在线无码影院观看| 又粗又大又长又爽免费视频| a级毛片100部免费观看| 亚洲精品国产福利片| 免费观看黄网站在线播放| 久久精品国产亚洲AV未满十八| 成人亚洲网站www在线观看| 在线观看免费无码视频| 亚洲综合综合在线| 日韩免费视频播播| 视频免费在线观看| 亚洲人成77777在线播放网站不卡| 四虎影视精品永久免费| 国内少妇偷人精品视频免费| 亚洲无线一二三四区| 免费看小12萝裸体视频国产| 日韩电影免费在线观看网站| 亚洲制服丝袜中文字幕| 亚洲午夜精品一级在线播放放| 9420免费高清在线视频| 国产免费无码一区二区| 在线观看亚洲人成网站| 国产免费观看a大片的网站| 你懂的免费在线观看网站| 亚洲精品成a人在线观看☆|