日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
提高EJB性能十大技巧

EJB調(diào)用是耗時、費力的。怎么提高EJB性能?我們?yōu)榻鉀Q這一問題,開始邊寫邊討論。等到完成了,我才發(fā)現(xiàn),我們所應(yīng)用的技巧總結(jié)一下,竟有十條。把提高EJB性能的這些技巧總結(jié)一下,為以后的項目做參考。

創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)站營銷推廣,國際域名空間,網(wǎng)站空間,成都網(wǎng)站托管有關(guān)企業(yè)網(wǎng)站制作方案、改版、費用等問題,請聯(lián)系創(chuàng)新互聯(lián)。

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

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

3.如果EJB的Remote接口獲取成功,應(yīng)不再使用Remote接口,而是將Remote接口構(gòu)造成一個一般的Java對象,通過調(diào)用一般的JAVA 對象的方法來達到減少對網(wǎng)絡(luò)的訪問。

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

5.用"transient"關(guān)鍵字聲明不必要的數(shù)據(jù)變量,替代以前的"public"、"private"等,避免不必要的數(shù)據(jù)變量占用網(wǎng)絡(luò)資源。示例:

  1. public class DemoCMP implements EntityBean {   
  2. transient EntityContext entCtx;   
  3. transient InitialContext initCtx;   
  4. public String id;   
  5. public String description;   
  6. …   

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

  1.    
  2. …   
  3.    
  4.    
  5.    
  6. abookesessionBean   
  7. *   
  8.    
  9. NotSupported   
  10.    
  11.    
  12.  

7.設(shè)置事務(wù)的超時時間,在JBoss中,要修改${jboss.home}/server/${jboss.configuration}/conf /jboss-service.xml ,如下所示:

 
 
 
  1.    
  2. …   
  3.  code="org.jboss.tm.TransactionManagerService"   
  4. name="jboss:service=TransactionManager">   
  5.  name="TransactionTimeout">300   
  6.    
  7. …   
  8.  

8.當(dāng)事務(wù)鎖定數(shù)據(jù)庫的行記錄時,事務(wù)應(yīng)跨越可能的最小的時間。

9.調(diào)整EJB 服務(wù)器的各種參數(shù),如線程數(shù)、EJB池大小、連接池參數(shù)等。以在JBoss修改連接池參數(shù)為示例,進行說明。如果JBoss和MySQL相連,配置${jboss.home}/server/${jboss.configuration}/deploy/mysql-service.xml,來修改連接池參數(shù),包括MinSize、MaxSize、BlockingTimeoutMillis、IdleTimeoutMinutes、 Criteria等,各參數(shù)的含義如下所示:
◆MinSize :連接池保持的最小連接數(shù)。
◆MaxSize :連接池保持的最大連接數(shù)。
◆BlockingTimeoutMillis :拋出異常前最大的等待連接時間。
◆IdleTimeoutMinutes :關(guān)閉連接前連接空閑的最大時間。
◆Criteria :有ByContainerAndApplication、ByContainer、ByApplication和ByNothing等值。
下面是一個例子:

 
 
 
  1.  optional-attribute-name="ManagedConnectionPool">   
  2.    
  3.  code="org.jboss.resource.connectionmanager.JBossManagedConnectionPool"   
  4. name="jboss.jca:service=LocalTxPool,name=MySqlDS">   
  5.  name="MinSize">0   
  6.  name="MaxSize">50   
  7.  name="BlockingTimeoutMillis">5000   
  8.  name="IdleTimeoutMinutes">15   
  9.  name="Criteria">ByContainer   
  10.    
  11.  

10.對于數(shù)據(jù)庫事務(wù),應(yīng)選擇較低成本的事務(wù)等級,避免造成壞數(shù)據(jù)。遞增成本的事務(wù)等級包括:
TRANSACTION_READ_UNCOMMITED;
TRANSACTION_READ_COMMITED;
TRANSACTION_REPEATABLE_READ;
TRANSACTION_SERIALIZABLE;

以上是提高EJB性能的技巧,為以后的項目做參考。

【編輯推薦】

  1. 配置JBoss如何從數(shù)據(jù)庫里讀取信息
  2. JBoss Rules的入門學(xué)習(xí)
  3. 在JBoss下通過本地接口訪問EJB
  4. JBoss的classLoader問題
  5. 用Eclipse啟動JBoss

名稱欄目:提高EJB性能十大技巧
標(biāo)題路徑:http://www.dlmjj.cn/article/djppdgs.html