`
minstrel
  • 浏览: 48335 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Jboss7下配置mysql和oracle数据源

    博客分类:
  • java
 
阅读更多

    按照https://community.jboss.org/wiki/DataSourceConfigurationInAS7的说法,首先我们如果在开发和测试环境下,可以直接把jdbc驱动程序放在你的应用之内的类路径上,然后通过注解@DataSourceDefinition来定义和引用你数据源。这种方式绕开了jboss的服务管理层,所以你可能自己需要弄个连接池来管理你的数据源。

    另外你可以在jboss服务器的管理下定义数据源,这样你就可以在jboss服务器层面来管理你的数据源,这样就可以使用到服务器的管理优势,以可以使用服务器提供的连接池,jboss7提供的连接池管理模块是IronJacamar,详细信息参见http://www.jboss.org/ironjacamar/docs.html

    DataSourceConfigurationInAS7这个上面说服务器层面安装jdbc驱动程序有两种方式,一个是部署安装方式,一个是以模块方式安装。

    部署安装就是把兼容jdbc4的驱动Jar包放到deployments的路径下,然后系统就会自动部署。jboss是推荐使用部署安装方式的,说是在集群环境下,这种部署会自动传播到所有的cluster上去。我一开始也很心动这种配置方式,但是我找到的所有mysql的jdbc驱动,jobss都报non-JDBC4-compliant,所以最后放弃这种驱动部署方式,后来发现oracle的驱动ojdbc6.jar是兼容jdbc4的,这个应该可以,但是我已经通过模块方式安装好了,懒得再回头弄了,哪位以这种方式配置好的,可以通知让我看看。

    但我还是把部署安装方式安装mysql的方法翻译给大家,以便有兴趣的人安装这个方法试一试。

------------------------以下是翻译mysql驱动的部署安装方式,我没有试验成功--------------------------

注意mysql的jdbc驱动程序是兼容jdbc4的。mysql的驱动(截至到5.1.18)是jdbc4类型的驱动,但是它的jdbcCompliant()方法经常返回false,原因是这个驱动没有全部通过SQL92全兼容测试,MySQL这样说的,因此,你需要修改一下mysql的驱动包,修改方式如下:

      1,进入或新建一个空的目录

      2,新建一个子目录"META-INF"

      3,新建子目录"META-INF/services"

      4,新建一个文件"META-INF/services/java.sql.Driver",在这个文件中添加一行,内容是这个驱动的权限定名,mysql的就是com.mysql.jdbc.Driver

      5,使用jar命令工具来更新这个JAR包,命令如下:

jar -uf jdbc-driver.jar META-INF/services/java.sql.Driver

  请注意我们以部署方式安装驱动时,需要在配置配置文件的datasource标签的driver标签时指定出部署的文件名(这个我们后面再会提到)

------------------------以上是翻译mysql驱动的部署安装方式,我没有试验成功--------------------------

 

    模块安装就是在jboss服务器的根目录下有一个modules的文件夹,我们在这个目录下新建com/mysql/jdbc/main和com/oracle/ojdbc6/main目录,然后把mysql-connector-java-5.1.20-bin.jar和ojdbc6.jar分别放入这两个目录中,并分别在这两个目录下新建一个文件module.xml,在mysql的module.xml文件中写入:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.mysql.jdbc">
  <resources>
    <resource-root path="mysql-connector-java-5.1.20-bin.jar"/>
        <!-- Insert resources here -->
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
  </dependencies>
</module>

在oracle的module.xml文件中写入

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.oracle.ojdbc6">
  <resources>
    <resource-root path="ojdbc6.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
  </dependencies>
</module>

  然后在配置文件(standalone下standalone.xml,domain下domain.xml)中的profile标签下增加这段:

<subsystem xmlns="urn:jboss:domain:datasources:1.0">
    <datasources>
        <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
            <connection-url>jdbc:mysql://yourmysqlhost:host/yourDB</connection-url>
            <driver>mysql</driver>
            <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
            <pool>
                <min-pool-size>1</min-pool-size>
                <max-pool-size>10</max-pool-size>
                <prefill>true</prefill>
            </pool>
            <security>
                <user-name>sb</user-name>
                <password>2b</password>
            </security>
            <statement>
                <prepared-statement-cache-size>32</prepared-statement-cache-size>
                <share-prepared-statements>true</share-prepared-statements>
            </statement>
        </datasource>             
        <datasource jndi-name="java:/hzocs" pool-name="hzocs" enabled="true" use-java-context="true">
           <connection-url>jdbc:oracle:thin:@youroraclehost:port:sid</connection-url>
           <driver>oracle</driver>
          <pool>
          <min-pool-size>1</min-pool-size>
						<max-pool-size>10</max-pool-size>
						<prefill>true</prefill>
						<use-strict-min>false</use-strict-min>
						<flush-strategy>FailingConnectionOnly</flush-strategy>
					</pool>
					<security>
						<user-name>sb</user-name>
						<password>2b</password>
					</security>
					<validation>
						<validate-on-match>false</validate-on-match>
						<background-validation>false</background-validation>
						<use-fast-fail>false </use-fast-fail>
					</validation>
					<statement>
						<prepared-statement-cache-size>100</prepared-statement-cache-size>
						<track-statements>nowarn</track-statements>
					</statement>
					<timeout>
						<blocking-timeout-millis>10000</blocking-timeout-millis>
						<idle-timeout-minutes>1</idle-timeout-minutes>
					</timeout>
				</datasource>
         <xa-datasource jndi-name="java:jboss/datasources/ExampleXADS" pool-name="ExampleXADS">
            <xa-datasource-property name="URL">jdbc:mysql://yourmysqlhost:prot/yourDB</xa-datasource-property>
            <driver>mysql</driver>
            <xa-pool>
                <min-pool-size>1</min-pool-size>
                <max-pool-size>20</max-pool-size>
                <prefill>true</prefill>
            </xa-pool>
            <security>
                <user-name>sb</user-name>
                <password>2b</password>
            </security>
        </xa-datasource>
        <xa-datasource jndi-name="java:/hzocsXA" pool-name="hzocsXA" enabled="true" jta="true" use-java-context="true">
        	<driver>oracle</driver>
        	<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
			    <xa-datasource-property name="URL">jdbc:oracle:thin:@youroraclehost:prot:sid</xa-datasource-property> 
			    <new-connection-sql>call DBMS_APPLICATION_INFO.SET_MODULE('MyApp ','myDS')</new-connection-sql> 
			    <security>
			        <user-name>sb</user-name>
			        <password>sb</password>
			    </security>									
					<xa-pool>
						<min-pool-size>5</min-pool-size>
						<max-pool-size>20</max-pool-size>
						<is-same-rm-override>false</is-same-rm-override>
						<flush-strategy>FailingConnectionOnly</flush-strategy>
					</xa-pool>
			    <validation>
				    <validate-on-match>false</validate-on-match>	
  					<background-validation>false</background-validation>
  					<use-fast-fail>false</use-fast-fail>
						<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"></valid-connection-checker>
						<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"></stale-connection-checker>
						<exception-sorter class-name="org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter"></exception-sorter>
				  </validation>							    
			    <!--<timeout>
			      <blocking-timeout-millis>10000</blocking-timeout-millis>
						<idle-timeout-minutes>1</idle-timeout-minutes>
			    </timeout>-->
					<statement>
						<prepared-statement-cache-size>20</prepared-statement-cache-size>
						<track-statements>nowarn</track-statements>
					</statement>
				</xa-datasource>
				
        <drivers>
					<driver name="mysql" module="com.mysql.jdbc">
						<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
					</driver>
					<driver name="oracle" module="com.oracle.ojdbc6">
						<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
					</driver>
				</drivers>								
    </datasources>
</subsystem><!--日,格式乱了,懒得搞了-->

  DataSourceConfigurationInAS7文中说如果驱动是部署安装的那么我加粗的driver标签内容应该是部署的驱动文件名。

 好了,启动服务器,应该看到如下4条信息:

(MSC service thread 1-2) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
(MSC service thread 1-2) JBAS010400: Bound data source [java:/hzocs]
(MSC service thread 1-2) JBAS010400: Bound data source [java:/hzocsXA]
(MSC service thread 1-2) JBAS010400: Bound data source [java:jboss/datasources/ExampleXADS] 

好了我们测试一下这4个数据源是否成功.

[standalone@localhost:9999 /] /subsystem=datasources/data-source=ExampleDS:test-connection-in-pool
{
    "outcome" => "success",
    "result" => [true]
}
[standalone@localhost:9999 /] /subsystem=datasources/data-source=hzocs:test-connection-in-pool
{
    "outcome" => "success",
    "result" => [true]
}
[standalone@localhost:9999 /] /subsystem=datasources/xa-data-source=hzocsXA:test-connection-in-pool
{
    "outcome" => "success",
    "result" => [true]
}
[standalone@localhost:9999 /] /subsystem=datasources/xa-data-source=ExampleXADS:test-connection-in-pool
{
    "outcome" => "success",
    "result" => [true]
}

 测试通过。

其实我们配置文件中的那么多标签选项是怎么获得的呢,我们可以先看看datasource管理器共支持多少标签:

/subsystem=datasources:read-resource(recursive=true)

 具体标签意义可以网上搜一搜,读一读IronJacamar也很有用

分享到:
评论

相关推荐

    Jboss7.1.1p配置mysql和oracle以及项目调用参照.pdf

    这部分需要被替换为实际使用的MySQL和Oracle数据源配置。 - **MySQL数据源配置**:添加以下MySQL数据源配置: ```xml &lt;connection-url&gt;jdbc:mysql://localhost:3306/gg &lt;driver&gt;mysql &lt;min-pool-size&gt;20 ...

    jboss数据库配置mysql+oracle+sqlserver

    在 JBoss 中配置数据库涉及到的主要是数据源(DataSource)的设置,这些设置通常位于 JBoss 的部署目录下的配置文件中。 对于 MySQL 数据库的配置,你需要在 `jboss-4.2.3.GA/server/default/lib` 目录下放置 MySQL...

    jboss数据库配置+oracle+mysql+sqlserver

    本文档将详细介绍如何在 JBoss AS 4.2.3.GA 版本中配置 MySQL、Oracle 和 SQL Server 数据库,并提供具体的步骤与注意事项。 #### 二、环境准备 - **JBoss AS 版本**: 4.2.3.GA - **Eclipse 版本**: Eclipse JEE ...

    JBOSS4数据源配置大全

    4. **更新`standardjaws.xml`或`jaws.xml`**:在这些文件中更新数据源配置,确保它们指向正确的Oracle数据源。 #### 四、MySQL数据库配置 MySQL因其高效、稳定以及免费等特点而受到广泛使用。在JBoss 4.0上配置...

    springmvc3注解+mybatis+JTA+jboss7.1下多个数据源配置(一)

    7. **测试**:编写测试用例,验证多数据源配置是否正确,以及事务的提交和回滚行为是否符合预期。 通过这种方式,我们可以在Spring MVC 3、MyBatis和JBoss 7.1的环境中实现高效且可靠的多数据源配置。ojdbc6.jar和...

    JBOSS+EJB3+MYSQL开发

    1. 安装和配置JBOSS服务器,确保其能够正常运行。 2. 将MySQL JDBC驱动添加到JBOSS服务器的类路径。 3. 创建并配置`mysql-ds.xml`文件,定义数据源连接。 4. 编写并部署EJB3.0实体Bean,包含对应的`persistence.xml`...

    JBOSS数据库配置大全[定义].pdf

    2. **事务处理数据源**: 将`/docs/examples/jca/oracle-xa-ds.xml`复制到`/server/default/deploy`目录下;如果是非事务处理,则复制`/docs/examples/jca/oracle-ds.xml`。 3. **修改配置文件**: - **oracle-xa-ds....

    JBOSS数据库配置大全.pdf

    JBoss 4.0通过JDBC配置文件来管理数据库连接,这些配置文件主要负责为EJB和其他J2EE应用提供数据源。如果需要使用除HypersonicDB以外的数据库,就需要对这些配置文件进行相应的调整。 #### 三、关键配置文件 #####...

    JBOSS_5.0.1数据库配置文件及相应的JDBC

    5. **standalone.xml或domain.xml**(JBoss AS7及以上版本):这些是JBoss最新版本的配置文件,其中包含了所有关于数据源的配置。在JBoss AS7之后,配置方式有了较大改变,数据源配置移到了这些XML文件中。 JDBC是...

    hibernate,spring,struts,mysql,oracle,jboss,log4j,ibatis的jar文件

    在Java开发领域,这些技术是构建企业级应用的基石,它们分别是Hibernate、Spring、Struts、MySQL、Oracle、JBoss、Log4j和iBatis。让我们逐一深入了解这些技术及其jar文件的重要性。 1. Hibernate:这是一个强大的...

    linux下部署JBOSS7.1配置.doc

    如果你的应用需要连接到MySQL数据库,需要在JBoss AS中配置数据源。在`JBOSS_HOME/standalone/configuration/standalone.xml`或`JBOSS_HOME/domain/configuration/domain.xml`中找到`datasources`节点,添加相应的...

    JBOSS的目录结构介绍

    此外,还包含了一些JCA(Java Connector Architecture)配置文件,用于设置不同的数据库数据源(例如MySQL、Oracle、Postgres)。 lib目录 lib目录包含了JBOSS启动所需的JAR文件。请不要将您自己的JAR文件放在这个...

    中间件jboss环境搭建01

    - 配置数据源:根据项目使用的数据库类型(如MySQL、Oracle等),在`server/default/deploy/datasources`目录下创建相应的数据源配置文件。 - SSL配置:如果需要启用HTTPS服务,则需要配置SSL证书及相关的安全策略...

    linux下部署JBOSS7.1配置借鉴.pdf

    在本文中,我们将深入探讨如何在Linux环境下,特别是CentOS 6.3 32位系统上部署和配置JBoss Application Server 7.1.1。首先,确保您的系统满足必要的软件需求,包括Linux内核版本2.6.32-279.el6.i686,Oracle Java ...

Global site tag (gtag.js) - Google Analytics