EJB学习笔记

客户端和EJB容器/服务器交互

 

                 图4-5 客户端和EJB容器的交互示意

  1. 1.在部署期,EJB本地对象将被捆绑在JBoss命名服务的JNDI树上,并被分配一个JNDI名称。
    2.客户端第一次接触JNDI命名服务以获得EJB本地对象。
    3.客户端通过使用EJB 本地对象的Reference来向EJB对象发出请求。
    4.EJB 本地对象创建(或寻找)一个EJB对象并将它的reference 返回给客户端。
    5.客户端获得EJB 对象的reference,并在远程接口中调用相应方法。
    6.容器拦截下方法的调用并将其委派给Bean实例,相应的实例将通过远程接口向客户端返回结果值。
    7.LogInterceptor纪录下调用的日志。
    8.TxInterceptor通过XML部署描述,依循调用方法来决定如何进行管理交易。
    9.SecuirtyInterceptor通过XML部署描述来验证调用是否可以执行。
    10.容器在他调用Bean的商务方法的时候必须有一个实例,EntityInstanceInterceptor通过给予一个主键来调用InstanceCache以此来获得相应的实体Bean实例。
    11.如果缓存中没有和所提供的主键相一致的实例,它会通知InstancePool获得一个空闲的实例来和主键相关联。
    12.InstanceCache 现在要调用PersistenceManager,它通过调用ejbActivate()方法来获得已被激活的实例。
    13.EntitySynchronizationInterceptor被EntityInstanceInterceptor调用,用来处理实例和数据库的同步.它有几个选项,每一个选项定义了一个拦截器,loadEntity()方法将在EntityPersistanceManager中被调用。
    14.ContainerInterceptor是在整个链中最后一个拦截器,它是通过容器本身添加的而不是容器工厂,业务方法的调用现在已经被委托给了EJB实例。
    15.实例实现了一些工作并返回了结果。
    16.EntitySynchronizationInterceptor选择了将目前的实例状态储存进数据库,PersistenceManager的storeEntity()方法将被调用。
    17.实例将被返回入缓存。当交易在运行时被调用,实例会和这个交易锁定以便于在这个交易期间没有别的交易可以使用这个实例。
    18.TxInteceptor依循交易设置处理相应的方法并针对目前的交易选择提交或是回滚。
    19.容器激活返回机制向客户端返回结果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值