4

I am trying to upload Multimedia component of 20 MB. I am not able to save this component.

I am getting this error message

Unable to save Component (tcm:0-0-0).
The transaction has aborted.

Error Code:
0x80040000 (-2147221504)

Call stack:
System.Transactions.TransactionStateAborted.CreateAbortingClone(InternalTransaction)
System.Transactions.DependentTransaction..ctor(IsolationLevel,InternalTransaction,Boolean)
System.Transactions.Transaction.DependentClone(DependentCloneOption)
System.Transactions.TransactionScope.SetCurrent(Transaction)
System.Transactions.TransactionScope.PushScope()
System.Transactions.TransactionScope..ctor(TransactionScopeOption,TransactionOptions,EnterpriseServicesInteropOption)
Tridion.ContentManager.Session.CreateTransactionScope(EnterpriseServicesInteropOption)
Tridion.ContentManager.ContentManagement.VersionedItem.CheckIn(Boolean)
Tridion.ContentManager.ContentManagement.VersionedItem.CheckIn()
Tridion.ContentManager.BLFacade.ContentManagement.VersionedItemFacade.CreateAndCheckIn(UserContext,String,Boolean)
XMLState.Save
Component.Save

Any ideas how to resolve this.

The timeout values are

enter image description here

2
  • is your database maintenance up to date? and does it work for smaller binaries (try something of 1MB and something of 5MB)? Commented Nov 27, 2014 at 11:22
  • It works for smaller binaries. Recently only we have run Re indexing scripts as per documentation.
    – Patan
    Commented Nov 27, 2014 at 11:31

2 Answers 2

2

I did have some similar issue before with a Tridion installation, and some site (can't remember where) suggested this was an issue with sql server indexes. As a result, I got this error whenever I tried to upload a MM component, no matter how big it was.

To get this fixed, you should run this query against the CM database:

SELECT 1 FROM BINARIES WHERE ID = -1 AND CONTENT IS NULL

As it only performs a select statement, it does not modify your DB, so it should not have an impact on your support contract.

In my case, running this script (it took some time before it finished) solved this problem.

Not sure if this problem is the same as yours, but it's worth a try

2
  • Thank you. Can this be used for oracle db as well?
    – Patan
    Commented Nov 27, 2014 at 11:34
  • the "fix" was specific for sql server. Not sure if it will work on an Oracle DB (the script may run fine, but not sure if it will have the same effect). However, I see in your comments above that your setup still works with smaller binaries, so your problem might be different. Commented Nov 27, 2014 at 11:46
1

Since you indicate it does work for smaller binaries, that means the basic mechanism works, but there is an issue related to the size.

This can have multiple causes, first one always is the default upload size of an ASP.NET application, which is 4MB. On 2011 SP1 this only is an issue if you are uploading via WebDAV, and you can change this setting as explained in the documentation (requires login).

You didn't indicate what size exactly works and which one doesn't, so I'm assuming the 5MB one also worked, which would point towards a transaction timeout. Now you should initially NOT try to solve this by increasing the timeouts, as that is a workaround, and not a solution.

The problem most likely will either be in your database or the network. You indicated you have only run the Rebuild Indexes scripts, which means you have failed to properly maintain your database, so I'm guessing your database performance is the issue here. In the documentataion (requires login), you will also find detailed instructions about maintaing an Oracle database. You should be regularly running AnalyzeStats.sql to update the table, column, and index statistics. The cost-based optimizer uses these statistics to select an optimal query plan. Failing to do this part of maintenance will make your database slow which means you could get transaction timeouts.

If all that is taken care of and you still have an issue, then we still have the network. This is where it will become a bit more tricky to figure out the cause. Because we have the network between the client and the SDL Tridion CM server, and then we have the network between the SDL Tridion CM server and your Oracle database. both could be an issue and should be checked. The first thing I would suggest is see if an upload directly from the SDL Tridion CM server itself does work, then you at least have an idea of where you need to start looking for network performance issues.

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.