我为每个组件安装了APIM 1.6.0并进行了如下配置。 数据库: WSO2CarbonDB,WSO2UM_DB,WSO2REG_DB,WSO2AM_DB
我已将条目保留在默认指向carbon的所有registry.xml文件中,并添加了gov注册表配置:
<currentDBConfig>wso2registry</currentDBConfig>
<dbConfig name="wso2registry">
<dataSource>jdbc/WSO2CarbonDB</dataSource>
</dbConfig>
<dbConfig name="govregistry">
<dataSource>jdbc/WSO2REG_DB</dataSource>
</dbConfig>
<remoteInstance url="https://localhost:9446/registry">
<id>gov</id>
<dbConfig>govregistry</dbConfig>
<readOnly>false</readOnly>
<enableCache>true</enableCache>
<registryRoot>/</registryRoot>
</remoteInstance>
<mount path="/_system/governance" overwrite="true">
<instanceId>gov</instanceId>
<targetPath>/_system/governance</targetPath>
</mount>
<mount path="/_system/config" overwrite="true">
<instanceId>gov</instanceId>
<targetPath>/_system/nodes</targetPath>
</mount>
对于user-mgt.xml文件,我保留了原始碳条目并添加了用户db entry:
<Property name="dataSource">jdbc/WSO2CarbonDB</Property>
<UserStoreManager class="org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager">
<Property name="dataSource">jdbc/WSO2UM_DB</Property>
在api-manager.xml文件中我添加了:
<DataSourceName>jdbc/WSO2AM_DB</DataSourceName>
这是在Publisher节点,Store节点,Gateway节点和KeyManager节点上完成的。 我期望会发生的是所有组件都将按如下方式使用数据库:
我从数据库跟踪中看到的是以下情况:
让我感到惊讶的是,对于所有组件:发布者,商店,网关和密钥管理器,WSO2CarbonDB用于UM_和REG_表。这适用于插入,更新,删除和选择。
这是预期的吗?或者我应该将WSO2CarbonDB删除/更新为用户或注册数据库吗?
答案 0 :(得分:1)
如果需要jdbc / WSO2UM_DB作为所有组件的用户存储的数据库,则必须在user-mgt.xml中将缺省数据源属性值更改为jdbc / WSO2UM_DB。所以你不需要将jdbc / WSO2CarbonDB保留在那里。
<Property name="dataSource">jdbc/WSO2UM_DB</Property>
WSO2REG_DB是所有组件中注册表的数据库,配置与给定配置相同的registry.xml。然后所有这些的gov和conf注册表空间将指向WSO2REG_DB。
另请注意,默认的WSO2CarbonDB将用作每个组件的本地注册表。
答案 1 :(得分:0)
您可以将所有数据库脚本创建为一个单一的数据库模式。将所有数据源(master-datasources.xml)指向此数据库和模式。
答案 2 :(得分:0)
这是我的master-datasources.xml;它被Puppet使用。 Puppet正在取代&lt;%=%&gt;供应期间的标签。
<datasources-configuration xmlns:svns="http://org.wso2.securevault/configuration">
<providers>
<provider>org.wso2.carbon.ndatasource.rdbms.RDBMSDataSourceReader</provider>
</providers>
<datasources>
<datasource>
<name>WSO2_CARBON_DB</name>
<description>The datasource used for registry and user manager</description>
<jndiConfig>
<name>jdbc/WSO2CarbonDB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url><%= jdbc_url %></url>
<username><%= jdbc_username %></username>
<password><%= jdbc_password %></password>
<driverClassName>oracle.jdbc.OracleDriver</driverClassName>
<maxActive>90</maxActive>
<maxWait>80000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1 FROM DUAL</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>WSO2AM_DB</name>
<description>The datasource used for API Manager database</description>
<jndiConfig>
<name>jdbc/WSO2AM_DB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url><%= jdbc_url %></url>
<username><%= jdbc_username %></username>
<password><%= jdbc_password %></password>
<driverClassName>oracle.jdbc.OracleDriver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1 FROM DUAL</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>WSO2AM_STATS_DB</name>
<description>The datasource used for getting statistics to API Manager</description>
<jndiConfig>
<name>jdbc/WSO2AM_STATS_DB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url><%= jdbc_url %></url>
<username><%= jdbc_username %></username>
<password><%= jdbc_password %></password>
<driverClassName>oracle.jdbc.OracleDriver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1 FROM DUAL</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<!-- For an explanation of the properties, see: http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html -->
<!--datasource>
<name>SAMPLE_DATA_SOURCE</name>
<jndiConfig>
<name></name>
<properties>
<property name="java.naming.factory.initial"></property>
<property name="java.naming.provider.url"></property>
</properties>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<defaultAutoCommit></defaultAutoCommit>
<defaultReadOnly></defaultReadOnly>
<defaultTransactionIsolation>NONE|READ_COMMITTED|READ_UNCOMMITTED|REPEATABLE_READ|SERIALIZABLE</defaultTransactionIsolation>
<defaultCatalog></defaultCatalog>
<username></username>
<password svns:secretAlias="WSO2.DB.Password"></password>
<maxActive></maxActive>
<maxIdle></maxIdle>
<initialSize></initialSize>
<maxWait></maxWait>
<dataSourceClassName>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</dataSourceClassName>
<dataSourceProps>
<property name="url">jdbc:mysql://localhost:3306/Test1</property>
<property name="user">root</property>
<property name="password">123</property>
</dataSourceProps>
</configuration>
</definition>
</datasource-->
</datasources>
</datasources-configuration>