捕风之巢

统计

留言簿(3)

java友情链接

阅读排行榜

评论排行榜

事务隔离EJB的使用

业务操作的事务性和事务隔离性,是 J2EE 开发中一个非常重要的功能。
比如,在业务操作中的系统日志和权限日志,就很好的体现了事务原子性和事务隔离的应用。

这里,主要讲一下事务隔离 EJB 的使用。

 为了能在具有事务的 action 中调用不允许事务支持的外部系统 EJB ,如 UMSAO ,增加了事务隔离 EJB

Facade4IsolateService.java
Facade4IsolateServiceEJB.java
Facade4IsolateServiceHome.java
public   interface  Facade4IsolateService  extends  EJBLocalObject… {
    
public   void  getReadPrivList(List permissionList, List userTypeList);
}

public   class  Facade4IsolateServiceEJB  extends  PafaSlsSessionBean  {
    
public   void  getReadPrivList(List permissionList, List userTypeList) {
        … …
    }

}

public   interface  Facade4IsolateServiceHome  extends  EJBLocalHome
{
    
public  Facade4IsolateService create()  throws  CreateException;
}


需要在相关文件中配置:

biz-context.xml
"ejb/test/Facade4IsolateService"在weblogic-ejb-jar.xml中配置,必须同名。

< bean  id ="isolateEJB"         class ="com.test.app.lwc.service.remoting.access.ejb.LocalStatelessSessionProxyFactoryBean"      lazy-init ="true" >
        
< property  name ="jndiName" >
            
< value > ejb/test/Facade4IsolateService </ value >
        
</ property >
        
< property  name ="businessInterface" >
            
< value >
                com.test.biz.service.ejb.Facade4IsolateService
            
</ value >
        
</ property >
        
< property  name ="jndiTemplate" >
            
< ref  local ="jndiTemplate"   />
        
</ property >
    
</ bean >


weblogic-ejb-jar.xml
Facade4IsolateServiceEJB在ejb-jar.xml文件中设置。

< weblogic-enterprise-bean >
        
< ejb-name > Facade4IsolateServiceEJB </ ejb-name >
        
< stateless-session-descriptor >
            
< pool >
                
< max-beans-in-free-pool > 500 </ max-beans-in-free-pool >
                
< initial-beans-in-free-pool > 1 </ initial-beans-in-free-pool >
            
</ pool >
        
</ stateless-session-descriptor >
        
< enable-call-by-reference > True </ enable-call-by-reference >
    
< local-jndi-name > ejb/test/Facade4IsolateService </ local-jndi-name >
    
</ weblogic-enterprise-bean >

ejb-jar.xml

< session  id ="Facade4IsolateServiceEJB" >
            
< ejb-name > Facade4IsolateServiceEJB </ ejb-name >
            
< local-home > com.test.biz.service.ejb.Facade4IsolateServiceHome </ local-home >
            
< local > com.test.biz.service.ejb.Facade4IsolateService </ local >
            
< ejb-class > com.test.biz.service.ejb.Facade4IsolateServiceEJB </ ejb-class >
            
< session-type > Stateless </ session-type >
            
< transaction-type > Container </ transaction-type >
            
< env-entry >
                
< env-entry-name > ejb/BeanFactoryPath </ env-entry-name >
                
< env-entry-type > java.lang.String </ env-entry-type >
                
< env-entry-value > biz-context.xml </ env-entry-value >
            
</ env-entry >
        
</ session >

  设置事务的隔离属性

< container-transaction >
            
< method >
                
< ejb-name > Facade4IsolateServiceEJB </ ejb-name >
                
< method-name > * </ method-name >
              
</ method >
              
< trans-attribute > NotSupported </ trans-attribute >
        
</ container-transaction >

posted on 2007-01-15 16:01 捕风 阅读(416) 评论(0)  编辑  收藏 所属分类: java高级


只有注册用户登录后才能发表评论。


网站导航: