部署准备提交阶段失败,无法准备事务

时间:2012-05-02 07:36:14

标签: tridion

在从SDL Tridion 5.2迁移到2011 SP1之后尝试发布或取消发布某些页面和结构组时,我们遇到了问题。

发布事务在Committing Deployment阶段失败,并返回以下错误消息:

  

阶段:部署准备提交阶段失败,无法准备   transaction:tcm:0-682623-66560,null,null

cd_deployer.exe服务也几乎同时以100%的CPU使用率运行。

我们还在cd_deployer.log和cd_core.log文件中获得以下信息:

2012-05-02 07:32:09,346 ERROR DeployPipelineExecutor - Unable to start processing deployment package with transactionId: tcm:0-682520-66560
2012-05-02 07:36:36,071 ERROR DeployPipelineExecutor - Final attempt in Phase: Deployment Prepare Commit Phase failed for transaction: tcm:0-682526-66560
2012-05-02 07:36:36,071 ERROR DeployPipelineExecutor - Original stacktrace for transaction: tcm:0-682526-66560
com.tridion.deployer.ProcessingException: Unable to prepare transaction: tcm:0-682526-66560, null, null
    at com.tridion.deployer.phases.PreCommitPhase.handleFailure(PreCommitPhase.java:120) ~[cd_deployer.jar:na]
    at com.tridion.deployer.phases.PreCommitPhase.execute(PreCommitPhase.java:101) ~[cd_deployer.jar:na]
    at com.tridion.deployer.phases.DeployPipelineExecutor.runMainExecutePhase(DeployPipelineExecutor.java:186) [cd_deployer.jar:na]
    at com.tridion.deployer.phases.DeployPipelineExecutor.doExecute(DeployPipelineExecutor.java:97) [cd_deployer.jar:na]
    at com.tridion.deployer.phases.DeployPipelineExecutor.execute(DeployPipelineExecutor.java:61) [cd_deployer.jar:na]
    at com.tridion.deployer.TransactionManager.handleDeployPackage(TransactionManager.java:80) [cd_deployer.jar:na]
    at com.tridion.deployer.queue.QueueLocationHandler$1.run(QueueLocationHandler.java:176) [cd_deployer.jar:na]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.6.0_30]
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.6.0_30]
    at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.6.0_30]
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_30]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_30]
    at java.lang.Thread.run(Unknown Source) [na:1.6.0_30]

从页面中删除组件演示文稿并重新发布可以正常工作。使用不同的组件模板不起作用,因此问题似乎与组件在某处。

页面,二进制文件和DCP都被发布到文件系统。我确实想知道问题是否与发布大型二进制文件有关,但是从组件中删除它们没有任何区别。

有没有人有任何想法如何解决这个问题?

亲切的问候

编辑:我现在已将此跟踪到许多我无法发布或取消发布的组件。尝试发布或取消发布组件时,事务将保持在“提交部署”阶段大约5分钟,cd_deployer服务最大化CPU,最终失败并显示相同的错误消息。

如果我通过复制和粘贴创建相同的组件副本,这样可以正常工作,并在几秒钟内直接发布,而不会影响服务器的CPU。很奇怪!

编辑2:这是我们目前在cd_storage_conf.xml文件中为每个出版物提供的示例:

<Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="21_content" defaultFilesystem="false">
    <Root Path="D:/WebSites/live/Website/wwwroot/" />
</Storage>
<Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="21_data" defaultFilesystem="true" defaultStorage="true">
    <Root Path="D:/WebSites/live/Website/Data" />
</Storage>

<Publication Id="21" defaultStorageId="21_data" cached="false">
    <Item typeMapping="Page" cached="false" storageId="21_content"/>
    <Item typeMapping="Binary" storageId="21_content" cached="false"/>
    <Item typeMapping="ComponentPresentation" storageId="21_data"/>
</Publication>  

元数据没有特定的类型映射。

3 个答案:

答案 0 :(得分:3)

您是否尝试取消发布然后重新发布有问题的网页?这经常为我解决问题。我有一个理论认为,有时旧的失败事务可能已经锁定了Broker中的某些行。取消发布页面似乎可以解除它们。这不会真正解决问题的原因,但如果它有效,它应该有助于隔离原因。

答案 1 :(得分:2)

检查cd_storage_conf - 您是否将所有元数据存储到同一位置?如果没有,请修改以防万一。

如果您仍在使用cd_broker_conf并允许系统转换为cd_storage_conf,那么创建自己的cd_storage_conf会更好,因为您遇到了困难。

答案 2 :(得分:0)

我记得在部署人员中,有一个Phasing设置。对于每个部署标记,定义了一个阶段,对于何时触发部署处理程序:Pre,normal&amp;交。

不确定确切的配置是什么,但是当我们设置存档管理器时遇到了问题。

此外,当临时工作目录溢出数据时,我们遇到了部署/传输问题。清除文件夹(默认为:c:\ temp或c:\ work)将加快进程。

2美分......

相关问题