努力的学习着,认真的工作着,快乐

中国的2008,我的2008
构客网首页  博客  论坛

 
  本文的标签
EOS (收录2215篇)多数据源 (收录1篇)
  用户信息
 
帐号:  新手必读
密码: 保存密码
 
  分类列表
全部类别(14 篇)
一个GOCOM的成长历程(7 篇)
我的2008(7 篇)
  按月归档
2006年-08月(1 篇)
2008年-02月(11 篇)
2008年-10月(2 篇)
  SOA2007 - SOA实践
我们何时迈向SOA
——SOA在中国的整体发展现状究竟如何?
我们如何迈向SOA
——中国企业如何迈出实施SOA的第一步?
我们应采用何种技术
——SOA国际标准SCA/SDO的具体内涵?
我们还需要何种技能
——SOA将如何改变系统架构设计以及项目管理过程?

EOS配置多个数据源

发布时间:2008年08月24日 作者:zhangzw

阅读次数:945次 类别:我的2008 永久链接 Trackback 2条评论
参加SOA我有话说
EOS配置多个数据源  

1、  说明:本文档以连接三个不同的数据源做为例子进行说明,三个数据源中,有两个是DB2数据库,有一个是SybaseIQ数据库。

2、  在进行连接多个数据源之前,建议首先测试单个数据源连接是否成功。得到如下图显示后再进行下一步操作。

1、连接的是ciisinfo数据库(DB2数据库)

2、连接的是EOS51数据库(DB2数据库)

3、连接的是anly38数据库(SybseIQ数据库)

3、  单个数据源都连接成功之后,我们就开始着手做连接多个数据源。首先需要修改$\primeton\eosserver\config\下的eosconfig.xml文件,将其中的“是否采用直连方式”(即single)由“true”改为“false”,例如:原内容为:

<group name="DBConnect">

<configValue key="dbType">db2</configValue>

<configValue key="context-initial-factory">

org.jnp.interfaces.NamingContextFactory

</configValue>

<configValue key="dbprovider">jnp://localhost:1099</configValue>

<configValue key="defaultDataSource">java:ProductDataSource</configValue>

<configValue key="TxJNDIName">java:comp/UserTransaction</configValue>

<configValue key="single">true</configValue>

<configValue key="username">ciisinfo</configValue>

<configValue key="password">ciisinfo</configValue>

<configValue key="jdbcurl">jdbc:db2:ciisinfo</configValue>

<configValue key="jdbcdriver">COM.ibm.db2.jdbc.app.DB2Driver</configValue>

</group>

修改后的内容为:

<group name="DBConnect">

<configValue key="dbType">db2</configValue>

<configValue key="context-initial-factory">

org.jnp.interfaces.NamingContextFactory

</configValue>

<configValue key="dbprovider">jnp://localhost:1099</configValue>

<configValue key="defaultDataSource">java:ProductDataSource</configValue>

<configValue key="TxJNDIName">java:comp/UserTransaction</configValue>

<configValue key="single">false</configValue>

<configValue key="username">ciisinfo</configValue>

<configValue key="password">ciisinfo</configValue>

<configValue key="jdbcurl">jdbc:db2:ciisinfo</configValue>

<configValue key="jdbcdriver">COM.ibm.db2.jdbc.app.DB2Driver</configValue>

</group>

4、  其次,修改$\primeton\jboss-3.2.5\server\default\deploy\eos4jboss\下的ProductDataSource-ds.xml文件,将需要的数据源配置上。例如:原内容:

<?xml version="1.0" encoding="GB2312"?>

<datasources>

<local-tx-datasource>

<jndi-name>ProductDataSource</jndi-name>

<connection-url>jdbc:db2:ciisinfo</connection-url>

<driver-class>COM.ibm.db2.jdbc.app.DB2Driver</driver-class>

<connection-property name="user">ciisinfo</connection-property>

<connection-property name="password">ciisinfo</connection-property>

<min-pool-size>5</min-pool-size>

<max-pool-size>100</max-pool-size>

</local-tx-datasource>

</datasources>

修改后的内容为:

<?xml version="1.0" encoding="GB2312"?>

<datasources>

<local-tx-datasource>

<jndi-name>ProductDataSource</jndi-name>

<connection-url>jdbc:db2:ciisinfo</connection-url>

<driver-class>COM.ibm.db2.jdbc.app.DB2Driver</driver-class>

<connection-property name="user">ciisinfo</connection-property>

<connection-property name="password">ciisinfo</connection-property>

<min-pool-size>5</min-pool-size>

<max-pool-size>100</max-pool-size>

</local-tx-datasource>

<local-tx-datasource>

<jndi-name>ProductDataSource1</jndi-name>

<connection-url>jdbc:db2:eos51</connection-url>

<driver-class>COM.ibm.db2.jdbc.app.DB2Driver</driver-class>

<connection-property name="user">db2inst1</connection-property>

<connection-property name="password">db2inst1</connection-property>

<min-pool-size>5</min-pool-size>

<max-pool-size>100</max-pool-size>

</local-tx-datasource>

<local-tx-datasource>

<jndi-name>ProductDataSource2</jndi-name>

<connection-url>jdbc:sybase:Tds:182.119.171.38:2648/anly38</connection-url>

<driver-class>com.sybase.jdbc2.jdbc.SybDataSource</driver-class>

<connection-property name="user">ciisanly</connection-property>

<connection-property name="password">ciisanly</connection-property>

<min-pool-size>5</min-pool-size>

<max-pool-size>100</max-pool-size>

</local-tx-datasource>

</datasources>

可以看出,除了原有的ProductDataSource,我们又配置了两个数据源,它们的JNDI名分别为ProductDataSource1ProductDataSource2

5、  到这里,连接多个数据源的配置已经成功,剩下的事情,就是需要去检验我们的配置是否正确。我们新建了三个构件包,包名分别为:xx1(连接ciisinfo数据库)、xx51(连接EOS51数据库)、xxSybaseIQ(连接anly38数据库)

1、构件包xx1中的数据实体是ciisinfo库中的

2、构件包xx51中的数据实体是EOS51库中的

3、构件包xxSybaseIQ中的数据实体是anly38库中的

6、  三个构件包的程序都已经写好之后,由于我们需要测试的三个构件包中,xx1是连接数据源ProductDataSource的,而xx51是连接数据源ProductDataSource1的,xxSybaseIQ又是连接数据源ProductDataSource2的。因此,在管理控制台中的“应用配置”->“构件包信息配置”中需要进行如下配置:

由于构件包xx1使用的是数据源ProductDataSource,它是默认数据源,因此构件包xx1不需要进行构件包信息配置,当然,进行配置也不会有问题。配置完成之后,可以去数据中检查一下表EOSEJBREGISTER,就会发现表中多了两条记录,如下:

DATASOURCENAME

IPADDRESS

NOTE

PACKAGE

PORT

PROTOCOL

UNITID

java:ProductDataSource1

127.0.0.1

51数据库

xx51

1099

jnp

ceshi1

java:ProductDataSource2

127.0.0.1

SybaseIQ

xxSybaseIQ

1099

jnp

ceshi2

7、  由于默认的数据源写明是java:ProductDataSourceeosconfig.xml文件中的defaultDataSource或者管理控制台中的“应用配置”->“数据库配置”->“数据库基本信息”->“默认数据源”都可以说明这一点),因此,我们的构件包xx1不需要做特殊的处理,在展现逻辑调用业务逻辑的时候,“属性设置”如下图:

1、构件包标识“Unit ID”为默认的“0

构件包xx51就需要进行特殊配置,才能使它调用数据源ProductDataSource1,在展现逻辑调用业务逻辑的时候,“属性设置”如下图:

2、构件包标识“Unit ID”为 ceshi1,这个值是在管理控制台

进行“构件包信息配置”的时候人为定义的一个标识

构件包xxSybaseIQ也需要进行特殊配置,才能使它调用数据源ProductDataSource2,在展现逻辑调用业务逻辑的时候,“属性设置”如下图:

3、构件包标识“Unit ID”为 ceshi2,这个值是在管理控制台

进行“构件包信息配置”的时候人为定义的一个标识

8、  到这,构件包配置也已经全部完成,我们唯一剩下需要做的就是登陆,然后分别调用写的这三个展现逻辑,根据结果去判断是不是来自不同的数据库的数据即可。只要不抛异常,能查询出数据,就说明已经正常了。


 评论 查看全部评论
 
mocake 于 2008-10-21
是啊!! 我怎么都看不到你所弄得图片那?
 
水中氧 于 2008-08-25
都木有图片呢