Are you sure about that? Because I am also working on Sense server environment and whenever I want to make layout changes to an app on hub, I first duplicate it and click on the Edit button to enter editing mode. Once I am happy with the changes I press a button to exit editing mode, I assume the changes are only saved after that.
Anyway is good to know you were able to recover the app. I came across a similar issue with corrupted files after a server restart, in that occasion it was a Windows update automatic restart (which should be disabled on a server environment if you ask me), luckily we were able to recover it by opening without data and reloading but it gave us a week of pain because the app got corrupted constantly every time it was published.
I don't know exactly what was done to solve this because the server is managed by another team but we haven't experienced that again since and I hope we won't because it is quite annoying.
I confuse myself wth the "Done" button (translation issue), sorry for that . During the sheet development I remenber to enter and exit from the editing mode several times. A few minutes before the reboot, I exit the editing mode and closed the app and hub sheets.
I also assume the done button save all chances to the repository but I think Qlik Sense keep the changes on a memory cache and take a little while to save it on disk.
Or maybe rebooting the server without stop the QRD (Qlik Sense Repository Database) Service crashed the transaction log of the underlying database, so on QRD restart, the database made a transaction rollback and some changes were lost.
I found another side effect. I was unable to copy or export the App. Luckly I could recover the app with these steps:
- Stop engine service
- copy the app file to other folder
- rename file adding the QVF extension
- Start engine service
- Open QMC and Import the QVF as new App
- Open and verify new App (script and layout)
- Delete corrupted App
Now the App is ok , can duplicate and export it.
Hi Pablo, Cesar,
Saved changes are applyed only in memory, the transfer to disk can take hours (usually 8), you can also see that if you reload an app and doesn't see any file size change, or different size between QMC and disk file size.
As everything is in memory, a server reboot can make all your work lost, or worst, corrupt the app forever.
Now the good way to stop a server is to first stop services in a specific order, you will see all data getting transferd to the disk at this moment.
Windows respect services dependencies at startup, but not at shutdown.
The order is :
Qlik Sense Printing Service
Qlik Sense Dispacher Service
Qlik Sense Scheduler Service
Qlik Sense Proxy Service
Qlik Sense Engine Service
Qlik Sense Repository Service
QlikSense Repository Database
If you are in a multi node environment, I think it's better to keep the Central node on (last stopped, first started)
Appart from that, we can recover an app by renaming the file with .qvf extension, only if that file is less than 2Gb.
In certain case, app can be corrupted and there is no way to recover anything.
Hope this can help