首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java或EJB中的池化概念?

java或EJB中的池化概念?
EN

Stack Overflow用户
提问于 2011-07-02 14:37:06
回答 1查看 553关注 0票数 2

我们在无状态EJB中引入了池化的概念。使用池化的优势是什么?我的理解是,这将节省创建对象的时间。是这样的吗?如果是,在创建对象和从现有池中获取对象时,性能是否有显著差异?除了这个之外,池化还有其他用途吗?

EN

回答 1

Stack Overflow用户

发布于 2013-12-09 00:27:08

池化对于共享有限的资源(例如数据库连接)和重用创建和/或销毁代价高昂的对象非常有用。当与EJB结合使用时,它可以限制整个系统的负载,这在运行服务器时非常有用。根据类似question中的公认答案,它还有助于提高线程安全性。

在注入各种资源和其他EJB (带有注释)时,创建(或设置)EJB的成本可能很高,根据我的经验,这是一种常见的情况。但是,例如,即使对于池化的question,JBoss似乎也会重复此过程(请参阅类似EJB中Tom Anderson的答案)。

如果池中的公共EJB经常被注入到其他EJB中,那么当系统真正繁忙时,其他EJB将不得不等待公共EJB变为可用。然后,池中的公共EJB充当共享的有限资源。缺点是,当通用EJB不可用时(有时是由基础设施中的hickup引起的),您可能会在意想不到的地方获得超时异常(例如,50秒后)。

我有一些使用JBoss服务器的经验,它具有用于无状态EJB的池机制。在该JBoss服务器中有一个公共的EJB,它经常使用数据库连接。如果大量工作同时进入系统,负载将会很高,但会受到池化机制的限制。如果池机制对最大负载的限制过大,则可以通过增加最大池大小来增加最大负载。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6555504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档