Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Web CMS (TeamSite)
Open Deploy to multiple targets
deeps79
Hi,
We need to deploy same content to two different servers under the same docroot.However getting error while deploying to both the servers using two noderefs in the replication farm element.The deployment runs fine on singe server
Here the configuration file :-
<?xml version="1.0" encoding="ISO-8859-1" ?>
<deploymentConfiguration>
<logRules maxBytes="32Mb" level="verbose">
</logRules>
<localNode host="atlstpa3.nextel.com" />
<replicationFarmSet>
<replicationFarm name="PRODUCTION_FARM" quorum="">
<nodeRef useNode="production_tnb2" />
<nodeRef useNode="production_tnb3" />
</replicationFarm>
</replicationFarmSet>
<definition name="ED_DEP_PROD">
<source>
<sourceFilesystem area="$currEdition^" filelist="">
<pathSpecification>
<path name="." />
<filters>
<excludePattern regex="\.dcr$" />
</filters>
</pathSpecification>
</sourceFilesystem>
</source>
<target useReplicationFarm="PRODUCTION_FARM">
<targetFilesystem area="/app/nol4/htdocs" />
</target>
</definition>
<deployment transactional="yes">
<execDeploymentTask useDefinition="ED_DEP_PROD">
<deployNRun>
<dnrDeployment location="source" when="before" state="success">
<script cmd="/opt/appl/cms/perl/ddsync.ipl temp dump full $currEdition^ " async="no" />
</dnrDeployment>
<dnrDeployment location="source" when="after" state="success">
<script cmd="/opt/appl/cms/perl/ddsync.ipl temp load full" async="no" />
</dnrDeployment>
</deployNRun>
</execDeploymentTask>
</deployment>
</deploymentConfiguration>
Have I configured correctly or is there anything wrong ?
TIA
Deepa
Find more posts tagged with
Comments
Adam Stoller
It might help if you explained or showed the errors that you were getting - however - I think I may know what the problem is - and if so - it's because of your DNR's and the only way to fix it that I know of is to replicate most of the contents of your config file (as shown below). I posted about this not too long ago - the problem is that you are attempting to run a DataDeploy synchronization script from your Base Server / TeamSite server to a
single
database - but when you do a fan-out deployment like this with a single definition you are, in effect, running the same synchronization twice (once for each node in the farm) and any time you are adding
new
content - both synchronizations will attempt to perform an INSERT operation - the first one will work, the second one will fail because it should now be an UPDATE rather than INSERT because the record now exists.
The solution is to replicate the contents of your deployment configuration so that the DNR scripts are only associated with a replication farm with
one
node and all other nodes go into a second replication farm:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<deploymentConfiguration>
<logRules maxBytes="32Mb" level="verbose"/>
<localNode host="atlstpa3.nextel.com" />
<replicationFarmSet>
<replicationFarm name="PRODUCTION_FARM
_1
" quorum="">
<nodeRef useNode="production_tnb2" />
</replicationFarm>
<replicationFarm name="PRODUCTION_FARM
_2
" quorum="">
<nodeRef useNode="production_tnb3" />
<!-- Add any other target nodes to *this* farm -->
</replicationFarm>
</replicationFarmSet>
<definition name="ED_DEP_PROD
_1
">
<source>
<sourceFilesystem area="$currEdition^" filelist="">
<pathSpecification>
<path name="." />
<filters>
<excludePattern regex="\.dcr$" />
</filters>
</pathSpecification>
</sourceFilesystem>
</source>
<target useReplicationFarm="PRODUCTION_FARM">
<targetFilesystem area="/app/nol4/htdocs" />
</target>
</definition>
<definition name="ED_DEP_PROD
_2
">
<source>
<sourceFilesystem area="$currEdition^" filelist="">
<pathSpecification>
<path name="." />
<filters>
<excludePattern regex="\.dcr$" />
</filters>
</pathSpecification>
</sourceFilesystem>
</source>
<target useReplicationFarm="PRODUCTION_FARM">
<targetFilesystem area="/app/nol4/htdocs" />
</target>
</definition>
<deployment transactional="yes">
<execDeploymentTask useDefinition="ED_DEP_PROD
_1
">
<deployNRun>
<dnrDeployment location="source" when="before" state="success">
<script cmd="/opt/appl/cms/perl/ddsync.ipl temp dump full $currEdition^ " async="no" />
</dnrDeployment>
<dnrDeployment location="source" when="after" state="success">
<script cmd="/opt/appl/cms/perl/ddsync.ipl temp load full" async="no" />
</dnrDeployment>
</deployNRun>
</execDeploymentTask>
<execDeploymentTask useDefinition="ED_DEP_PROD
_2
"/>
<!-- No DNR script run for the "copy" -->
</deployment>
</deploymentConfiguration>
hope that helps.
--fish
Senior Consultant, Quotient Inc.
http://www.quotient-inc.com