站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题在JBoss中配置多个数据库和数据源

在JBoss中配置多个数据库和数据源

摘要: JBoss是一款非常强大的J2EE应用程序服务器,但是这种强大的功能也带来了复杂性
  JBoss是一款非常强大的J2EE应用程序服务器,但是这种强大的功能也带来了复杂性。本文作者Marcus Zarra分析了如何在JBoss中配置多个数据库以及数据源。

  配置数据源

  JBoss的默认安装过程总共有三种配置选项:所有的(all)、默认的(default)和最小的(minimal)。如果你第一次启动JBoss服务器的时候没有附带任何参数,它自然就运行了默认配置。如果需要运行其它的配置,就必须使用-C参数运行启动脚本,如下所示:

${JBOSS.ROOT}/bin/run.sh -c minimal

  用这种方式启动JBoss就指示它使用最小的服务器配置代替默认的配置。但是试图改变JBoss自身的配置的时候,这种技术是非常有用的。你可以在不同的配置中进行修改操作,如果有必要就回滚到默认配置。可是,你在弄混数据源之前,应该把默认配置复制一份,这样就可以安全地操作该副本了(在本文中,我把自己的副本叫作example,因此在服务器目录中有四种配置信息:所有的、默认的、最小的和example)。

  在JBoss中改变默认数据源的第一步是配置一个新数据源。JBoss中所有的数据库配置都在你所工作的服务器目录下的deploy目录中定义的(在例子中是server/example/deploy)。JBoss使用的默认数据库是纯Java数据库Hypersonic。这个数据库的配置信息位于hsqldb-ds.xml文件中。这个XML配置文件描述了如何连接到Hypersonic数据库。删除这个文件中的所有注释之后,我们得到如下所示的配置信息:

<table borderColor=#ffcc66 width="90%" align=center bgColor=#d8d8d1 border=1> <tr> <td><?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></td></tr></table>
  这些参数中的大多数与JDBC的参数相似。根(root)下的第一个部分是<local-tx-datasource>。这是你定义数据库以及如何连接该数据库的位置:驱动程序、URL、用户名和密码。你还定义了连接池中应该有多少个连接。

  第二步分包含了两个有趣的参数:

  · <security-domain>允许你在login-config.xml文件中而不是在数据源配置信息中配置数据库的用户名和密码。

  · <depends>指定该服务只有在它所依赖的服务启动后才启动。该参数允许你编写数据库应该正确运行的服务。<depends>标签还指示JBoss根据需要关闭某些数据项。示例中的这个标记表明mbean必须在数据库启动之前启动,在数据库关闭之后关闭。

  在定义好数据源之后,服务器的其它部分就可以使用它了。希望使用这个数据源的任何其它服务或配置都必须使用JNDI名称来引用它。在示例中,JNDI名称是DefaultDS。




↑返回目录
前一篇: 搭建Java桌面应用程序原型(一)
后一篇: 2004开发技术年度综述之Java世界