fkjava

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            49 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

           

          EJB調用是耗時、費力的。怎么提高EJB的性能?我們為解決這一問題,開始邊寫邊討論。等到完成了,我才發現,我們所應用的技巧總結一下,竟有十條。把提高EJB性能的這些技巧總結一下,為以后的項目做參考。

          1.用一個Session Bean封裝多個Entity Bean,將原來的多個Entity BeanRemote調用和Local調用封裝在一個Session Bean中。所以建立一個ServerFacade,它為多個對象提供統一獲取EJB Home和獲取對象的接口。ServerFacade為程序要用到的所有EJBhome handle提供緩存,提高訪問JNDI Name的時間,達到提高訪問效率的目的。以后查找JNDI Name的方法都應寫在接口里,調用時直接從接口調用。

          2.EJBRemote接口中使用粗粒度的方法,不推薦使用細粒度方法。

          3.如果EJBRemote接口獲取成功,應不再使用Remote接口,而是將Remote接口構造成一個一般的Java對象,通過調用一般的JAVA對象的方法來達到減少對網絡的訪問。

          4.如果你部署EJB客戶端和EJB在相同的JVM上,建設使用EJB2.0規范的Local接口代替Remote接口。

          5."transient"關鍵字聲明不必要的數據變量,替代以前的"public""private"等,避免不必要的數據變量占用網絡資源。

          6.ejb-jar.XML部署文件中,對Session Bean中非事務的方法,將trans-attribute屬性賦為"NotSupported""Never"

          7.設置事務的超時時間,在JBoss中,要修改${jboss.home}/server/${jboss.configuration}/conf/jboss-service.xml

          8.當事務鎖定數據庫的行記錄時,事務應跨越可能的最小的時間。

          9.調整EJB 服務器的各種參數,如線程數、EJB池大小、連接池參數等。以在JBoss修改連接池參數為示例,進行說明。如果JBossMySQL相連,配置${jboss.home}/server/${jboss.configuration}/deploy/mysql-service.xml,來修改連接池參數,包括MinSizeMaxSizeBlockingTimeoutMillisIdleTimeoutMinutesCriteria等,各參數的含義如下所示:

          1)MinSize :連接池保持的最小連接數。

          2)MaxSize :連接池保持的最大連接數。

          3)BlockingTimeoutMillis :拋出異常前最大的等待連接時間。

          4)IdleTimeoutMinutes :關閉連接前連接空閑的最大時間。

          5)Criteria :有ByContainerAndApplicationByContainerByApplicationByNothing等值。

          10.對于數據庫事務,應選擇較低成本的事務等級,避免造成壞數據。遞增成本的事務等級包括:

          TRANSACTION_READ_UNCOMMITED,

          TRANSACTION_READ_COMMITED,

          TRANSACTION_REPEATABLE_READ,

          TRANSACTION_SERIALIZABLE

          轉自瘋狂軟件

          posted on 2012-05-08 15:52 瘋狂軟件 閱讀(119) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 垫江县| 夏河县| 汉阴县| 花莲县| 台江县| 旬阳县| 房山区| 富蕴县| 浦北县| 宁海县| 连南| 威宁| 阳朔县| 新建县| 周至县| 黄石市| 通渭县| 胶南市| 察雅县| 盖州市| 新余市| 河源市| 丹阳市| 岳池县| 甘德县| 吉林市| 谷城县| 泌阳县| 定日县| 思茅市| 新源县| 定边县| 洛隆县| 原阳县| 诸城市| 罗城| 定安县| 治县。| 柳州市| 伊金霍洛旗| 锡林郭勒盟|