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

Kri*_*mar 3 tridion tridion-content-delivery tridion-2011

为了让您快速了解我们的系统 - 我们的生产CDA系统是一个Web服务器场,包含两个Web服务器,web1和web2.CMS数据库是包含两个数据库节点db1和db2的sql集群.发布目标"实时"由两个目标组成 - web1 deployer和web2 deployer,它将内容推送到web1和web2站点存储库.

最近我们发现了在生产SDL Tridion 2011中取消发布内容的问题.在从SDL Tridion取消发布多个结构组时,系统没有取消发布其中一个Web服务器的内容.但是,它从其他Web服务器中删除了内容.反之亦然 - 例如,如果取消发布操作从web1中删除内容,则内容在web2中保持不变.如果从web2中删除,则内容将保留在web1中.我们在发布队列中看到的此取消发布操作的消息是"成功"

你以前遇到过这类问题吗?如果您使用类似的策略将内容推送到webfarm,您是否可以告诉我?

我们在部署日志中看不到任何特定的错误消息,但是我们确实看到了一些警告,如下所示.

2012-08-08 06:48:59659 WARN PreCommitPhase - 无法准备:中医:0-5026-66560错误:org.hibernate.StaleStateException:批量更新从更新返回的意想不到的行计数[0]; 实际行数:0; 预期:1 2012-08-08 06:48:59659 WARN PreCommitPhase - 无法准备:中医:0-5026-66560错误:org.hibernate.StaleStateException:批量更新从更新返回的意想不到的行计数[0]; 实际行数:0; 预期:1

感谢您的所有帮助!

谢谢,KK

Qui*_*ijn 11

不支持让两个部署者指向同一个代理数据库.如果您考虑一下,很明显您的案例中发生了什么:

  • 您取消发布结构组(或页面,或其他).创建发布包并将其传输给两个部署者.
  • Deployer A选择它并开始删除文件和数据库记录
  • 在这种情况下,部署者B会选择相同的软件包,并开始删除文件(没有问题,因为有2个单独的文件系统)和数据库记录.但这些记录已被部署员A删除.
  • 您收到的错误就像您提交的错误一样.

这个问题至少有三种解决方案:

  1. 开始为两个Web服务器使用共享文件系统.然后,您可以关闭其中一个部署者.
  2. 更改两个部署者之一的cd_storage_conf.xml,并将元数据指向某个虚拟目标(例如,文件系统上将不使用的文件夹).
  3. 为两个Web服务器设置单独的代理数据库.

每种解决方案都有利有弊.您需要自己决定.