We are running Umbraco with Forms on multiple servers, each with their own local storage for \App_Plugins\UmbracoForms\data.
When we were running Forms 4.1 on Umbraco 7.2, we had set up DFS file replication for this folder, from our primary editing server to the slave servers, so that new forms, and changes to existing forms, reached all the servers.
We have now upgraded to Forms 4.3 on Umbraco 7.4, and trying to make use of the new cache clearing mechanism. When an existing form is edited, a message goes through the CacheInstruction table in the database, then each server picks up the message and successfully updates its own copy of the .json file. That's great, and as a result we thought we could turn off the DFS for that folder.
However, when a new form is created, the slave servers do not receive it. It is still an update message that is inserted into the database, and the slave servers all report a "Could not find file" error, because they are trying to update an existing .json file that does not yet exist, instead of saving a new one.
Is the Forms module supposed to be able to create new .json files on the slave servers via the cache clearing mechanism, or do we still need to keep DFS running as well?
And if we keep DFS running, how do we prevent a conflict where DFS and Umbraco are both trying to update the file at the same time on the slave servers?
Any advice gratefully received. If there's some existing Forms module load-balancing instructions that I've missed, please send me in the right direction!
I am taking a look at that module. Do you have it working with Forms 4.3?
Something similar to is already included in the Forms core product in 4.3, using the Cache Instruction table to send instructions, but not fully working. If this module still works with 4.3, I'd want to disable the built-in mechanism, to avoid conflicts.
That module only seems to be needed Forms versions before 4.3. If I try installing it on 4.3, any save action results in the error
The cache refresher Umbraco.Forms.Core.Cache.FormCacheRefresher is not of type Umbraco.Core.Cache.IPayloadCacheRefresher
Creating new forms on load-balanced environment
Hello,
We are running Umbraco with Forms on multiple servers, each with their own local storage for \App_Plugins\UmbracoForms\data.
When we were running Forms 4.1 on Umbraco 7.2, we had set up DFS file replication for this folder, from our primary editing server to the slave servers, so that new forms, and changes to existing forms, reached all the servers.
We have now upgraded to Forms 4.3 on Umbraco 7.4, and trying to make use of the new cache clearing mechanism. When an existing form is edited, a message goes through the CacheInstruction table in the database, then each server picks up the message and successfully updates its own copy of the .json file. That's great, and as a result we thought we could turn off the DFS for that folder.
However, when a new form is created, the slave servers do not receive it. It is still an update message that is inserted into the database, and the slave servers all report a "Could not find file" error, because they are trying to update an existing .json file that does not yet exist, instead of saving a new one.
Is the Forms module supposed to be able to create new .json files on the slave servers via the cache clearing mechanism, or do we still need to keep DFS running as well?
And if we keep DFS running, how do we prevent a conflict where DFS and Umbraco are both trying to update the file at the same time on the slave servers?
Any advice gratefully received. If there's some existing Forms module load-balancing instructions that I've missed, please send me in the right direction!
Thank you, Julian
Hi Julian,
If you are running Umbraco Forms in a load-balanced environment then you should have a look at this package.
https://our.umbraco.org/projects/website-utilities/umbraco-forms-cache-refreshers-for-flexible-load-balancing/
Hope this helps,
/Dennis
Thank you Dennis,
I am taking a look at that module. Do you have it working with Forms 4.3?
Something similar to is already included in the Forms core product in 4.3, using the Cache Instruction table to send instructions, but not fully working. If this module still works with 4.3, I'd want to disable the built-in mechanism, to avoid conflicts.
I'll report back what I find.
Thanks, Julian
Hi Dennis,
That module only seems to be needed Forms versions before 4.3. If I try installing it on 4.3, any save action results in the error
The cache refresher Umbraco.Forms.Core.Cache.FormCacheRefresher is not of type Umbraco.Core.Cache.IPayloadCacheRefresher
Forms 4.3+ has its own cache refresher built in.
So unfortunately, I still have my original problem. I will have a good look through known issues at http://issues.umbraco.org/issues/CON
Seems this has already been reported at http://issues.umbraco.org/issue/CON-1159 - fixed in nightly build 202 but not yet released
is working on a reply...