2012-02-24 59 views
4

當試圖將內容部署到Oracle代理數據庫(我正在運行Tridion 2011 sp1)時出現錯誤。我在SDL Tridion論壇上進行了搜索,找不到有相同問題的任何人。發佈到Oracle代理時發生內容部署者錯誤db

在CME的錯誤消息是:

Committing Deployment Failed 
Phase: Deployment Prepare Commit Phase failed, Unable to prepare transaction: tcm:0-55-66560, 
org.hibernate.exception.SQLGrammarException: could not execute query, 
org.hibernate.exception.SQLGrammarException: could not execute query, Unable to prepare transaction: 
    tcm:0-55-66560, org.hibernate.exception.SQLGrammarException: could not execute query, 
    org.hibernate.exception.SQLGrammarException: could not execute query 

而且在部署日誌中我得到以下幾點:

2012-02-24 15:07:27,866 WARN DeployPipelineExecutor - Phase: Deployment Prepare Commit Phase failure message: Unable to prepare transaction: tcm:0-55-66560, org.hibernate.exception.SQLGrammarException: could not execute query, org.hibernate.exception.SQLGrammarException: could not execute query for transaction: tcm:0-55-66560 
2012-02-24 15:07:27,866 DEBUG DeployPipelineExecutor - Failure in Phase: Deployment Prepare Commit Phase attempt: 11 for transaction: tcm:0-55-66560 
2012-02-24 15:07:27,866 ERROR DeployPipelineExecutor - Final attempt in Phase: Deployment Prepare Commit Phase failed for transaction: tcm:0-55-66560 
2012-02-24 15:07:27,875 ERROR DeployPipelineExecutor - Original stacktrace for transaction: tcm:0-55-66560 
com.tridion.deployer.ProcessingException: Unable to prepare transaction: tcm:0-55-66560, org.hibernate.exception.SQLGrammarException: could not execute query, org.hibernate.exception.SQLGrammarException: could not execute query 
     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(Executors.java:417) [na:1.5.0_11] 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) [na:1.5.0_11] 
     at java.util.concurrent.FutureTask.run(FutureTask.java:123) [na:1.5.0_11] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) [na:1.5.0_11] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) [na:1.5.0_11] 
     at java.lang.Thread.run(Thread.java:595) [na:1.5.0_11] 
2012-02-24 15:07:27,875 INFO TransactionPersistence - Removing deployment transaction information: tcm:0-55-66560 
2012-02-24 15:07:27,876 ERROR DeployPipelineExecutor - Unable to start processing deployment package with transactionId: tcm:0-55-66560 
2012-02-24 15:07:27,880 DEBUG DeployPipelineExecutor - Checking if transaction is completed: tcm:0-55-66560 is true 
2012-02-24 15:07:27,880 INFO DeployPipelineExecutor - Transaction is completed: tcm:0-55-66560 
2012-02-24 15:07:27,882 INFO DeployPipelineExecutor - Finished executing deployment pipeline for: tcm:0-55-66560 in 2274 ms. 

編輯:

下面是從cd_storage_conf節點。 xml文件:

<Storages> 
    <Storage Type="persistence" Id="ddeploy" dialect="ORACLESQL" Class="com.tridion.storage.persistence.JPADAOFactory"> 
      <Pool Type="jdbc" Size="5" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120" /> 
      <DataSource Class="oracle.jdbc.pool.OracleDataSource"> 
       <Property Name="driverType" Value="thin"/> 
       <Property Name="networkProtocol" Value="tcp"/> 
       <Property Name="serverName" Value="secret"/> 
       <Property Name="portNumber" Value="1526"/> 
       <Property Name="databaseName" Value="secret"/> 
       <Property Name="user" Value="secret"/> 
       <Property Name="password" Value="secret"/> 
      </DataSource> 
    </Storage> 

    <Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="defaultFile" defaultFilesystem="false"> 
     <Root Path="/htdocs/en_US/" /> 
    </Storage> 

    <Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="defaultDataFile" defaultFilesystem="true" defaultStorage="true"> 
     <Root Path="/htdocs/en_US/data" /> 
    </Storage> 
</Storages> 

和項目類型

<ItemTypes defaultStorageId="ddeploy" cached="false"> 
    <Item typeMapping="Page" cached="false" storageId="defaultFile"/> 
    <Item typeMapping="Binary" cached="false" storageId="defaultFile"/> 
</ItemTypes> 

任何幫助將不勝感激。

+0

你好約翰。你使用哪個Oracle版本(和補丁)?是否所有內容都無法部署(我懷疑是這種情況)還是僅僅是某種類型? – 2012-02-24 23:45:41

+0

您是否檢查過您的lib文件夾包含您的Java版本的正確JAR文件? (用於Java 5的ojdbc5.jar和用於Java 6的ojdbc6.jar) – 2012-02-25 15:28:31

+0

嘿喬納森 - 它的一切都是db。罐子都很好。謝謝:) – johnwinter 2012-02-26 01:16:22

回答

4

Doh! - 我可以確認問題在於oracle數據庫用戶沒有獲得正確的模式。

不過,如果有人在這裏搜索了相同的問題,他們會知道正確的地方去尋找:)

+0

感謝您的更新約翰。奇怪的是,Hibernate(或Oracle)返回了一個SQLGrammarException而不是某種認證失敗消息。一個要注意! – 2012-03-01 11:02:51

2

錯誤消息指示由休眠生成的SQL查詢在您的數據庫上執行不正確。你可以仔細檢查你的存儲配置(也許在這裏發佈<存儲/ >元素。特別是,你可以檢查方言屬性是否正確。

+0

嗨Dom,我已經添加了存儲節點到我的問題。謝謝。 – johnwinter 2012-02-27 16:13:24

相關問題