Expand my Community achievements bar.

SOLVED

com.day.cq.personalization.impl.TeasersCacheServiceImpl does not invalidate cache on event

Avatar

Community Advisor

Hi,

 

We are using OOTB TeasersCacheServiceImpl to do personalisation in AEM 6.4.4.0.

 

When we activate content we don't see variants updated on Publishers. The content get's replicated to Publishers, but the actual TeasersCacheServiceImpl that serves content to TargetedManagerImpl does not serve updated variants. We have verified and it's not due to Dispatcher.

 

We are facing issues whereby, when we activate new content, com.day.cq.personalization.impl.TeasersCacheServiceImpl does not flush it's internalteaserCacheMap within

protected Map<String, TeaserCache> teaserCacheMap = new HashMap();

public void handleChange(ResourceChange resourceChange) {

//does not get invoked.

 

The issue is consistent. Since it's in memory map, restarting server resolves the issue.

But, we can't restart our Prod server time every we modify content.

Unfortunately, API's to flush this map are not public and we can't invoke it from our code.

 

Kindly advice if anyone has faced similar issues and how you resolved it.

 

Regards,

Peter

1 Accepted Solution

Avatar

Correct answer by
Level 10

Hi @Peter_Puzanovs,

I couldn't find this class - com.day.cq.personalization.impl.TeasersCacheServiceImpl as part of Personalization bundle in 6.5.0(assuming the implementation might have been updated) nor I could gain access to Service Pack 4 of AEM 6.4 to reproduce this issue.

Given this, I suggest to check if there is any chance to update to latest Service pack as part of AEM 6.4 (On a high level, could see fixes related to Personalization in general from 6.4.8 release notes not exactly relating to this issue though)

Note : Haven't had a chance to work on Personalization in real time projects before and hence couldn't comment about this particular class/behavior 

View solution in original post

5 Replies

Avatar

Correct answer by
Level 10

Hi @Peter_Puzanovs,

I couldn't find this class - com.day.cq.personalization.impl.TeasersCacheServiceImpl as part of Personalization bundle in 6.5.0(assuming the implementation might have been updated) nor I could gain access to Service Pack 4 of AEM 6.4 to reproduce this issue.

Given this, I suggest to check if there is any chance to update to latest Service pack as part of AEM 6.4 (On a high level, could see fixes related to Personalization in general from 6.4.8 release notes not exactly relating to this issue though)

Note : Haven't had a chance to work on Personalization in real time projects before and hence couldn't comment about this particular class/behavior 

Avatar

Community Advisor
Hi Vijay, Thanks for your reply, we are pushing latest service pack of 6.4 right now to see if it will fix this problem. Regards, Peter

Avatar

Level 4

I see similar issue in AEM 6.5 (author mode) if we navigate to preview mode from Edit -> Targeting -> Preview.  Can you let me know what was fix implemented to fix the issue?

Avatar

Community Advisor

Hi @test1234567 

 

We patched it from our OSGi apps side.

 

Added event listener in publisher's on path's that hold our personalisations data.

 

When event was received,

 

Then we hooked into ServiceComponentRuntime to get com.day.cq.personalization.impl.TeasersCacheService and then forcefully restarted it to flush internal cache.

 

Regards,

Peter