Ошибка развертывания контента при публикации в Oracle broker db - PullRequest
4 голосов
/ 25 февраля 2012

Я получаю сообщение об ошибке при попытке развернуть контент в базе данных oracle broker (я использую Tridion 2011 sp1) У меня был поиск на форуме SDL Tridion, и я не могу найти никого, у кого была такая же проблема.

Сообщение об ошибке в 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>

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

4 голосов
/ 01 марта 2012

Doh! - Я могу подтвердить, что проблема заключалась в том, что пользователь базы данных oracle не имел доступа к правильной схеме.

Тем не менее, если кто-то ищет здесь ту же проблему, он будет знать, где искать:)

2 голосов
/ 25 февраля 2012

Сообщение об ошибке указывает, что SQL-запрос, сгенерированный hibernate, не выполняется должным образом в вашей базе данных.Можете ли вы дважды проверить конфигурацию хранилища (возможно, опубликуйтеЭлемент здесь.В частности, вы можете проверить правильность атрибута диалекта.

...