在JBoss中配置多个数据库和数据源_第1页
在JBoss中配置多个数据库和数据源_第2页
在JBoss中配置多个数据库和数据源_第3页
在JBoss中配置多个数据库和数据源_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、JBoss是一款非常强大的J2EE应用程序服务器,但是这种强大的功能也带来了复杂性。本文作者Marcus Zarra分析了如何在JBoss中配置多个数据库以及数据源。 配置数据源 JBoss的默认安装过程总共有三种配置选项:所有的(all)、默认的(default)和最小的(minimal)。如果你第一次启动JBoss服 务器的时候没有附带任何参数,它自然就运行了默认配置。如果需要运行其它的配置,就必须使用-C参数运行启动脚本,如下所示:$JBOSS.ROOT/bin/run.sh -c minimal 用这种方式启动JBoss就指示它使用最小的服务器配置代替默认的配置。但是试图改变JBoss

2、自身的配置的时候,这种技术是非常有用的。你可以在不同 的配置中进行修改操作,如果有必要就回滚到默认配置。可是,你在弄混数据源之前,应该把默认配置复制一份,这样就可以安全地操作该副本了(在本文中,我把 自己的副本叫作example,因此在服务器目录中有四种配置信息:所有的、默认的、最小的和example)。在JBoss中改变 默认数据源的第一步是配置一个新数据源。JBoss中所有的数据库配置都在你所工作的服务器目录下的deploy目录中定义的(在例子中是 server/example/deploy)。JBoss使用的默认数据库是纯Java数据库Hypersonic。这个数据库的配置信息位于 hs

3、qldb-ds.xml文件中。这个XML配置文件描述了如何连接到Hypersonic数据库。删除这个文件中的所有注释之后,我们得到如下所示的 配置信息:?xml version="1.0" encoding="UTF-8"?datasourceslocal-tx-datasourcejndi-nameDefaultDS/jndi-nameconnection-urljdbc:hsqldb:$jboss.server.data.dir$/hypersonic$/localDB/connection-urldriver-classorg.hsqldb.jdb

4、cDriver/driver-classuser-namesa/user-namepassword/passwordmin-pool-size5/min-pool-sizemax-pool-size20/max-pool-sizeidle-timeout-minutes0/idle-timeout-minutestrack-statements/security-domainHsqlDbRealm/security-domaindependsjboss:service=Hypersonic,database=localDB/depends/local-tx-datasourcembean co

5、de="org.jboss.jdbc.HypersonicDatabase" name="jboss:service=Hypersonic,database=localDB"attribute name="Database"localDB/attributeattribute name="InProcessMode"true/attribute/mbean/datasources这些参数中的大多数与JDBC的参数相似。根(root)下的第一个部分是local-tx-datasource。这是你定义数据库以及如何连接

6、该数据库的位置:驱动程序、URL、用户名和密码。你还定义了连接池中应该有多少个连接。第二步分包含了两个有趣的参数:· security-domain允许你在login-config.xml文件中而不是在数据源配置信息中配置数据库的用户名和密码。· depends指定该服务只有在它所依赖的服务启动后才启动。该参数允许你编写数据库应该正确运行的服务。depends标签还指示JBoss根据需要关闭某些数据项。示例中的这个标记表明mbean必须在数据库启动之前启动,在数据库关闭之后关闭。 在定义好数据源之后,服务器的其它部分就可以使用它了。希望使用这个数据源的任何其它服务或配置都必

7、须使用JNDI名称来引用它。在示例中,JNDI名称是DefaultDS。添加另一个数据源为了给JBoss添加另一个数据源,你需要建立一个新的配置文件。我希望建立一个数据源,它连接到我本机的MySQL数据库,并专门使用example数据库。为了达到这个目标,我建立了一个与前面一个类似的配置文件:?xml version="1.0" encoding="UTF-8"?datasourceslocal-tx-datasourcejndi-nameExampleDS/jndi-nameconnection-urljdbc:mysql:/localhost/exa

