按照本指南,我将WSO2 API Manager(v1.10.0)整合到三个服务器(Gateway + Publisher / Store + Key Store)中: https://docs.wso2.com/display/CLUSTER44x/Clustering+API+Manager+1.10.0
我在“安装和配置数据库”部分的第11a步。这说明如下:
- 要授予发布者和商店组件对注册表数据库的访问权限,请打开这两个组件中每个组件中的/repository/conf/registry.xml文件,并按如下方式对其进行配置:
醇>一个。在Publisher组件的registry.xml文件中,添加或修改
dataSource
元素的<dbConfig name="govregistry">
属性,如下所示:
<dbConfig name="govregistry">
<dataSource>jdbc/WSO2REG_DB</dataSource>
</dbConfig>
<remoteInstance url="https://publisher.apim-wso2.com">
<id>gov</id>
<cacheId>user@jdbc:mysql://regdb.mysql-wso2.com:3306/regdb</cacheId>
<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/config</targetPath>
</mount>
但是,我使用的是Microsoft SQL Server,而不是MySQL,因此cacheId
值对我来说不合适。
如何为SQL Server配置cacheId
?
我已经看了一下registry.xml文件中已注释掉的描述,但是无法解决这个问题。
这是我的WSO2REG_DB配置:
<datasource>
<name>WSO2REG_DB</name>
<description>The datasource used by the registry</description>
<jndiConfig>
<name>jdbc/WSO2REG_DB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:sqlserver://***SERVER***:1433;databaseName=***DATABASE_NAME***</url>
<username>WS02RegUser</username>
<password>***REMOVED***</password>
<defaultAutoCommit>false</defaultAutoCommit>
<driverClassName>com.microsoft.sqlserver.jdbc.SQLServerDriver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
答案 0 :(得分:2)
cacheId - 这是远程实例的缓存ID。这里是缓存 id应该是$ database_username @ $ database_url的格式,其中 $ database_username是远程实例数据库的用户名 $ database_url是远程实例数据库URL。