The problem is, after I publish something in the CMS, none of the CD nodes pick up those changes and update their cache. I can see instruction being added to umbracoCacheInstruction table, however, it seems none of the nodes attempt to read it. I've turned on debug logging, the roles of the nodes are self-assigned correctly, but there was no attempt by any service that would indicate that it's trying to read the cache instructions.
Probably should have added post mortem to this thread. My issue was connected to the 'customization' done to our Content Delivery. Most of the Umbraco modules were removed to prevent accessing Umbraco using the CD node. In turn, this actually prevented some of the internal Umbraco functions from working.
In the end, I have implemented the cache refreshing on my own. I consume the AfterUpdateDocumentCache and AfterClearDocumentCache events on the CM node and fire off my own custom event on the Azure Service Bus that is then consumed on the CD node, where I refresh the Umbraco cache using Reflection. The code below:
var messenger = ServerMessengerResolver.Current.Messenger as DatabaseServerMessenger;
if (messenger == null)
{
logger.Error("Could not sync Umbraco cache, DatabaseServerMessenger could not be found");
return;
}
var messengerType = typeof(DatabaseServerMessenger);
var syncMethod = messengerType.GetMethod("Sync", BindingFlags.NonPublic | BindingFlags.Instance);
if (syncMethod == null)
{
logger.Error("Could not sync Umbraco cache, Sync() method of DatabaseServerMessenger could not be found");
return;
}
syncMethod.Invoke(messenger, new object[] { });
It's not an ideal solution (a bit too hacky), but it does work in the end.
Cache instructions are not read by the CD instances
I'm running Umbraco 7.6.11 on Azure with flexible load balancing setup described here: https://our.umbraco.org/documentation/getting-started/setup/server-setup/load-balancing/flexible and recently started defining the master/slave servers explicitly as defined here: https://our.umbraco.org/documentation/getting-started/setup/server-setup/load-balancing/flexible-advanced
The problem is, after I publish something in the CMS, none of the CD nodes pick up those changes and update their cache. I can see instruction being added to umbracoCacheInstruction table, however, it seems none of the nodes attempt to read it. I've turned on debug logging, the roles of the nodes are self-assigned correctly, but there was no attempt by any service that would indicate that it's trying to read the cache instructions.
Anything I should take care of to make this work?
Hi. I am experiencing the same issue with published content not being picked up on the web servers with a new site, not on Azure though.
Did you manage to resolve this or anyone know how to resolve this?
Thanks.
Hey,
Probably should have added post mortem to this thread. My issue was connected to the 'customization' done to our Content Delivery. Most of the Umbraco modules were removed to prevent accessing Umbraco using the CD node. In turn, this actually prevented some of the internal Umbraco functions from working.
In the end, I have implemented the cache refreshing on my own. I consume the AfterUpdateDocumentCache and AfterClearDocumentCache events on the CM node and fire off my own custom event on the Azure Service Bus that is then consumed on the CD node, where I refresh the Umbraco cache using Reflection. The code below:
It's not an ideal solution (a bit too hacky), but it does work in the end.
is working on a reply...