Pregunta

Estoy recibiendo un error al intentar implementar contenido en una base de datos de Oracle Broker (estoy ejecutando tridion 2011 SP1).He tenido una búsqueda en el Foro SDL TRIDION y no puedo encontrar a nadie que haya tenido el mismo problema.

El mensaje de error en la CME es:

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

y en los registros de los implementadores obtengo lo siguiente:

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.

Editar:

Aquí está el nodo del archivo 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>

y los tipos de elementos

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

Cualquier ayuda sería muy apreciada.

¿Fue útil?

Solución

¡DOH!- Puedo confirmar el problema aquí fue que el usuario de la base de datos de Oracle no tuvo acceso al esquema correcto.

Aún así, si alguien busca aquí por el mismo problema, sabrán el lugar correcto para mirar :)

Otros consejos

El mensaje de error indica que la consulta SQL generada por Hibernate no se ejecuta correctamente en su base de datos.¿Puede revisar su configuración de almacenamiento (quizás publique el elemento aquí? En particular, ¿puede verificar que el atributo dialecto sea correcto?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top