BCC Master – Slave Agent Configurations


Configuring Content Administration (BCC) environment to deploy Single ConfigFileSystem across multiple Physical/Virtual machines (VM). To achive this, we should create a master ConfigFileSystem on one JVM/ATG instance on the VM and slave ConfigFileSystems on rest of the JVM's on the same VM. So only one JVM/ATG instance on a given machine/VM is responsible for file deployments. This configuration can significantly increase performance because deployment data, which can be very large, is sent to one agent rather than all agents. Also deployments won’t affect even if one of the non-essential agent went down during deployment.

Note: A shared ConfigFileSystem is supported for switch mode deployments only.

Steps to set up Shared ConfigFileSystem:

1. Designate one ATG instance on each machine/VM as the master instance and rest other ATG instances are considered as slave instances.

2. Configure a master ConfigFileSystem.properties file with below content.

File: <ATG-Data-dir>/servers/<master-instance>//localconfig/atg/epub/file/ConfigFileSystem.properties

#/atg/epub/file/ConfigFileSystem
$class=atg.vfs.switchable.SwitchableLocalFileSystem
liveDirectory={serverHomeDirResource?resourceURI=/PublishingAgent/deploymentconfig/live/config}
stagingDirectory={serverHomeDirResource?resourceURI=/PublishingAgent/deploymentconfig/staging/config}
dataDirectory={serverHomeDirResource?resourceURI=/PublishingAgent/deploymentconfig/data/config}
journaling=true
updateListeners+=/atg/epub/monitor/PersonalizationConfigurationMonitor
journalDirectory={serverHomeDirResource?resourceURI=/PublishingAgent/deploymentconfig/data/config}
name1=DataSourceA
name2=DataSourceB

3. Configure a slave ConfigFileSystem.properties file with below content in rest of the ATG instances on the machine.

File: <ATG-Data-dir>/servers/<slave-instance>/localconfig/atg/epub/file/ConfigFileSystem.properties

# /atg/epub/file/ConfigFileSystem
$class=atg.vfs.switchable.SlaveLocalFileSystemService
# references to SwitchableLocalFileSystem - in local that is softlinked to shared copy
rootDirectory={serverHomeDirResource?resourceURI=/PublishingAgent/deploymentconfig/live/config}
journalDirectory={serverHomeDirResource?resourceURI=/PublishingAgent/deploymentconfig/data/config/journalBackup}
statusFile={serverHomeDirResource?resourceURI=/PublishingAgent/deploymentconfig/data/config/status.dat}
# schedule for checking switch status to see if an update event is required
scheduler=/atg/dynamo/service/Scheduler
schedule=every 60 seconds
updateListeners+=/atg/epub/monitor/PersonalizationConfigurationMonitor

4. Configure the master ConfigFileSystem as a switchable data store on the master instance.

File: <ATG-Data-dir>/servers/<master-instance>/localconfig/atg/epub/DeploymentAgent.properties

#/atg/epub/DeploymentAgent.properties
switchableDataStores+=/atg/epub/file/ConfigFileSystem

5. Also for safer side remove ConfigFileSystem mapping from DeploymentAgent component in all slave instances.

File: <ATG-Data-dir>/servers/<slave-instance>//localconfig/atg/epub/DeploymentAgent.properties

#/atg/epub/DeploymentAgent.properties
switchableDataStores-=/atg/epub/file/ConfigFileSystem

6. Create a soft links to deploymentconfig folder from Master instance to slave instances on each machine.
Example: ln -s <ATG-Data-dir>/servers/<master-instance>/PublishingAgent/deploymentconfig  <ATG-Data-dir>/servers/<slave-instance>/PublishingAgent/deploymentconfig
 
7. Remove ConfigFileSystem mapping configurations from all agents other than master agent in BCC. This will make sure all Slave agents are non-essentials for deployment in BCC.
(Note: The step 7 has to be done logging into the BCC console and goto "Content Administration-->Admin Console-->Configuration-->Production-->Agents"


Comments

Popular posts from this blog

Weblogic 12c & Apache 2.4 troubleshooting

Enabling WL-Proxy-SSL HTTP header in WebLogic