gpt4 book ai didi

java - 即使有资金池,MDB 的生命周期真的是短暂的吗?

转载 作者:太空宇宙 更新时间:2023-11-04 11:53:46 25 4
gpt4 key购买 nike

我有点惊讶地在 Oracle 文档中发现一行内容,指出 MDB 的生命周期相对较短:

Message-driven beans have the following characteristics.

  • They execute upon receipt of a single client message.
  • They are invoked asynchronously.
  • They are relatively short-lived.
  • They do not represent directly shared data in the database, but they can access and update this data.
  • They can be transaction-aware.
  • They are stateless.

http://docs.oracle.com/javaee/6/tutorial/doc/gipko.html#gipmj

假设多边开发银行将被集中起来,这到底意味着什么?与无状态 session bean 相比,是否有任何特定原因更频繁地构造/销毁这些 bean?

最佳答案

可以配置消息驱动池。配置MDB池主要关注的是消息到达率。

MDB 与无状态不同,从某种意义上说,它们旨在监听消息来完成工作并返回 hibernate 状态。另一方面,无状态位于业务层前面,监听来自表示/Web 层的请求,这意味着用户负载很重。

Relatively short lived

我的猜测是每个 EJB 都与一个线程关联,这意味着容器正在为其保留一些资源。当容器需要资源时,理论上的选择是砍掉MDB而不是Stateless。

[更新]

我必须纠正自己,如果您阅读规范,即使对于 session 对象(Steteless/Stateful)也会报告相同的短语相对短暂。虽然实体被详细描述为长期存在:

Can be long-lived (lives as long as the data in the database). The entity and its primary key survive the crash of the EJB container.

If the state of an entity was being updated by a transaction at the time the container crashed, the entity’s state is restored to the state of the last committed transaction when the entity is next retrieved.

很明显,这些短语是用于实体和 session 对象之间的比较。所以,重新假设:

  • session 对象。 (相对短暂)
  • 消息驱动的对象。 (相对短暂)
  • 实体对象。 (可以长寿)

关于java - 即使有资金池,MDB 的生命周期真的是短暂的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41534108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com