连接池 - 深入J2EE的连接合用 - 编程入门网
池,则 管理器使用 ManagedConnectionFactory 来创建一个物理(不合用的)连接。
在那种情况下,假定资源适配器供应商实现接口。然而,连接器体系结构并 不指定应用服务器如何实现连接池,而是提供一些指示,例如,根据适配器类型 、服务质量 (QoS) 需求等来划分连接池。 例如,基于即将出现的 EJB 2.0 连接器体系结构的、至企业/旧有系统的 Sun 连接器的产品版 iPlanet Unified Integration Framework Toolkit v 6.0 ,为 EJB 层可能要访问的每个后端系统定义了连接池。一个定期执行的线程监 控池对象的使用和寿命。 EJB 层的设计考虑事项 尽管有了管理连接池的资源管理器,但是还不能保证 EJB 层具有最优性能 -- 还有一些设计考虑事项! 首先,考虑以下 EJB 客户机代码示例,该客户机访问实现连接池的 LDAP 目 录 。
以上做法有什么不妥吗?首先,有状态会话对象 ( NewCustomerBean ) 在 setEntityContext 中打开连接对象,然后持续占用它,直到使用完为止 -- 如 果用户(会话)数量迅速增加,就成为代价相当大的实现。第二,也是更重要的 ,因为连接对象不是序列化的,所以,按照 EJB 1.2 规范,容器可以在钝化时 (例如,将会话 bean 从其活动状态移至 bean 实例池)废弃 bean 实例。 一种替代方法是分别在会话 bean 的 ejbActivate() 和 ejbPassivate() 方 法中获取和释放资源连接。如果没有连接池,代价当然会很高,也不会建议那样 做。然而,有了合用之后,使用该技术,可以用最小的 EJB 层开销来获取和释 放连接。这里的要点在于:除了规范和实现所提供的设施之外,设计选择总是关 键性能决定因素。 第二个考虑事项是有关认证问题的。您可能已经注意到,合用的连接意味着 共享的连接,而共享的连接意味着连接不与特定的认证证书绑定。例如,在 JDBC 2.0 连接中,应用服务器池管理器在启动时,使用一个存储在配置文件中 的认证证书(通常是用户标识/口令)来从数据库管理器请求预设数量的连接。 有时候,那可能不满足应用的安全性策略。LDAP 连接需要将 LDAP 子树与特定 证书绑定,因而也有同样的问题。在那些情况下,一种替代方法可能是使用利用 特定证书建立好的已高速缓存的连接,它可以对相同类型的证书重复使用。这种 方法的不利之处是已高速缓存的连接要保留很长时间。另一种替代方法可能是对 资源使用通用连接,并实现某种应用层安全性。 结束语 在本文中,我根据资源的共享特性和访问资源的 EJB 组件,显示了 J2EE 环 境中连接合用资源的必要。您已看到由 JDBC 2.0、JMS 1.02 和 JNDI 1.2 标准 扩展 API 定义的设施,和供应商对那些 API 接口实现的支持。虽然特定于供应 商的解决方案很健壮,但是对它们的使用却是以 EJB 的可移植性作为代价的。 即将出现的 J2EE Connector Architecture 1.0 解决了该问题,并使资源可插 入,从而使 EJB 层从处理特定于供应商的库中解脱出来。最后,我解释了为什 么您的设计在利用那些合用技术来制作高性能的 J2EE 应用方面扮演着重要角色 。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |