亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

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

2019-11-18 13:05:06
字體:
來源:轉載
供稿:網友

  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"?>
 ?。糳atasources>
 ?。糽ocal-tx-datasource>
 ?。糺ndi-name>DefaultDS</jndi-name>
 ?。糲onnection-url>
  jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB
  </connection-url>
 ?。糳river-class>org.hsqldb.jdbcDriver</driver-class>
  <user-name>sa</user-name>
 ?。紁assWord></password>
 ?。糾in-pool-size>5</min-pool-size>
 ?。糾ax-pool-size>20</max-pool-size>
 ?。糹dle-timeout-minutes>0</idle-timeout-minutes>
 ?。紅rack-statements/>
  <security-domain>HsqlDbRealm</security-domain>
 ?。糳epends>jboss:service=Hypersonic,database=localDB</depends>
 ?。?local-tx-datasource>
  <mbean code="org.jboss.jdbc.HypersonicDatabase" name="jboss:service=Hypersonic,database=localDB">
 ?。糰ttribute name="Database">localDB</attribute>
  <attribute name="In ?。?mbean>
  </datasources>
  
  這些參數中的大多數與JDBC的參數相似。根(root)下的第一個部分是<local-tx-datasource>。這是你定義數據庫以及如何連接該數據庫的位置:驅動程序、URL、用戶名和密碼。你還定義了連接池中應該有多少個連接。
  
  第二步分包含了兩個有趣的參數:
  
  · <security-domain>答應你在login-config.xml文件中而不是在數據源配置信息中配置數據庫的用戶名和密碼。
  
  · <depends>指定該服務只有在它所依靠的服務啟動后才啟動。該參數答應你編寫數據庫應該正確運行的服務。<depends>標簽還指示JBoss根據需要關閉某些數據項。示例中的這個標記表明mbean必須在數據庫啟動之前啟動,在數據庫關閉之后關閉。
  
  在定義好數據源之后,服務器的其它部分就可以使用它了。希望使用這個數據源的任何其它服務或配置都必須使用JNDI名稱來引用它。在示例中,JNDI名稱是DefaultDS。
  
  添加另一個數據源
  為了給JBoss添加另一個數據源,你需要建立一個新的配置文件。我希望建立一個數據源,它連接到我本機的
