不用。
client 没了,bean 就回去了。

解决方案 »

  1.   

    longaway先生:
    没有哦,我在ejbRemove()里放了一条打印语句,
    client没有了,但是打印语句还是没有被调用,说明没有被释放
      

  2.   

    这个bean有一个生命周期,等生命周期到了,它就自动消失了。如果你用的是weblogic服务器,在控制台上可以自己设置生命周期的长度
      

  3.   

    配置文件设的,有:
    <cache-policy-conf>
        <min-capacity>50</min-capacity>
        <max-capacity>1000000</max-capacity>
        <overager-period>300</overager-period>
        <max-bean-age>600</max-bean-age>
        <resizer-period>400</resizer-period>
        <max-cache-miss-period>60</max-cache-miss-period>
        <min-cache-miss-period>1</min-cache-miss-period>
        <cache-load-factor>0.75</cache-load-factor>
    </cache-policy-conf>
      

  4.   

    关于有状态会话BEAN的生命周期很特别,描述如下:
    1:不存在状态---(client调用create())(容器调用Class.newInstance(),setSessionContext(),ejbCreate())--->进入方法就绪状态(此时可以为client服务)--->如果超时则容器将其销毁,回到不存在状态。
               --->如果服务器要节省资源或遇到新事务开启,则释放资源,实例打回到不存在状态。序列化实例字段。(容器调用ejbPassivate()挂起)
               --->事务等结束,重新找会资源,反序列化实例字段。建立一个新的BEAN实例(容器调用ejbActivate()激活)
               --->容器调用ejbRemove()或客户显示调用remove()也会将BEAN打回到不存在状态。BEAN生命周期结束。
    所以,虽然客户没有显示调用remove(),但发生以情况都会将bean回收。