电子商务网站开发前景,电子商务网站建设与管理期末考试试卷a,一家专门做灯的网站,app开发公司选择指南及误区ejb生命周期无状态EJB池和生命周期的概述视图#xff08;注释#xff09;。 对新手有用。 。 。 。 。 EJB池#xff1a;快速概述 EJB实例存储在称为EJB池的位置-这不过是内存中的缓存 。 无状态EJB通常按需实例化#xff0c;即#xff0c;当客户端调用Bean上的方法时。… ejb生命周期 无状态EJB池和生命周期的概述视图注释。 对新手有用。 。 。 。 。 EJB池快速概述 EJB实例存储在称为EJB池的位置-这不过是内存中的缓存 。 无状态EJB通常按需实例化即当客户端调用Bean上的方法时。 但是大多数应用程序服务器还提供了一种功能可以对其进行配置以便在启动时可以使用一定数量的实例例如在Weblogic中填充EJB池这可以通过声明以下内容在weblogic-ejb-jar.xml中进行配置初始空闲池中元素的确切数字。 合并收益 性能提升 客户端不需要等到实例化bean即可为请求提供服务 无状态Bean生命周期 NON_EXISTENT –在这种情况下bean在EJB池中尚不存在尚未实例化 不活动 –在这种状态下EJB实例已经存在于EJB池中但没有为客户端请求提供服务 BUSY忙 –调用EJB实例以服务于客户端请求结果它进入BUSY状态。 为了服务客户端请求将调用一个EJB实例结果该实例进入BUSY状态。 EJB可以从INACTIVE或NON_EXISTENT状态进入BUSY状态 SLSB状态转换 不忙-顾名思义池中选择了不活动的bean来满足客户端调用 NON_EXISTENT变为繁忙 –创建了一个新的EJB实例来满足客户请求 EJB可以从繁忙状态回到不活动状态即在为客户端请求提供服务之后实例将返回到池中 在某些情况下还可以通过配置超时来破坏 EJB实例该超时迫使应用程序服务器删除池中在特定时间间隔内处于非活动状态的所有EJB实例。 但是应用服务器确实要确保EJB实例数量不低于允许的实例的最小数量可配置属性-上面已读 注意 这样做主要是为了节省池中的EJB所消耗的内存量因为它们被缓存在那里。 如果有许多未使用的实例可以将它们删除以优化内存消耗。 容器可以按需创建新实例 客户端在无状态Bean上调用方法时会发生什么 场景1 容器实例化bean的新实例。 可能的原因是 开始时 EJB池中没有bean –没有指示App Server在服务器启动时将默认数量的bean池化 EJB池中的所有Bean都在忙于处理来自客户端的请求但是池中的Bean总数少于允许的最大实例数配置参数 场景2 容器返回了bean的现有实例 可能的原因 池中有一定数量的EJB实例它们没有处于BUSY状态即它们没有参与服务客户机请求。 容器刚刚返回一个这样的实例 池中有一定数量的EJB实例可用但是它们都处于BUSY状态并且池中的bean的最大允许数量已经达到。 客户端应用程序必须等待直到一个这样的bean变为可用并可以满足客户端请求为止 方案3 客户端请求不是服务收到异常 可能的原因 如果已达到池中允许的最大数量的bean并且在特定时间范围内没有任何BUSY bean可用。 翻译自: https://www.javacodegeeks.com/2014/05/stateless-ejbs-pooling-and-lifecycle.htmlejb生命周期