Servoy 3.5 rc 3

Hi DomTom,

To launch Rich client you also need the webservices (Tomcat). So launch Developer with the following line in Terminal:

java -Djava.net.preferIPv4Stack=true -jar servoy_developer.jar

Hope this helps.

Webclient,

I have just noticed that some table views with relationships that were working in previous betas and still work in Smart Client are not displaying anything in webclient?

Has anyone else noticed any odd behaviour of this nature? I am certain these were not broken in RC2.

David

About this line of code:

java -Djava.net.preferIPv4Stack=true -jar servoy_developer.jar

Is there some place in one of the properties files where we need to include this to avoid the problem?

Thanks,

Ben

You need to type that in the terminal to start Developer with.
Or you put it a .sh or .bat file.

Hope this helps.

Thanks Robert. What I should have said is ‘What about when using Servoy Server’ - is there a change in one of the config files that needs to be made?

TIA,

Ben

We use a Postgres repository. During routine development work under RC3, all of a sudden a Table appeared called Contacts. This is not part of our schema: it definitely appears to have all the earmarks of Servoy sample data … we looked at the schema and the sample data and it isn’t ours.

How could this suddenly appear in our Solution? We did not do any importing and the like. :shock: :?

Hi Ben, seems your reply to this issue slipped through.

LOGIsoft:
What I should have said is ‘What about when using Servoy Server’ - is there a change in one of the config files that needs to be made?

I believe you use Windows so I looked it up for you.
In the Servoy directory you have the services directory.
In there you find the wrapper.conf file. Edit this file.
Then you go to the following section:

# Java Additional Parameters
wrapper.java.additional.1=-Djava.awt.headless=true
wrapper.java.additional.2=-Duser.dir="C:\Program Files\Servoy"
wrapper.java.additional.3=-XX:MaxPermSize=128m

Add this line:

wrapper.java.additional.4=-Djava.net.preferIPv4Stack=true

And save the file.
I took this from the 3.1.6 install but I think the 3.5 is about the same.
My educated guess is that this should work :)

EDIT: I just installed 3.5rc3 on my windows box and it simply works or at least I can access the admin pages. So it seems this issue is Mac only (?)
So if you meant how to start Servoy server on Mac then you need to edit the servoy_server.sh file in the Servoy directory. Make sure it looks like this:

#!/bin/sh

while true
do
	java -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Xmx256m -Xms64m -XX:MaxPermSize=128m -classpath .:lib/ohj-jewt.jar:lib/MRJAdapter.jar:lib/compat141.jar:lib/commons-codec.jar:lib/commons-httpclient.jar:lib/activation.jar:lib/antlr.jar:lib/commons-collections.jar:lib/commons-dbcp.jar:lib/commons-fileupload-1.0.jar:lib/commons-logging.jar:lib/commons-pool.jar:lib/concurrent.jar:lib/dom4j.jar:lib/help.jar:lib/hibernate3.jar:lib/j2db.jar:lib/j2dbdev.jar:lib/jdbc2_0-stdext.jar:lib/jmx.jar:lib/jndi.jar:lib/js.jar:lib/jta.jar:lib/BrowserLauncher2.jar:lib/jug.jar:lib/log4j.jar:lib/mail.jar:lib/naming-factory.jar:lib/naming-resources.jar:lib/ohj-jewt.jar:lib/oracle_ice.jar:lib/server-bootstrap.jar:lib/servlet-api.jar:lib/wicket-extentions.jar:lib/wicket.jar:lib/wicket-calendar.jar:lib/xerces.jar:lib/concurrent.jar:lib/slf4j-api.jar:lib/slf4j-log4j.jar:lib/joda-time.jar com.servoy.j2db.server.ApplicationServer "$@" 1>> server.log 2>> server.log
	EXITCODE=$?
	if [ "$EXITCODE" != 99 ]; then exit $EXITCODE; fi
done

Hope this helps.

Hi Michael,

Do you see the table in the repository db ? Or in your solution data db.
You used this database when running older versions of Servoy as well ?

Thanks Robert for your (always) clear explanations and instructions. Much appreciated. :D

Sincerely,

Ben

Hi Robert,

  1. Visible in both the db (8.2.4) and the solution data providers.

  2. This is a brand new db instance and new postgres repository. Total of 11 databases (one was from an older 3.1.5/6–>3.5rc2 solution). Older one brought in via a solution clean import (including schema initialization).

Localhost on 5432.

Michael

Hi Michael,

So you are saying you created an empty database and pointed Servoy to it. Then imported the 3.1.x solution in that (re)created the tables for you.
If so then your solution does use this Contacts table somewhere. Else it would have never been created by the import.
Check to see if any of your forms, calcs, aggregates, relations and valuelists point towards that table.
Also see if you may use any modules that point to that table.

Hope this helps.

Hi Robert,

We hadn’t seen/heard or whatever of the “Contacts” table until it appeared. Nor have we referenced it directly or indirectly in any objects (calc’s, aggregations, etc). And it just appears in the one database called “auth”. I understand your premise (no reference means no theoretical appearance of the table within the Data Providers) and the repository implications of this premise/assertion. Any chance this comes from sample data but somehow with an incorrect solution id in the repository tables (long shot … speculating here …)?

