在JBoss中配置多个数据库和数据源
来源:互联网 发布:linux mint 和ubuntu 编辑:程序博客网 时间:2024/04/29 18:17
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数据库。删除这个文件中的所有注释之后,我们得到如下所示的配置信息:
jdbc:hsqldb:${JBoss.server.data.dir}${/}hypersonic${/}localDB
localDB
true
这些参数中的大多数与JDBC的参数相似。根(root)下的第一个部分是
第二步分包含了两个有趣的参数:
·
·
在定义好数据源之后,服务器的其它部分就可以使用它了。希望使用这个数据源的任何其它服务或配置都必须使用JNDI名称来引用它。在示例中,JNDI名称是DefaultDS。
添加另一个数据源
为了给JBoss添加另一个数据源,你需要建立一个新的配置文件。我希望建立一个数据源,它连接到我本机的MySQL数据库,并专门使用example数据库。为了达到这个目标,我建立了一个与前面一个类似的配置文件:
我建立了名为ExampleDS的数据源,它通过JDBC,使用用户名exampleUser和密码examplePassword连接到一个MySQL数据库。我还特别指定连接池最少有5个连接,最多不超过20个连接,并且这些连接不能空闲。接着我把这个文件存储为deploy目录中的example-ds.xml(这个文件的名称并不重要,但是名称一致是有好处的)。
由于我的新数据源不需要、也不依赖于任何其它的模块,配置信息中就没有
使用新的数据源
现在我希望把JBoss中的一些服务移动到我的新数据源上。其原因很简单:尽管Hypersonic是一个良好的数据库,但是它不应该用于产品环境和/或高容量(high-traffic)系统;MySQL和其它几个数据库可以更好地扮演这个角色。
Java消息服务
JBoss服务器中使用数据库的一个最常见的部分是消息服务。服务器的这部分的容量很大,并且应该使用我的新数据源。Deploy/jms目录中的下面两个文件定义了消息服务如何使用数据源:
· hsqldb-jdbc-state-service.xml
· hsqldb-jdbc2-service.xml
首先,我修改了其中一个文件的名称以突出数据库的类型:把hsqldb-jdbc-state-service.xml 更名为mysql-jdbc-state-service.xml。我对mysql-jdbc-state-service.xml文件只作了一点点修改:
下一步,应该删除并替换hsqldb-jdbc2-service.xml文件。由于这个文件定义了消息服务如何使用数据库,我们必须在该文件中提供特定数据库的信息。幸运的是,对于大多数通用的数据库来说,JBoss替我们完成了这项工作。我从${JBoss.ROOT}/doc/examples/jms检索到MySQL特定的文件(mysql-jdbc2-service.xml),并把它放到deploy/jms目录中。我只对该文件作了一个很小的修改,把数据源的名称改变为ExampleDS,与我在数据源配置文件中指定的JNDI名称相匹配。
最后,为了使消息服务完全转变,我把conf/login-config.xml文件中的DefaultDS改为ExampleDS。这个设置告诉JBoss,与消息服务相关的登录信息也使用example数据库。
调度管理器
如果你要使用JBoss的调度管理器和它的数据库调度程序(scheduler),你也必须指向新的数据源。该配置文件位于deploy/schedule-manager-service.xml。搜索这个文件中的DefaultDS,找到需要重新配置的mbean,我把该mbean的DataSourceProperty(数据源属性)指向ExampleDS,替代了指向DefaultDS。
请注意,一定要检查一个SQL语句,以确保使用你的数据库工作正常。
默认的容器控制(Container-Managed)持续性
为了改变默认的维持bean(bean-persistence)的数据库,你必须更新conf/standardJBosscmp-jdbc.xml文件,把DefaultDS修改为ExampleDS。此外,你还必须更新
你还应该采用相同的方法更新conf/standardjaws.xml文件:把DefaultDS改变为ExampleDS,并更新
包装
为了确保所有部分都转换到了新数据源上,请删除deploy/hsqldb-ds.xml文件并启动JBoss。如果产生了任何错误,就说明你遗漏了某些配置文件。
总之,我发现使用内建的Hypersonic数据库进行开发比管理外部的数据库带来的痛苦要少一些。但是在产品环境中,Hypersonic是不适合任务需要的。把JBoss连接到更加牢固的数据库对于维护服务器
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>- 在JBoss中配置多个数据库和数据源
- 在JBoss中配置多个数据库和数据源
- 在JBoss中配置多个数据库和数据源
- 在JBOSS 4.0中配置MsSqlServer 数据源
- 在JBoss中配置DB2的数据源
- 如何在jboss中配置数据源
- 在JBoss AS7中配置PostgreSQL数据源
- 在JBOSS中配置数据源(连接池)
- JBoss中配置数据源
- JBOSS中配置MSSQL数据源
- JBOSS中配置JNDI数据源
- JBOSS中配置JNDI数据源
- Jboss 中配置 Oracle数据源
- JBOSS中配置JNDI数据源
- jboss 事务 多个数据源
- Jboss 服务器 JNDI 配置数据源连接数据库
- 在JBoss里配置MySql数据源
- 在JBoss里配置MySql数据源
- ADO记录集和水晶报表
- JDBC+Hibernate将Blob数据写入Oracle
- 金额大写转换
- J2ME 2D小游戏入门之周边工具类
- 我的小木马---server端---第一次编译
- 在JBoss中配置多个数据库和数据源
- 取得TextBox、RichTextBox光标所在的行和列(支持中文)
- 认识JDBC 2.0中的高级数据类型
- 利用动态创建自动化接口实现VB的函数指针调用
- Eclipse开发J2ME程序之安装配置
- 公司软件部VB组代码撰写暂行约定
- J2ME编程之Nokia 7210配置篇
- 将RichTextBox设置为自动换行或非自动换行
- J2ME开发手机游戏:宝石方块