We announce the immediate availability of Servoy 2.2rc1
NOTE: this is PRE-RELEASE SOFTWARE, use with caution and make BACKUPS before you start.
This version is available through auto update (if you have beta update notify enabled, meaning having the line ‘wantsBetaCodeNotifies=true’ in your servoy.properties file)
Enhances:
[enh]-calculation engine optimize, so calcs are less called.
[enh]-elements.tabpanel.addTabPanel(…) and removeTabAt(…) for relationless tabpanels
[enh]-better support for bit/boolean/inet types on postgress database
[enh]-allow modules in modules
[enh]-labels will draw a dotted black border if it gets focus (if it doesn’t have a border)
[enh]-JavaScript method/styles printing
[enh]-option in check for new version dialog to receive beta notifies
For plugin developers:
[enh]-jsdataset passed to a plugin method become IDataSet instances
[enh]-IServerAccess.flushAllClientsCache(…) for use in server plugins
[fix]-unload not called on server plugins http://forum.servoy.com/viewtopic.php?p=17815#17815
[enh]-calculation engine optimize, so calcs are less called.
I just updated to this version and it seemed to take FOREVER to open my solution, so I had to end the task nd then tried to turn off some plug-ins to try and let me get to see my data.
On another try it would seem like it is trying to update (kind of as was discussed elsewhere) ALL calculations in the back end data!!
In some ways I’m very happy with this, but if it is the case, I have MASSES of data and calcs. and it should give a warning or ask you if you want that to happen (I have just spent ages using the back end tool to update my data, I don’t need it all to happen again).
Am I correct, is it trying to update all calcs that might not have fired?
If so, you really do need to warn people as the solution doesn’t open up as quickly as before (in fact I have no idea yet how long it will take to open mine, I might have to leave it overnight…)
If so, can this be a toggle or something, or at least have some kind of progress indicator (e.g. Updating calc ‘line_inc_vat’…) etc. so we know what is happening.
if it is really saving youre calculation again then it is changed!!
So the calculation is out of synch with what’s stored in the database!!
And it only calculates the records that you get from the database. It doesn’t do this by itself..
So when a record is loaded. It checks for the calculations of that record IF a calculation value that is returned is different that the value that did came from the database it will store this yes.
If youre solution really takes very long to open that this means 2 things. One many calculations are out of synch with the database. And you load lots of records with the first form (of course this could be possible, i would avoid this if i was you because this gives a lag in user experience)
All stored calculations are calculated when the record is loaded from database. So that the calculated values of the record are in synch with the database as soon fast/early as possible
2 things needs to taken into account when returning a value of a stored calculation so that servoy doesn’t see it constantly as a change.
1> If you return a string then please take care that the value that is returned can fit in the column. So if you specify a column of length 10 and the string you return is of length 11 then that value will be constantly updated to the database. (we are planning to generate a warning for this)
2> some database (like sybase) return a NULL for a empty string. So if you return an empty string (“”) in a calculation then servoy will see this as a change because the database did return a NULL. So just to be safe for these kind of things do return a NULL instead of a “” when returning an empty string from a calculation.
I’ve just upgraded to RC1 and I’ve noticed the degrease in performance as well.
Both in starting up a solution as well as inside the solution…
The solution is very small (+/- 20 forms), the underlying tables have only up to 5000 records and the use of calculations is limited.
Starting up takes minutes, whereas this used to take only up to half a minute.
On my main form, I have two tabpanels with related data. Selecting a record in the first tabpanel results in displaying different related records on the other tabpanel. This used to happen instantly, now there is a short delay of between 1 and 2 seconds.
While the solution is starting, the CPU of my machine is at 100% and basically, servoy blocks the entire machine… If I move the cursor with my mouse, the cursor jump to a new position every second or so…
Servoy Developer
Version R2 2.2rc1-build 319
Java version 1.4.2_06-b03 (Windows XP)
Windows XP SP2
We did some changes in calc. engine, which will be optimized in Servoy 2.2 rc2
Great.
BTW, at what point is the data for the stored calcs. actually saved to the back-end?
I viewed some forms and saw the calcs. showing correctly, closed solution, used back-end tool, but the fields weren’t updated (maybe one or two).