首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JBoss 多数据源配置实战:从默认 HSQLDB 到多 MySQL 数据源的完整 XML 部署指南

     編輯:Java 相關知識

JBoss 作為強大的 J2EE 應用服務器,其數據源配置靈活但初學者易迷路。本文以 JBoss 4.x 為例,詳細演示如何在自定義配置集中添加多個數據源(默認 HSQLDB + 新增 MySQL),涵蓋 XML 文件結構、JNDI 綁定、連接池參數、安全域、依賴關係等核心要素。

配置集管理

JBoss 提供三套默認配置:all、default、minimal。啟動命令:
${JBOSS_HOME}/bin/run.sh -c <config-name>
建議複製 default 為 example 進行實驗,保留原配置回滾。

默認數據源分析(hsqldb-ds.xml)

<?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>

關鍵元素解析

  • local-tx-datasource:本地事務數據源,含 JDBC 連接信息、連接池參數
  • security-domain:引用 login-config.xml 中認證策略,分離憑證配置
  • depends:聲明啟動依賴,確保 Hypersonic 服務先啟動
  • mbean:管理內嵌數據庫生命週期

新增 MySQL 數據源(example-ds.xml)

<?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>

差異點

  • 無 depends:不依賴其他啟動服務
  • 無 security-domain:憑證直接內聯(生產建議改用安全域)
  • 文件放置於 server/example/deploy/,命名規範 *-ds.xml 自動識別

應用中使用數據源

通過 JNDI 查找:
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:/ExampleDS");

生產環境強化建議

  • 生產環境必須使用 security-domain + login-config.xml 分離憑證
  • 配置 valid-connection-checker、exception-sorter 實現連接有效性檢測
  • 根據業務調整連接池大小、超時、語句追蹤參數
  • XA 數據源(分布式事務)使用 xa-datasource 配置
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved