2011-09-08 50 views
2

我有一個與數據庫通信的Web服務(model-layer)。該模塊負責保存和檢索數據並管理交易。許多BL也定義了她。其他隔離的Web模塊使用此服務來保存和檢索其所需的數據。使用休眠與C3P0的分佈式Web模塊的連接池

現在model-layer正在成爲瓶頸。我需要改變架構。

我想將Hibernate實體類和BL移動到其受尊重的Web模塊。所以每個Web模塊都將與相同的數據庫通信。但我不想在每個模塊上維護分佈式連接池和事務。

我知道應該有一種方法來爲所有分佈式Web模塊使用單連接池。但我需要一個專業意見,我該怎麼做。

我不想使用Spring框架,該框架已被組織拒絕解決。

現在我試圖通過在LDAP上保存連接的序列化對象來找到解決方案,並且所有模塊都將使用該連接池。而現在,我正在抓我的腦袋,想知道我是否正朝着正確的方向前進。

請指導我正確的路徑。如果春天是唯一的選擇,那麼請告訴我。我會盡力說服我的公司。

回答

0

我猜我找到了答案。

我已經在單個JBoss服務器上使用了共享數據源(*-ds.xml)

數據源文件如下

<datasources> 
    <local-tx-datasource> 
    <jndi-name>jdbc/wc-mysql</jndi-name> 
    <connection-url>jdbc:mysql://MyPC-IP:3306/DB</connection-url> 
    <driver-class>com.mysql.jdbc.Driver</driver-class> 
    <user-name>xUser</user-name> 
    <password>xXxXx</password> 
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name> 

    <use-java-context>false</use-java-context> 

    <metadata> 
     <type-mapping>mySQL</type-mapping> 
    </metadata> 
    </local-tx-datasource> 
</datasources> 

這DS是提供給所有不同的位置運行的JBoss服務器。

有一件事,以確保<use-java-context>false</use-java-context>將公開DS,所以你需要自己做安全握手。