Deploying Servoy 8.0 Smart Client

Hi all,

I have just upgraded three large Servoy systems from version 7.4.x to 8.2. They are all Smart Client projects running on MacOS and Windows. Two use PostgreSql and the last one is on SQLServer. The code was tidy, JSDoc’ed throughout and generating no warnings.

The conversion was quick and painless, taking less than a day in total for the three systems. The only issue I came across is that Marcel had changed the It2beCalendar API slightly in the latest version, but I think the changes are for the better.

Before I go ahead and start deploying these, I want to ask if anyone have come across any surprise issues deploying Servoy 8.2 smart clients systems?
Any changes to the server configurations?

Christian

Keep in mind that the classpath has changed slightly. So you might want to make sure your wrapper.conf/servoy_server.bat/servoy_server.sh is similar to the one shipped by the 8.2 installer.

I’m going to deploy on freshly installed Servoy 8.2 Server, so that should already be dealt with no?

Yes, if you uninstall the existing service and re-configure the new deployment from scratch you should not have any trouble.

Yes, it is easy to switch between 7.4.x and 8.2.

I had problem with my Java installation affecting starting Servoy server 8.2.
Here are my notes in case someone else comes across the same issue:

I kick the users out.

This is MacOSX, so I have to go to

cd /Library/LaunchDaemons/
sudo launchctl unload com.servoy.server.ServoyServer.plist

and run the ‘uninstall service’ script of the old version

cd /Applications/Servoy74/application_server/service/
sudo /bin/sh uninstall_service.sh

then run the ‘install service’ on the new version

cd /Applications/Servoy82/application_server/service/
sudo /bin/sh install_service.sh

and restart the service

cd /Library/LaunchDaemons/
sudo launchctl load -w com.servoy.server.ServoyServer.plist
sudo launchctl list | grep servoy

The last line is to check Servoy Server has started. It tried to start, but gives up after a few seconds.

sudo launchctl list | grep servoy
-	0	com.servoy.server.ServoyServer

My wrapper picked up an old copy of Java 6, this was not obvious at first. If I checked the version of Java

java -version
java version "1.8.0_144"

it was up-to-date, and If I started the server manually using the script in the application_server directory, it worked fine.

/bin/sh /Applications/Servoy82/application_server/servoy_server.sh

You don’t want to run the Servoy server like that – if something goes wrong or the computer is restarted, Servoy server will not restart itself. It has to be run as a service.
When I tried to start the service manually

sudo /Applications/Servoy82/application_server/service/ServoyServer start
Starting Servoy Application Server. Detected Mac OSX and installed launchd daemon.
Waiting for Servoy Application Server...
.
.
.
WARNING: Servoy Application Server may have failed to start.

You look in .service_log.txt in the service directory:

tail -f .service_log.txt 
INFO   | jvm 2    | 2017/09/29 00:17:08 | Unrecognized VM option 'MetaspaceSize=200M'
INFO   | jvm 2    | 2017/09/29 00:17:08 | Could not create the Java virtual machine.

The unrecognized VM option ‘MetaspaceSize’ is new in Java 8, so the wrapper was using an old Java version.
So I had to change the wrapper.java.comm in my wrapper.conf in the service directory to force it to use the new Java

wrapper.conf 
#********************************************************************
# Wrapper Properties
#********************************************************************

# Java Application
wrapper.java.command=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/java

Hope this helps someone,

Hi Christian

Many thanks for documenting this - I’m about to start some 7.4 → 8.2 conversions and these notes will be VERY useful.

Cheers

Graham