AnsweredAssumed Answered

'categories' crippling Alfresco performance

Question asked by davidd on Aug 6, 2008
Latest reply on Aug 15, 2008 by davidd
I'm running Alfresco Version: Community Network - v2.9.0 (B 683) on tomcat.

Whilst loading documents into a space with a custom presentation template, I found performance was being degraded.

Clicking on the space in Alfresco would cause Tomcat to run at 100% CPU and it could take 1 or two minutes (!) to display the space in question.
The more PDFs I added to the space, the worse things got, until finally you couldn't view the space at all - it would generate a TomCat proxy timeout error!

I found that by going into my presentation template and commenting out the lines which were displaying Categories, performance returned to normal.
Is this a known issue with catagories?
I found them very useful for tagging content with particular types of stuff, where a single metadata field would be inappropriate, as the document could fall in more than one category.

The culprit lines in the ftl file were:

  <td>
            <#if child.properties["custom:CustomerFacing"]?exists>
            ${child.properties["custom:CustomerFacing"]?string("Yes","No")}
            <#else>
            N/A
            </#if>
            </td>

            <td>
               <#– <@listSubCategories "Languages" child/>–>
            </td>

<td>
                <#–<@listSubCategories "Product name" child/>–>
            </td>

            <td>
              <#–  <@listSubCategories "Product version" child/>–>
            </td>
<td>
<#–<@listSubCategories "Product deployment type" child/>–>
</td>

          </tr>
   </#list>
</table>

<#macro listSubCategories catName child>
    <#list classification.getRootCategories("cm:generalclassifiable") as cat>
        <#if cat.name = catName>
            <#assign first="yes">
            <#list cat.subCategories as subCat>
                <#if subCat.immediateCategoryMembers?seq_contains(child)>
                    <#if first="no">
                        ,
                    </#if>
                    ${subCat.name}
                    <#assign first="no">
                </#if>
            </#list>
        </#if>
    </#list>
</#macro>


Is there anything bad looking in there?

Outcomes