Distributed calls failing to propagate in load balanced environment
I am encountering an issue with a load-balanced Umbraco v7.6.5 site using distributed calls. When an item is published or unpublished, this change is not propagated to the other web server - it is only visible on the server where the event took place. The environment is configured as two web servers running behind a load balancer, each with an Umbraco installation connecting to the same database.
The content of the distributedCall/servers section in the umbracoSettings.config file for both servers is set as follows:
Having enabled Debug-level logging in log4net.config, I have noticed that when publishing or unpublishing from one of the servers in the load-balanced environment, that it only makes a cache refresh call to that same server - i.e. publishing on web1 will make a call to instigate a cache refresh on web1 but not web2, and vice-versa. This log sample is taken from web2:
2018-08-10 11:21:13,405 [P6692/D6/T44] INFO Umbraco.Core.Sync.WebServiceServerMessenger - Submitting calls to distributed servers
2018-08-10 11:21:13,407 [P6692/D6/T72] DEBUG Umbraco.Web.UmbracoModule - Begin request: https://client-mainsite2.domain-live.com/umbraco/webservices/cacheRefresher.asmx.
2018-08-10 11:21:13,415 [P6692/D6/T72] DEBUG umbraco.presentation.webservices.CacheRefresher - Ignoring self-message. (server: EC2AMAZ-TSP0Q27, appId: /LM/W3SVC/3/ROOT, hash: fffffff62e614a8c)
2018-08-10 11:21:13,417 [P6692/D6/T44] DEBUG Umbraco.Core.Sync.WebServiceServerMessenger - Distributed server push completed with no nodes reporting an error
And this one is taken from web1:
2018-08-10 10:49:30,444 [P1060/D8/T3] INFO Umbraco.Core.Sync.WebServiceServerMessenger - Submitting calls to distributed servers
2018-08-10 10:49:30,453 [P1060/D8/T31] DEBUG Umbraco.Web.UmbracoModule - Begin request: https://client-mainsite1.domain-live.com/umbraco/webservices/cacheRefresher.asmx.
2018-08-10 10:49:30,544 [P1060/D8/T31] DEBUG umbraco.presentation.webservices.CacheRefresher - Ignoring self-message. (server: EC2AMAZ-TSP0Q27, appId: /LM/W3SVC/3/ROOT, hash: fffffff62e614a8c)
2018-08-10 10:49:30,563 [P1060/D8/T3] DEBUG Umbraco.Core.Sync.WebServiceServerMessenger - Distributed server push completed with no nodes reporting an error
Is anybody able to offer any insights as to why this would be occuring, and any potential resolutions?
Hi Andrew, I'm encountering the same issue with distributed calls right now. How did you resolve this issue? and what do you mean by disable Distributed Calls?
By "disable Distributed Calls", I mean that I opened up the site's umbracoSettings.config file and set the enable attribute of the distributedCall element to false, like below:
<distributedCall enable="false">
If your issue is similar to mine, this should fix it!
Distributed calls failing to propagate in load balanced environment
I am encountering an issue with a load-balanced Umbraco v7.6.5 site using distributed calls. When an item is published or unpublished, this change is not propagated to the other web server - it is only visible on the server where the event took place. The environment is configured as two web servers running behind a load balancer, each with an Umbraco installation connecting to the same database.
The content of the distributedCall/servers section in the umbracoSettings.config file for both servers is set as follows:
Having enabled Debug-level logging in log4net.config, I have noticed that when publishing or unpublishing from one of the servers in the load-balanced environment, that it only makes a cache refresh call to that same server - i.e. publishing on web1 will make a call to instigate a cache refresh on web1 but not web2, and vice-versa. This log sample is taken from web2:
And this one is taken from web1:
Is anybody able to offer any insights as to why this would be occuring, and any potential resolutions?
Thanks,
Andrew
You should only be handling publish events on one of the servers i.e. all publishing/editing should be handled on web1 and then distribute it to web2.
A common setup is
admin.site.com web1.site.com
These two both point to the same web server, and admin.site.com is used to access Umbraco.
web2.site.com is then used for the second server with no content publishing/editing happening on there.
Looking at your config too, it also looks like you're on the traditional load balancing setup. Since 7.3 Umbraco, the recommended load balanced setup is the flexible setup: https://our.umbraco.com/documentation/getting-started/setup/server-setup/load-balancing/flexible
Hi Harrison,
Thanks for your response. It turns out that the fix for me was to disable Distributed Calls - after I did this, the content was propagated correctly.
Thanks,
Andrew
Hi Andrew, I'm encountering the same issue with distributed calls right now. How did you resolve this issue? and what do you mean by disable Distributed Calls?
My Umbraco version 7.11.1
-Romeo
Hi Romeo,
By "disable Distributed Calls", I mean that I opened up the site's umbracoSettings.config file and set the enable attribute of the distributedCall element to false, like below:
<distributedCall enable="false">
If your issue is similar to mine, this should fix it!
Best wishes,
Andrew
Thanks for the reply Andrew, did you disable it only on server 2 or both servers?
-Romeo
Hi Romeo,
It was disabled on all servers in the load-balanced environment.
- A
Thanks for the help Andew. Disabling distributedCall for all the servers works for me too.
Any idea how Umbraco refreshes the cache on all the servers now?
-R
is working on a reply...