0

我一直在使用EJB参与政府项目。我在部署 EJB 时发现了一些服务器问题。在我的项目中工作的人考虑过从 RequestHandler 和 DAO 之间删除 EJB,并直接从 RequestHandler 调用 DAO 方法。

我对这个问题的论点是,我们怎么能考虑从项目中删除 EJB,而项目本身具有 EJB 的基本框架!

请告知在部署时提高性能所需的正确解决方案,并告知其他提高速度和性能的方法。

4

4 回答 4

1

检查您是在进行远程 EJB 调用还是本地 EJB 调用。在项目中进行远程调用可能会导致性能问题(如果您在本地工作的话)。

于 2012-03-05T12:23:40.527 回答
1

我参与过一些项目,其中删除 EJB 显着提高了性能。

对我来说,使用 EJB 是为了提高生产力和您生成的解决方案的质量,而不是担心性能。通常性能不是一个大问题,但如果是这样,您可以将硬件投入其中并使用云/分布式解决方案,其成本比过去要低。即它可能比花费更多时间开发更便宜。

于 2012-03-05T12:29:59.280 回答
0

如果没有提供任何信息,就不可能回答这个问题。但是,如果您不将 ejb 服务用于任何事情,那么您最好摆脱它们。首先通过 ejb 调用您的 dao 的原因并非不可能是利用 CMT,因此如果您放弃 ejb,您需要通过其他方式处理事务。

一般来说,我的建议是在开始寻找答案之前尝试弄清楚问题/问题到底是什么。

于 2012-03-05T14:09:29.507 回答
0

取决于您在谈论什么EJB。

Session Beans:拥有与否对性能几乎没有任何影响。

实体 Bean:实体 Bean 会对性能产生巨大影响。我会在您处理创建、删除或更新调用 ( C R UD ) 中的复杂事务的情况下使用它们。在我只是调用返回 1000 条记录的查询 (C R UD) 的情况下,我可能会切换到纯 JDBC。

现在很多 JPA/EJB 容器都非常智能,所以也许它们可以将性能问题委托给数据库级别。

例如:如果我返回 10000 个客户对象,并且每个客户有多个地址,我可以在 EJB 层中加入客户和地址对象。如果 EJB 容器足够智能,这可能与在数据库级别创建连接并以视图形式返回数据一样快。

于 2014-11-19T09:27:13.733 回答