程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 在JBoss中配置多個數據庫和數據源

在JBoss中配置多個數據庫和數據源

編輯:關於JAVA
 

JBoss是一款非常強大的J2EE應用程序服務器,但是這種強大的功能也帶來了復雜性。本文作者Marcus Zarra分析了如何在JBoss中配置多個數據庫以及數據源。 配置數據源 JBoss的默認安裝過程總共有三種配置選項:所有的(all)、默認的(default)和最小的(minimal)。如果

  JBoss是一款非常強大的J2EE應用程序服務器,但是這種強大的功能也帶來了復雜性。本文作者Marcus Zarra分析了如何在JBoss中配置多個數據庫以及數據源。

  配置數據源

  JBoss的默認安裝過程總共有三種配置選項:所有的(all)、默認的(default)和最小的(minimal)。如果你第一次啟動JBoss服務器的時候沒有附帶任何參數,它自然就運行了默認配置。如果需要運行其它的配置,就必須使用-C參數運行啟動腳本,如下所示:

  ${JBOSS.ROOT}/bin/run.sh -c minimal

  用這種方式啟動JBoss就指示它使用最小的服務器配置代替默認的配置。但是試圖改變JBoss自身的配置的時候,這種技術是非常有用的。你可以在不同的配置中進行修改操作,如果有必要就回滾到默認配置。可是,你在弄混數據源之前,應該把默認配置復制一份,這樣就可以安全地操作該副本了(在本文中,我把自己的副本叫作example,因此在服務器目錄中有四種配置信息:所有的、默認的、最小的和example)。

  在JBoss中改變默認數據源的第一步是配置一個新數據源。JBoss中所有的數據庫配置都在你所工作的服務器目錄下的deploy目錄中定義的(在例子中是server/example/deploy)。JBoss使用的默認數據庫是純Java數據庫Hypersonic。這個數據庫的配置信息位於hsqldb-ds.xml文件中。這個XML配置文件描述了如何連接到Hypersonic數據庫。刪除這個文件中的所有注釋之後,我們得到如下所示的配置信息:

<?xml version="1.0" encoding="UTF-8"?>
 <datasources>
  <local-tx-datasource>
   <jndi-name>DefaultDS</jndi-name>
   <connection-url>
    jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB
   </connection-url>
   <driver-class>org.hsqldb.jdbcDriver</driver-class>
   <user-name>sa</user-name>
   <password></password>
   <min-pool-size>5</min-pool-size>
   <max-pool-size>20</max-pool-size>
   <idle-timeout-minutes>0</idle-timeout-minutes>
   <track-statements/>
   <security-domain>HsqlDbRealm</security-domain>
 <depends>jboss:service=Hypersonic,database=localDB</depends>
  </local-tx-datasource>
  <mbean code="org.jboss.jdbc.HypersonicDatabase" name="jboss:service=Hypersonic,database=localDB">
   <attribute name="Database">localDB</attribute>
   <attribute name="InProcessMode">true</attribute>
  </mbean>
</datasources>

  這些參數中的大多數與JDBC的參數相似。根(root)下的第一個部分是<local-tx-datasource>。這是你定義數據庫以及如何連接該數據庫的位置:驅動程序、URL、用戶名和密碼。你還定義了連接池中應該有多少個連接。

 

 

第二步分包含了兩個有趣的參數: <security-domain>允許你在login-config.xml文件中而不是在數據源配置信息中配置數據庫的用戶名和密碼。 <depends>指定該服務只有在它所依賴的服務啟動後才啟動。該參數允許你

  第二步分包含了兩個有趣的參數:

  · <security-domain>允許你在login-config.xml文件中而不是在數據源配置信息中配置數據庫的用戶名和密碼。

  · <depends>指定該服務只有在它所依賴的服務啟動後才啟動。該參數允許你編寫數據庫應該正確運行的服務。<depends>標簽還指示JBoss根據需要關閉某些數據項。示例中的這個標記表明mbean必須在數據庫啟動之前啟動,在數據庫關閉之後關閉。

  在定義好數據源之後,服務器的其它部分就可以使用它了。希望使用這個數據源的任何其它服務或配置都必須使用JNDI名稱來引用它。在示例中,JNDI名稱是DefaultDS。

  添加另一個數據源

  為了給JBoss添加另一個數據源,你需要建立一個新的配置文件。我希望建立一個數據源,它連接到我本機的MySQL數據庫,並專門使用example數據庫。為了達到這個目標,我建立了一個與前面一個類似的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
 <local-tx-datasource>
  <jndi-name>ExampleDS</jndi-name>
  <connection-url>jdbc:mysql://localhost/example</connection-url>
  <driver-class>org.gjt.mm.mysql.Driver</driver-class>
  <user-name>exampleUser</user-name>
  <password>examplePassword</password>
  <min-pool-size>5</min-pool-size>
  <max-pool-size>20</max-pool-size>
  <idle-timeout-minutes>0</idle-timeout-minutes>
  <track-statements/>
 </local-tx-datasource>
</datasources>

  我建立了名為ExampleDS的數據源,它通過JDBC,使用用戶名exampleUser和密碼examplePassword連接到一個MySQL數據庫。我還特別指定連接池最少有5個連接,最多不超過20個連接,並且這些連接不能空閒。接著我把這個文件存儲為deploy目錄中的example-ds.xml(這個文件的名稱並不重要,但是名稱一致是有好處的)。

 

 

由於我的新數據源不需要、也不依賴於任何其它的模塊,配置信息中就沒有<depends>標簽。同時,由於我在這個文件中指定了使用數據庫的用戶名和密碼,我也不需要參照安全域(security domain)。 使用新的數據源 現

  由於我的新數據源不需要、也不依賴於任何其它的模塊,配置信息中就沒有<depends>標簽。同時,由於我在這個文件中指定了使用數據庫的用戶名和密碼,我也不需要參照安全域(security domain)。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved