WSO2 ESB - 数据服务服务器功能 - 如何使用数据源即时交换数据源

时间:2012-06-25 20:32:57

标签: wso2 wso2esb

我正在使用WSO2 ESB 4.0.3。我在其上安装了WSO2数据服务功能,并创建了DS。

ESB中的功能在管理界面下的“配置”选项卡下,您可以在其中定义“数据源”。

我的问题是在创建新的数据服务时,我无法使用我在ESB中配置的“数据源”。我们有不同的环境DEV / TEST / UAT / PROD。每个环境对于相同的数据服务具有不同的数据库。

目前,我手动将DS XML文件更改为指向新数据库,然后进行部署。

有没有办法指向ESB中配置的数据库并动态更改DS的数据库?

感谢 作者Abhijit

07/01/2012 - 对此有何更新?这是他们大集团的Apple POC。如果suceedded WSO2将实施Apple?

2 个答案:

答案 0 :(得分:0)

如果您已将dataservices功能安装到您已使用的同一ESB实例中,那么您应该可以使用通过“Configure> Data Sources”菜单创建的数据源。因为,当您通过上述选项创建特定数据源时,所有其他已安装的功能(使用数据源)都可以看到它。但是,如果您在两个框中使用ESB和DSS,则说明ESB中定义的数据源是DSS节点不可见,除非您将这些节点安装到同一个注册表中。但是,这个功能也将在下一个即将发布的版本中出现。

但是,我建议您使用以下模式来完成您的要求。我假设你已经在所有环境DEV / TEST / UAT / PROD中安装了ESB的DataServices功能。如果是这样,您可以使用“相同名称”创建数据源(例如:假设您在所有4个环境中都创建了名为“ds1”的数据源),通过“配置>数据源”菜单指向您将使用的不同数据库配置在每个环境中使用。然后,您可以指向DBS(dataservice discripters)中创建的数据源,如下所示。

<data name="TestDataService">
   <config id="default">
      <property name="carbon_datasource_name">ds1</property>
   </config>
   .....
</data>

完成这些步骤后,无论何时在任何环境中部署数据服务,都会指向相关数据源,而无需手动重新配置数据库配置,并且每个环境特定的相关数据库配置将是在运行时动态加载。

希望以上解释有所帮助!

此致 Prabath

答案 1 :(得分:0)

#----- Start of the configuration -----

synapse.datasources=TestDS,TestDS1

synapse.datasources.icFactory=com.sun.jndi.rmi.registry.RegistryContextFactory
synapse.datasources.providerPort=2199

#TestDS Configuration
synapse.datasources.TestDS.registry=JNDI
synapse.datasources.TestDS.type=BasicDataSource
synapse.datasources.TestDS.driverClassName=com.mysql.jdbc.Driver
synapse.datasources.TestDS.url=jdbc:mysql://localhost:3306/testDB
synapse.datasources.TestDS.username=dummy_username
synapse.datasources.TestDS.password=dummy_password
synapse.datasources.TestDS.dsName=TestDS
synapse.datasources.TestDS.maxActive=100
synapse.datasources.TestDS.maxIdle=20
synapse.datasources.TestDS.maxWait=10000

#TestDS1 configuration
synapse.datasources.TestDS1.registry=JNDI
synapse.datasources.TestDS1.type=BasicDataSource
synapse.datasources.TestDS1.driverClassName=com.mysql.jdbc.Driver
synapse.datasources.TestDS1.url=jdbc:mysql://localhost:3306/testDB1
synapse.datasources.TestDS1.username=dummy_username
synapse.datasources.TestDS1.password=dummy_password
synapse.datasources.TestDS1.dsName=TestDS1
synapse.datasources.TestDS1.maxActive=100
synapse.datasources.TestDS1.maxIdle=20
synapse.datasources.TestDS1.maxWait=10000

#----- End of the configuration -----