8、mple/connection-urldriver-classorg.gjt.mm.mysql.Driver/driver-classuser-nameexampleUser/user-namepasswordexamplePassword/passwordmin-pool-size5/min-pool-sizemax-pool-size20/max-pool-sizeidle-timeout-minutes0/idle-timeout-minutestrack-statements/local-tx-datasource/datasources 我建立了名为ExampleDS的数据源,它通过

9、JDBC,使用用户名exampleUser和密码examplePassword连接到一个 MySQL数据库。我还特别指定连接池最少有5个连接,最多不超过20个连接,并且这些连接不能空闲。接着我把这个文件存储为deploy目录中的 example-ds.xml(这个文件的名称并不重要,但是名称一致是有好处的)。由于我的新数据源不需要、也不依赖于任何其它的模块,配置信息中就没有depends标签。同时,由于我在这个文件中指定了使用数据库的用户名和密码,我也不需要参照安全域(security domain)。使用新的数据源现在我希望把JBoss中的一些服务移动到我的新数据源上。其原因很简单:尽管Hy

10、personic是一个良好的数据库,但是它不应该用于产品环境和/或高容量(high-traffic)系统;MySQL和其它几个数据库可以更好地扮演这个角色。Java消息服务JBoss服务器中使用数据库的一个最常见的部分是消息服务。服务器的这部分的容量很大,并且应该使用我的新数据源。Deploy/jms目录中的下面两个文件定义了消息服务如何使用数据源:· hsqldb-jdbc-state-service.xml· hsqldb-jdbc2-service.xml 首先,我修改了其中一个文件的名称以突出数据库的类型:把hsqldb-jdbc-state-service.xml

11、 更名为mysql-jdbc-state-service.xml。我对mysql-jdbc-state-service.xml文件只作了一点点修 改:depends标签应该引用新的ExampleDS数据源而不是默认的DefaultDS。这可以确保该数据源在消息服务启动前启动了。我还改变 了注释信息,表明我用MySQL数据库代替了默认的Hypersonic数据库。下一步,应该删除并替换hsqldb-jdbc2- service.xml文件。由于这个文件定义了消息服务如何使用数据库,我们必须在该文件中提供特定数据库的信息。幸运的是,对于大多数通用的数据库来 说,JBoss替我们完成了这项工作。我从

12、$JBOSS.ROOT/doc/examples/jms检索到MySQL特定的文件(mysql- jdbc2-service.xml),并把它放到deploy/jms目录中。我只对该文件作了一个很小的修改,把数据源的名称改变为 ExampleDS,与我在数据源配置文件中指定的JNDI名称相匹配。最后,为了使消息服务完全转变,我把conf/login-config.xml文件中的DefaultDS改为ExampleDS。这个设置告诉JBoss,与消息服务相关的登录信息也使用example数据库。调度管理器 如果你要使用JBoss的调度管理器和它的数据库调度程序(scheduler),你也必须指向

13、新的数据源。该配置文件位于 deploy/schedule-manager-service.xml。搜索这个文件中的DefaultDS,找到需要重新配置的mbean,我把该 mbean的DataSourceProperty(数据源属性)指向ExampleDS,替代了指向DefaultDS。请注意,一定要检查一个SQL语句,以确保使用你的数据库工作正常。 默认的容器控制(Container-Managed)持续性 为了改变默认的维持bean(bean-persistence)的数据库,你必须更新conf/standardjbosscmp-jdbc.xml 文件,把DefaultDS修改为ExampleDS。此外,你还必须更新type-mapping标签以匹配新数据库;这个标签的值位于该文件中更 深入的地方。对于本文的例子,我把这个值改变为mySQL。你还应该采用相同的方法更新conf/standardjaws.xml文件:把DefaultDS改变为ExampleDS,并更新type-mapping标签,以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论