Does SvyCore reference this (we do add this module to our app’s)? If so, why would it not appear in other new solutions (imported or otherwise).

Michael

ps - I checked all objects in (a) Sybase PowerDesigner (not there) (b) my sql create scripts (not there) and (c) searched all objects in the solution within Servoy (not there) … I don’t have Marcel’s Analyzer (yet) so my not-there is dependent on what Servoy search returns. I remain perplexed. Our visitor remains friendly and non-disruptive: easy to remove … I just don’t understand how he got in the door. :-)

Hi Michael,

Unless something really strange is going on it is like Robert says.
No reference no table.

Have you checked all calcs to see if a reference is there? I don’t see you mentioning that you checked that…

Hi Michael,

The tables you see under the dataproviders are just a representation of what you have in your database. It’s not related to what you use in your solution(s) (only the globals/calc/aggregates are).
When you launch Servoy it scans all database connections and takes an inventory of the tables/columns you have there. This is the reason why you have to reboot Servoy when you alter your database in anyway with a third party tool.
Only when you import a solution it will create the (non-existing) tables in your database that the solution actually uses.

Also solution data is on no way connected to a solution other than the server name. So when you import solution data (when you import a solution) it will simply look for the matching server name and import the data. Note that different solutions can use the same server name (db connection).

As for SvyCore, yes it does use a table because any form has to be references to a table and a solution has to have at least 1 form.
I don’t use SvyCore myself so you need to check that yourself.

Hope this helps.

Hi Robert

I still can’t access the servoy-admin pages (with http://10.0.1.2:8080/servoy-admin).

When I press the Test button it say (on the left side) HttpService is not running.

When I press the Web Client Launch or Smart Client Launch buttons I get the message in Safari Browser

Safari can’t open the page “http://localhost:8080/”. The error was: “lost network connection” (NSURLErrorDomain:-1005) Please choose Report Bug to Apple from the Safari menu, note the error number, and describe what you did before you saw this message.

Anyone solved this Problem?

Servoy Developer
Version 3.5 rc3-build 508
Java version 1.5.0_07-87 (Mac OS X)

I also can’t automically start the dbsrv9 process any more. Any suggestions?

Best regards, Robert

Hi Robert,

How do you launch Developer ?
Did you use the method shown in this thread?

Or are you talking about Server ?

Hi Robert

Please see other tread, it works now (although I don’t know exactly why)

Thanks and best regards, Robert

ROCLASI:
Hi Robert,

How do you launch Developer ?
Did you use the method shown in this thread?

Or are you talking about Server ?

Michael Mooney:
I realize we are somewhat pre-release on documentation. I am trying to use the new addFoundSetFilterParam to filter on a set of tables.

Some of my tables are “global” in nature and in use by several companies - I do not need to have these filtered except through the usual db node or .relation or search techniques.

Others form a set of tables that are shared by several companies. Typically, these will share a common database instance and separate connection string through DB Server (App Preferences) entries.

My shared records need to be filtered on a surrogate foreign key, type integer (INT4).

If I call addFoundSetFilterParam, will I filter the foundset:

a) Permanently, regarding of what is going on elsewhere in Search/Find activities?

b) Permanently, regardless of what else is going on in the DB node (I am less certain about this happening here than question a) … )

c) Can I call addFoundSetFilterParam with a NULL or other parameter to cancel the “permanent” setting on the foundset filter? In other words, how long is this parameter “permanent”? Session duration? Other?

Thanks,

Michael

ps: I have noted the sample code in the Servoy Method Editor:

//Add a filter parameter to limit the foundset permanently
var success = foundset.addFoundSetFilterParam(‘customerid’, ‘=’, ‘BLONP’);//possible to add multiple
foundset.loadAllRecords();//to make param(s) effective

The addFoundsetFilterParam function seems to have gone the way of the dinosaur with v3.5 … :(

I know there’s a way of getting the same result, more or less:

var query = "select example.pkfield FROM example WHERE example.Company = "+ globals.Criterion +" ORDER BY example.pkfield";
controller.loadAllRecords()
controller.loadRecords(query)

However, the nice thing about the addFoundsetFilterParam was that you set it once on solution launch, and then forgot about it. Is there another way of making sure that a user only has access to a subset of records, without having to specify it for each and every form?

Call me lazy :roll:

Ben

I do not think the addFoundSetFilterParam has gone extinct, it’s still there…

But, we also have datamaseManager.addTableFilterParam and this really does what you need, whereas addFoundsetfilterParam does not.

The tableFilterParams are set once, forget about them for the entire duration of the sessions.

Paul

Of course Paul, it’s just another case of ‘Syndrome 18’ (problem lies 18 inches in front of the screen). :lol:

I found the addFoundSetFilterParam function in the Method Editor Tree under Database Manager → JSFoundSet. And thank you very much for pointing me to addTableFilterParam.

However, I don’t quite understand why you mention that ‘whereas addFoundsetfilterParam does not’. I thought that addFoundsetFilterParam would do what I was looking for, seeing as in the sample code it says:

//Add a filter parameter to limit the foundset permanently

So can you clarify a bit please on why the Table method is better than the Foundset one? Is it just because (with Table) I can optionally affect all tables at once instead of going through all of them individually (with Foundset)?

You guys rule!

Ben