Page 1 of 1

Deploying Servoy 8.0 Smart Client

PostPosted: Fri Sep 22, 2017 12:22 pm
by swingman
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

Re: Deploying Servoy 8.0 Smart Client

PostPosted: Fri Sep 22, 2017 3:03 pm
by Ruben79
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.

Re: Deploying Servoy 8.0 Smart Client

PostPosted: Sun Sep 24, 2017 9:24 pm
by swingman
I'm going to deploy on freshly installed Servoy 8.2 Server, so that should already be dealt with no?

Re: Deploying Servoy 8.0 Smart Client

PostPosted: Mon Sep 25, 2017 8:42 am
by Ruben79
Yes, if you uninstall the existing service and re-configure the new deployment from scratch you should not have any trouble.

Re: Deploying Servoy 8.0 Smart Client

PostPosted: Fri Sep 29, 2017 12:56 pm
by swingman
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

Code: Select all
cd /Library/LaunchDaemons/
sudo launchctl unload com.servoy.server.ServoyServer.plist


and run the 'uninstall service' script of the old version

Code: Select all
cd /Applications/Servoy74/application_server/service/
sudo /bin/sh uninstall_service.sh


then run the 'install service' on the new version

Code: Select all
cd /Applications/Servoy82/application_server/service/
sudo /bin/sh install_service.sh


and restart the service

Code: Select all
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.
Code: Select all
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

Code: Select all
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.

Code: Select all
/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

Code: Select all
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:

Code: Select all
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

Code: Select all
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,

Re: Deploying Servoy 8.0 Smart Client

PostPosted: Sat Sep 30, 2017 9:48 am
by grahamg
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