JBOSS EAP 6 系列三 Oracle、Mysql数据源的配置(驱动)—认识模块的使用

JBoss EAP 7.1.0生产环境实战:安装、迁移与踩坑指南 企业级Java应用服务器是支撑核心业务系统的关键基础设施。JBoss EAP作为Red Hat基于WildFly构建的企业中间件,其7.1.0版本凭借对Java EE 8的完整支持和JDK 8的稳定兼容,在银行、政企、制造等领域长期保持高存量。实际生产环境中的版本迁移需要重点关注Elytron安全框架、模块化类加载与数据源配置等关键变更。围绕JBoss EAP 7.1.0的安装准备、迁移要点、数据源配置与运维踩坑,为维护遗留系统或选型该版本的工程师提供一份可落地的实战笔记。 阅读详情

本文介绍JBOSS EAP 6.2中Oracle数据源的配置方式。结合之前JBOSS EAP 6.2新功能,本文初识JBOSS模块申明式容器这一特性。

模块申明式容器:JBOSS EAP不再有lib的概念,一切都是module。无论是系统调用的lib,用户编制的lib,或者应用程序引用到的第三方lib都以模块的方式构建起来,并在使用的地方申明具体使用哪个模块。

以下分三步介绍数据源的配置:
  1. 将数据库驱动构建为JBOSS内的模块
  2. 为JBOSS容器加载驱动模块
  3. 为JBOSS容器配置数据源



1、将数据库驱动构建为JBOSS内的模块

数据源驱动程序是JAVA获得与数据源连接的接口,可以理解为上面提到的系统调用的lib,所以我们需要将数据源驱动程序构建为一个JBOSS模块,构建分两个步骤:
  1. 将资源放置到正确的位置:%JBOSS_EAP_HOME%/modules目录下
  2. 将资源配置为一个JBOSS模块:module.xml文件的编写

接下来以Oracle为例,构建一个Oracle driver module
1. 创建目录%JBOSS_EAP_HOME%/modules/com/oracle/main/,存放oracle驱动程序:ojdbc14.jar (对应Oracle 10g)
2. 在main中创建moduel.xml配置文件
<?xmlversion="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.oracle">
                <resources>
                                <resource-rootpath="ojdbc14.jar"/>
                </resources>
                <dependencies>
                                <modulename="javax.api"/>
                                <modulename="javax.transaction.api"/>
                </dependencies>
</module>


其中:
<module>指明这个模块的名称com.oracle供其他模块设置依赖;
<resource>指明模块的资源名称,资源要与module.xml在同一个文件夹下;
<dependencies>指明该模块所依赖的模块,如module.xml中指明的两个模块也是像构建这恶搞Oracle数据源模块一样实现的,它们可以%JBOSS_EAP_HOME%/modules下找到:
jboss-eap-6.1\modules\system\layers\base\javax\api\main
jboss-eap-6.1\modules\system\layers\base\javax\transaction\api\main




【Module配置小扩展】
  • 资源可以是jar包,也可以是一个文件夹,如系统默认配置:jboss-eap-6.2\modules\system\layers\base\sun\jdk\main
  • 严格的讲只要配置文件和资源在一起就行,只要是modules目录下,具体在什么位置都没关系,但需要注意的是<module>标签中的name要与资源所在的modules下的目录相匹配。
  • module.xml可以映射别的已有的module,如系统默认配置:jboss-eap-6.2\modules\system\layers\base\org\apache\commons\logging\main\module.xml

2、为JBOSS容器加载驱动模块

JBoss容器的配置文件在%JBOSS_EAP_HOME%\standalone\configuration中,集群的配置文件在E:\server\jboss-eap-6.1\domain\configuration中
我们主要看单个主机的%JBOSS_EAP_HOME%\standalone\configuration\standalone.xml


打开standalone.xml首先看到的就是如:


 
  <extensions>
        <extension module="org.jboss.as.clustering.infinispan"/>
        <extension module="org.jboss.as.connector"/>
        <extension module="org.jboss.as.deployment-scanner"/>
        <extension module="org.jboss.as.ee"/>
        <extension module="org.jboss.as.ejb3"/>
        <extension module="org.jboss.as.jaxrs"/>
        <extension module="org.jboss.as.jdr"/>
        <extension module="org.jboss.as.jmx"/>
        <extension module="org.jboss.as.jpa"/>
        <extension module="org.jboss.as.jsf"/>
        <extension module="org.jboss.as.logging"/>
        <extension module="org.jboss.as.mail"/>
        <extension module="org.jboss.as.naming"/>
        <extension module="org.jboss.as.pojo"/>
        <extension module="org.jboss.as.remoting"/>
        <extension module="org.jboss.as.sar"/>
        <extension module="org.jboss.as.security"/>
        <extension module="org.jboss.as.threads"/>
        <extension module="org.jboss.as.transactions"/>
        <extension module="org.jboss.as.web"/>
        <extension module="org.jboss.as.webservices"/>
        <extension module="org.jboss.as.weld"/>
    </extensions>



