首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >部署准备提交阶段失败,无法准备事务

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

Stack Overflow用户
提问于 2012-05-02 07:36:14
回答 3查看 2.9K关注 0票数 5

在从SDLTridion5.2到2011年SP1迁移到SDLTridion5.2之后,我们在试图发布或取消发布某些页面和结构组时遇到了问题。

发布事务在提交部署阶段失败,并返回以下错误消息:

阶段:部署准备提交阶段失败,无法准备事务: tcm:0-682623-66560,空,空

大约在同一时间,cd_deployer.exe服务也以几乎100%的CPU使用率运行。

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

代码语言:javascript
复制
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]

从页面中删除组件表示并重新发布工作正常。使用不同的组件模板不起作用,因此问题似乎与组件有关。

页面、二进制文件和DCPs都被发布到文件系统中。我确实想知道这个问题是否与发布大型二进制文件有关,但是将它们从组件中删除并没有起到任何作用。

有没有人知道如何解决这个问题?

亲切的问候

编辑:我现在已经跟踪到许多组件,我无法发布或取消发布。当试图发布或取消发布组件时,事务将在“提交部署”阶段停留约5分钟,而cd_deployer服务将使CPU达到最大值,最后会出现相同的错误消息失败。

如果我通过复制和粘贴创建一个相同的组件副本,它可以正常工作,并在几秒钟内直接完成发布,不会对服务器的CPU产生任何影响。很奇怪!

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

代码语言:javascript
复制
<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>  

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

EN

回答 3

Stack Overflow用户

发布于 2012-05-02 11:19:35

你试过不出版,然后重新发布冒犯的网页吗?这常常为我解决这个问题。我有一个理论,有时一个旧的失败的事务可能锁定了代理中的某些行。联合国出版这一页似乎解放了他们。这并不能真正解决问题的原因,但如果有效的话,它应该有助于隔离原因。

票数 3
EN

Stack Overflow用户

发布于 2012-05-02 11:58:37

检查您的cd_storage_conf -是否将所有元数据存储在同一个位置?如果不是,修改一下,这样就可以了。

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

票数 2
EN

Stack Overflow用户

发布于 2012-05-03 06:11:24

我记得在部署者中心,有一个分阶段的设置。对于每个deploy标记,定义了一个阶段,说明何时触发部署处理程序: Pre、normal & post。

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

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

2美分..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10409554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档