如何在JBOSS EAP 6 中3步配置 Oracle数据源_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2165 | 回复: 0   主题: 如何在JBOSS EAP 6 中3步配置 Oracle数据源        下一篇 
shary
注册用户
等级:新兵
经验:54
发帖:66
精华:0
注册:2011-8-31
状态:离线
发送短消息息给shary 加好友    发送短消息息给shary 发消息
发表于: IP:您无权察看 2015-3-30 15:57:37 | [全部帖] [楼主帖] 楼主

本文介绍JBOSS EAP 6.1中Oracle数据源的配置方式。

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

以下分三步介绍数据源的配置:

将数据库驱动构建为JBOSS内的模块
为JBOSS容器加载驱动模块
为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.1\modules\system\layers\base\sun\jdk\main

·严格的讲只要配置文件和资源在一起就行,只要是modules目录下,具体在什么位置都没关系,但需要注意的是<module>标签中的name要与资源所在的modules下的目录相匹配。

·module.xml可以映射别的已有的module,如系统默认配置:jboss-eap—6.1\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:容器中的服务与机器端口的绑定

数据源属于容器的子系统,所以在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.0.107: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”的意思。

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

<datasources>

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

<driver>oracle</driver>
<xa-datasource-property name="URL">jdbc:oracle:oci8:@tc</xa-datasourceproperty>
<security>
<user-name>admin</user-name>
<password>admin</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>

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论