知识大全 在JBoss中配置多个数据库和数据源

Posted 数据库

篇首语:历览千载书,时时见遗烈。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在JBoss中配置多个数据库和数据源相关的知识,希望对你有一定的参考价值。

在JBoss中配置多个数据库和数据源  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  JBoss是一款非常强大的J EE应用程序服务器 但是这种强大的功能也带来了复杂性 本文作者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= encoding= UTF ?>  <datasources>  <local tx datasource>  <jndi name>DefaultDS</jndi name>  <connection url>  jdbc:hsqldb:$jboss server data dir$/hypersonic$/localDB  </connection url>  <driver class> hsqldb jdbcDriver</driver class>  <user name>sa</user name>  <password></password>  <min pool size> </min pool size>  <max pool size> </max pool size>  <idle timeout minutes> </idle timeout minutes>  <track statements/>  <security domain>HsqlDbRealm</security domain>  <depends>jboss:service=Hypersonic database=localDB</depends>  </local tx datasource>  <mbean code= 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= encoding= UTF ?>  <datasources>  <local tx datasource>  <jndi name>ExampleDS</jndi name>  <connection url>jdbc:mysql://localhost/example</connection url>  <driver class> gjt mm mysql Driver</driver class>  <user name>exampleUser</user name>  <password>examplePassword</password>  <min pool size> </min pool size>  <max pool size> </max pool size>  <idle timeout minutes> </idle timeout minutes>  <track statements/>  </local tx datasource>  </datasources>    我建立了名为ExampleDS的数据源 它通过JDBC 使用用户名exampleUser和密码examplePassword连接到一个MySQL数据库 我还特别指定连接池最少有 个连接 最多不超过 个连接 并且这些连接不能空闲 接着我把这个文件存储为deploy目录中的example ds xml(这个文件的名称并不重要 但是名称一致是有好处的)     由于我的新数据源不需要 也不依赖于任何其它的模块 配置信息中就没有<depends>标签 同时 由于我在这个文件中指定了使用数据库的用户名和密码 我也不需要参照安全域(security domain)      使用新的数据源  现在我希望把JBoss中的一些服务移动到我的新数据源上 其原因很简单 尽管Hypersonic是一个良好的数据库 但是它不应该用于产品环境和/或高容量(high traffic)系统 MySQL和其它几个数据库可以更好地扮演这个角色      Java消息服务  JBoss服务器中使用数据库的一个最常见的部分是消息服务 服务器的这部分的容量很大 并且应该使用我的新数据源 Deploy/jms目录中的下面两个文件定义了消息服务如何使用数据源     · hsqldb jdbc state service xml  · hsqldb jdbc service xml    首先 我修改了其中一个文件的名称以突出数据库的类型 把hsqldb jdbc state service xml 更名为mysql jdbc state service xml 我对mysql jdbc state service xml文件只作了一点点修改 <depends>标签应该引用新的ExampleDS数据源而不是默认的DefaultDS 这可以确保该数据源在消息服务启动前启动了 我还改变了注释信息 表明我用MySQL数据库代替了默认的Hypersonic数据库   下一步 应该删除并替换hsqldb jdbc service xml文件 由于这个文件定义了消息服务如何使用数据库 我们必须在该文件中提供特定数据库的信息 幸运的是 对于大多数通用的数据库来说 JBoss替我们完成了这项工作 我从$JBOSS ROOT/doc/examples/jms检索到MySQL特定的文件(mysql jdbc 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连接到更加牢固的数据库对于维护服务器的性能大有帮助 cha138/Article/program/Java/ky/201311/27886

相关参考

知识大全 JBOSS4 数据源配置大全(一)

JBOSS4数据源配置大全(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Jboss的开发

知识大全 JBOSS4 数据源配置大全(二)

JBOSS4数据源配置大全(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  SysBase数

知识大全 Hibernate如何配置操作多个数据库

Hibernate如何配置操作多个数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 详细介绍在tomcat中配置数据源原理

  转摘请注明出处  作者:baggio  来源:  本文地址;  关键词DataSource(数据源)Tomcat连接池  前言  本文根据实例详细介绍了如何在tomcat中配置数据源网上此类文章很

知识大全 JBoss4.0下使用MySql数据源的设置方法[1]

JBoss4.0下使用MySql数据源的设置方法[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 JBoss4.0下使用MySql数据源的设置方法[2]

JBoss4.0下使用MySql数据源的设置方法[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 Oracle数据库在配置文件中更改最大连接数

Oracle数据库在配置文件中更改最大连接数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在连

知识大全 在 tomcat 5 中配置数据库连接池(DBCP)

在tomcat5中配置数据库连接池(DBCP)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  首

知识大全 在excel中怎样将多个工作表中的数据汇总

在excel中怎样将多个工作表中的数据汇总?每个工作表格式是一样的,请问怎么用公式汇总啊?如果格式相同,要进行汇总:——可建一张空格式的样表,如:“汇总表”——将各表的数据汇总——可在“汇总表”中:B

知识大全 SQL入门:从多个表中选择数据

SQL入门:从多个表中选择数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  可使用SELECT