每一项都是模块module,他们对应的都是如第一步配置的数据源驱动模块一样的资源,standalone.xml为容器指明并加载这些需要用到的默认的资源。


简单说下standalone有四个部分:
  • extensions:加载容器默认使用的模块
  • manangement:配置容器管理
  • profile:容器使用的子系统配置
  • interfaces:容器对外可接入性的配置
  • socket-binding-group:容器中的服务与机器端口的绑定
后续的文章中再回头介绍standalone配置文件的常用配置,这里就不过多赘述。


数据源属于容器的子系统,所以在profile中<subsystem xmlns="urn:jboss:domain:datasources:1.1">子标签下加载
<datasource>配置数据源,在第三步中要用到
<drivers>配置数据源驱动


因为不知道会用到什么样的数据源,所以在之前默认加载的extensions中没有任何模块指定这个数据源驱动的module。我们需要在<drivers>中加载,oracleDS为例可添加如下标签,
<driver name="oracle" module="com.oracle">
<driver-class>oracle.jdbc.OracleDriver</driver-class> 
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class> 
</driver>


其中,<driver>标签中的module属性就是我们在第一步中创建的module.xml中的name:
<module xmlns="urn:jboss:module:1.0" name="com.oracle">

*这里实际上配了两个driver,一个是一般dataSource的一个是xa-dataSource,xa-dataSource在本文最后有简要补充。

3、为JBOSS容器配置数据源

最后步来配置数据源,也就是<datasource>标签,因为都是基础配置,所以直接上代码:

 <datasource jta="true"jndi-name="java:jboss/datasource/OracleDS"pool-name="OracleDS" enabled="true"use-ccm="false"> 
                   <connection-url>jdbc:oracle:thin:@192.168.*.*:1521:orcl</connection-url> 
                   <driver-class>oracle.jdbc.OracleDriver</driver-class> 
                   <driver>oracle</driver> 
                   <security> 
                       <user-name>yaoyu</user-name> 
                       <password>yaoyu</password> 
                   </security>
                    <validation> 
                       <validate-on-match>false</validate-on-match> 
                       <background-validation>false</background-validation> 
                   </validation> 
                   <statement> 
                       <share-prepared-statements>false</share-prepared-statements> 
                   </statement> 

    </datasource> 

          


其中<driver>中的部分对应的就是之前第二步中<driver>的name 

<driver name="oracle"module="com.oracle">


Oracle的数据源这样就配好了。


测试的话可以打开Web-console中的DataSource向中的Test Connection来尝试连接该数据源。


*扩展:XA-DataSource的配置


界面上能看到DataSource 和XA-DataSource,这其实是两种数据源的配置方式,XA是“Globle Transaction”的意思,更具体的参照http://www.blogjava.net/Jeffery001/archive/2010/08/30/330054.html。

需要配XA-DS的,第一步配置驱动模块一样用的也是同一个jar,不同的是在第二步的<driver>中加了xa-datasource,在第三步如下配置

<span style="font-size:18px;"><datasources>

    <xa-datasource jndi-name="java:/JcOracleDS" pool-name="JcOracleDS">

        <driver>oracle</driver>

        <xa-datasource-property name="URL">jdbc:oracle:oci8:@tc</xa-datasourceproperty>

            <security>

            <user-name>admin</user-name>

            <password>admin123</password>

        </security>

        <xa-pool>

        <is-same-rm-override>false</is-same-rm-override>

        <no-tx-separate-pools />

        </xa-pool>

        <validation>

            <valid-connection-checker classname="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"></valid-connection-checker>

            <stale-connection-checker classname="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"></stale-connection-checker>

            <exception-sorter classname="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"></exception-sorter>

        </validation>

    </xa-datasource>

    <drivers>
    <driver name="oracle" module="com .oracle">
    <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xadatasource-class>
    </driver>
    </drivers>

</datasources></span>


总结

本文介绍的是Oracle数据源在JBOSS EAP 6.1中的配置(配置适用JBOSS AS7),分3个步骤完成:

1、将数据库驱动构建为JBOSS内的模块
2、为JBOSS容器加载驱动模块
3、为JBOSS容器配置数据源

除了配置外主要对JBOSS EAP 6.2的“模块申明式容器”这一特征有个简单的认识

