2

When I am trying to check out some of the Pages in SDL Tridion 2013 SP1, I am getting below error message details. Can anyone help in resolving this issue?

Just for information, We are facing this issue suddenly from yesterday. Before that it was working fine.

A database error occurred while executing Stored Procedure "EDA_ITEMS.CHECKOUT". ORA-00001: unique constraint (TRIDION_CM.PK_PAGE_CONTENT) violated ORA-06512: at "TRIDION_CM.EDA_ITEMS", line 5168 ORA-06512: at "TRIDION_CM.EDA_ITEMS", line 3344 ORA-06512: at line 1 Component: Tridion.ContentManager.CoreService Errorcode: 831 User: NT AUTHORITY\NETWORK SERVICE StackTrace Information Details: at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck, Int32 isRecoverable) at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, Boolean bCheck) at Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery() at Tridion.ContentManager.Data.AdoNet.DatabaseUtilities.ExecuteNonQuery(StoredProcedureInvocation storedProcedureInvocation) at Tridion.ContentManager.Data.AdoNet.Oracle.OracleDatabaseUtilities.ExecuteNonQuery(StoredProcedureInvocation storedProcedureInvocation) at Tridion.ContentManager.Data.AdoNet.Oracle.OracleDatabaseUtilities.ExecuteNonQuery(StoredProcedureInvocation storedProcedureInvocation) at Tridion.ContentManager.Data.AdoNet.ContentManagement.VersionedItemDataMapper.Tridion.ContentManager.Data.ContentManagement.IVersionedItemDataMapper.CheckOut(TcmUri id, LockType lockType, String systemComment) at Tridion.ContentManager.ContentManagement.VersionedItem.CheckOut(LockType lockType, Boolean completeTransactionOnFailure) at Tridion.ContentManager.ContentManagement.VersionedItem.CheckOut(Boolean permanentLock) at Tridion.ContentManager.CoreService.CoreServiceBase.CheckOut(String id, Boolean permanentLock, ReadOptions readBackOptions) at SyncInvokeCheckOut(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at Tridion.ContentManager.CoreService.CoreServiceInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

  • Do you have workflow enabled. Have you any event system code in the mix. Are there any GUI extensions still active. Have you rebooted the machine? ... Can you list what you've tried thus far to resolve/test this? (for example - on doing a 'ShowWhereUsed' on the offending Component can you confirm if it's localized in the blueprint hierarchy (this should obviously be resolved by the CMS, but knowing the full state of the Component and Children would help someone to attempt to replicate / assist) – Dylan .. Mark Saunders Jul 14 '16 at 9:16
  • @Dylan, Yes I have rebooted the machine, restarted the service but still I am facing same issue. For information we don't have any workflow, Event System and GUI extn. Where Used is also working properly.All the component an schemas are also working fine. – Sayantan Basu Jul 14 '16 at 9:41
  • Are you checking the pages out in code or in code? If the latter can you include the code. Further to the answer from Dominic I would suggest you run a query to identify all updates/created items since this last worked - one of these will likely be the offender by way of some sort of naming conflict (perhaps and edge case where a page name has been updated and not yet checked in or something) – Dylan .. Mark Saunders Jul 14 '16 at 13:15
3

The message states that you are violating a uniqueness constraint. This means that something has happened to cause your database to contain a record which conflicts with the one that is being saved. It's also possible that you have a problem with a sequence.

You have two possible ways forward.

1) Restore a backup from before the problem began. This means losing any updates that have happened since the backup.

2) Manual updates of the database. The only way you can do this is by raising a support ticket with SDL and working with them to establish the correct updates. Any attempt to do this without getting support involved will mean that your system is no longer officially supported. So definitely don't try to do this yourself. Call support.

2

When i've a database issue, I always run updatestats on the CM database first to see if this is cause of the issue:

USE Tridion_cm;  
GO  
EXEC sp_updatestats; 

9 times out of 10 it resolves the problem for me.

0

This is most likely due to the restore of the backup which can cause the oracle sequences to get out of sync. It looks like the value of the sequence SEQ_PAGE_CONTENT does not match with the maximum value of the column ID on the PAGE_CONTENT table.

you can compare both values by performing the following steps:

  1. To check the max value of the column ID on the PAGE_CONTENT table. SELECT MAX(ID) FROM PAGE_CONTENT
  2. To check the current value of the sequence SEQ_PAGE_CONTENT you can either open it or execute SELECT SEQ_PAGE_CONTENT.NEXTVAL FROM DUAL (It increases sequence value every time is executed)

These values should be the same or at least the sequence value should be higher than the max(ID) on the PAGE_CONTENT table.

Resolution:

As Dominic suggested, If the sequence value is lower, then please raise a ticket to SDL support team they will help you to update the sequence value in the database.

Note: Any attempt to do this without getting support involved will mean that your system is no longer officially supported.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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