@EJB 注入与查找 - 性能问题

2023-12-04

我有一个与使用 @EJB 注释时可能出现的性能问题相关的问题。想象一下以下场景

public class MyBean1 implements MyBean1Remote{
 @EJB
 private MyBean2Remote myBean2;
 @EJB
 private MyBean2Remote myBean3;
 ...
 @EJB
 private MyBean20Remote myBean20;
}  

有一个 bean 对其他 bean 有很多依赖关系。根据 EJB 规范,如果我想将 MyBean1Remote 注入到其他某个 bean,容器必须从其池中获取所有必需的依赖项,将其注入到 MyBean1Remote 中,然后注入对 MyBean1Remote 存根的引用。

因此在以下场景中容器需要保留 20 个 ejb(myBean1 及其 19 个依赖项)

public class MyAnotherBean implement MyAnotherRemote{
  @EJB
  private MyBean1Remote myBean1
}

假设在大多数情况下,我们将仅对 myBean1 的每个业务方法使用单个依赖项。因此,每次我们想要注入该 bean 时,我们都会强制容器保留许多不必要的 EJB。我们还假设我们正在远程 bean 上进行操作,因此容器可能还需要在注入依赖 bean 之前执行一些负载平衡算法。

问题:

  1. 在集群环境中运行时,这不会导致不必要的资源预留和更多的性能问题吗?

  2. 也许旧的 ServiceLocator 可能是更好的解决方案,因为通过这种方法,我们会在真正需要时请求特定的 EJB?


容器不会注入 EJB 实例;它注入一个轻量级容器生成的代理对象的实例,该对象实现所需的接口。

public class MyBean1 implements MyBean1Remote {
   ...
}

public class MyAnotherBean implement MyAnotherRemote {
   @EJB
   private MyBean1Remote myBean1;
}

在您的示例中,MyAnotherBean.myBean1 将注入一个实现 MyBean1Remote 接口的代理对象。

假设一个无国籍的会话 bean(因为您提到了池化),容器不会从方法就绪池中分配实际的 EJB 实例,直到在代理上调用方法为止,并且在代理方法调用返回之前将该实例返回到池中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

