Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

cd_link.PageLink GetLinkAsString(...) causing pages to fail every other request

I am currently migrating from Tridion R5.3 to Tridion 2011. I am having issues with serving some pages through the presentation server. For reference all of my web pages are classic ASP and I am running them on IIS7.5.

I have have a page located at http://www.example.com/widget/index.asp. When I first access the page I get a The page cannot be displayed because an internal server error has occurred., if I then refresh the page it loads fine, if I refresh the page a third time it comes up with the error. The page works every other request.

I have enabled Failed Request Tracing on my website and I am getting the error

ASP_LOG_ERROR
LineNumber: 87
ErrorCode: 800706be 
Description:

Note there is no description.

The code being called is

85: Dim objTranslationPageLink
86: Set objTranslationPageLink = Server.createObject("cd_link.PageLink")
87: strTranslatedPageLink = objTranslationPageLink.GetLinkAsString("tcm:0-12-1", "tcm:12-123456-64", "", "", "TranslationFound", False)
88: Set objTranslationPageLink = Nothing

It looks like there is no problems creating the cd_link.PageLink object, just when calling the GetLinkAsString(...) function.

I use the cd_link.PageLink object in lot of other pages with no problems but it seems with pages that use this specific piece of code experience the problems.

I was thinking it could be something to do with caching pages however I turned off caching of ASP pages (IIS7 > ASP > Services > Caching Properties) and still had the problem.

Any ideas?

edit1

The code worked fine on Windows Server 2003 IIS6. I am trying to make it work on Windows Server 2008 IIS7.

edit2

It appears that the page is creating a lot of cd_link.ComponentLink and cd_link.PageLink objects. I have a test page in which I create 10 ComponentLink objects I get the error (every other page) but if I reduce this to 5 ComponentLink objects it works every time.

edit3

My cd_core.xxxx.xx.xx.log has the following errors

2012-11-02 11:55:34,027 ERROR XMLConfigurationReader - Error while validating file 'cd_link_conf.xml' with schema 'schemas/cd_link_conf.xsd'. cvc-complex-type.3.2.2: Attribute 'DefaultRootLocation' is not allowed to appear in element 'Publications'.

edit4

Thanks for bearing with me. The problem I was having with my cd_link_config is fixed and doesn't appear to have been be related. I now have no errors in my any of the four log files (cd_core, cd_deployer, cd_monitor, cd_transport) but the original issue persists.

like image 833
Kevin Brydon Avatar asked Nov 02 '12 11:11

Kevin Brydon


3 Answers

Looks like you are running the CD Link windows service and the following hotfix might help to resolve your issue. I have not tried this hotfix but the description says Page link fails on second attempt of accessing the page, so that means it might work sproadically depending on the logger memory resources.

Anyway worth looking at this hotfix : CD_2011.1.0.78355

Description: The Linking windows service was not correctly cleaning up a logger memory resource on certain windows platforms

like image 160
Ram G Avatar answered Nov 03 '22 00:11

Ram G


It is a long time since I worked with Classic ASP and SDL Tridion, but double check the following

  • Is the linking service running on the server?
  • Check your cd_licenses.xml file is in place
  • Validate that you have a correct cd_link_conf.xml and cd_storage_conf.xml (these changed from 5.3 I believe)
  • Look in the Application and Tridion event logs for clues
  • The Tridion linking log files
  • That error code seems to imply that the Linking DLL is not registered properly.

That is all I can think of for now.

like image 33
Chris Summers Avatar answered Nov 03 '22 00:11

Chris Summers


I didn't realise that 2011 actually schema-validates the config files, but in any case, now the error is clear. I'd suggest doing the validation yourself in an XML editor such as XML Spy. That should point out exactly what's wrong with the configuration file.

To routinely check your configurations, you may find it interesting to script it as described here.

like image 44
Dominic Cronin Avatar answered Nov 03 '22 00:11

Dominic Cronin