We have an application which has menus generated dynamically through the publishing of a dynamic component presentation.A menu.xml is written out by a component template based on the Structure groups and this component template is triggered through event system to be published whenever a structure group is published.
This setup was working fine until the upgrade of Tridion 2011 from Tridion 2009. But ever since the upgrade, the menus are not dynamically published and are requiring a re-publish of the menu component template every time there is a change in the structure group. We checked the event system and everything is fine there. Moreover, this republish of menu component template triggers problems in some other page menus.
On doing some debugging (we made the component template write out the pageURI it is working on at any instant), we find that the page URI that is being written out is wrong.
Below are the steps taken and conclusions arrived:
All erring pages have been checked; the DCP tag has correct attributes set in the JSP code
Additional TRACE statements were added to the Tridion tag library, this confirmed the following:
- The XSLT was correctly retrieved from the filesystem
- The cached menu was retrieved correctly from the cache
The XSLT was correctly transformed with the variables provided
By writing out the XSLT attributes to the HTML we see that the XSLT processor is being provided wrong parameters.
So can I safely conclude that the issue has been isolated to the following event; the XSL processor is being called with an incorrect page id. Most likely cause is due to concurrency issues in the dynamic component presentation (DCP) java code where the DCP gets swarmed and starts confusing which page is using the current object.
And if this is the case, what can be done to rectify it.
Any information would help. Thanks in Advance!
Regards,
Keirthana T S
Update on 22-Jan-2013:
On more debugging, we find this issue to be recurring on the Presentation side(our presentation server) and the event system has nothing to do with the wrong menus appearing on the page.
That is, when we view a jsp page published from Tridion, we have the correct page URI for the top menu, left menu and breadcrumbs that we have:
<tridion:ComponentPresentation pageURI="tcm:57-186286-64" componentURI="tcm:57-103196" templateURI="tcm:57-23654-32"/><!-- privat-->
<div id="nav"><div class="wrapper">
<tridion:ComponentPresentation pageURI="tcm:57-186286-64" componentURI="tcm:57-23638" templateURI="tcm:57-23656-32" />
</div></div>
<div id="page" class="clear ">
<div id="content" class="clear">
<tridion:ComponentPresentation pageURI="tcm:57-186286-64" componentURI="tcm:57-23639" templateURI="tcm:57-23656-32" />
<div id="middle" class="rightcolumn">
<tridion:ComponentPresentation pageURI="tcm:57-186286-64" componentURI="tcm:57-23636" templateURI="tcm:57-23656-32" />
However, when we view the source of the web page, we find that the page URIs(we wrote out the page URI to html page) are messed up as below: For
<div id="middle" class="rightcolumn">
which generates the breadcrumb we get a different pageURI instead of the correct one.