@EJB 注入与查找 - 性能问题 的相关文章

  • 如何在 JMeter 中显示实际循环计数

    我们可以通过以下方式显示实际线程 threadNum 实际循环计数有类似的东西吗 您可以使用 jm Thread Group idx 获取当前循环迭代 jm Thread Group idx 请注意 这是 JMeter 5 中一般增强功能的
  • 如何知道Matlab中系统命令执行过程中经过的时间?

    我有一个运行系统脚本的 Matlab 代码 该脚本可能会因命令运行而停止 我想知道是否有一种方法可以让程序知道它是否花费了很长时间并执行其他操作 这是代码 tic status cmdout system iperfcmd The prog
  • Pandas apply 与 np.vectorize 从现有列创建新列的性能

    我正在使用 Pandas 数据框 并希望创建一个新列作为现有列的函数 我还没有看到关于之间速度差异的很好的讨论df apply and np vectorize 所以我想我会在这里问 熊猫apply 功能很慢 根据我的测量 在一些实验中如下
  • WCF 服务 - 启动需要额外时间

    我发现 WCF 服务将需要 8 10 秒来加载第一个命中 之后将需要不到一秒钟的时间 有什么想法吗 可能是由于 NET 的冷启动 您是否考虑过设置IIS 预热模块它在初始请求之前初始化依赖项 来自学习IIS网站 http learn iis
  • vagrant box速度慢,如何改进?

    我们已经为我们的开发盒构建了一个 vagrant box 但我们面临着一些延迟问题 Issues Assetic 手表速度很慢 app dev php 中的整体应用程序访问速度很慢 在 vagrant box 的共享文件夹中使用 查找 命令
  • MongoDB 的优点和缺点? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • EJB 3.0 - 嵌套事务!= 需要新的?

    我刚刚阅读了 掌握 EJB 3 0 的事务章节 10 现在我对嵌套事务感到困惑 书上说 EJB 定义的事务管理器不 支持嵌套事务 它只需要支持扁平交易 站点 278 注释 这个事实不仅在这本书中有描述 我在其他书籍 网站中也发现了这种说法
  • 嵌套 json 到 pandas 非常慢

    我正在尝试转换 321MB将 json 文件嵌套到 pandasDataframe这需要我非常非常很长时间以来 我确信有一种更快的方法可以做到这一点 这是我的代码 数据如下所示 js dict data 0 5 d datetime 201
  • 性能:Matlab 与 Python

    我最近从Matlab to Python 在转换我的一个冗长代码时 我惊讶地发现Python非常慢 我分析并追踪了一个函数占用时间的问题 该函数是从我的代码中的各个位置调用的 作为递归调用的其他函数的一部分 探查器建议300两个地方都调用了
  • 纹理大小的限制?安卓 Open GL ES 2.0

    我想知道可用于任何 Android Opengl Es 2 0 项目的纹理大小是否有任何限制 据我所知 尺寸为 4096x4096 的巨大纹理意义不大 因为它是在小屏幕上渲染的 但是 如果要求是在运行时在许多纹理之间切换怎么办 如果我想要一
  • sprintf 与 String.Format 的性能[重复]

    这个问题在这里已经有答案了 我正在比较 sprintf 用法的性能 并对我所看到的感到有点困扰 我测试了以下 4 个方法 将 ClassWithToString 的实例传递给每个方法 PrintInt 除外 它接收实际的整数值 type C
  • C++:哪个更快 - 在 hashmap 中查找还是在 switch 语句中查找?

    我有一种代码模式 可以将一个整数转换为另一个整数 像这样 int t int value switch value case 1 return const 1 case 3 return const 2 case 4 return cons
  • 如何测量 Storm 拓扑中的延迟和吞吐量

    我正在通过示例学习 StormExclamationTopology https github com nathanmarz storm starter blob master src jvm storm starter Exclamati
  • C 中每 N 个元素中出现次数最多的元素

    我有一个大小为 0 8388608 的大数组 A 其中包含 相对较小 的整数 A i 0 131072 我想找到每个 N 32 个元素中最常出现的元素 什么会更快 A 创建一个大小为131072的关联数组B 迭代32个元素 递增B A i
  • 从高斯分布中采样随机值的最快方法是什么?

    The Box Muller 变换 http en wikipedia org wiki Box E2 80 93Muller transform 是一种从高斯分布中采样随机值的优雅且性能合理的方法 我正在寻找一种用 C 编写 清晰的更快方
  • 我应该测试是否等于 1 还是不等于 0?

    前几天我在这里编码 写了几个 if 语句 其中的整数总是要么0 or 1 实际上充当bools 我问自己 当检测结果呈阳性时 哪个更好 测试int 1 or int 0 例如 给定一个 intn 如果我想测试是否是true 我应该使用n 1
  • Haskell 乘加运算的数学性能

    我正在用 Haskell 编写一个游戏 我当前在 UI 上的传递涉及大量几何图形的程序生成 我目前专注于识别一项特定操作的性能 C ish 伪代码 Vec4f multiplier addend Vec4f vecList for int
  • 在方法之间重用PreparedStatement?

    We all know https stackoverflow com questions 2467125 reusing a preparedstatement multiple times that https stackoverflo
  • 将 HTML 字符串加载到 UIWebView 中的延迟

    我在导航控制器中有两个视图控制器 第一个视图控制器有一个带有按钮的菜单 按下此按钮将移动到第二个视图控制器并将 html 字符串加载到 UIWebView 中 没有其他东西被加载到 webview 中 只是一个简单的 NSString 其中
  • .Net 4.0 应用程序在 64 位上比 32 位慢(分析和可能的解决方案)(应用程序正在使用 NetAdvantage)

    我们已经用 VB NET 4 0 VS2010 编写了 NET 应用程序 并使用设置为调试和发布配置的 AnyCPU 设置的所有项目进行编译 我们注意到 当此应用程序在 64 位环境中运行 在 Windows Server 2003 R2

