I have set up two different servers, let's call them stage and production.
I use uSync on these boxes to auto import my stage content changes in my production environment.
Everything is installed, set up and working correctly on the surface. I make content changes on stage and they auto-magically appear on production.
In my testing, I logged into production site and created new content. (I don't want this to be allowed in my end game, just testing to ensure that it cannot happen or that I overwrite it if it does.)
After content is created I check my uSync content folder and I see that my export content config files are not being updated by this action even though i explicitly allow it in my back office usync config file.
My back office config in production is set to export on save. So, I expect to see the same behavior as I have set up on my stage environment but the content seems to be updating in the DB and my uSync config copies are not being updated. So i get extra content showing up on my production site but that extra content is not in my uSync folder.
Some extra set up information that is important:
I am mirroring my stage setup to my production setup via server task. I am ignoring only my web.config and my usync.backoffice.config files so that they can be customized to their respective environments. I am not detecting any problems or errors with this process. production and usync content files are all identical and like I said in the beginning I am definitely shipping content successfully between environments.
Specifically, my problem is that I want to test changes of the values in production to ensure that they will be overwritten by my stage environment.
I have attempted to kill the mirror job. Currently it is off. So that way I can easily test wether or not my job is working too fast for uSync to import / export chagnes. With the job turned off I still can't see any change affected to previously exported items.
So... is there something else I need to ignore in addition to backoffice config when running a mirror like this?
Another observation is that while I can manually change my back office config, I have observed that I cannot change the config tab in uSync backoffice tab. There are options for auto or target or souce or other. I tried to switch from default value of Sync Target to "other" and get a message to restart website. I then proceed to restart my app pool but whenever i try to leave that page in the back office it forces me to stay or discard changes. As in it is not saving its settings. I don't know what file this ui targets but a good question might be, do my manual changes to the backoffice.config file overwrite this gui? Not sure. Thanks for the info on this point as well.
So I did identify what I assume was some kind of hang up. I had a runway worker process running in the background and even though permissions seemed to be in place as expected, I re-ran my permissions script and restarted the box.
Suddenly things are one step closer. I can now update the uSync content config file by saving changes to the content on production. Then I run job from stage and it replaces that config file. However, uSync is then not re-importing that changed config from stage and I wonder if it's because it's 'older'.
I saw a line in the core config about how uSync imports based on 'newer' files. I switched it to Mismatch to see if that would help but no such luck.
Also, even though all permissions are checking out and I re-ran permissons script, I still can't use the GUI on the uSync backoffice config tab to select other. Same issue persists despite everything else working nicely.
Logs:
INFO Jumoo.uSync.BackOffice.uSyncFileWatcher - File Change Detected: Changed
INFO Jumoo.uSync.BackOffice.uSyncFileWatcher - File Change Detected: Changed
INFO Jumoo.uSync.BackOffice.uSyncFileWatcher - File Change Detected: Changed
INFO Jumoo.uSync.BackOffice.uSyncFileWatcher - File Change Detected: Changed
INFO Jumoo.uSync.BackOffice.uSyncFileWatcher - File Change Detected: Changed
INFO Jumoo.uSync.BackOffice.uSyncFileWatcher - FileChanges - starting import
INFO Jumoo.uSync.BackOffice.uSyncApplicationEventHandler - Running uSync Import: Group = default Folder = ~/uSync/data/ Force = False
INFO Jumoo.uSync.BackOffice.Logging - Running Import: DataType
INFO Jumoo.uSync.BackOffice.Logging - Handler Import Complete: 45 Items 1 changes 0 failures
INFO Jumoo.uSync.BackOffice.Logging - Running Import: Template
INFO Jumoo.uSync.BackOffice.Logging - Handler Import Complete: 16 Items 0 changes 0 failures
INFO Jumoo.uSync.BackOffice.Logging - Running Import: DocumentType
INFO Jumoo.uSync.BackOffice.Logging - Handler Import Complete: 6 Items 0 changes 0 failures
INFO Jumoo.uSync.BackOffice.Logging - Running Import: MediaType
INFO Jumoo.uSync.BackOffice.Logging - Handler Import Complete: 3 Items 0 changes 0 failures
INFO Jumoo.uSync.BackOffice.Logging - Running Import: Languages
INFO Jumoo.uSync.BackOffice.Logging - Handler Import Complete: 1 Items 0 changes 0 failures
INFO Jumoo.uSync.BackOffice.Logging - Running Import: DictionaryItem
INFO Jumoo.uSync.BackOffice.Logging - Handler Import Complete: 0 Items 0 changes 0 failures
INFO Jumoo.uSync.BackOffice.Logging - Running Import: macro
INFO Jumoo.uSync.BackOffice.Logging - Handler Import Complete: 2 Items 1 changes 0 failures
INFO Jumoo.uSync.BackOffice.uSyncFileWatcher - FileChanges - Import Complete: 5889ms
What does Force = False mean in this situation?
It seems the files is changed and uSync says it has been imported but the site still displays older content. A regular import won't grab the changed file but a Full Import will.
So this is still an issue. I am going to say not a permissions issue. I have reviewed the permissions and made sure everything has full rights.
The problem I am still seeing is that the initial push from stage to production updates via usync correctly.
It is only when I 'deface' my production site, by logging into it directly and changing a value, that uSync seems to not properly re-import the 'older' value from stage box.
I changed the config to 'match' instead of just using the newest file in the core uSync config. It did not help.
So my question is this:
What is the difference between a 'full import' and a regular 'import'.
I can fix my value on production with a 'full import' but a regular 'import' does not catch the difference or successfully force the older data to overwrite the Production Database near as I can tell.
I do see in the uSync logs that on disk, on production, my stage value comes in for a re-write after I deface the production site. then uSync says it changes the value successfully. I see that the content config file gets updated as well. So theoretically everything looks good.
Logs look good and content does come in. My job is working and I am getting the correct content config overwriting my production change.
It simply does not get associated with production DB by my best guess. uSync says that it is, but in reality it does not work unless I run a 'full import'.
Obviously, I may not always be in a position to run a full import just because someone defaced the production site. I just need that one file to be corrected.
So back to my question that leaves me misty. What is the difference in uSync world between the processes of a regular vs full import. Why might a full import catch and work the new change in to display on site where a regular import does not recognize it at all... even though I can read (I think...) in uSync logs that it is catching the change and successfully importing it.
I under permissions is the first thought but remember, any push from stage where i save and publish on stage goes to productions successfully and imports successfully. It is only in the situation where I deface my production site that my auto stage import does not successfully overwrite production DB. It does overwrite production disk just not the DB.
This all ended up being a problem with the job I was using. I was using an option to constantly monitor for changes and I simply stopped using that option and put the job on a schedule for every 5 min. It is successful when running in intervals versus a constant state.
I wish I had a better understanding of the differences in behavior to share but I don't at this time.
Certainly, I do not see any issues with my problem being related to uSync so I just wanted to update the post to reflect that this was user error.
uSync won't update export
Hello,
I have set up two different servers, let's call them stage and production.
I use uSync on these boxes to auto import my stage content changes in my production environment.
Everything is installed, set up and working correctly on the surface. I make content changes on stage and they auto-magically appear on production.
In my testing, I logged into production site and created new content. (I don't want this to be allowed in my end game, just testing to ensure that it cannot happen or that I overwrite it if it does.)
After content is created I check my uSync content folder and I see that my export content config files are not being updated by this action even though i explicitly allow it in my back office usync config file.
My back office config in production is set to export on save. So, I expect to see the same behavior as I have set up on my stage environment but the content seems to be updating in the DB and my uSync config copies are not being updated. So i get extra content showing up on my production site but that extra content is not in my uSync folder.
Some extra set up information that is important: I am mirroring my stage setup to my production setup via server task. I am ignoring only my web.config and my usync.backoffice.config files so that they can be customized to their respective environments. I am not detecting any problems or errors with this process. production and usync content files are all identical and like I said in the beginning I am definitely shipping content successfully between environments.
Specifically, my problem is that I want to test changes of the values in production to ensure that they will be overwritten by my stage environment.
I have attempted to kill the mirror job. Currently it is off. So that way I can easily test wether or not my job is working too fast for uSync to import / export chagnes. With the job turned off I still can't see any change affected to previously exported items.
So... is there something else I need to ignore in addition to backoffice config when running a mirror like this?
Another observation is that while I can manually change my back office config, I have observed that I cannot change the config tab in uSync backoffice tab. There are options for auto or target or souce or other. I tried to switch from default value of Sync Target to "other" and get a message to restart website. I then proceed to restart my app pool but whenever i try to leave that page in the back office it forces me to stay or discard changes. As in it is not saving its settings. I don't know what file this ui targets but a good question might be, do my manual changes to the backoffice.config file overwrite this gui? Not sure. Thanks for the info on this point as well.
Umbraco version: Umbraco version 7.7.2 (uSync.BackOffice 4.0.5.0) (uSync.Core 6.0.5.0) [uSync.Content: 4.0.0.760]
Thank you.
Hi
It sounds like it might be a file permissions issue ? especially as you also can't save the settings in the back office.
if you have a look in the umbraco log file (app_data/logs/) you should see some entries from uSync as it trys to save the files to disk.
I would check that the account running the website (usally networkService) has permission to write to the usync folder.
Kevin
Hello Kevin! Thank you for replying!
So I did identify what I assume was some kind of hang up. I had a runway worker process running in the background and even though permissions seemed to be in place as expected, I re-ran my permissions script and restarted the box.
Suddenly things are one step closer. I can now update the uSync content config file by saving changes to the content on production. Then I run job from stage and it replaces that config file. However, uSync is then not re-importing that changed config from stage and I wonder if it's because it's 'older'.
I saw a line in the core config about how uSync imports based on 'newer' files. I switched it to Mismatch to see if that would help but no such luck.
Also, even though all permissions are checking out and I re-ran permissons script, I still can't use the GUI on the uSync backoffice config tab to select other. Same issue persists despite everything else working nicely. Logs:
INFO Jumoo.uSync.BackOffice.uSyncFileWatcher - File Change Detected: Changed INFO Jumoo.uSync.BackOffice.uSyncFileWatcher - File Change Detected: Changed INFO Jumoo.uSync.BackOffice.uSyncFileWatcher - File Change Detected: Changed INFO Jumoo.uSync.BackOffice.uSyncFileWatcher - File Change Detected: Changed INFO Jumoo.uSync.BackOffice.uSyncFileWatcher - File Change Detected: Changed INFO Jumoo.uSync.BackOffice.uSyncFileWatcher - FileChanges - starting import INFO Jumoo.uSync.BackOffice.uSyncApplicationEventHandler - Running uSync Import: Group = default Folder = ~/uSync/data/ Force = False INFO Jumoo.uSync.BackOffice.Logging - Running Import: DataType INFO Jumoo.uSync.BackOffice.Logging - Handler Import Complete: 45 Items 1 changes 0 failures INFO Jumoo.uSync.BackOffice.Logging - Running Import: Template INFO Jumoo.uSync.BackOffice.Logging - Handler Import Complete: 16 Items 0 changes 0 failures INFO Jumoo.uSync.BackOffice.Logging - Running Import: DocumentType INFO Jumoo.uSync.BackOffice.Logging - Handler Import Complete: 6 Items 0 changes 0 failures INFO Jumoo.uSync.BackOffice.Logging - Running Import: MediaType INFO Jumoo.uSync.BackOffice.Logging - Handler Import Complete: 3 Items 0 changes 0 failures INFO Jumoo.uSync.BackOffice.Logging - Running Import: Languages INFO Jumoo.uSync.BackOffice.Logging - Handler Import Complete: 1 Items 0 changes 0 failures INFO Jumoo.uSync.BackOffice.Logging - Running Import: DictionaryItem INFO Jumoo.uSync.BackOffice.Logging - Handler Import Complete: 0 Items 0 changes 0 failures INFO Jumoo.uSync.BackOffice.Logging - Running Import: macro INFO Jumoo.uSync.BackOffice.Logging - Handler Import Complete: 2 Items 1 changes 0 failures INFO Jumoo.uSync.BackOffice.uSyncFileWatcher - FileChanges - Import Complete: 5889ms
What does Force = False mean in this situation?
It seems the files is changed and uSync says it has been imported but the site still displays older content. A regular import won't grab the changed file but a Full Import will.
Thank you.
Hi Scott
Easiest way to check permission is to go into the developer section and then to the Health Checks dashboard.
There is a check for permissions there. If you run that you can see if all your permissions are correct.
Dave
Hi Dave,
unfortunately that won't check the permission on the uSync folder as its not part of core - maybe that's a health check i should write :)
Hi Kevin,
I created an issue for that : https://github.com/KevinJump/uSync/issues/187
:-D
Dave
Hello,
So this is still an issue. I am going to say not a permissions issue. I have reviewed the permissions and made sure everything has full rights.
The problem I am still seeing is that the initial push from stage to production updates via usync correctly.
It is only when I 'deface' my production site, by logging into it directly and changing a value, that uSync seems to not properly re-import the 'older' value from stage box.
I changed the config to 'match' instead of just using the newest file in the core uSync config. It did not help.
So my question is this: What is the difference between a 'full import' and a regular 'import'.
I can fix my value on production with a 'full import' but a regular 'import' does not catch the difference or successfully force the older data to overwrite the Production Database near as I can tell.
I do see in the uSync logs that on disk, on production, my stage value comes in for a re-write after I deface the production site. then uSync says it changes the value successfully. I see that the content config file gets updated as well. So theoretically everything looks good.
Logs look good and content does come in. My job is working and I am getting the correct content config overwriting my production change.
It simply does not get associated with production DB by my best guess. uSync says that it is, but in reality it does not work unless I run a 'full import'.
Obviously, I may not always be in a position to run a full import just because someone defaced the production site. I just need that one file to be corrected.
So back to my question that leaves me misty. What is the difference in uSync world between the processes of a regular vs full import. Why might a full import catch and work the new change in to display on site where a regular import does not recognize it at all... even though I can read (I think...) in uSync logs that it is catching the change and successfully importing it.
I under permissions is the first thought but remember, any push from stage where i save and publish on stage goes to productions successfully and imports successfully. It is only in the situation where I deface my production site that my auto stage import does not successfully overwrite production DB. It does overwrite production disk just not the DB.
Any help is greatly appreciated.
Ok, I solved my problem.
This all ended up being a problem with the job I was using. I was using an option to constantly monitor for changes and I simply stopped using that option and put the job on a schedule for every 5 min. It is successful when running in intervals versus a constant state.
I wish I had a better understanding of the differences in behavior to share but I don't at this time.
Certainly, I do not see any issues with my problem being related to uSync so I just wanted to update the post to reflect that this was user error.
Thank you.
is working on a reply...