提高EJB性能的本领[Java编程]
本文“提高EJB性能的本领[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
项目举行到这里,开始呈现新的问题.EJB调用是耗时、吃力的.怎么提高EJB的性能?我们为办理这一问题,开始边写边谈论.等到完成了,我才发现,我们所利用的本领总结一下,竟有十条.把提高EJB性能的这些本领总结一下,为今后的项目做参考.
1.用一个Session Bean封装多个Entity Bean,将本来的多个Entity Bean的Remote调用和Local调用封装在一个Session Bean中.所以成立一个ServerFacade,它为多个对象供应统一获得EJB Home和获得对象的接口.ServerFacade为程序要用到的全部EJB的home handle供应缓存,提高拜候JNDI Name的时间,到达提高拜候效率的目的.今后查找JNDI Name的办法都应写在接口里,调用时直接从接口调用.
2.在EJB的Remote接口中利用粗粒度的办法,不举荐利用细粒度办法.
3.假如EJB的Remote接口获得成功,应不再利用Remote接口,而是将Remote接口构造成一个普通的JAVA对象,通过调用普通的JAVA对象的办法来到达削减对网络的拜候.
4.假如你布置EJB客户端和EJB在相同的JVM上,建立利用EJB2.0标准的Local接口替换Remote接口.
5.用"transient"关键字声明不必要的数据变量,替换从前的"public"、"private"等,避免不必要的数据变量占用网络资源.示例:
public class DemoCMP implements EntityBean {
transient EntityContext entCtx;
transient InitialContext initCtx;
public String id;
public String description;
…
}
6.在ejb-jar.xml布置文件中,对Session Bean中非事件的办法,将trans-attribute属性赋为"NotSupported"或"Never"
<ejb-jar>
…
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>abookesessionBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
7. 设置事件的超不时间,在JBoss中,要改正${jboss.home}/server/${jboss.configuration}/conf/jboss-service.xml ,以下所示:
<server>
…
<mbean code="org.jboss.tm.TransactionManagerService"
name="jboss:service=TransactionManager">
<attribute name="TransactionTimeout">300</attribute>
</mbean>
…
</server>
8.当事件锁定数据库的行记录时,事件应超越大概的最小的时间.
以上是“提高EJB性能的本领[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:java写的文件浏览器
- ·下一篇文章:实现javabean的属性拷贝
- ·中查找“提高EJB性能的本领”更多相关内容
- ·中查找“提高EJB性能的本领”更多相关内容