随机推荐

  • 在 Hibernate 中持久化 LinkedList

    我试图保留一个具有 LinkedList 属性的类 但似乎无法正确执行 这是我的代码和映射 import java util LinkedList public class Stuff implements java io Serializ
  • 强制刷新到 Observable.Buffer c#

    有没有办法强制 Observable Buffer 在缓冲时间结束之前刷新 在示例中 mSubscription mFluxObservable Buffer new TimeSpan 0 0 1 30 Subscribe o gt sav
  • App Store (iTunes Connect) 的 512x512 图像,Apple 会像在手机上那样进行圆角处理吗?

    将 iPhone 应用程序提交到 iTunes Connect 进行 AppStore 分发后 他们会要求提供 512x512 像素的图像 以下是提交位置旁边的内容 将在 App Store 上使用的应用程序图标的大版本 它必须至少为 72
  • 如何使用gekko估计FOPDT方程中的theta值?

    我正在尝试使用 GEKKO 来拟合某个数据集 使用 FOPDT 优化方法来估计 k tau 和 theta 我看到了使用 odeint 的示例https apmonitor com pdc index php Main FirstOrder
  • HIBERNATE - JPA2 - H2 - 按键查询@ElementCollections HashMap

    我正在使用 hibernate entitymanager 3 6 4 Final 和 h2 数据库 1 3 155 我正在使用 H2Dialect 我在按 ElementCollection 中的元素过滤记录时遇到问题 这是我的实体 En
  • BackReference 使用带有 Unicode 的 Python 正则表达式

    我使用 Python 2 7 使用 Google App Engine 以下是代码片段 coding utf 8 KEYWORD u 英語 URL u http www google com content u 和製英語 日本 作 英語風
  • 程序中得到意外的输出

    这是代码 String sql 1 select emp id password from regid ResultSet rs st executeQuery sql 1 while rs next if employee equals
  • 并行调用 async/await 函数

    据我了解 在 ES7 ES2016 中放置了多个await代码中的 的工作方式与链接类似 then 带有承诺 这意味着它们将一个接一个地执行 而不是并行执行 例如 我们有这样的代码 await someCall await anotherC
  • 使用 vkEnumerateInstanceVersion 获取准确的 Vulkan API 版本

    我在用vkEnumerateInstanceVersion获取 vulkan api 版本并将其传递给VkApplicationInfo结构 我可以轻松区分VK VERSION 1 0 and VK VERSION 1 1 query th
  • 取最近N天的平均值

    我有这个数据框 ID Date X 123 Var 456 Var 789 Var A 16 07 19 3 777 250 810 A 17 07 19 9 637 121 529 A 20 07 19 2 295 272 490 A 2
  • 从express/node.js应用程序提供静态文件

    大家好 我是一个新手 最近开始学习node 我学习了一个关于 websockets 的 Heroku 教程 https devcenter heroku com articles node websockets 并针对我正在从事的特定项目进
  • 根据另一列的值将值转换为负数

    我有一个 df 我想在其中转换列中的值b如果列中的相应值为负数a is not NaN 这是我的代码 create a test df df pd DataFrame np array 12 34 67 98 np nan 6 23 45
  • 为什么这个 C++ 线程代码会触发 abort() 错误?

    我正在测试新的 C 11 线程功能 为此 我通过向其构造函数提供 lambda 表达式来启动线程 int main thread t cout lt lt Hello World lt lt endl this thread sleep f
  • 数据库和深复制

    如果我发现自己想要对存储在关系数据库中的对象进行深层复制 我是否一定在架构上做了一些根本性错误的事情 这是我提出的另一个 更详细的 问题的不同角度 但没有得到太多回应复制关系表数据 不必要 我自己已经成功地实现了版本控制方案 基本上 整个图
  • 绝对布局的替代方案?

    是否有一个布局管理器可以提供与绝对定位 但也使自动调整大小成为可能 可以使用相对坐标放置元素的地方吗 GridBagLayout是 Swing 中最灵活的标准布局管理器 它几乎可以实现您需要的任何功能 尽管远没有您想象的那样简单 仅使用相对
  • 非幂等SQL写操作是否受重试策略影响?

    我目前有一个针对 SQL 写入操作的重试策略 我的问题是 如果操作不是幂等的 会有什么影响吗 我一直认为 如果出现异常并重试操作 则意味着最初的尝试没有完成 因此是否幂等并不重要 如果确实重要 我应该在 sql 过程中注意什么以确定它们是否
  • Firebase 按子值搜索

    I have the following structure on my Firebase database 我想按姓名 姓氏或电子邮件搜索用户 但由于我在上面的级别中没有用户密钥 所以我不知道如何实现此目的 我正在进行管理员会话 因此它无
  • 复制 Unity 神秘的界面力量

    Unity3D 有一个这样的界面 对于 MonoBehavior 上的任何组件 您只需执行以下操作 public class LaraCroft MonoBehaviour IPointerDownHandler public void O
  • 将springboot war文件上传到Weblogic 12.2.1.3服务器时出错

    我使用 maven 创建了一个 springboot 项目之战 并做了一些更改以将其部署在 weblogic 上 当我将 war 文件上传到 weblogic 服务器时 它会抛出错误 如下面的屏幕截图所示 我还添加了我的项目的配置详细信息
  • @EJB 注入与查找 - 性能问题

    我有一个与使用 EJB 注释时可能出现的性能问题相关的问题 想象一下以下场景 public class MyBean1 implements MyBean1Remote EJB private MyBean2Remote myBean2 E