4

I am using SDL Tridion 2011 SP1.

When I trying to publish a Component I am getting query timed out error.

The component is not so large. The Component publish fails at

Waiting for deployment-->resolving-->Failed

I tried increasing the timeouts in SDL Tridion Configuration Manager but it did not work.

There are no corresponding logs in event viewer.

Any ideas to fix this?

  • I can't understand which query would be timing out... could it be something in the template itself? Do you get this error when previewing? – Nuno Linhares Dec 16 '13 at 13:55
  • Try enabling the publisher log in the Snap-in. It may provide additional info. – Nickoli Roussakov Dec 16 '13 at 14:11
  • Can you try publishing the same component with a different component template, and a different component with the original component template? – NVanderEnde Dec 16 '13 at 15:35
  • @NunoLinhares. The preview works fine. But publishing fails. – Patan Dec 16 '13 at 15:36
  • @NickoliRoussakov.. Thanks for the hint. I enabled it. But also nothing was logged with respect to this. I restarted IIS, COM+, and Services too. – Patan Dec 16 '13 at 15:37
4

Without a specific error message, it's difficult to diagnose this problem properly; however, if it's failing while resolving then it's not likely to be an issue with the CT but, if you have a lot of Component Links, a possible culprit is an exponential tree of dependencies causing a timeout when resolving items to publish (off the top of my head I think the stored procedure in question is called something along the lines of EDA_GETPUBLISHITEMS). You can test for this by choosing "Show Items to Publish" on the Publish dialog and seeing how long it takes to resolve all of the Component Links.

We've encountered this in a production environment in the past and after trying various other things (service packs, configuration, database maintenance), we ended up implementing an event handler to subscribe to the ComponentPublishPre event and override Component Link resolution so dependencies (except Multimedia Components) aren't published.

/// <summary>
/// Disable link resolution for component publishing
/// </summary>
public void OverrideLinkResolution(Component component, PublishEventArgs args,
                                   EventPhases phase)
{
    var targets = args.Targets.Cast<TargetType>().ToArray();
    args.PublishInstruction.ResolveInstruction.IncludeComponentLinks = false;

    // If this component uses any multimedia components then publish them too
    foreach (var item in component.GetUsedItems())
    {
        var relatedComponent = item as Component;
        if (relatedComponent != null
            && relatedComponent.ComponentType == ComponentType.Multimedia)
        {
            item.Publish(targets, true, false);
        }
    }
}

This has the drawback that content editors will have to publish dependencies manually in order to get Component Links (particularly in Rich Text fields) to work, though in our case this wasn't undesirable as there was such a rich network of links that publishing any dynamic Component Presentation was likely to take all sorts of unready content with it.

| improve this answer | |
1

I got same issue, try running "sp_updatestats" for each database and it would fix the issue. I have just fixed this issue.

| improve this answer | |

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.