2012-05-02 109 views
5

從SDL Tridion 5.2遷移到2011 SP1後,嘗試發佈或取消發佈某些頁面和結構組時遇到問題。部署準備提交階段失敗,無法準備事務

發佈交易未能在犯下部署階段,並返回以下錯誤信息:

階段:部署準備提交階段失敗,無法準備 交易:中醫認爲: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文件每本出版物的例子:

​​

沒有用於元數據的特定類型映射。

回答

3

您是否嘗試過取消發佈然後重新發布違規頁面?這通常爲我解決了這個問題。我有一個理論,有時舊的失敗事務可能已經鎖定了Broker中的某些行。取消發佈該頁面似乎可以釋放它們。這並不能真正解決問題的原因,但如果它有效,它應該有助於隔離原因。

+0

嗨克里斯,我曾嘗試取消發佈兩個違規網頁和組件,但不幸的是未公佈的交易也將失敗,並返回相同的錯誤信息,所以我不不幸的是,他們現在能夠對他們做任何事情。 –

+0

我不知道我能做多少進一步的幫助。如果可以,我會考慮重新啓動部署者和數據庫。還要仔細檢查是否沒有病毒掃描程序干擾文件(MM組件的某些文件擴展名可能?)。你也可以確認你所處的環境,以及你使用的是什麼Java版本?您能否看到Publish Transaction Zip文件對於發佈時失敗的文件有多大? –

+0

環境在Windows 2008 R2上運行2011 SP1。內容交付服務器正在運行java 1.6.0_30。發佈事務壓縮文件的大小差別很大。小的(1kb和5kb之間)仍然可能失敗。不幸的是,重新啓動部署者並沒有什麼區別。儘管如此,我會與我們的服務器人員一起檢查病毒掃描程序,因爲這可能會導致問題。排除傳入目錄被掃描是否是一種好的做法? –

2

檢查您的cd_storage_conf - 是否將所有元數據存儲到同一位置?如果沒有,修改是這樣的。

如果您仍在使用cd_broker_conf並允許系統轉換爲cd_storage_conf,那麼最好創建自己的cd_storage_conf,因爲遇到困難。

+0

我們已經創建了我們自己的cd_storage_conf.xml文件,並且我已經爲每個出版物添加了上述調用詳細信息的示例。正如你所看到的,沒有特定的元數據類型映射,只有頁面,二進制文件和組件演示。我們是否應該添加像這樣的內容? –

0

我記得在部署者conf中有一個Phasing設置。對於每個部署標記,都會定義一個階段,以便在啓動部署處理程序時:Pre,正常&後。

不知道確切的配置是什麼,但是當我們設置檔案管理器時遇到了問題。

此外,當臨時工作目錄被數據溢出時,我們在部署/傳輸時遇到問題。清除該文件夾(默認爲:c:\ temp或c:\ work)將加速進程。

2美分...

+0

我們在安裝檔案管理器時面臨同樣的問題。你能告訴我做什麼解決了這個問題 – Guestuser1122