Jump to: navigation, search

Configuring CMS Cluster

Overview

The Knowledge CMS can work in cluster mode (for example, several nodes of the CMS servers can use one data repository). Such configuration is only possible while sorting the data in the Data Base (PostgreSQL, My SQL .etc).

Important
You cannot perform this configuration with a persistent repository file.

How to Configure the Cluster

Start

  1. Configure all applications and install several Knowledge CMS servers. Each server works as a node in the Knowledge CMS cluster.
  2. Configure Load Balancer on top of the configured nodes to access the CMS cluster.
  3. Each configured Knowledge CMS application must be connected to the Knowledge Application Cluster.
    Connections
  4. Add port with name "jgroups" to each CMS application.
    Ports
  5. Configure Knowledge CMS servers to work with appropriate DB.
    • Create Data Base to store CMS data in PostgreSQL, My SQL or other which support JDBC/JNDI (http://www.oracle.com/technetwork/java/javase/jdbc/index.html , http://www.oracle.com/technetwork/java/jndi/index.html)
    • Change jetty.xml each CMS node (<CMS installation folder>/etc/jetty.xml). Change section "datasource for Genesys Knowledge Center CMS" to support particular DB type. For example:
      For My SQL:
      <New id="jdbc/knowledge" class="org.eclipse.jetty.plus.jndi.Resource">
          <Arg></Arg>
          <Arg>jdbc/knowledge</Arg>
          <Arg>
                  <New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
                  <Set name="Url">jdbc:mysql://<host and port for access DB>/<CMS DB name></Set>
                  <Set name="User"><username for access CMS DB></Set>
                  <Set name="Password"><password for access DB></Set>
              </New>
          </Arg>
      </New>
      
      For PostgreSQL:
      <New id="jdbc/knowledge" class="org.eclipse.jetty.plus.jndi.Resource">
          <Arg></Arg>
          <Arg>jdbc/knowledge</Arg>
          <Arg>
              <New class="org.postgresql.ds.PGPoolingDataSource">
                  <Set name="User"><username for access CMS DB></Set>
                  <Set name="Password"><password for access DB></Set>
                  <Set name="DatabaseName"><CMS DB name></Set>
                  <Set name="ServerName"><host for access DB></Set>
                  <Set name="PortNumber"><post for access DB></Set>
                  <Set name="DataSourceName">knowledge</Set>
                  <Set name="InitialConnections">5</Set>
                  <Set name="MaxConnections">15</Set>
              </New>
          </Arg>
      </New>
  6. Configure the Application Options in Knowledge Application Cluster:
    Application Options

    Name Description Value
    Section:cms.cluster
    cmsPathStorage Path for store repository. Default: ./knowledge/store

    Valid Values: valid path to folder to store persistent repository file
    Effective: After restart
    Use this option for single-node CMS in case of using persistent repository file instead of DB.

    dbDataColumnType Database type for DATA_COLUMN. Default: BINARY

    Valid Values: valid type for DATA_COLUMN, BLOB for My SQL, BYTEA for PostgreSQL etc (http://infinispan.org/docs/7.1.x/user_guide/user_guide.html#_jdbc_based_cache_loaders)
    Effective: After restart

    dbIdColumnType Database type for ID_COLUMN. Default: VARCHAR(255)

    Valid Values: valid type for ID_COLUMN (http://infinispan.org/docs/7.1.x/user_guide/user_guide.html#_jdbc_based_cache_loaders)
    Effective: After restart

    dbJndiName Name of JNDI class in Jetty. Default: java:comp/env/jdbc/knowledge

    Valid Values: String "java:comp/env/jdbc/knowledge" or "comp/env/jdbc/knowledge" for running under Jetty8
    Effective: After restart

    dbSharedEnable Enables cms instances to store data in shared database. Default: false

    Valid Values: true, false
    Effective: After restart
    To enable CMS cluster set this option to true.

    dbTimestampColumnType Database type for TIMESTAMP_COLUMN. Default: BIGINT

    Valid Values: valid type for TIMESTAMP_COLUMN (http://infinispan.org/docs/7.1.x/user_guide/user_guide.html#_jdbc_based_cache_loaders)
    Effective: After restart

    jgroupsConfiguration Determine the interaction between a server. Default: TCP

    Valid Values: JGROUPS_UPD,JGROUPS_TCP,JGROUPS_EC2,TCP,TCP_NIO,TCP_GOSSIP,TUNNEL,UDP_LARGECLUSTER
    Effective: After restart

    repositoryName JNDI database name. Default: Genesys Knowledge Repository

    Valid Values: Any string (should not be changed after database creation)
    Effective: After restart

    Section:cms.general
    * Optional

    externalURL

    URL to access CMS cluster via Load balance. Default: None

    Valid Values: valid URL
    Effective: After restart
    To work with attached document if the CMS cluster is configured.

  7. A repository in the provided database is created after this configuration is complete and upon start of the first CMS node. All nodes can then work with this repository as a cluster.

End

This page was last edited on August 28, 2015, at 21:42.
Comments or questions about this documentation? Contact us for support!