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).
How to Configure the Cluster
Start
- Configure all applications and install several Knowledge CMS servers. Each server works as a node in the Knowledge CMS cluster.
- Configure Load Balancer on top of the configured nodes to access the CMS cluster.
- Each configured Knowledge CMS application must be connected to the Knowledge Application Cluster.
- Add port with name "jgroups" to each CMS application.
- 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>
- Configure the Application Options in Knowledge Application Cluster:
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. - 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