10

We seem to have a problem with component link caching. Our log files show the following messages:

2013-06-26 14:22:58 WARN ComponentLink:144 - Object cache is enabled but LinkInfo or PageMeta Home objects arent in the CacheBindings, ComponentLink caching will not be enabled

2013-06-26 14:22:58 WARN PageLink:97 - Object cache is enabled but PageMeta Home object isnt in the CacheBindings, PageLink caching will not be enabled

As far as I know all home interfaces are replaced by Data Access Object (DAO) in 2011 and there is no CacheBindings section in the cd_storage_conf.xml.

As we need to build a high-performance site, caching is very important. Does anyone know if this is a real issue and possibly know how to fix this?

Many thanks in advance :-)

5

I've seen this happening a lot on Experience Manager enabled sites; something in the setup there forces componentLinking to never use caching. Alternatively, it might be the "LinkInfo" Item typeMapping which is set to not be cached ...

| improve this answer | |
  • Hi Rogier, it seems you're right about eXperience Manager, forgot to mention that in my original post. I turned it off and now I see the CacheController creating dependencies for the components. The warning messages are also gone as well. Thanks! – user541 Jun 26 '13 at 14:22
  • 1
    Yeah - be sure not to enable the experience manager on your live site too :) – Rogier Oudshoorn Jun 26 '13 at 14:41
4

If you look at the ItemType bindings in cd_storage_conf, you'll see an Attribute cached="true|false" for each binding.

This allows you to control which item types should be cached, and which ones shouldn't. The warning you're getting is just informing you that Tridion didn't find a cache="true" for linking.

If you're anywhere near sane, you do not have all your ItemType bindings in the cd_storage_conf, instead you'll have something along these lines:

<ItemTypes defaultStorageId="sqlserver" cached="false">
    <Item typeMapping="Page" cached="false" storageId="filesystem" />
    <Item typeMapping="Binary" cached="false" storageId="filesystem" />
</ItemTypes>

the cached="false" attribute of the ItemTypes element is the default setting for all Item types, including those that are not declared explicitly.

Setting that attribute to true will basically enable cache for all Item types - except for those that, as in my example for Page & Binary, have cached="false"

| improve this answer | |
  • "Near sane?" I thought just configuring the differences was the creatively lazy... I mean smart and effective approach. ;-) – Alvin Reyes Jun 26 '13 at 14:47
3

The solution is nicely explained by Nuno but you also have a shortcut. Just enable caching for metadata itemType. In 2011SP1 you can have in your storage config:

<Item typeMapping="Metadata" cached="true" storageId="...."/>

In 2011 you need to manually specify the types you want to cache:

<Item typeMapping="PageMeta" cached="true" storageId="...."/>
<Item typeMapping="ComponentMeta" cached="true" storageId="...."/>
<Item typeMapping="LinkInfo" cached="true" storageId="...."/>

Hope this helps.

| 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.