Java軟件報表軟件技術博客

          java報表軟件技術匯總 java報表軟件制作 報表軟件新聞
          posts - 355, comments - 100, trackbacks - 0, articles - 3
             :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理
          靜態并發控制

          應用服務器的承載能力是有限的,當并發的用戶數超過其承載能力,服務器肯定要出錯。因此,控制并發數的能力是必須的。

          最常用的辦法是靜態并發控制,FineReport就提供了這樣的辦法,其基本思路是:在服務器端預先配置允許并發的最大線程數,當請求線程超出了這個數,就采用一種策略保證當前的線程數不超過最大線程數,同時保證等待的線程能進來計算,客戶端不會出現很大的延遲。

          動態并發控制

          當服務器對性能要求比較高的時候,光有靜態并發控制是不夠的。舉例來說,服務器限定了允許最大20個線程訪問,平均每個線程占用內存20m,總計服務器可以接受400M內存的耗用。可是,當正好每個線程訪問的報表數據量都非常小時,也許20個線程加起來耗用的內存不足100M,此時多余的300M內存就浪費了;如果正好20個線程中某幾個線程訪問的報表數據量非常大,有可能一個線程占用的內存就超過100M,此時20個線程加起來占用內存可能遠遠超過400M,直接導致服務器內存溢出。同樣的道理,對于CPU占用也是適用的。

          因此,FineReport報表在提供簡單靜態并發數控制的基礎上,為了合理的資源分配,并保證服務器的安全和流暢性,同時引入了動態并發控制的概念。

          根據服務器硬件和Java虛擬機的配置,在服務器運算的過程中,動態的判斷當前并發訪問的所占用的資源是否達到預設值,如果已經達到預設值,則控制新進訪問線程。

          這種動態并發控制,和簡單的并發數控制結合使用,更加靈活,更加合理。

          緩存報表執行結果

          在并發訪問的機制下,經常出現同一報表被不同用戶連續多次重復訪問,此時如果能夠把第一次算出的報表緩存下來,再次訪問時直接從緩存中讀取,則可以大大減少服務器的運算消耗。并且因為節省了報表的執行過程,可以大大加快訪問速度。

          對于帶有參數的報表,當用戶采用相同的參數進行重復訪問時,也可以利用緩存,減少重復的計算。對于帶有不同參數的報表會緩存不同的報表執行結果。因此如果第二次這第一次執行的參數不一樣,報表就會重新計算,并緩存該報表和參數對應的結果報表。因此,對于有參數的報表來說,緩存時還必須識別參數的值。

          打開菜單:服務器|緩存設置,設置報表直接結果緩存參數,如下圖所示

           

           




          評論

          # re: 報表部署配置優化  回復  更多評論   

          2010-07-01 17:23 by 圣光永恒
          頂LZ技術貼,很好用的軟件

          # re: 報表部署配置優化  回復  更多評論   

          2010-07-02 17:18 by 朱向前
          講的還是很有道理的

          # re: 報表部署配置優化  回復  更多評論   

          2010-07-03 17:04 by 何小妖
          @圣光永恒
          FineReport報表是一款純java編寫的、集數據展示(報表)和數據錄入(表單)功能于一身,針對軟件開發商和系統集成商,用于快速構建企業信息系統的中國式Web報表軟件。

          # re: 報表部署配置優化  回復  更多評論   

          2010-07-03 17:05 by 何小妖
          finereport~~~~
          主站蜘蛛池模板: 鹤壁市| 福建省| 临洮县| 旬阳县| 瑞丽市| 吉首市| 安宁市| 泰宁县| 葵青区| 镇江市| 永兴县| 桑植县| 恩施市| 黑水县| 子洲县| 拉孜县| 江油市| 禹城市| 汨罗市| 新余市| 泰顺县| 白沙| 永靖县| 遂溪县| 崇礼县| 昭觉县| 伊金霍洛旗| 邮箱| 新乡市| 永仁县| 卢龙县| 资源县| 沙田区| 宜兴市| 常德市| 南岸区| 金沙县| 砚山县| 横山县| 洛浦县| 拉孜县|