回错了,请大家指正!个人理解:
1.首先应搞清一个概念,即j2ee是一个包含了众多技术在内一个技术平台,包括运行j2ee技术的各种应用服务器、web服务器。当然ejb容器也是其中之一。一般没有将ejb容器跟应用服务器进行来格的区分来讲。1个ejb容器中可以部署多个ejb组件,(如果是两个ejb组件的话,一般情况我想还是部署在一个ejb容器中吧,呵呵~~)而一个大的软件系统中也可以有多个这样的ejb容器/应用服务器。
2.理论上,一个session bean在被调用完成后,应用服务器会将它钝化的。也就是把bean实例放回池里,而它的状态信息会被存储起来(会话结束另当别论)。至于这个bean实例是立即返回池中还是拿去应付另一个客户调用,这就要看具体的ejb容器的策略了。

解决方案 »

  1.   

    2.状态session bean在方法现成状态下,能不能在一个客户调用完后,给其他客户调用?他是不是在方法现成池里呢?如果容器在释放资源的时候,把这个状态session bean钝化后,他还会返回这个池吗?“状态session bean在方法现成状态下,能不能在一个客户调用完后,给其他客户调用?”
    是不是在方法现成状态下与某个用户“绑定”了?不能给其他客户,只有在钝化后,才能给其他客户?(要求给个回答)“他是不是在方法现成池里呢?”
    我现在知道了,方法现成在状态session bean里是个状态,只有在无状态session bean里才有所谓的方法现成池。要返回池状态只有容器调用钝化这一种方式。小弟还有个问题,ejb本地的主对象和本地的组件对象的生命周期能不能给个详细的回答?
    我看到在getHandle什么的函数能返回本地的组件对象的引用。有个这样的情况,一个session bean,我将其的handle存在客户端后把他的引用删除,在其后(即保持若干时间,但在不关闭客户端用程序的情况下)调用getHandle(),能找回本地的组件对象的引用么?如果我关闭客户端用程序的情况下,然后再打开一个关闭客户端用程序,还能找回本地的组件对象的引用么?谢谢
      

  2.   

    不对的,请各位指教啊:
    1.我有点不太清楚楼上说的"方法现成池"
    2.不管是session bean 是有状态的还是无状态的,一般来说容器都有它们各自的bean实例池。
    3.在不关闭客户端的情况下,可以利用之前已经持久化的handle找回ejb本地的组件对象的引用。
    至于关闭客户端后,是不是能找回,我就不得而知了。要注意的是,用getHandle拿到句柄后一定先进行持久化,后面才可以找回。
    4.不管是session bean还是entity bean在被一个客户端调用完成后,是可以被其它客户调用。
    其实这完全要看容器当时的情况和容器所采用的服务策略。
      

  3.   

    mosterbaby是我马甲:1.我有点不太清楚楼上说的"方法现成池"
    可能您不太习惯,我也是在wrox的programing ejb中文版上找到的,其实就是无状态的sessionbean的池,因为它只有方法,无状态,不需什么钝化。2.不管是session bean 是有状态的还是无状态的,一般来说容器都有它们各自的bean实例池。
    什么是各自的bean池,比如容器里有一个sessionbean和一个entitybean,就会存在两个bean池吗?