Flushing oddities

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)

This shouldn’t happen. I don’t have many users on the system (max 15) but I never experienced this.

What if you do an update without any users logged on? E.g. pushing the update in the evening?

IT2Be:
This shouldn’t happen. I don’t have many users on the system (max 15) but I never experienced this.

I have this with 60 users. But also on our test-server where we usually dont have more than 2 clients.

IT2Be:
What if you do an update without any users logged on? E.g. pushing the update in the evening?

I almost do it everytime in the evening

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??

I mean going to the java control panel, choosing somewhere “delete files” and delete all applications.

We’ve had the same thing. We have to delete the cache.

patrick:
I mean going to the java control panel, choosing somewhere “delete files” and delete all applications.

On the server or on all 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.

I confirm the problem.

Many client do not updating the solutions.

I mean going to the java control panel, choosing somewhere “delete files” and delete all applications.

Some times also this not to be sufficient. In these cases to be necessary to cancel the directory:

Documents and Settings\<Current User>\.servoy

Servoy Developer
Version R2 2.2.6-build 338
Java version 1.4.10 - 1.5.0_09-b03 (Windows 2000 - XP)

Any one posted this allready in the support tool? with a link to this post?

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:

  1. are you never using developer for updating the server repository?
  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)
  3. are you sure there are no client running during the flush? or close all clients to be sure they load the latest solution?
  4. is it only seen in 2.2.6?

Jan Blok:

  1. 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

Jan Blok:
4) is it only seen in 2.2.6?

I had similar stuff in 2.2.5

tweetie:

Jan Blok:

  1. 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.

Jan Blok:

tweetie:

Jan Blok:

  1. 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.

Confused now…
I use http://localhost:8080/servoy-admin to update the solution…is this good or not good?

It good for the cases you where you did NOT change the datamodel (added/removed columns or created/dropped tables)

Jan Blok:
It good for the cases you where you did NOT change the datamodel (added/removed columns or created/dropped tables)

Okay…then I will use the Developer instead all the time, just to be safe.
Is this documented by the way?

Jan

could you clarify please - I read your comment as being that we SHOULD use …:8080/servoy-admin for updates. But now I’m not so sure.

if you do not use the admin page the server is not aware of the datamodel changes you did in the database

Thanks

Graham Greensall
Worxinfo Ltd

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)

Ok - thats what I thought. Thanks for the quick response.

Graham