快速业务通道

将Spring和Hibernate与WebSphere Application Server一起使用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
连接共享的策略和约束的详细信息,请参见在 WebSphere Application Server V5 中共享连接。(尽管本文一般适合于在 WebSphere Application Server V5 上使用的所有共享连接,但是连接共享建议仍适用于在 V6.x 上运行的 Hibernate。)

Web 应用程序

可以在 HttpSession 对象中使用和存储 Hibernate 的“长时间对话”会话 ;不过,Hibernate 会话持有活动实例,由于可能需要将会话序列化或将其复制 到其他集群成员,因此将其存储在 HttpSession 中不是可扩展的模式。最好使 用 HttpSession 来存储断开连接的对象(只要它们非常小,即 10KB 到 50KB) ,并且在需要更新时,重新将它们与新的 Hibernate 会话关联起来。这是因为 HttpSession 最适用于书签,而不适用于缓存。在使用智能序列化改进 HttpSession 性能中讨论了如何使 HttpSession 的内存使用率降至最低。与将 HttpSession 用作缓存不同,应该考虑使用 ObjectGrid 或 DistributedObjectCache 之类的 WebSphere 数据缓存技术,这在下一部分进行 介绍。

有关高性能、可扩展应用程序的最佳实践,强烈建议您阅读 Performance Analysis for Java Websites 一书。

在本文发表之际,Hibernate 的识别集群的缓存与 WebSphere Application Server 相结合的行为还没有确定,因此,还不能确定是否支持使用该缓存,我 们对此不做进一步的讨论。因此,需要分布式缓存的客户应当考虑创建使用属性 hibernate.cache.provider_class 实现 org.hibernate.cache.CacheProvider 的类,该属性将采用 WebSphere 中的两个分布式缓存实现中的一个。

集成二级缓存

Hibernate 会话表示工作单元的范围。在 Hibernate 会话的生命周期中, Session 接口管理持久性。通常,它通过保留对单个线程有效的一级缓存实例, 维护它负责的映射实体类实例的可识别性或状态,从而做到这一点。该缓存在工 作单元(会话)完成时消失。还可以将二级缓存配置为在 SessionFactory 的所 有会话之间共享(包括在集群之间共享)。请注意,在 Hibernate 中进行缓存 会导致一些需要解决的问题。第一,对于数据库的外部更改或跨集群更改,无法 确保缓存的一致性(除非使用识别集群的缓存)。第二,其他层(如数据库)可 能已经缓存,从而使 Hibernate 缓存的价值降至最低。在进行应用程序设计时 ,必须认真考虑这些问题,但是这些问题超出了本文的讨论范围。

Hibernate 附带了几个预配置的缓存。在 Hibernate 缓存文档页中可以找到 关于这些缓存的信息。对于只读数据,一个内存缓存可能就足够了。不过,当对 应用程序进行集群并需要识别集群的缓存时,本地只读缓存是不够的。如果需要 分布式缓存,我们建议使用 WebSphere 提供的分布式缓存实现之一。可以将它 们用作 Hibernate 的二级缓存:

DistributedMap/DistributedObjectCache 接口提供了支持 WebSphere v6.x 产品系列的分布式缓存。有关详细信息,请参见将 DistributedMap 和 DistributedObjectCache 接口用于动态缓存。

作为 WebSphere Extended Deployment 产品一部分的 ObjectGrid 提供可扩 展的对象缓存支持。有关详细信息,请参见 ObjectGrid。

在 WebSphere Enterprise Service Bus 和 WebSphere Process Server 中 使用 Hibernate

WebSphere Process Server 和 WebSphere Enterprise Service Bus (ESB) 将 Service Component Architecture (SCA) 和 Service Data Objects (SDO) 用作 SOA 的组装和编程模型。(请参见参考资料,了解关于 SCA 和 SDO 的更 多信息。)SCA 组件不是 Java EE 组件,因此它们没有资源引用,而是依靠服 务和适配器来连接系统。在构建 Java SCA 组件时,不能使用资源引用;因此, SCA 组件不能直接使用 Hibernate。

在这种情况

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号