JBoss EAP 7.1.0部署调优实战:企业级Java中间件的稳定之选 企业级Java应用服务器是承载核心业务系统的关键中间件,JBoss EAP作为红帽基于WildFly构建的商业发行版,以长期稳定和规范兼容著称。它内部的模块化类加载、Undertow Web引擎、Infinispan分布式缓存、Narayana事务管理器等组件,共同构成了高可用Java EE运行环境。在实际工程中,EAP 7.1.0支持Java EE 7特性并预研8新能力,尤其适合ERP、OA、业务中台等中大型应用。从单机standalone模式到高可用集群,从Elytron安全框架到数据源连接池调优,掌握 阅读详情

相关推荐

DevExpress学习之GridControl导入导出至EXCEL

导出: private void EXCELout_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Title = "导出Excel"; saveFileDialog.Filter = "Excel文件(*.xls)|*.xls";

I Can -Jiang 2743

JBOSS EAP 6 系列Oracle数据源配置—认识模块使用

文章简介 本文介绍JBOSS EAP 6.1中Oracle数据源配置方式。结合之前JBOSS EAP 6.1新功能,本文初识JBOSS模块申明式容器这一特性。 模块申明式容器:JBOSS EAP不再有lib的概念,一切都是module。无论是系统调用的lib,用户编制的lib,或者应用程序引用到的第方lib都以模块的方式构建起来,并在使用的地方申明具体使用哪个模块。 以下分步介

创造信仰 5800

“开宝五子棋陪练”-首款开放智能的五子棋习题练习安卓应用

使用Kotlin语言以及Jetpack Compose UI库开发,主要就是写Composable函数,显示棋盘、棋子和一些按钮,响应用户的点击和滑动操作,以及保存和恢复数据。但我针对本应用是用于做题的特殊需求,对该算法库做了一个简单的JNI层封装,方便UI前端Kotlin代码的调用。

weixin_44120030的博客 2360

JBoss7配置MSSQL的DataSource

前言 现在的网站,基本上都离不开数据库,而微软的SQL Server就是其中应用较广的数据库。如果要在JBoss7中使用MSSQL,就要配置DataSource,即数据源。至于如何配置,可以参考如下的内容。   准备JDBC 首先去MSSQL的官网下载最新的JDBC驱动程序,相关的链接如下所示: http://www.microsoft.com/download/en/details

rickyhome的专栏 4332

配置jbossoracle,mysql数据源

前提: JBOSS_HOME=jboss的home目录(安装目录) 有测试JBoss4.2.0-GA版本 数据源的jndi名字为OracleDS   配置密码为明码的Oracle数据源 1 将%JBOSS_HOME%\docs\examples\jca\oracle-ds.xml copy 到%JBOSS_HOME%\server\default\deploy目录下 2 打开ora

風中的守望者的专栏 666

数据源不定时间段后连接中断(解决方法:连接关闭后设置自启动,重新自动连接

数据源不定时间段后连接中断(解决方法:连接关闭后设置自启动,重新自动连接

236004的博客 2万+

JBoss7配置datasource

jboss7是通过datasource subsystem来配置datasource的,声明一个datasource主要包括两步:提供JDBC driver 和定义一个跟这个driver关联的datasource. 例如在/configuration/standalong.xml定义下面的datasource:"urn:jboss:domain:datasources:1.0">         

林大虫子的专栏 1967

jboss eap mysql_JBOSS EAP 6 系列 OracleMysql数据源配置驱动)—认识模块使用...

本文介绍JBOSS EAP 6.2中Oracle数据源配置方式。结合之前JBOSS EAP 6.2新功能,本文初识JBOSS模块申明式容器这一特性。模块申明式容器:JBOSS EAP不再有lib的概念,一切都是module。无论是系统调用的lib,用户编制的lib,或者应用程序引用到的第方lib都以模块的方式构建起来,并在使用的地方申明具体使用哪个模块。以下分步介绍数据源配置:将数据库驱动...

weixin_30387635的博客 246

jboss eap mysql_jboss-eap-6.3集成OracleDS和MySqlDS配置

jboss-eap-6.3集成OracleDS和MySqlDSOracl:在D:\tools\jboss\jboss-eap-6.3\modules\system\layers\base\com目录下新建oracle\main文件夹:在此文件夹下添加ojdbc14-10.2.0.4.0.jar和module.xml,内容如下:3. 修改D:\tools\jboss\jboss-eap-6.3\st...

weixin_35998791的博客 248

jboss mysql jndi 连接数_JBOSS 数据源配置使用JNDI调用

-- 本文出自sleest(感谢yangjj ^_^)场景分析:某天系统的数据库维护方要求进行DG备库容灾演练,要把生产用RAC库模拟宕机并转移至DG备库上,由于是failover而不是switchover演练,于是期间不对外开放apache访问,要求服务启动时间较紧.数据库的切换导致IP的变更,这样导致ap上正在跑的系统不得不重新配置数据库连接,基于目前的机制需要执行以下步骤:a).停止服务群...

