配置WebLogic 8.1和Hibernate 3.0

文章工具
推薦給朋友 推薦給朋友
打印文章 打印文章
時間:2005-07-29
 作者:Prakash Malani
 瀏覽次數: 4445
 本文關鍵字:WebLogic 8.1Hibernate 3.0configuringadvanced configuration配置高級配置

我的 前一篇文章 描述了在 WebLogic 8.1 上配置 Hibernate 3.0 的具體步驟。文章引起了巨大的反響。在本文中,我將介紹高級配置,其中 Hibernate 使用了 WebLogic 的 Java 命名和目錄接口 (Java Naming and Directory Interface , JNDI) 、 Java 事務 API (Java Transaction API , JTA) 、 Java 連接器架構 (Java Connector Architecture , JCA) 和 Java 管理擴展 (Java Management extension , JMX) 實現。

我們先從 JNDI 開始。通過在 hibernate.cfg.xml 文件中命名 SessionFactory , Hibernate 使 SessionFactory 在 JNDI 中可用。呀!這在 WebLogic 中不起作用。正如 此處 所描述的, WebLogic JNDI 與 Hibernate 配合得不是很好。有多個工作區。工作區手動將 SessionFactory 綁定到 JNDI 中,方法是通過 WebLogic startup 類或者啓動 servlet 。但是,我不能使 SessionFactory 實例從 JNDI 安全返回。因此,折衷一下,爲 SessionFactory 向 HibernateUtil 實用類添加一個存取器。

爲了配置 Hibernate 使用 JTA ,我在 hibernate.cfg.xml 文件中配置了 transaction.factory_class 。有兩個選項: org.hibernate.transaction.JTATransactionFactory 和 org.hibernate.transaction.CMTTransactionFactory 。說明文檔建議,對 Bean 託管事務界定 (Bean Managed Transaction Demarcation , BMTD) bean 使用 JTATransactionFactory ,而對容器託管事務界定 (Container Managed Transaction Demarcation , CMTD) bean 使用 CMTTransactionFactory 。 JTATransactionFactory 似乎更通用些,它既支持 BMTD bean 又支持 CMTD bean 。因此,我配置的是 JTATransactionFactory 。此外,爲了以特定於容器的方式查找事務,我在 hibernate.cfg.xml 文件中配置了 transaction.manager_lookup_class 。藉助於這個配置,我完全不需要使用 Hibernate Transaction API 。

對 Hibernate 的 JCA 支持是實驗性質的,目前還沒有全面應用於 WebLogic 。我可以設想,以後 Hibernate 會被打包爲 Resource ARchive (RAR) 文件。 Hibernate RAR 文件作爲資源適配器部署。適配器使 Session 在 JNDI 中可用。所有的配置元素都是通過資源適配器( xml 文件)配置的,而不是通過 hibernate.cfg.xml 文件或採用其他方法配置。爲什麼在 WebLogic 中要配置 Hibernate 使用 JCA ? JCA 旨在封裝傳統系統的連接、事務等等,並使它們在 J2EE 中可用。但是,由於 Hibernate ,傳統的資源適配器的優勢不能全面體現。一旦 Hibernate 被配置爲資源適配器,特定的應用程序與 Hibernate 的耦合就被削弱了。多個不同的應用程序可以使用同一個 Hibernate 資源適配器。由於當前正在開發的 EJB 3.0 ,這種配置在 EJB 的持久性 API 、 Hibernate 和 Java 數據對象 (Java Data Object , JDO) 的標準化方面的優勢更爲明顯。從理論上講,可以熱部署(或重部署)適配器和改變持久性實現。

Hibernate 附帶 JMX Management Bean (MBean) 實現。我不知道如何使用 JMX 將 Hibernate 部署到 WebLogic 上。 Hibernate 和 WebLogic 使用 JMX 有什麼好處?至少有兩條。一條是部署和重部署。更重要的一條是,可以監控 Hibernate 和獲得的統計信息。從 JMX 控制檯進行運行時監控是所部署的應用程序運行良好的基本保障。

我更新了示例應用程序,可 在此 獲取。(注:需要有 bartsandbox 的免費會員資格。)

下一片文章我將討論 Spring 與 WebLogic 8.1 和 Hibernate 3.0 的集成。
+prakash

原文出處: http://dev2dev.bea.com/blog/pmalani/archive/2005/07/configuring_web_1.html

 作者簡介
  Prakash Malani在架構、設計和開發軟件方面經驗豐富。他在許多應用領域從事過軟件開發,比如娛樂、金融、零售、醫學、通信和交互式電視。他喜歡實踐和研究先進的技術,比如Java 2 Enterprise Edition (J2EE)、Unified Modeling Language (UML)和eXtensible Markup Language (XML)。他還在加利福尼亞州立理工大學波莫那校區等機構講授最佳實踐和設計模式。他在業界的著名出版物上發表過許多文章,比如JavaWorld和WebLogic Developers Journal。當前,他正在幫助組織Los Angeles BEA Users Group (LABEAUG)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章