com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links' is unknown.

Changing the Default Cassandra Configuration

WSO2 Storage Server comes with a default Cassandra configuration, which you can override by changing the following configuration files:

Pointing to a remote Cassandra cluster

Change the <SS_HOME>/repository/conf/etc/hector-config.xml file. The default configuration is as follows:

<HectorConfiguration>
    <Cluster>
        <Name>ClusterOne</Name>
        <Nodes>localhost:9160</Nodes> 
        <AutoDiscovery disable="false" delay="1000"/>
    </Cluster>
</HectorConfiguration>

The following are the XML elements which you can use to change the default configuration:

Property NameDescriptionDefault ValueFixed ValuesMandatory/Optional
<Name/>
Hector reference name for the Cassandra cluster connection  Mandatory
<Nodes/>Comma separated Cassandra Cluster node list  Mandatory
<AutoDiscovery disable="" delay=""/>
Enable Hector Auto node discovery service disable - True/FalseMandatory

Changing default IPs and ports

Storage Server comes with configurations suited for a standalone Cassandra deployment , but if you set up a cluster, you must change listening and ports accordingly in <SS_HOME>/ repository/conf/etc/cassandra.yaml file.

  1. Cassandra listening IP is used for inter-node communications in a clustered environment: listen_address: <Server listening IP or domain name>  
  2. Storage port is used to exchange the data and the command between the cluster nodes: storage_port: 7000    

    This port changes according to <Offset> value in <Ports> section in carbon.xml. Changing storage_port value in cassandra.yaml will not affect the server.

  3. If encrypted communication is enabled, the cluster uses the port defined in ssl_storage_port for cluster-related commands and data communication: ssl_storage_port: 7001    
    RPC listen address is used for the thrift-based communication between server and the client:  

    rpc_address: <IP_ADDRESS>
    # port for Thrift to listen for clients on 
    rpc_port: 9160

    RPC port changes according to <Offset> value in <Ports> section in carbon.xml. Changing rpc_port value in cassandra.yaml will not affect the server.

  4. Native Transport Port is the port which is listening to CQL clients. Please note that the address on which the native transport is bound is the same as the rpc_address (to start the native transport server, start_native_transport should be equal to true, which is its default value). This needs to be set as follows:

    start_native_transport: true
    native_transport_port: 9042

For a full list of explanations of each configuration directive, refer to the file's code comments. Additionally, see http://wiki.apache.org/cassandra/StorageConfiguration .

Cassandra Cluster Configuration for Statistics and Node Operations

To view Cassandra cluster statistics and do cluster operations, <SS_HOME>/repository/conf/etc/cluster-config.xml needs to be configured. Here, all the SS nodes and their service URLs needs to be configured.

<cluster>
    <configuration>
        <cluster_authentication>
            <username>admin</username>
            <password>admin</password>
        </cluster_authentication>
        <nodes>
            <node>
                <host>127.0.0.1</host>
                <backend_url>local://services/</backend_url>
            </node>
        </nodes>
    </configuration>
</cluster>

 The following are the XML elements which you can use to change the default configuration:

Property NameDescriptionDefault ValueFixed ValuesMandatory/Optional
<cluster_authentication/>
SS admin service authentication details  Mandatory
<username/>
Admin service username   Mandatory
<password/>
Admin service password   Mandatory
<nodes/>Parent element of SS nodes  Mandatory
<node/>+Node element for each SS node  Mandatory
<host/>
Host Name / IP of SS node  Mandatory
<backend_url/>
SS node's service URL  Mandatory

Exposing services to the public

In a IaaS infrastructure, services, public IP and domain names of the backend Cassandra cluster must be exposed via public addresses. This is done in <SS_HOME>/repository/conf/etc/cassandra-endpoint.xml file. Given below is the default configuration, where the <EndPoint> and <HostName> elements represent each Cassandra node by its host name.

<Cassandra>
 <EndPoints>
    <EndPoint>
        <HostName>css0.stratoslive.wso2.com</HostName>
    </EndPoint>
    <EndPoint>
        <HostName>css1.stratoslive.wso2.com</HostName>
    </EndPoint>
    <EndPoint>
        <HostName>css2.stratoslive.wso2.com</HostName>
    </EndPoint>
    <EndPoint>
        <HostName>css3.stratoslive.wso2.com</HostName>
    </EndPoint>
    <EndPoint>
        <HostName>css4.stratoslive.wso2.com</HostName>
    </EndPoint>
 </EndPoints>
</Cassandra>
com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links2' is unknown.