5

Scenario:

Recently upgraded CM from Tridion 2013 SP1 HR1 to Web 8.5. Created Web 8.5 CD broker DB including State Store tables. We have used deployer-combined setup from the roles installation folder. Created Web 8.5 Deployer Microservice without Discovery Service capability. and disabled oauth capability . After above setup we published Components and images which failed during Commiting Deploymnet phase with below error :

Phase: Deployment Prepare Commit Phase failed. Failed to execute pipelineId: 'Tridion-PreCommit-TX' for 'tcm:0-xxxxxx-xxxxx' because of Unable to prepare transaction: tcm:0-xxxxxx-xxxxx

The Packages are getting saved at the respective binary zip folders.

In the Deployer logs, I see the below error :

ERROR StepActor - Step 'TridionPreCommitStep' for 'tcm:0-xxxxxx-xxxxx' can NOT retry
2018-04-27 08:04:01,618 ERROR StepActor - Step 'TridionPreCommitStep' for 'tcm:0-xxxxxx-xxxxx': 
com.sdl.delivery.deployer.api.processing.exception.ProcessingException: Unable to prepare transaction: tcm:0-xxxxxx-xxxxx
    at com.sdl.delivery.deployer.steps.TridionPreCommitStep.process(TridionPreCommitStep.java:82)
    at com.sdl.delivery.deployer.engine.pipeline.actor.StepActor.com$sdl$delivery$deployer$engine$pipeline$actor$StepActor$$execute(StepActor.scala:60)
    at com.sdl.delivery.deployer.engine.pipeline.actor.StepActor$$anonfun$receive$1.applyOrElse(StepActor.scala:44)
    at akka.actor.Actor$class.aroundReceive(Actor.scala:480)
    at com.sdl.delivery.deployer.engine.pipeline.actor.StepActor.aroundReceive(StepActor.scala:27)
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
    at akka.actor.ActorCell.invoke(ActorCell.scala:495)
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
    at akka.dispatch.Mailbox.run(Mailbox.scala:224)
    at akka.dispatch.Mailbox.exec(Mailbox.scala:234)
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: org.hibernate.exception.SQLGrammarException: Unable to acquire JDBC Connection
    at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106)
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)
    at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:102)
    at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:129)
    at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getConnectionForTransactionManagement(LogicalConnectionManagedImpl.java:247)
    at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:254)
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:203)
    at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:56)
    at com.tridion.storage.persistence.JPADAOFactory.getEntityManagerForTransaction(JPADAOFactory.java:182)
    at com.tridion.storage.persistence.JPADAOFactory.getDAOForTypeMappingInTransaction(JPADAOFactory.java:149)
    at com.tridion.storage.management.StorageManagerImpl.getOriginalDAO(StorageManagerImpl.java:179)
    at com.tridion.storage.management.StorageManagerImpl.getDAO(StorageManagerImpl.java:151)
    at com.tridion.storage.StorageManagerFactory.getDAO(StorageManagerFactory.java:175)
    at com.tridion.storage.StorageManagerFactory.getDAOForTransaction(StorageManagerFactory.java:125)
    at com.tridion.storage.services.ReferenceCounter.replaceReferences(ReferenceCounter.java:156)
    at com.tridion.storage.deploy.workers.ReferenceEntryWorker.doDeploy(ReferenceEntryWorker.java:60)
    at com.tridion.deployer.model.transaction.TransactionLogItemWorker.doWork(TransactionLogItemWorker.java:42)
    at com.sdl.delivery.deployer.steps.TridionPreCommitStep.process(TridionPreCommitStep.java:67)
    ... 13 common frames omitted
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'TridionBrokerUser'. ClientConnectionId:efc0e9c7-02a2-4069-a290-6cbe796d5176
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217)
    at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:279)
    at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:99)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4343)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3159)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:42)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3122)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2444)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1980)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1627)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1458)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:772)
    at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnectionInternal(SQLServerDataSource.java:704)
    at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnection(SQLServerDataSource.java:54)
    at org.apache.commons.dbcp.DataSourceConnectionFactory.createConnection(DataSourceConnectionFactory.java:43)
    at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
    at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188)
    at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
    at com.tridion.storage.util.RetryPoolingDataSource.getConnection(RetryPoolingDataSource.java:67)
    at com.tridion.storage.util.RetryPoolingDataSource.getConnection(RetryPoolingDataSource.java:45)
    at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)
    at org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:35)
    at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:99)
    ... 28 common frames omitted
2018-04-27 08:04:01,634 DEBUG HybridStateStore - Found pipeline entity for execution id: tcm:0-xxxxxx-xxxxx and pipeline id: Tridion-PreCommit-TX
2018-04-27 08:04:01,681 DEBUG HybridStateStore - Found execution entity for execution id: tcm:0-xxxxxx-xxxxx
2018-04-27 08:04:01,696 ERROR CommandQueuePoller - Could not process command: JSONCommand{verbs=[Content], action='TridionBootstrap', binaryIds=[tcm:0-xxxxxx-xxxxx.Content.zip], executionId='tcm:0-xxxxxx-xxxxx', properties={}} reason: Unable to prepare transaction: tcm:0-xxxxxx-xxxxx

Any help is appreciated .

5
  • 2
    It looks like unable to connect your database, check the database connection string and connectivity from deployer service to db server, also double check the TridionBrokerUser credentials and permissions?
    – Velmurugan
    Commented Apr 27, 2018 at 7:58
  • @Velmurugan I am not sure if the connectivity is the issue . Although even in cd_core logs the error thrown is -" ERROR RetryPoolingDataSource - Passing exception to the caller. Attempt:0 Message:Login failed for user 'TridionBrokerUser'. ClientConnectionId:61c41f8f-c098-4216-b028-78a9cf61416d " . In order to verify I have done these - -Able to connect to SQl Server MS and view the DB and tables with the same login credentials . -Able to test the SQL connection for the TCP/IP connectivity through powershell script -The port has been kept the default - 1433 -No firewall issues .
    – Sayoni
    Commented Apr 30, 2018 at 13:54
  • share the deployer service cd_storage_config and deployer_config, hide the credentials and server information share it via pastebin.com
    – Velmurugan
    Commented Apr 30, 2018 at 14:21
  • @Velmurugan storage - pastebin.com/mmSsUhAp , deployer - pastebin.com/UBw87egA .
    – Sayoni
    Commented Apr 30, 2018 at 16:20
  • Looks like this is default configuration files from Installation media folder, also noticed, the cd_storage_config file was wrong two times whole config section was duplicated. I really want to see your actual config and values, you have mentioned in your question you did installed deployer service without discovery service and then again mentioned you have installed deployer-combined service bit confused for me. Please edit your question to explain bit more detail what exactly you have done.
    – Velmurugan
    Commented May 2, 2018 at 9:46

1 Answer 1

0

Database connection problem due to annoyingly similar replacement parameters. There are two database connections using different jdbc connections.

NOTE: these are case sensitive, "mssql" and "MSSQL"

# for storage dialect
$dbtype    = "MSSQL"
# for storage datasource class
$dbclass  = "com.microsoft.sqlserver.jdbc.SQLServerDataSource"

# for state storage adapter
$dbadapter = "mssql"
# for state storage driver
$dbdriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.