Deployment synchronization (dep-sync) is a feature that is
shipped with most of the WSO2 products. This blog looks at how deployment synchronization
can be achieved on carbon instances running on windows environment.
1.
Deployment synchronization requires SVNKit
implementation from http://dist.wso2.org/tools/svnClientBundle-1.0.0.jar.
This library has to be downloaded separately since it is not shipped with the
WSO2 distribution.
2.
Once this SVN kit is downloaded copy the svnClientBundle-1.0.0.jar
to {carbon_home}\repository\components\dropins folder on all the instances that
artifacts need to be synchronized.
3.
In the Manager node open the {carbon_home}\repository\conf\carbon.xml
and enable the dep-sync configuration as given below
<DeploymentSynchronizer>
<Enabled>true</Enabled>
<AutoCommit>true</AutoCommit>
<AutoCheckout>true</AutoCheckout>
<RepositoryType>svn</RepositoryType>
<SvnUrl>SVN URL</SvnUrl>
<SvnUser>username</SvnUser>
<SvnPassword>password</SvnPassword>
<SvnUrlAppendTenantId>true</SvnUrlAppendTenantId>
</DeploymentSynchronizer>
4.
In the worker nodes use the following
configuration to enable dep-sync in the {carbon_home}\repository\conf\carbon.xml
file.
<DeploymentSynchronizer>
<Enabled>true</Enabled>
<AutoCommit>false</AutoCommit>
<AutoCheckout>true</AutoCheckout>
<RepositoryType>svn</RepositoryType>
<SvnUrl>SVN URL</SvnUrl>
<SvnUser>username</SvnUser>
<SvnPassword>password</SvnPassword>
<SvnUrlAppendTenantId>true</SvnUrlAppendTenantId>
</DeploymentSynchronizer>
5.
Enable clustering in all instances by setting
the clustering value as true in the {carbon_home}\repository\conf\axis2\axis2.xml.
<clustering
class="org.apache.axis2.clustering.tribes.TribesClusteringAgent"
enable="true">
Once the clustering is enabled, set a domain name so that
all instances in the cluster will have the same domain name. Domain can be set
as shown below.