WSO2 API Manager - 在使用SQL Server进行群集时设置'CacheId'

时间:2016-08-24 12:10:13

标签: sql-server configuration wso2 wso2-am

按照本指南,我将WSO2 API Manager(v1.10.0)整合到三个服务器(Gateway + Publisher / Store + Key Store)中: https://docs.wso2.com/display/CLUSTER44x/Clustering+API+Manager+1.10.0

我在“安装和配置数据库”部分的第11a步。这说明如下:

  
      
  1. 要授予发布者和商店组件对注册表数据库的访问权限,请打开这两个组件中每个组件中的/repository/conf/registry.xml文件,并按如下方式对其进行配置:
  2.         

    一个。在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>

1 个答案:

答案 0 :(得分:2)

  

cacheId - 这是远程实例的缓存ID。这里是缓存   id应该是$ database_username @ $ database_url的格式,其中   $ database_username是远程实例数据库的用户名   $ database_url是远程实例数据库URL。

参考:https://docs.wso2.com/display/Governance460/Remote+Instance+and+Mount+Configuration+Details#RemoteInstanceandMountConfigurationDetails-JDBC-basedRemoteInstanceConfiguration