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

JBoss 4.0 多数据源配置全攻略:Oracle、MySQL、Sybase、DB2、Informix 详解

     編輯:Java 相關知識

JBoss 4.0 默認使用 HypersonicSQL,企業級應用往往需對接 Oracle、MySQL、Sybase、DB2、Informix 等主流數據庫。本文系統梳理 JBoss 4.0 數據源配置全流程,涵蓋驅動部署、DS XML 模板修改、CMP 映射配置、安全域設置,提供開箱即用的配置模板。

一、核心配置文件架構

文件路徑職能可替換文件
standardjaws.xmlserver/default/conf/CMP 實體 Bean 標準部署描述符,定義數據源、類型映射、表映射、Finder 方法jaws.xml (放入 EJB-JAR/META-INF/)
standardjbosscmp-jdbc.xmlserver/default/conf/CMP 容器標準配置,定義默認數據源、字段映射策略jbosscmp-jdbc.xml (放入 EJB-JAR/META-INF/)
*-ds.xmlserver/default/deploy/數據源定義(JCA 連接器配置)—
login-config.xmlserver/default/conf/安全域配置,關聯數據源認證—

二、通用配置四步法

  1. 驅動部署:JDBC 驅動 JAR 拷貝至 server/default/lib/
  2. DS 模板複製:從 docs/examples/jca/ 複製對應 *-ds.xml 至 server/default/deploy/
  3. 修改 DS 配置:設置 ``、``、JNDI 名稱
  4. 更新映射與安全:修改 jaws/jbosscmp-jdbc 指定數據源與類型映射;配置 login-config.xml 安全域

三、主流數據庫配置模板

1. Oracle(支持 OCI/Thin/XA)

<!-- oracle-ds.xml 或 oracle-xa-ds.xml -->
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<connection-url>jdbc:oracle:thin:@<host>:<port>:<sid></connection-url>
<jndi-name>OracleDS</jndi-name>

<!-- jaws.xml -->
<datasource>java:/OracleDS</datasource>
<type-mapping>Oracle8</type-mapping>

<!-- jbosscmp-jdbc.xml -->
<datasource>java:/OracleDS</datasource>
<datasource-mapping>Oracle8</datasource-mapping>

<!-- login-config.xml -->
<application-policy name="OracleDbRealm">
  <login-module code="org.jboss.resource.security.ConfiguredIdentityLoginModule" flag="required">
    <module-option name="principal">sa</module-option>
    <module-option name="userName">sa</module-option>
    <module-option name="password"></module-option>
    <module-option name="managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=OracleDS</module-option>
  </login-module>
</application-policy>

2. MySQL

<driver-class>com.mysql.jdbc.Driver</driver-class>
<connection-url>jdbc:mysql://<host>/<dbname></connection-url>
<jndi-name>MySqlDS</jndi-name>

<type-mapping>mySql</type-mapping>
<datasource-mapping>mySql</datasource-mapping>
<application-policy name="MySqlDbRealm">...</application-policy>

3. Sybase ASE

<driver-class>com.sybase.jdbc2.jdbc.SybDriver</driver-class>
<connection-url>jdbc:sybase:Tds:<host>:<port>/<dbname></connection-url>
<jndi-name>SybaseDS</jndi-name>

<type-mapping>Sybase</type-mapping>
<datasource-mapping>Sybase</datasource-mapping>
<application-policy name="SybaseDbRealm">...</application-policy>

4. IBM DB2

<driver-class>COM.ibm.db2.jdbc.app.DB2Driver</driver-class>
<connection-url>jdbc:db2:<dbalias></connection-url>
<jndi-name>DB2DS</jndi-name>

<type-mapping>DB2</type-mapping>
<datasource-mapping>DB2</datasource-mapping>
<application-policy name="DB2DbRealm">...</application-policy>

5. Informix(支持 XA)

<driver-class>com.informix.jdbc.IfxDriver</driver-class>
<connection-url>jdbc:informix-sqli://<host>:<port>:informixserver=<ifx_server></connection-url>
<jndi-name>InformixDS</jndi-name>

<type-mapping>InformixDB</type-mapping>
<datasource-mapping>InformixDB</datasource-mapping>
<application-policy name="InformixDbRealm">...</application-policy>

四、關鍵注意事項

  • 驅動版本匹配:Oracle 建議 10g+ 驅動;MySQL 需 Connector/J 3.1+
  • XA 與 Local 事務:分布式事務用 *-xa-ds.xml,本地事務用 *-ds.xml
  • 類型映射名稱:需與 JBoss 內置映射(如 Oracle8、mySql)完全一致
  • 安全域引用:EJB 的 jboss.xml 中 `` 需指向對應 realm
  • 連接池調優:DS XML 中配置 ``、``、``

五、驗證與排查

  1. 啟動 JBoss,查看控制台:Binding [JMS Destination: java:/OracleDS...]
  2. JMX Console 檢查 JCA:service=DataSourceBinding,name=OracleDS 狀態
  3. 測試 EJB 部署,驗證 CMP 實體 Bean 能正常 CRUD
  4. 常見錯誤:ClassNotFoundException (驅動未部署)、Communications link failure (URL/網絡)、No ManagedConnections available (池耗盡)

六、總結

JBoss 4.0 通過標準化 JCA 配置實現多数据库無縫切換。掌握驅動部署 → DS 定義 → CMP 映射 → 安全域四步法,配合各數據庫專屬驅動類、URL 格式、類型映射名,即可快速完成企業級數據源接入。建議將常用配置封裝為項目模板,提升交付效率。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved