remove的时候做的动作并不是真的把对象删掉了,创建一个ejb对象很费时间,所以一般容器都会有缓存机制,你remove的时候只是把他挂起了

解决方案 »

  1.   

    对于第一个问题 答案是肯定的
    Bean 的创建和清除 工作都是由 容器来完成的
    ===========================================================
    Enterprise Bean 通过以下三种机制之一与容器交互:回调方法、EJBContext 接口或 JNDI。 回调方法: 
    每个 bean 都会实现 EnterpriseBean 接口的子类型,该接口定义了一些方法,称作回调方法。每个回调方法在 bean 的生命周期期间向它提示一个不同事件,当容器要合用某个 bean、将其状态存储到数据库、结束事务、从内存中除去该 bean 等操作时,它将调用这些方法来通知该 bean。回调方法可以让 bean 在事件之前或之后立即执行内部调整。EJBContext: 
    每个 bean 都会得到一个 EJBContext 对象,它是对容器的直接引用。EJBContext 接口提供了用于与容器交互的方法,因此那个 bean 可以请求关于环境的信息,如其客户机的身份或事务的状态,或者 bean 可以获取它自身的远程引用。 Java 命名和目录接口 (JNDI): 
    JNDI 是 Java 平台的标准扩展,用于访问命名系统,如 LDAP、NetWare、文件系统等。每个 bean 自动拥有对某个特定命名系统(称作环境命名上下文 (ENC))的访问权。ENC 由容器管理,bean 使用 JNDI 来访问 ENC。JNDI ENC 允许 bean 访问资源,如 JDBC 连接、其它 Enterprise Bean,以及特定于该 bean 的属性。 
      

  2.   

    如果我在ejbCreate中建立一个数据库的Connection对象
    多个CLIENT端使用我的这个SLSB的时候,由于只有一个SLSB的
    实例,那就是都在共用一个Connnection,这可以吗?
      

  3.   

    不一定,容器并不保证无状态的SessionBean的调用是针对一个EJB实例的,这个问题是针对不同的实现有不同的答案的
      

  4.   

    我知道不一定,所以我才问
    能不能这样使用CONNNECTION?