Java GlassFish 4(EJB3)-无状态bean生命周期

Java GlassFish 4(EJB3)-无状态bean生命周期,java,jakarta-ee,glassfish,ejb,Java,Jakarta Ee,Glassfish,Ejb,据了解,无状态EJB有两种状态:不存在和就绪。但这就是关于生命周期的全部内容 我使用glassfish 4,我需要确切地知道 当创建无状态EJB实例时—在域启动时或在我将EJB注入某个点或节点时? 当未使用的无状态EJB被销毁时-在域停止时或在某个空闲时间或之后? 请帮帮我。我认为有必要阅读以下glassfish设置: EJB池设置包括: 初始和最小池大小:池中维护的bean的初始和最小数量。有效值从0到MAX_INTEGER,默认值为8。相应的EJB部署描述符属性是稳定池大小 对于中等负载的系

据了解,无状态EJB有两种状态:不存在和就绪。但这就是关于生命周期的全部内容

我使用glassfish 4,我需要确切地知道

当创建无状态EJB实例时—在域启动时或在我将EJB注入某个点或节点时? 当未使用的无状态EJB被销毁时-在域停止时或在某个空闲时间或之后?
请帮帮我。

我认为有必要阅读以下glassfish设置:

EJB池设置包括:

初始和最小池大小:池中维护的bean的初始和最小数量。有效值从0到MAX_INTEGER,默认值为8。相应的EJB部署描述符属性是稳定池大小

对于中等负载的系统,将此属性设置为大于零的数字。值大于零可确保始终有一个池实例来处理传入请求

最大池大小:可以创建以满足客户端请求的最大连接数。有效值从零到最大整数值,默认值为32。值为零表示池的大小是无限的。这可能意味着JVM堆将被池中的对象填充。对应的EJB部署描述符属性是最大池大小

将此属性设置为代表系统的预期高负载。非常大的池会浪费内存,并会降低系统速度。由于争用,非常小的池也是低效的

Pool Resize Quantity:服务器为缓存提供服务时要创建或删除的bean数。有效值从零到最大整数,默认值为16。相应的EJB部署描述符属性是resizequantity

更改最大池大小时,请确保重新校准池大小调整数量,以保持平衡。通常,最大池大小越大,池大小调整量越大

池空闲超时:允许无状态会话bean、实体bean或消息驱动bean在池中空闲的最长时间。在此之后,如果案例中的bean是无状态会话bean或消息驱动程序bean,则该bean将被销毁。这是对服务器的提示。默认值为600秒。相应的EJB部署描述符属性是池空闲超时(以秒为单位)


如果池中的bean多于最大池大小,则池将按照池空闲超时指定的间隔,以池大小调整数量的步骤返回到初始和最小池大小。如果调整大小的数量太小且空闲超时太大,您将无法看到池足够快地返回到稳定大小。

嗨,我无法告诉您glassfish的详细信息,但您是否尝试过使用注释@PostConstruct、@PreDestroy?@Matej Briškár Hi!在我看来,GF在调用无状态bean时(例如在尝试注入它们时)会创建无状态bean。但我不明白它们是在什么时候和什么条件下被摧毁的。@Matej Briškár我认为PashaTurok是对的。这是如何回答问题的?OP专门询问bean的生命周期,而不是EJB的池