weixin_39623271的博客 315

Jboss eap 6.4 支持列表

jboss eap 支持信息说明

远望的天空的专栏 1905

JBoss配置数据源

JBoss配置数据源在%JBOSS_HOME%/docs/examples/jca下,存放着几个供参考的XML文件:mssql-ds.xmlmysql-ds.xmloracle-ds.xml这个文件提供了配置MS SQL Server、MySQLOracle数据库数据源的参考,或者说文件模板.根据实际的配置需要,对其进行修改,即可轻松实现数据源配置.例:配置MS

boy0118的专栏 1067

jboss-eap-6.3集成OracleDS和MySqlDS配置

jboss-eap-6.3集成OracleDS和MySqlDS

李坤 大米时代 第五期 5671

JBoss/WildFly部署实战:从下载安装到生产配置的完整指南

Java EE应用服务器是构建企业级Java应用的核心基础设施,它提供了完整的运行时环境、资源管理和服务集成能力。其核心原理在于通过模块化架构统一管理Web容器、EJB容器、JMS、数据源等组件,为分布式应用提供事务、安全、连接池等关键服务。在技术价值上,完整的应用服务器能有效管理复杂依赖、保障应用一致性,并简化集群与高可用配置。尽管云原生和微服务架构兴起,但在金融、电信等领域的遗留系统维护、特定技术栈依赖及经典架构学习中,Java EE应用服务器仍不可或缺。本文聚焦于JBoss/WildFly这一经典实现

weixin_34034670的博客 410

java jboss_记录JAVAWEB部署到JBOSS中遇到的问题

服务器环境 jdk1.8.0_212 + jboss-eap-6.4 系统是 Service 2008 R2数据服务器 oracle12c 系统是 Service 2008 R21、配置HOME变量名 ORACLE_HOME变量值 E:\Oracle\product\11.2.0\dbhome_12、配置TNS_ADMIN变量名 TNS_ADMIN变量值 E:\Oracle\product\1...

weixin_39955154的博客 425

JBOSS 数据源配置使用JNDI调用

-- 本文出自sleest (感谢yangjj ^_^) 场景分析: 某天系统的数据库维护方要求进行DG备库容灾演练,要把生产用RAC库模拟宕机并转移至DG备库上,由于是failover而不是switchover演练,于是期间不对外开放apache访问,要求服务启动时间较紧. 数据库的切换导致IP的变更,这样导致ap上正在跑的系统不得不重新配置数据库连接,基于目前的机制需要执行以下步骤: ...

weixin_34037977的博客 460

JBoss配置多个数据库数据源

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 405

jboss7.1.1配置数据库mysqloracle

环境:  joss7.1.1安装成功,路径为:D:\profession\jboss-as-7.1.1.Final mysql-connector-java-5.1.18-bin.jar(mysql 5.1的驱动) ojdbc6.jar(oracle 11g驱动) 一、配置mysql数据源 1.在D:\profession\jboss-as-7.1.1.Final\modules\com...

weixin_33766168的博客 138

jboss7.1.1配置jndi

环境: joss7.1.1安装成功,路径为:D:\profession\jboss-as-7.1.1.Final mysql-connector-java-5.1.18-bin.jar(mysql 5.1的驱动) ojdbc6.jar(oracle 11g驱动) 一、配置mysql数据源 1.在D:\profession\jboss-as-7.1.1.Final\modules\com路...

phantomes的专栏 148

记录JAVAWEB部署到JBOSS中遇到的问题

服务器环境 jdk1.8.0_212 + jboss-eap-6.4 系统是 Service 2008 R2 数据服务器 oracle12c 系统是 Service 2008 R2 首先安装的oracle数据库的时候,基本没啥大问题,参考步骤:http://jingyan.baidu.com/article/363872eccfb9266e4aa16f5d.html 安装好之后,配...

weixin_33862188的博客 144
上一篇: JBOSS EAP6 系列二 客户端访问位于EAR中的EJB时,jndi name要遵守的规则
下一篇: JBOSS EAP 6 系列四 EJB实现——调用(贯穿始终的模块)
IT架构体系
IT架构体系 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄15年 1870粉丝 232原创
评论 21
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值