动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.我的struts分页算法的实现.
.java与数据库连接.
.Hibernate 使用外部 Connection .
.Java的类专题整理.
.Eclipse开发struts完全指南一(全.
.Jive笔记--Database Package下面.
.J2EE技巧:关于提升JSP应用程序的.
.Lesson 1.02 Ant的安装和配置(图.
.J2EE编程起步(3).
.在java中实现sql的select函数功能.
.JavaSocket编程(一)Socket传输.
.详细介绍什么是实时JAVA.
.使用Java Data Object(JDO)存放持.
.Weblogic81和Hibernate 的集成问.
.抽象工厂类.
.Java技巧:使用Runtime.exec重定.
.在S1AS7中配置 Informix的方法.
.基于Java的移动游戏开发入门.
.初学Java写的第一个多线程程序.
.Xalan-Java XSLT处理器及其分割功.

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

发表日期:2008-1-5 |



  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数据库。删除这个文件中的所有注释之后,我们得到如下所示的配置信息:
  
  <?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>
  
  这些参数中的大多数与JDBC的参数相似。根(root)下的第一个部分是<local-tx-datasource>。这是你定义数据库以及如何连接该数据库的位置:驱动程序、URL、用户名和密码。你还定义了连接池中应该有多少个连接。
  
  第二步分包含了两个有趣的参数:
  
  · <security-domain>答应你在login-config.xml文件中而不是在数据源配置信息中配置数据库的用户名和密码。
  
  · <depends>指定该服务只有在它所依靠的服务启动后才启动。该参数答应你编写数据库应该正确运行的服务。<depends>标签还指示JBoss根据需要关闭某些数据项。示例中的这个标记表明mbean必须在数据库启动之前启动,在数据库关闭之后关闭。
  
  在定义好数据源之后,服务器的其它部分就可以使用它了。希望使用这个数据源的任何其它服务或配置都必须使用JNDI名称来引用它。在示例中,JNDI名称是DefaultDS。
  
  添加另一个数据源
  为了给JBoss添加另一个数据源,你需要建立一个新的配置文件。我希望建立一个数据源,它连接到我本机的mysql数据库,并专门使用example数据库。为了达到这个目标,我建立了一个与前面一个类似的配置文件:
  
  <?xml version="1.0" encoding="UTF-8"?>
  <datasources>
  <local-tx-datasource>
  <jndi-name>ExampleDS</jndi-name>
  <connection-url>jdbc:mysql://localhost/example</connection-url>
  <driver-class>org.gjt.mm.mysql.Driver</driver-class>
  <user-name>exampleUser</user-name>
  <password>examplePassword</password>
  <min-pool-size>5</min-pool-size>
  <max-pool-size>20</max-pool-size>
  <idle-timeout-minutes>0</idle-timeout-minutes>
  <track-statements/>
  </local-tx-datasource>
  </datasources>
  
  我建立了名为ExampleDS的数据源,它通过JDBC,使用用户名exampleUser和密码examplePassword连接到一个MySQL数据库。我还非凡指定连接池最少有5个连接,最多不超过20个连接,并且这些连接不能空闲。接着我把这个文件存储为deploy目录中的example-ds.xml(这个文件的名称并不重要,但是名称一致是有好处的)。
  
  由于我的新数据源不需要、也不依靠于任何其它的模块,配置信息中就没有<depends>标签。同时,由于我在这个文件中指定了使用数据库的用户名和密码,我也不需要参照安全域(security domain)。
  
  使用新的数据源
  现在我希望把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文件只作了一点点修改:<depends>标签应该引用新的ExampleDS数据源而不是默认的DefaultDS。这可以确保该数据源在消息服务启动前启动了。我还改变了注释信息,表明我用MySQL数据库代替了默认的Hypersonic数据库。
  下一步,应该删除并替换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。此外,你还必须更新<type-mapping>标签以匹配新数据库;这个标签的值位于该文件中更深入的地方。对于本文的例子,我把这个值改变为mySQL。
  
  你还应该采用相同的方法更新conf/standardjaws.xml文件:把DefaultDS改变为ExampleDS,并更新<type-mapping>标签,以反映使用的数据库的类型。
  
  包装
  为了确保所有部分都转换到了新数据源上,请删除deploy/hsqldb-ds.xml文件并启动JBoss。假如产生了任何错误,就说明你遗漏了某些配置文件。
  
  总之,我发现使用内建的Hypersonic数据库进行开发比治理外部的数据库带来的痛苦要少一些。但是在产品环境中,Hypersonic是不适合任务需要的。把JBoss连接到更加牢固的数据库对于维护服务器的性能大有帮助。
上一篇:配置JBoss 4 JDBC连接 人气:903
下一篇:Log4j日志管理系统简单使用说明 人气:867
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成