Previous Topic: Add Another Generic Executor (UNIX)Next Topic: MultiController Configuration Options


MultiController Configuration

The MultiController is the most essential part of the cluster. It contains the centralized license file and maintains a heartbeat with the components in the cluster.

The configuration for LocalControllers, Engines, and Presenters in the cluster are also located in the repository of the MultiController.

The MultiController listens for heartbeat operations from cluster members on TCP port number 29599.

During the GUI installation, you can configure only the mandatory options required to install a basic MultiController. However, you can manually edit the MC/LocalConfig-mc.xml file.

Sample LocalConfig-mc.xml file (basic configuration)

<?xml version="1.0" encoding="UTF-8"?>
<LocalConfig>
      <Description>Configuration for Multi Controller</Description>
      <Names>
            <Name name="mainClass">com.torokina.tim.mc.Main</Name>
            <Name name="appName">CAMM-Multi-Controller</Name>
            <Name name="appShortName">MC</Name>
            <Name name="primaryMcAddress">127.0.0.1</Name>
            <Name name="secondaryMcAddress"></Name>
            <Name name="primaryMcPort">29599</Name>
            <Name name="secondaryMcPort">-1</Name><
            <Name name="myMode">primary</Name>
            <Name name="myAddress">127.0.0.1</Name>
            <Name name="mcPort">29599</Name>
            <Name name="otherMcAddress"></Name>
            <Name name="otherMcPort">-1</Name>
            <Name name="heartbeatFrequency">15</Name>
            <Name name="heartbeatTimeout">180</Name>
            <Name name="repositoryFrequency">15</Name>
      </Names>
      <Paths>
            <Path name="license">${tim.base}/license.lic</Path>
      </Paths>
<LocalConfig>

Sample LocalConfig-mc.xml file (hidden logging and cleanups configuration)

    <Logging>
        <LogLevel>INFO</LogLevel>
        <LogDirectory>${logbase}</LogDirectory>
        <ObjectLogging>
          <ObjectToLog>
            <ObjectName>com.torokina.tim.config</ObjectName>
            <ObjectLogLevel>TRACE</ObjectLogLevel>
          </ObjectToLog>
        </ObjectLogging>
    </Logging>
    <CleanUps>
        <CleanUp>
            <CleanUpName>clean-temporary-directory</CleanUpName>
            <CleanUpAction>delete</CleanUpAction>
            <CleanUpTarget>${tmp}</CleanUpTarget>
            <Parameter>
                <ParameterName>expire</ParameterName>
                <ParameterValue>3d</ParameterValue>
            </Parameter>
        </CleanUp>
        <CleanUp>
            <CleanUpName>archive-log-directory</CleanUpName>
            <CleanUpAction>archive</CleanUpAction>
            <CleanUpTarget>${logbase}</CleanUpTarget>
            <Parameter>
                <ParameterName>expire</ParameterName>
                <ParameterValue>3d</ParameterValue>
            </Parameter>
        </CleanUp>
        <CleanUp>
            <CleanUpName>clean-log-directory</CleanUpName>
            <CleanUpAction>delete</CleanUpAction>
            <CleanUpTarget>${logbase}</CleanUpTarget>
            <Parameter>
                <ParameterName>expire</ParameterName>
                <ParameterValue>7d</ParameterValue>
            </Parameter>
        </CleanUp>
    </CleanUps>

Specifying any of these fields in the correct XML structure in the LocalConfig-mc.xml file overwrites the default content. For example, the following configuration changes the default log level to FINEST.

Changing the default log level to FINEST

<?xml version="1.0" encoding="UTF-8"?>
<LocalConfig> 
      ... ...
      <Logging>
        <LogLevel>FINEST</LogLevel>
        <LogDirectory>${logbase}</LogDirectory>
      </Logging>
      ... ...
</LocalConfig>

Sample LocalConfig-mc.xml (MultiController runtime) file

<?xml version="1.0" encoding="UTF-8"?>
<Runtime>
   <Names>
      <Name name="mainClass">com.torokina.tim.mc.Main</Name>
      <Name name="appName">CAMM-Multi-Controller</Name>
      <Name name="appShortName">MC</Name>
      <Name name="primaryMcAddress">127.0.0.1</Name>
      <Name name="secondaryMcAddress"/>
      <Name name="primaryMcPort">29599</Name>
      <Name name="secondaryMcPort">-1</Name>
      <Name name="myMode">primary</Name>
      <Name name="myAddress">127.0.0.1</Name>
      <Name name="mcPort">29599</Name>
      <Name name="otherMcAddress"/>
      <Name name="otherMcPort">-1</Name>
      <Name name="heartbeatFrequency">15</Name>
      <Name name="heartbeatTimeout">180</Name>
      <Name name="repositoryFrequency">15</Name>
      <Name name="lcPort">29598</Name>
      <Name name="manageable">469</Name>
   </Names>
   <Paths>
      <Path name="license">${tim.base}/license.lic</Path>
      <Path name="apphome">${tim.base}/${appShortName}</Path>
      <Path name="runtimeConfig">${apphome}/runtime.xml</Path>
      <Path name="tmp">${apphome}/tmp</Path>
      <Path name="logbase">${apphome}/logs</Path>
      <Path name="basedir">${tim.base}</Path>
   </Paths>
</Runtime>

The runtime.xml file is merged with the hidden configuration and then used to start the MultiController component.