Release Notes
KNIME Server 4.17 is a feature release of the 4.x release line and is recommended for use in production environments.
This version of KNIME Server works only with executors of version 5.3.
All local KNIME Analytics Platform clients that have worked with KNIME Server 4.16 will continue to work with KNIME Server 4.17 without restrictions.
To find out which version of KNIME Server you are currently running, you can check the Administration pages on the WebPortal. |
Possible Security Policy Updates
-
If you have set your CSP header to a custom value, you might need to adjust the CSP header for the included fonts to load correctly. Specifically
data
-URLs need to be allowed for fonts. If you have nofont-src
defined, simply addingfont-src 'self' data:;
to the end of your rules will suffice, otherwise adjustfont-src
accordingly.
Introduction to the update process
This document guides you through the steps that are needed to upgrade an existing KNIME Server installation from version 4.16 to 4.17 or update by applying a bugfix to version 4.17.
You will find a complete guide to installing KNIME Server in the KNIME Server Installation Guide, and a complete description of all configuration options in the KNIME Server Administration Guide.
If you have any questions or need assistance with the update process, please contact your dedicated KNIME support specialist.
Since version 4.11, new installations of KNIME Server are based on Apache Tomcat, rather than Apache TomEE which was used in previous releases.
With the release of KNIME Server 4.13.0, we discontinue support for TomEE based installations. It is not possible to upgrade a TomEE based KNIME Server to version 4.13.0 or higher. Instead, a fresh installation has to be performed. |
If your current KNIME Server installation is already Tomcat based, you can follow the upgrade procedure as outlined below.
Prerequisites
Server
-
You have already KNIME Server 4.16.x or KNIME Server 4.17.x running.
-
A KNIME Server installation based on Tomcat application server
For the sake of readability, this documentation uses <apache-tomcat>/ to refer
to the installation directory of the server application.
|
Client & Executor
-
KNIME Analytics Platform clients with KNIME ServerSpace 4.8+ otherwise it will not be able to talk to the Server.
-
KNIME Analytics Platform 5.3 as Executor with the corresponding KNIME Executor Connector extension version 4.17 installed on the Server side.
Backup
Even though all the data on the Server should be preserved during the update it is highly recommended to create a backup of all important data (see KNIME Server Administration Guide for backup information).
With KNIME Server 4.12 the email configuration moved from the knime.xml to the
|
Upgrade/update steps
Application server upgrade/update
KNIME Server 4.14.0 requires Java 11 to run. In case you are using an older version of KNIME Server and it
is still running on Java 8, please first update to a Java 11 JDK (e.g. from here),
and then update the JAVA_HOME variable in the systemd configuration file (Linux),
or in the service properties (Windows), or in the setenv script (setenv.sh on Linux, setenv.bat on Windows) located under
knime_server/[apache]/bin (if no service is used.)
|
Start by downloading the following files and make sure that the owner of these files is your KNIME user:
Next backup these files before starting the update process:
-
The
knime.xml
file located in<apache-tomcat>/conf/Catalina/localhost/
Please be aware that the name of the file might be different if the.war
file had a different name (e.g.com.knime.enterprise.server.xml
orwebportal.xml
).Failure to backup this file will result in losing access to your scheduled jobs since it contains the secret key that is used to encrypt the schedules. -
The
server.xml
file located in<apache-tomcat>/conf/
Then follow these steps:
-
Stop KNIME Server.
-
On Windows: If you have KNIME Server installed as a service, stop KNIME Server and Executor.
If you don’t have KNIME Server installed as a service, then run the
shutdown.bat
file located in<apache-tomcat>/bin
-
On Linux: If you have KNIME Server installed as a service, stop KNIME Server by running the
systemctl stop knime-server.service
commandIf you don’t have KNIME Server installed as a service, then run the
shutdown.sh
file located in<apache-tomcat>/bin
-
-
Delete the existing folder
<apache-tomcat>/webapps/knime
. You may not have a folder with this name located in thewebapps
folder. If this is the case, delete the folder that matches the file name of the.war
file located in thewebapps
folder. E.g. if you see awebportal.war
file in thewebapps
folder, delete thewebportal
folder. -
Move the
<filename>.war
file located in thewebapps
folder to a different folder. Then copy the new downloadedwar-4.17.x.y.war
file to thewebapps
folder and rename it to<filename>.war
. -
Check if the
knime.xml
file that you backed up before still exists. If not copy the backup to the previous location. -
Copy the downloaded file
<knime-tomcat>.jar
to<apache-tomcat>/lib
. Delete the existing old<knime-tomcat>.jar
file that was already in that directory. Make sure to rename the new file to knime-tomcat.jar.
HTML sanitization of old view and widget nodes in Executor version 5.2.2 or higher
With the release of 5.2.2 KNIME executors will have HTML sanitization of old JavaScript View nodes and Widget nodes turned on by default. This should ensure that no malicious HTML can be output. For more information on the possible consequences of node’s functionality see the following section in the KNIME Analytics Platform guide.
It is still possible to achieve the old behaviour by turning the sanitization off globally. To do so set the following parameter to false
in the knime.ini
file in the executor’s installation directory.
-Djs.core.sanitize.clientHTML=false
Additionally sanitization rules can also be further customized, see KNIME WebPortal Administration Guide.
Updating the Executor to KNIME Analytics Platform 5.2.x or higher from version 5.1.x
If possible, start the executor installation in graphical mode (using the correct installation user!). If you have internet access, go to File → Update KNIME… and it will suggest updating to the new version. Follow the steps in the wizard. If you don’t have direct internet access, you must download the zipped update sites from the commercial downloads page. Then register the ZIP files in File → Preferences → Install/Update → Available Software Sites and go to File → Update KNIME…
Under Linux, if you cannot start the graphical user interface, you can use the
update-executor.sh
script that is in the root of the executor installation.
Call the script on the command line and provide a list of update sites that contain the new versions of the installed extensions and all installed extension will be updated (given that an update is available):
./update-executor.sh https://update.knime.com/analytics-platform/5.3
If you get error messages when executing update-executor.sh
about missing
"installable units", make sure that you have provided all necessary update
sites.
If you want to selectively update only certain extensions, you have to build the
update command yourself. An update is performed by uninstalling (-u
) and
installing (-i
) an extension at the same time:
./knime -application org.eclipse.equinox.p2.director -nosplash -consolelog -r <list-of-update-sites> -i <list-of-features> -u <list-of-features> -d <knime-installation-folder>
For the given command, the parameters have the format specified in the Installing additional extensions section of the KNIME Server Administration Guide.
Updating the Executor to KNIME Analytics Platform 5.1.x or higher from version 4.7.x or lower
Due to some larger changes, it is not possible to upgrade to KNIME Analytics Platform 5.1.x or higher, from version 4.7.x or lower.
Therefore, if you have KNIME Executor 4.7.x or lower you need to install KNIME Executor 5.3.x from scratch.
Before starting the KNIME Executor installation process create a backup of the
<executor-folder>
renaming it to <executor-folder>.old
.
After you successfully install the desired version of KNIME Executor, rename the
new folder containing the Executor installation to the old folder name.
Then proceed with the installation of KNIME Executor by downloading the KNIME Executor full build from here and extracting it.
Please refer to the KNIME Server Installation Guide for more details about installing a KNIME Executor.
Migrating previous settings
When switching to a new executor, be sure to migrate any (custom) settings from the previous executor. Here are common configurations to check:
-
knime.ini:
Some settings of the
knime.ini
file may be configured in the executor service, but if present, please migrate these settings:# executor profiles -profileLocation <your server's URL> -profileList <list of profiles, e.g. executor,python> # [...] # executor memory (line starting with -Xmx), e.g. -Xmx60G # [...] # Server's message queue -Dcom.knime.enterprise.executor.msgq=<your queue address> # [...] # any custom entries, e.g. http proxies
-
Extensions:
Some community extensions are not yet or no longer available on the newest KNIME version. For a full list of available community extensions, please see here.
-
Miscellaneous:
You may find a proxy configuration file at
<old-executor>/configuration/.settings/org.eclipse.core.net.prefs
. If so, please migrate this file to the new executor. In order to start the new executor automatically, ensure that the executor folder has the correct owner and access permissions (especially on Linux).
Updating to KNIME Analytics Platform 4.7.x or lower
This is only available for KNIME Analytics Platform version 4.4.x or higher. For other cases see previous KNIME Server documentation |
If possible, start the executor installation in graphical mode (using the correct installation user!). If you have internet access, go to File → Update KNIME… and it will suggest updating to the new version. Follow the steps in the wizard. If you don’t have direct internet access, you must download the zipped update sites from the commercial downloads page. Then register the ZIP files in File → Preferences → Install/Update → Available Software Sites and go to File → Update KNIME…
Under Linux, if you cannot start the graphical user interface, you can use the
update-executor.sh
script that is in the root of the executor installation.
Call the script on the command line and provide a list of update sites that contain the new versions of the installed extensions and all installed extension will be updated (given that an update is available):
./update-executor.sh https://update.knime.com/analytics-platform/5.3,https://update.knime.com/community-contributions/trusted/5.3
If you get error messages when executing update-executor.sh
about missing
"installable units", make sure that you have provided all necessary update
sites.
If you want to selectively update only certain extensions, you have to build the
update command yourself. An update is performed by uninstalling (-u
) and
installing (-i
) an extension at the same time:
./knime -application org.eclipse.equinox.p2.director -nosplash -consolelog -r <list-of-update-sites> -i <list-of-features> -u <list-of-features> -d <knime-installation-folder>
For the given command, the parameters have the format specified in the Installing additional extensions section of the KNIME Server Administration Guide.
knime.ini file
In case you want to use custom settings from your old KNIME Executor’s knime.ini
file, please copy only the lines
following -vmargs
to the new knime.ini
. The only exception to this are the four lines related to
Server Managed Customizations (-profileLocation…
), in case those are set.
The remaining lines above -vmargs
contain paths to resources that have been
changed in the new release, so they are not compatible.
Also note that it is now recommended to move the lines related to Server Managed Customizations to Executor’s service definition. This will help upgrading to future releases on installation where no GUI is available.
server.xml file
For fresh installations, please note that a server.xml
file (<apache-tomcat>/conf/server.xml
)
from an older installation cannot be copied over due to some larger changes. Any
custom changes applied to your existing server.xml
need to be manually copied over
to the new server.xml
. For upgrades the existing server.xml
continues to work, and does not
need any adjustments.
Configuration of the updated KNIME Server
KNIME Server license
The KNIME Server license continues working with the new Server. If you haven’t received a license file or if it is not working correctly, please contact KNIME support or your dedicated KNIME account manager.
Enabling execution via Apache Qpid
KNIME Server 4.11 introduced an integrated message broker for communication between KNIME Server and KNIME Executor, based on Apache Qpid (https://qpid.apache.org/). This can be thought of as using an architecture that corresponds closely to distributed KNIME Executors, but runs on a single host, which is used by both KNIME Server and KNIME Executor.
Unlike distributed KNIME Executors, it is not necessary to install a separate message broker such as RabbitMQ. Instead, Apache Qpid is bundled as part of all KNIME Server installations. New installations of KNIME Server use Qpid by default. Older installations might still use RMI, which has been removed with KNIME Server 4.13.
If you are still using RMI, you need to switch your installation to Qpid. Changes are required in two locations:
Application Server
Activate queue in knime-server.config
. The file can be found in
<knime-server-repository>/config/knime-server.config
. Set the parameter
com.knime.enterprise.executor.embedded-broker=
to true
In addition, comment out the line com.knime.server.executor.knime_exe=
by placing a # character at the start of the
line.
KNIME Executor
In the KNIME Executor installation directory, add the following line to the knime.ini
file, anywhere after the
-vmargs
line:
-Dcom.knime.enterprise.executor.msgq=amqp://knime:20knime16@localhost/
Alternatively, you can also add this line to the Executor’s service definition.
Unlike the RMI-based execution, using the Qpid message broker requires to startup KNIME Server and
KNIME Executor separately. For starting up KNIME Server, you can still use the startup.sh/.bat file located in
<apache-tomcat>/bin . For starting the Executor, you can use <executor directory>/start-executor.sh (Linux) or
<executor directory>/start-executor.bat (Windows)
|
In case the Executor startup script is not present, you can start the Executor from command line by running
./knime -nosplash -consolelog -application com.knime.enterprise.slave.KNIME_REMOTE_APPLICATION
For setting up the KNIME Server service, please follow the steps outlined in the KNIME Server Installation Guide. Installing the Executor as a service follows the same procedure as described for distributed KNIME Executors.
For increased security, we recommend to run both services as a different users.
Preferences file
Note that when switching from RMI to Qpid, the old preferences.epf
file in ./workflow_repository/config
is
not used anymore. In order to set preferences on the Executor (e.g. database drivers or Python configuration),
please use a preference profile as described in the
KNIME Server Admin Guide.
Server temp directory
Switching to Qpid also uses a different temp directory than RMI. On Linux, this defaults to /tmp
, which might have
size restrictions. In order to manually set a different temp directory, please add the following to the knime.ini file
of the KNIME Executor, anywhere below the -vmargs
line:
-Djava.io.tmpdir=/path/to/tmpdir
Qpid port
In some environments, it is necessary to explicitly open a port for connections to Qpid on localhost (even though
Server and Executor are running on the same host). By default, the port is 5672. This can be changed in the
knime-server.config
file.
Server host name in /hosts
By default, the host name of the machine is available in /etc/hosts/
. If this is not the case, KNIME Server will not
work using Qpid. This can be resolved by adding the server’s host name to /etc/hosts/
, e.g. 127.0.0.1 <hostname>
.
Compressed responses
Due to a change in Tomcat responses sent by KNIME Server 4.11 and 4.12 are not compressed even though compression is
configured in the server.xml
. In order to enable compression again, you have to add the attribute
noCompressionStrongETag=false
to all <Connector>
elements in your server.xml
, e.g.
... <Connector noCompressionStrongETag="false" compressibleMimeType="..." compression="on"/> ...
If you create a new server installation using the KNIME Server Installer for 4.13.0 this attribute will be added automatically.
Troubleshooting
All schedules are lost after updating
One important step during update process is the backup of the knime.xml
file
so that it can be copied back into the KNIME Server installation folder. The
knime.xml
file contains a secret key for encrypting the communication between
the server and the installation folder. If this is not restored before starting
the server, the server will not be able to load jobs and schedules previously created.
Access to KNIME WebPortal version > 4.11 is not possible
Access gives error 404
If you cannot access the URL of the KNIME WebPortal version > 4.11
https://<server-address>/knime/webportal/
and it fails with error 404, usually
indicates that during update or installation process the Context Root
used to define the KNIME WebPortal URL was left empty (/
).
This is not possible starting with the release of KNIME WebPortal version 4.11+
for which it is necessary to always specify a Context Root.
Please refer to the KNIME Server Installation Guide.
Access gives error 500
If you cannot access the URL of the KNIME WebPortal version > 4.11
https://<server-address>/knime/webportal/
and it fails with error 500, usually
indicates that the update did not work as expected.
Please contact KNIME support team via support@knime.com to get this fixed.
Update of KNIME Executor via command line is not possible
This is a known bug when updating from a KNIME Server version 4.11.1. This bug is fixed starting with KNIME Server version 4.11.2.
To solve the issue you need to follow these steps:
-
Create a copy of the file named
knime.ini-copy
-
Remove the
-profileLocation
option from theknime.ini
file -
Update the KNIME Executor via command line
-
After a successful update, overwrite your
knime.ini
file withknime.ini-copy
.
If this solution does not work, please contact KNIME support team via support@knime.com
Workflows deployed on the server cannot be executed
-
If the following error message appears:
Unable to load workflow, it was created with a future version of KNIME
The KNIME Analytics Platform client with which you are connecting to the KNIME Server and with which the server was built needs to have a lower or equal version to the KNIME Executor. If this is not the case, please ask your KNIME Server Administrator to update the KNIME Server and/or KNIME Executor to the release version of the KNIME Analytics Platform client you are using locally.
-
If a missing node is reported, instead, check if the node is already installed and if the version of the respective extension is the same in both the KNIME Analytics Platform client and the KNIME Executor.
-
Finally, if your scripting (R or Python) snippets fail, it is possible that the respective packages are missing on KNIME Server. Please refer to the respective guides to install Python and R packages. Please also make sure the user under which you install those packages is the same user running the KNIME Executor.
Connection to KNIME Executor hosts after switching to Qpid is not possible
-
Make sure the hostname of the KNIME Server is mentioned in the
/etc/hosts
file -
Check that the following ports are accessible on
localhost
. They do not need (and in fact should not) to be accessible from other systems (usually this is the case).-
With QPid:
com.knime.enterprise.executor.embedded-broker.port
(default 5672) -
With RabbitMQ: For KNIME Server and for the KNIME Executor that is setup on a separate machine (default 5672)
-
-
Starting with QPid, KNIME Executor needs to be started manually. Please follow the instructions in the KNIME Server Installation Guide to do so.
-
It might be necessary to change the user running the service. Please follow the instructions in the KNIME Server Installation Guide to do so.
Reading from my local file system after update to KNIME Server 4.11+ is not possible
Starting with KNIME Analytics Platform version 4.2, which is the KNIME Executor version for the KNIME Server 4.11 we are, by default, not allowing access to the local file system on the KNIME Server via the new File Util nodes. You can enable this again as described here.
Please note that this only affects nodes that are part of the revised file handling framework.
The authentication field is empty
Please update the knime-tomcat.jar
as described in the
Application server update section.
This must be done before restarting the KNIME Server.
Log4J 2.14 appearing after updating KNIME Executor
Eclipse does not remove old or uninstalled plugins from the hard disk unless garbage
collection is run. This may cause unused plugins and jar files, such as log4j
, to
continue to persist on the hard disk even if they are unused. To remove the old
plugins, including unused versions of log4j run the following command inside the
KNIME Executor directory.
./knime -application org.eclipse.equinox.p2.garbagecollector.application \ -nosplash -consolelog
Changelog (KNIME Server 4.17)
KNIME Server 4.17.0
(released September 11, 2024)
Bug Fixes
-
SRV-3809:
keystore_passphrase` gets masked/encryptes in `knime-server.config
KNIME Server 4.17.1
(released October 23, 2024)
Enhancement
-
SRV-3852:
Update Apache Tomcat and CXF
Bug Fixes
-
SRV-3853:
Potentially increased memory consumption