自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

提高EJB性能十大技巧

開(kāi)發(fā) 后端
本文敘述為了提高EJB性能,把應(yīng)用的技巧總結(jié)一下一共有十大技巧。

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

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

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

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

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部署文件中,對(duì)Session Bean中非事務(wù)的方法,將trans-attribute屬性賦為"NotSupported"或"Never"

  1. <ejb-jar>   
  2. …   
  3. <assembly-descriptor>   
  4. <container-transaction>   
  5. <method>   
  6. <ejb-name>abookesessionBean</ejb-name>   
  7. <method-name>*</method-name>   
  8. </method>   
  9. <trans-attribute>NotSupported</trans-attribute>   
  10. </container-transaction>   
  11. </assembly-descriptor>   
  12. </ejb-jar> 

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

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

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

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

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

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

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

【編輯推薦】

  1. 配置JBoss如何從數(shù)據(jù)庫(kù)里讀取信息
  2. JBoss Rules的入門(mén)學(xué)習(xí)
  3. 在JBoss下通過(guò)本地接口訪問(wèn)EJB
  4. JBoss的classLoader問(wèn)題
  5. 用Eclipse啟動(dòng)JBoss
責(zé)任編輯:佚名 來(lái)源: 百度博客
相關(guān)推薦

2024-08-06 16:31:32

2014-10-28 16:11:37

AndroidApp性能優(yōu)化

2011-05-11 10:46:51

2009-06-29 19:13:54

VMware ESX虛擬化虛擬機(jī)

2020-07-10 06:10:14

Python開(kāi)發(fā)代碼

2010-05-07 08:59:50

ASP.NET

2010-08-30 13:54:30

CSS

2017-09-08 10:24:26

云存儲(chǔ)平臺(tái)技巧

2012-10-08 09:21:49

jQuery Mobi

2009-08-21 17:11:29

VMware Work

2015-03-19 10:24:21

程序員提高職場(chǎng)價(jià)值提高職場(chǎng)價(jià)值技巧

2009-03-12 09:35:30

求職簡(jiǎn)歷技巧

2016-10-12 09:02:28

大數(shù)據(jù)存儲(chǔ)技巧

2011-06-14 18:54:25

網(wǎng)站流量

2013-09-26 14:42:28

2016-11-09 21:33:29

2021-05-12 09:00:00

WebReactJavaScript

2016-10-18 10:22:21

測(cè)試移動(dòng)

2010-05-19 10:47:21

2023-02-21 14:55:40

React開(kāi)發(fā)技巧
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)