简体   繁体   English

SDL Tridion 2011在webfarm中取消发布问题

[英]SDL Tridion 2011 Unpublishing Issue in webfarm

To give you a quick overview about our systems-Our production CDA system is a web farm consisting two webservers, web1 and web2. 为了让您快速了解我们的系统 - 我们的生产CDA系统是一个Web服务器场,包含两个Web服务器,web1和web2。 CMS database is sql cluster consisting two database nodes, db1 and db2. CMS数据库是包含两个数据库节点db1和db2的sql集群。 Publication target “Live” consists of two destinations – web1 deployer and web2 deployer which pushes the contents to web1 and web2 site repositories. 发布目标“实时”由两个目标组成 - web1 deployer和web2 deployer,它将内容推送到web1和web2站点存储库。

Recently we found an issue with unpublishing the contents in Production SDL Tridion 2011. While unpublishing multiple structure groups from SDL Tridion , System didn't unpublish the contents from one of the web server . 最近我们发现了在生产SDL Tridion 2011中取消发布内容的问题。在从SDL Tridion取消发布多个结构组时,系统没有取消发布其中一个Web服务器的内容。 However it removed the content from other web server. 但是,它从其他Web服务器中删除了内容。 This happens vice versa- for eg, if unpublish action removes contents from web1,contents remains intact in web2. 反之亦然 - 例如,如果取消发布操作从web1中删除内容,则内容在web2中保持不变。 If it gets removed from web2, content remains in web1 as such. 如果从web2中删除,则内容将保留在web1中。 Message which we see in publishing queue for this unpublish action is “Success” 我们在发布队列中看到的此取消发布操作的消息是“成功”

Have you encountered these kind of issues before? 你以前遇到过这类问题吗? And would it be possible for you to let me know if you have used similar strategy for pushing the contents to webfarm? 如果您使用类似的策略将内容推送到webfarm,您是否可以告诉我?

We don't see any particular error message in deployer logs, however we do see some warnings as below. 我们在部署日志中看不到任何特定的错误消息,但是我们确实看到了一些警告,如下所示。

2012-08-08 06:48:59,659 WARN PreCommitPhase - Failed to Prepare: tcm:0-5026-66560 error: org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; 2012-08-08 06:48:59,659 WARN PreCommitPhase - 准备失败:tcm:0-5026-66560错误:org.hibernate.StaleStateException:批量更新从update [0]返回意外行数; actual row count: 0; 实际行数:0; expected: 1 2012-08-08 06:48:59,659 WARN PreCommitPhase - Failed to Prepare: tcm:0-5026-66560 error: org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; 预期:1 2012-08-08 06:48:59,659 WARN PreCommitPhase - 准备失败:tcm:0-5026-66560错误:org.hibernate.StaleStateException:批量更新从update [0]返回意外行数; actual row count: 0; 实际行数:0; expected: 1 预期:1

Appreciate all your help in this! 感谢您的所有帮助!

Thanks, KK 谢谢,KK

It is not supported to have two deployers pointing to the same broker database. 不支持让两个部署者指向同一个代理数据库。 If you think about it, it is clear what is happening in your case: 如果您考虑一下,很明显您的案例中发生了什么:

  • You unpublish a structure group (or page, or whatever). 您取消发布结构组(或页面,或其他)。 A publish package is created and transported to both deployers. 创建发布包并将其传输给两个部署者。
  • Deployer A picks it up and starts to remove files and database records Deployer A选择它并开始删除文件和数据库记录
  • While this is going on, deployer B picks up the same package, and starts removing files (no problem since there are 2 separate file systems) and database records. 在这种情况下,部署者B会选择相同的软件包,并开始删除文件(没有问题,因为有2个单独的文件系统)和数据库记录。 But these records have already been removed by deployer A. 但这些记录已被部署员A删除。
  • You get errors like the one you have submitted. 您收到的错误就像您提交的错误一样。

There are at least three solutions to this problem: 这个问题至少有三种解决方案:

  1. Start using a shared file system for your two web servers. 开始为两个Web服务器使用共享文件系统。 You can then switch off one of your deployers. 然后,您可以关闭其中一个部署者。
  2. Change the cd_storage_conf.xml for one of the two deployers, and point the metadata to some dummy target (eg a folder on your file system which will not be used). 更改两个部署者之一的cd_storage_conf.xml,并将元数据指向某个虚拟目标(例如,文件系统上将不使用的文件夹)。
  3. Set up separate broker databases for your two web servers. 为两个Web服务器设置单独的代理数据库。

Each solution has pros and cons. 每种解决方案都有利有弊。 You will need to decide on this yourself. 您需要自己决定。

I too encountered the same problem in one of my earlier projects. 我在之前的一个项目中遇到过同样的问题。 Quirjin has provided a nice solution. Quirjin提供了一个很好的解决方案。

Another option is too set publishing only to single file system 'A' and use a tool like robocopy which copies the content of 'A' to other file system 'B'. 另一种选择是仅将发布设置为单个文件系统“A”,并使用像robocopy这样的工具将“A”的内容复制到其他文件系统“B”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM