Can someone explain what the best way is to update a solution.
I am having weird stuff with updating solutions with our clients.
I usually update a solution using the import-solution option thru http-console of servoy-admin. Then I flush the solution when all clients aren’t loggin in (usually I do this in the evenings).
I cant get my finger on it…but somethimes some clients don’t have the latest version and some do. Somethimes the clients start up and just about every method creates an error.
If I restart the Servoy Server Service mostly all the problems go away.
Since we update a lot, it’s kinda annoying.
Servoy Developer
Version R2 2.2.6-build 338
Java version 1.5.0_09-b03 (Windows 2003)
I have seen this several times, except for “every method gives an error”. My impression is this is a Java Webstart problem. Of course, clearing the cache on the user’s machine always heels the problem. In one location with up to 60 users it is common that updates do not reach everybody. Usually, a server restart does it, but sometimes clearing the cache is needed.
patrick:
I have seen this several times, except for “every method gives an error”. My impression is this is a Java Webstart problem. Of course, clearing the cache on the user’s machine always heels the problem. In one location with up to 60 users it is common that updates do not reach everybody. Usually, a server restart does it, but sometimes clearing the cache is needed.
Do you mean by clearing the cache, throwing away the .servoy folders on the clients??
on Mac we delete from the user directory, ~/Library/Caches/Java/ & ~/Library/Caches/Java Web Start
On Windows, it is deep inside of the user directory, I believe in Application Data. If you look at the properties of the shortcut created on the desktop by the servoy client, it gives you the path to the cache.
It seems to me people are mixing 2 levels of caching
a) Servoy smart client is itself (.jar files) are cached by webstart
b) Servoy solutions are cached locally in the homedir/.servoy folder
When updating/importing a solution or doing a solution flush on the server there is no webstart cache involved, an solutionUpdateSeq is increased, if there is a mismatch in the seq on the client we reload the solution from the server.
We never has seen the problems described in our own systems, some question for tweetie:
are you never using developer for updating the server repository?
why are you doing a flush after an import (the import already does a flush, the active release is the only thing which prevents your clients from seeing/using a new release)
are you sure there are no client running during the flush? or close all clients to be sure they load the latest solution?
are you never using developer for updating the server repository?
I usually use the browser, is there a difference in updating thru Developer or thru the browser?
Jan Blok:
2) why are you doing a flush after an import (the import already does a flush, the active release is the only thing which prevents your clients from seeing/using a new release)
Just to be sure
Jan Blok:
3) are you sure there are no client running during the flush? or close all clients to be sure they load the latest solution?
Yes I am sure, I usually update at night and if there are clients connected I kick them out
are you never using developer for updating the server repository?
I usually use the browser, is there a difference in updating thru Developer or thru the browser?
Yes huge, if you do not use the admin page the server is not aware of the datamodel changes you did in the database, this might explain the entire problem.
are you never using developer for updating the server repository?
I usually use the browser, is there a difference in updating thru Developer or thru the browser?
Yes huge, if you do not use the admin page the server is not aware of the datamodel changes you did in the database, this might explain the entire problem.
It’s impossible to listen to datamodel (=table/column) changes in a database, so if changes are made in the database without the Servoy application server knowing this, many things will fail.
Flushing a solution in the admin page will reload the solution from the repository but does not reload the entire datamodel. (since the datamodel is already exported to running clients)
The only way to make a running Servoy application server aware of datamodel changes is by using the import from the admin page (or restarting the Servoy application server)