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)
OD fails for transactional deployments
Harsh_SVRN
Hi,
I am trying following deployment that always fail when <deployment transactional="yes" >. It works fine if transactional attribute is set to "no".
<?xml version="1.0" encoding="ISO-8859-1" ?>
<deploymentConfiguration >
<localNode host="CMSPROD1" timeout="600" blockMaxWaitTime="" blockCheckInterval="" />
<replicationFarmSet >
<replicationFarm name="MYFARMNAME" quorum="" >
<nodeRef useNode="Prod OpenDeploy" />
</replicationFarm>
</replicationFarmSet>
<definition name="DeployFiles1" >
<source >
<iwStore>
<remoteDiff area="//IWSERVER/default/main/internet/EDITION" name="test" >
<pathSpecification >
<path name="." />
<filters >
<excludePath subPath="templatedata" />
<excludePattern regex=".*\.file$" />
<excludePattern regex=".*\.asa$" />
<excludePattern regex="mqlocator\.ini" />
<excludePattern regex=".*\.cgi" />
</filters>
</pathSpecification>
</remoteDiff>
</iwStore>
</source>
<target useReplicationFarm="" >
<comparisonRules dateDifferent="yes" revert="no" ignoreAcls="yes" ignoreModes="no" ignoreUser="no" ignoreGroup="no" checksumCompare="no" />
<targetFilesystem area="D:\Apps\Interwoven\OpenDeployNG\tmp" />
<replicationFarmLink >
<internal name="MYFARMNAME" />
</replicationFarmLink>
</target>
</definition>
<definition name="DeployFiles2" >
<source >
<iwStore name="" >
<remoteDiff area="//IWSERVER/default/main/internet/EDITION" name="test" >
<pathSpecification >
<path name="templatedata/deployment/dev" />
</pathSpecification>
</remoteDiff>
</iwStore>
</source>
<target useReplicationFarm="" >
<comparisonRules dateDifferent="yes" revert="no" ignoreAcls="yes" ignoreModes="no" ignoreUser="no" ignoreGroup="no" checksumCompare="no" />
<targetFilesystem area="D:\Apps\Interwoven\OpenDeployNG\tmp" />
<replicationFarmLink >
<internal name="MYFARMNAME" />
</replicationFarmLink>
</target>
</definition>
<deployment transactional="yes" >
<execDeploymentTask useDefinition="DeployFiles1" />
<execDeploymentTask useDefinition="DeployFiles2" />
</deployment>
</deploymentConfiguration>
I am using 2 definitions - deploy all from EDITION and then deploy contents from "templatedata/deployment/dev".
"templatedata/deployment/dev" has some folder names same as EDITION but has different content.
Is there anything I am missing here?
Thanks,
Harsh
OD 6.0.2 on W2K3 Server.
Find more posts tagged with
Comments
stefanmaier
Hi,
both definitions try to write into the same target directory,
I think, that the problem.
For testing, try to change the two target directories to different targets...
Stefan
Harsh_SVRN
Thanks for your response Stefan. It works when two target directories are different but I need to deploy to same target directory from two different locations using one deployment configuration. I also tried combining two definitions into one and using two different <pathSpecification> elements.
Any ideas?
Thanks,
Harsh
stefanmaier
Hi Harsh,
well, that's a problem in principle.
What should be the result if you try to synchronize directory A to target T and
directory B to target T?
I think, there's no solution for this problem...
What's with writing one definition with multiple remoteDiff and target statements
like described in od.602.admin.pdf, page 170?
Stefan
Harsh_SVRN
HI Stefan,
What I am doing here is deploying all files from directory A to target T and some files from directory B to target T in transaction. I don't think this is not acceptable. This works fine if I set the transactional attribute to "NO" in deployment configuration. I will look into OD admin documentation that you indicated.
Thanks,
Harsh
OD 6.0.2, Win2K3
Adam Stoller
It doesn't work for transactional deployments because transactional deployments create a new copy of the target directory for each deployment definition or "leg" (not sure what granularity) - and then, when ALL the deployments have been completed - it will move those copies of the target directories into place. If you have two parts of a deployment deploying to the same target directory - you're essentially creating two copies of the target directory and only one of them can be moved into place after the deployment is completed.
That's the essence of the problem - some of the details may be a bit more inaccurate.
--fish
Senior Consultant, Quotient Inc.
http://www.quotient-inc.com
Harsh_SVRN
Does that mean there is no way out for the scenarios where there is a need to deploy (in transaction) to same target directory from 2 different sources?
Adam Stoller
Try this:
<deploymentConfiguration>
<!-- ... -->
<definition name="DeployFiles1">
<source>
<iwStore>
<remoteDiff area="//IWSERVER/default/main/internet/EDITION" name="test">
<pathSpecification>
<path name="."/>
<filters>
<excludePath subPath="templatedata"/>
<excludePattern regex=".*\.file$"/>
<excludePattern regex=".*\.asa$"/>
<excludePattern regex="mqlocator\.ini"/>
<excludePattern regex=".*\.cgi"/>
</filters>
</pathSpecification>
<pathSpecification>
<path name="templatedata/deployment/dev"/>
</pathSpecification>
</remoteDiff>
</iwStore>
</source>
<target useReplicationFarm="">
<comparisonRules dateDifferent="yes" ignoreAcls="yes"/>
<targetFilesystem area="D:\Apps\Interwoven\OpenDeployNG\tmp"/>
<replicationFarmLink>
<internal name="MYFARMNAME"/>
</replicationFarmLink>
</target>
</definition>
<deployment transactional="yes">
<execDeploymentTask useDefinition="DeployFiles1"/>
<execDeploymentTask useDefinition="DeployFiles2"/>
</deployment>
</deploymentConfiguration>
I
think
that using multiple
pathSpecification
elements within a single
source
element allows both sections to be seen as part of the same
leg
and thus avoids the problem. This is possible, in your case, because the source root for both path specifications is the same.
--fish
Senior Consultant, Quotient Inc.
http://www.quotient-inc.com
Harsh_SVRN
Thanks for your response. I have already tried using one definiton/source and 2 pathSpecification elements but the results are same (works when transactional="no" but doesn't otherwise). In fact that's how my earlier configuration was. I also have a case open with Interwoven support and waiting to hear from them.
Thanks,
Harsh