MySQL數據庫,并專門使用example數據庫。為了達到這個目標,我建立了一個與前面一個類似的配置文件:
  
  <?xml version="1.0" encoding="UTF-8"?>
 ?。糳atasources>
 ?。糽ocal-tx-datasource>
 ?。糺ndi-name>ExampleDS</jndi-name>
 ?。糲onnection-url>jdbc:mysql://localhost/example</connection-url>
 ?。糳river-class>org.gjt.mm.mysql.Driver</driver-class>
 ?。紆ser-name>exampleUser</user-name>
 ?。紁assword>examplePassword</password>
 ?。糾in-pool-size>5</min-pool-size>
  <max-pool-size>20</max-pool-size>
 ?。糹dle-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)。
  
  使用新的數據源
  現在我希望把JBoss中的一些服務移動到我的新數據源上。其原因很簡單:盡管Hypersonic是一個良好的數據庫,但是它不應該用于產品環境和/或高容量(high-traffic)系統;MySQL和其它幾個數據庫可以更好地扮演這個角色。
  
  Java消息服務
  JBoss服務器中使用數據庫的一個最常見的部分是消息服務。服務器的這部分的容量很大,并且應該使用我的新數據源。Deploy/jms目錄中的下面兩個文件定義了消息服務如何使用數據源:
  
  · hsqldb-jdbc-state-service.xml
  · hsqldb-jdbc2-service.xml
  
  首先,我修改了其中一個文件的名稱以突出數據庫的類型:把hsqldb-jdbc-state-service.xml 更名為mysql-jdbc-state-service.xml。我對mysql-jdbc-state-service.xml文件只作了一點點修改:<depends>標簽應該引用新的ExampleDS數據源而不是默認的DefaultDS。這可以確保該數據源在消息服務啟動前啟動了。我還改變了注釋信息,表明我用MySQL數據庫代替了默認的Hypersonic數據庫。
  下一步,應該刪除并替換hsqldb-jdbc2-service.xml文件。由于這個文件定義了消息服務如何使用數據庫,我們必須在該文件中提供特定數據庫的信息。幸運的是,對于大多數通用的數據庫來說,JBoss替我們完成了這項工作。我從${JBOSS.ROOT}/doc/examples/jms檢索到MySQL特定的文件(mysql-jdbc2-service.xml),并把它放到deploy/jms目錄中。我只對該文件作了一個很小的修改,把數據源的名稱改變為ExampleDS,與我在數據源配置文件中指定的JNDI名稱相匹配。
  
  最后,為了使消息服務完全轉變,我把conf/login-config.xml文件中的DefaultDS改為ExampleDS。這個設置告訴JBoss,與消息服務相關的登錄信息也使用example數據庫。
  
  調度治理器
  假如你要使用JBoss的調度治理器和它的數據庫調度程序(scheduler),你也必須指向新的數據源。該配置文件位于deploy/schedule-manager-service.xml。搜索這個文件中的DefaultDS,找到需要重新配置的mbean,我把該mbean的DataSourceProperty(數據源屬性)指向ExampleDS,替代了指向DefaultDS。
  
  請注重,一定要檢查一個SQL語句,以確保使用你的數據庫工作正常。
  
  默認的容器控制(Container-Managed)持續性
  
  為了改變默認的維持bean(bean-persistence)的數據庫,你必須更新conf/standardjbosscmp-jdbc.xml文件,把DefaultDS修改為ExampleDS。此外,你還必須更新<type-mapping>標簽以匹配新數據庫;這個標簽的值位于該文件中更深入的地方。對于本文的例子,我把這個值改變為mySQL。
  
  你還應該采用相同的方法更新conf/standardjaws.xml文件:把DefaultDS改變為ExampleDS,并更新<type-mapping>標簽,以反映使用的數據庫的類型。
  
  包裝
  為了確保所有部分都轉換到了新數據源上,請刪除deploy/hsqldb-ds.xml文件并啟動JBoss。假如產生了任何錯誤,就說明你遺漏了某些配置文件。
  
  總之,我發現使用內建的Hypersonic數據庫進行開發比治理外部的數據庫帶來的痛苦要少一些。但是在產品環境中,Hypersonic是不適合任務需要的。把JBoss連接到更加牢固的數據庫對于維護服務器的性能大有幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一本色道久久综合狠狠躁篇的优点| 欧美成人激情视频免费观看| 日韩欧美国产成人| 国产精品18久久久久久首页狼| 国产成人精品在线播放| 欧美区在线播放| 欧洲日本亚洲国产区| 亚洲人成亚洲人成在线观看| 国产精品777| 亚洲国产一区二区三区在线观看| 欧美另类高清videos| 亚洲国产成人爱av在线播放| 国语自产精品视频在线看一大j8| 日韩欧美在线视频日韩欧美在线视频| 亚洲偷熟乱区亚洲香蕉av| 97碰在线观看| 国产丝袜精品视频| 毛片精品免费在线观看| 日韩欧美国产网站| 亚洲精品天天看| 国产精品扒开腿做爽爽爽的视频| 国产精品成人观看视频国产奇米| 欧美一级淫片丝袜脚交| 日韩精品福利网站| 欧美日韩美女视频| 亚洲无亚洲人成网站77777| 欧美丝袜一区二区| 欧美黑人性生活视频| 久久视频免费在线播放| 久久久精品电影| 亚洲影视九九影院在线观看| 国产有码一区二区| 亚洲精品久久久久久久久久久| 国产精品永久在线| 亚洲欧美日韩天堂一区二区| 日韩在线观看精品| 韩国视频理论视频久久| 国产精品∨欧美精品v日韩精品| 国产精品igao视频| 91老司机在线| 亚洲精品国产综合久久| 欧美日韩成人在线观看| 日本不卡免费高清视频| 亚洲成人av中文字幕| 国产午夜精品理论片a级探花| 日本不卡视频在线播放| 成人国产精品一区二区| 欧美成人中文字幕在线| 亚洲大尺度美女在线| 亚洲精品二三区| 亚洲第一页自拍| 欧美日韩福利在线观看| 国产盗摄xxxx视频xxx69| 国产欧美日韩亚洲精品| 亚洲**2019国产| 亚洲香蕉伊综合在人在线视看| 精品国产一区二区三区久久久狼| 久久影视免费观看| 一区二区三区四区精品| 欧美日韩亚洲系列| 国产精品视频一区国模私拍| 91久久嫩草影院一区二区| 亚洲色图欧美制服丝袜另类第一页| 日韩美女在线看| 欧美在线观看日本一区| 国产一区二区三区中文| 91免费视频国产| 欧美日本在线视频中文字字幕| 亚洲欧洲美洲在线综合| 成人在线小视频| 国产精品久久久久久亚洲调教| 日韩在线观看免费av| 国产视频久久网| 日本一区二区在线免费播放| 97在线视频一区| 欧美天堂在线观看| 久久综合久久88| 国产精品一区二区三区久久| 九九精品视频在线观看| 国产成人精品免高潮费视频| 国产香蕉精品视频一区二区三区| 亚洲欧洲成视频免费观看| 国产69精品久久久久9| 91网站在线看| 亚洲精品视频在线播放| 久久久久成人精品| 欧美一区二区三区免费视| 狠狠操狠狠色综合网| 成人h猎奇视频网站| 一区二区三区视频免费在线观看| 欧美俄罗斯乱妇| 九九热这里只有在线精品视| 欧美亚洲免费电影| 欧美网站在线观看| 欧美日韩裸体免费视频| 亚洲天天在线日亚洲洲精| 中文字幕少妇一区二区三区| 日韩电影在线观看中文字幕| 久久99久久亚洲国产| 日本不卡视频在线播放| 亚洲精品美女久久久| 欧美黑人巨大精品一区二区| 欧美日韩一区二区在线| 亚洲bt欧美bt日本bt| 欧美激情精品久久久久| 欧美性高潮在线| 欧美日韩亚洲成人| 国产剧情久久久久久| 久久成人18免费网站| 欧美在线观看日本一区| 日韩电视剧在线观看免费网站| 国内成人精品视频| 国产成人精品在线播放| 欧美精品一本久久男人的天堂| 国产欧美日韩专区发布| 久久的精品视频| 91丨九色丨国产在线| 69影院欧美专区视频| 国产一区二区三区在线播放免费观看| 久久人91精品久久久久久不卡| 欧美片一区二区三区| 亚洲成人av资源网| 亚洲一区精品电影| xxx一区二区| 岛国av一区二区三区| 久久久久久国产精品| 欧美性猛交xxxx久久久| 欧美精品激情在线| 成人网在线免费观看| 这里只有精品丝袜| 日韩高清电影免费观看完整版| 91社区国产高清| 富二代精品短视频| 亚洲免费电影在线观看| 日韩欧美国产高清91| 国产精品久久久久久久久久久久久久| 九九热精品视频国产| 中文字幕成人在线| 国产视频精品一区二区三区| 一本色道久久综合狠狠躁篇的优点| 在线视频国产日韩| 亚洲人成在线一二| 日韩欧美成人精品| 国产福利成人在线| 亚洲欧洲av一区二区| 在线观看欧美www| 亚洲aⅴ日韩av电影在线观看| 久久久国产成人精品| 日韩国产中文字幕| 成人在线精品视频| 日本高清不卡在线| 欧美日韩亚洲一区二区三区| 成人免费视频a| 国产精品久久久久久av下载红粉| 国产一区二区三区中文| 国产成人综合一区二区三区| 国产精品爽爽爽| 久99久在线视频| 亚洲国产精品资源| 欧美日韩国产一区二区| 性欧美暴力猛交69hd| 国产欧美一区二区三区视频| 97精品视频在线观看| 日韩视频免费在线|