Release Notes

KNIME Server 4.14 is a feature release of the 4.x release line. All clients that have worked with KNIME Server 4.13 will continue to work with KNIME Server 4.14 without restrictions.

To find out which version of KNIME Server you are currently running, you can check the Administration pages on the WebPortal.

New Features

For a list that includes the new Analytics Platform 4.5 features see here.

Highlighted new functionality is:

A detailed changelog for KNIME Server 4.14 is also available.

Enhanced Dynamic Data Apps

There are new re-execution capabilities in widgets that are similar to the capability previously only provided via the Refresh Button Widget node. Data teams can now be more flexible with the UX of their data apps and build in automatic re-execution upon value change in certain widgets.

Removal of legacy WebPortal

The current WebPortal has been the default since KNIME Server 4.12. In order to remove legacy dependencies, the old WebPortal has been completely removed from this release.

KNIME Edge

Data and IT teams can now provide inference workflows as a service with KNIME Edge. Applying models on the edge is a technical solution for a number of requirements, including reducing costs, minimizing latency, increasing reliability, and enabling deployment of inference services in multiple geographic regions.

New WebPortal Login Page

The WebPortal login page has been redesigned to match the overall look and feel of KNIME WebPortal. In addition, it can be themed the same way as the WebPortal itself.

New configuration options

It is now possible to change the default for the Skip execution if previous job is still running option when creating schedules. This is controlled via two configuration settings:

com.knime.server.action.schedule.force_skip_execution=<true|false>: Specifies the default value for Skip execution if previous job is still running for scheduled job execution in KNIME Analytics Platform. This only works for KNIME Analytics Platform 4.5 or higher. The default value is false.

com.knime.server.action.schedule.enable_skip_execution_checkbox=<true|false>: Specifies if the option Skip execution if previous job is still running for scheduled job execution is enabled in KNIME Analytics Platform. This only works for KNIME Analytics Platform 4.5 or higher. The default value is true.

In addition, it is now possible to enforce minimum password requirements in case the integrated database is used for authentication:

com.knime.server.auth.min.password.length=<value>: Specifies the minimum length that is required for user passwords. The default value is `-1, which means no minimum password length. This configuration option is only relevant when using the internal user database.

com.knime.server.auth.complex.passwords=<true|false>: Specifies if complex passwords should be enforced. A complex password contains at least one lower-case character, one upper-case character, one number, and a non-alphanumeric character. The default value is `false. This configuration option is only relevant when using the internal user database.

Architecture changes

KNIME Server 4.14.0 requires Java 11 to run. In case you are already using an older version of KNIME Server and it is running on Java 8, please first update to a Java 11 JDK, and update the JAVA_HOME variable in the systemd configuration file (Linux) repectively the Windows service, or in /setenv.(sh|bat) in case no service is used.

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.13 to 4.14 or update by applying a bugfix to version 4.14.

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.13.x or KNIME Server 4.14.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 4.5 as Executor with the corresponding KNIME Executor Connector extension version 4.14 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 <knime-server-repository>/config/knime-server.config, so any existing custom configuration must be moved. More information concerning the email configuration can be found in the KNIME Server Administration Guide

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 https://adoptium.net/?variant=openjdk11), and update the JAVA_HOME variable in the systemd configuration file (Linux) repectively in the Windows service.

Start by downloading the following files and make sure that the owner of these files is your KNIME user:

  • The <knime-tomcat>.jar file listed here

  • If you are updating using Tomcat: the latest Tomcat .war file listed here

  • The latest KNIME Server Executor file listed here

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 or webportal.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:

  1. Stop KNIME Server.

    1. 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

    2. On Linux: If you have KNIME Server installed as a service, stop KNIME Server by running the systemctl stop knime-server.service command

      If you don’t have KNIME Server installed as a service, then run the shutdown.sh file located in <apache-tomcat>/bin

  2. Delete the existing folder <apache-tomcat>/webapps/knime. You may not have a folder with this name located in the webapps folder. If this is the case, delete the folder that matches the file name of the .war file located in the webapps folder. E.g. if you see a webportal.war file in the webapps folder, delete the webportal folder.

  3. Move the <filename>.war file located in the webapps folder to a different folder. Then copy the new downloaded war-4.14.x.y.war file to the webapps folder and rename it to <filename>.war.

  4. Check if the knime.xml file that you backed up before still exists. If not copy the backup to the previous location.

  5. 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.

Updating from KNIME Analytics Platform 4.4.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/4.5

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>

Upgrading from KNIME Analytics Platform 4.3.x and older

Due to some larger changes, it is not possible to upgrade to KNIME Analytics Platform 4.5.x from a version older than 4.4.0. Therefore, you need to install KNIME Executor 4.5.x version from scratch.

Before starting the KNIME Executor installation process create a backup of the <executor-folder> renaming it to <executor-folder>.old. After you succesfully 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. This installer includes all extensions required for running as an Executor for KNIME Server.

Alternatively you can also install KNIME Analytics Platform from scratch and install the KNIME Executor connector extension version 4.14 into it. In this case, you will need to run the newly installed KNIME Analytics Platform 4.5 instance as the user that owns the installation.

Please refer to the KNIME Server Installation Guide for more details about installing a KNIME Executor.

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 by 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:

  1. Create a copy of the file named knime.ini-copy

  2. Remove the -profileLocation option from the knime.ini file

  3. Update the KNIME Executor via command line

  4. After a successful update, overwrite your knime.ini file with knime.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.

Changelog (KNIME Server 4.14)

KNIME Server 4.14.1 (released January 20, 2022)

Enhancements

  • [SRV-3399] - Add mason control for execution on an executed job with no input parameters

Bugfixes

  • [SRV-3655] - Configuration dialog doesn’t ignore unknown fields for representations

  • [SRV-3653] - Potential deadlock when a workflow with schedules with execution retries is overwritten

  • [SRV-3651] - Job is loaded even when no JobMessageDispatcher could be started

  • [SRV-3650] - Detection of vanished executors incorrectly marks active executor as vanished after server restart (QPid only)

  • [SRV-3645] - Don’t call workflow when job vanishes from executor

  • [SRV-3642] - Recycle Bin items cannot be deleted

  • [SRV-3641] - Executor cannot acquire core tokens any more after server restart (Qpid-only)

  • [SRV-3475] - No error message sent if an error occurs upon job loading

KNIME Server 4.14.0 (released December 6, 2021)

Enhancements

  • [SRV-3616] - Automatically forward webserver root to context root in new installations

  • [SRV-3615] - Update to Tomcat 9.0.54

  • [SRV-3613] - Server installer should restrict permission on auto-install.xml

  • [SRV-3598] - Allow admin to provide default for "Skip if previous job is still running"

  • [SRV-3549] - Workaround for time drifts on Windows to avoid double execution of schedules

  • [SRV-3537] - Show VANISHED job state in KNIME Explorer

  • [SRV-3521] - Request core tokens according to number of available cores

  • [SRV-3514] - Add detection of vanished executors with jobs

  • [SRV-3506] - Strip leading and trailing spaces from server configuration values

  • [SRV-3502] - Support timezones for components and metanode templates

  • [SRV-3439] - Remove Java 8 support

  • [SRV-2141] - Add possibility to change workflow name when using Save as workflows for jobs

  • [WEBP-896] - Embedded WebPortal Data App: Allow for discard/restart at the end of application

  • [WEBP-871] - Show minimum password requirements

  • [WEBP-859] - Add link to server registration page to help page

  • [WEBP-856] - Login Page: Theming

  • [WEBP-850] - Remove IE11 & Edge legacy support

  • [WEBP-848] - MarvinJS Sketcher should stick to format on newly uploaded files

  • [WEBP-840] - Don’t show passwords in cleartext in WebPortal password creation field

  • [WEBP-839] - Remove legacy WebPortal

  • [WEBP-782] - Improve generic 401 and 403 page sent from server when using access tokens

  • [WEBP-738] - Allow changing the bottom border of the header bar in the WebPortal

  • [WEBP-735] - Allow changing the color of the border-bottom of the active header item in themes

  • [WEBP-697] - Disable autocomplete on login form

  • [WEBP-692] - Display license messages on license page

  • [WEBP-632] - Improve design of documentation page

  • [WEBP-474] - Pre-fill email and formats fields if parameters are passed with URL

  • [WEBP-146] - Include server version number on license page

  • [WEBP-133] - Login page

  • [WEBP-124] - Login page theming

Bugfixes

  • [SRV-3634] - Groups view user count can be inconsistent

  • [SRV-3633] - Login as an Admin with microsoft email in Server does not work when using AAD

  • [SRV-3631] - File extension of input resource is not propagated to executor if it’s send via message broker

  • [SRV-3612] - Directory path traversal when requesting client profiles

  • [SRV-3606] - Executor doesn’t send current job state upon reconnecting to message broker

  • [SRV-3597] - Race condition between job loading and status update

  • [SRV-3595] - Loaded jobs appear to be swapped when RabbitMQ is restarted

  • [SRV-3594] - Timeout while restoring from swap may result in orphaned jobs in executor

  • [SRV-3593] - Server shutdown is delayed if RabbitMQ is not reachable

  • [SRV-3590] - Executor sometimes cannot send messages after RabbitMQ restart due to missing exchanges

  • [SRV-3589] - KNIME Server fails during startup and does not try to reconnect to RMQ if initial connection to RMQ cannot be established

  • [SRV-3588] - Each RabbitMQ restart adds 2 additional connections

  • [SRV-3582] - Swapping jobs during executor shutdown doesn’t work on KNIME Server Small

  • [SRV-3575] - Admin users logging in to the WebPortal with upper-case characters don’t have admin access

  • [SRV-3573] - Properties endpoint sends wrong type header

  • [SRV-3565] - Editing a schedule on the 31st may display wrong start/end month

  • [SRV-3554] - Configuration page in WebPortal adds new spaces to msgq rules and names on every change

  • [SRV-3545] - Race condition in executor when sending executor status

  • [SRV-3536] - Modifying scheduled job while its timer expired creates duplicate schedules until server restart

  • [SRV-3535] - Workflow Authentication tokens don’t check group permissions

  • [SRV-3530] - Executor endpoint not thread-safe

  • [SRV-3528] - Changed properties of loaded job get lost after server crash

  • [SRV-3524] - Inactive job not removed if post execution tasks didn’t run

  • [SRV-3520] - Impatient clicking on "Double-click to connect to server" freezes system

  • [SRV-3519] - Scheduled job gets discarded even though there might be jobs with potential retries left

  • [SRV-3510] - "Skip if previous job is still running" skips jobs if server and executor crash during execution of last job

  • [SRV-3499] - Add authorization header to request to OIDC token endpoint

  • [SRV-3483] - startedExecutionAt is a different timezone than finishedExecutionAt/createdAt in REST jobs endpoint

  • [SRV-3389] - Job status does not get updated in case of executor closing unexpectedly

  • [SRV-3333] - Disable workflow execution in installer doesn’t disable Qpid

  • [WEBP-888] - Redirect to OIDC provider doesn’t work when opening OpenAPI in browser

  • [WEBP-873] - Login page timeout leads to 408 error page

  • [WEBP-866] - WebPortal fails to load subfolders in themes under Windows

  • [WEBP-827] - WebPortal deletes random schedule/jobs on second or subsequent pages

  • [WEBP-706] - Workflows with & in name cannot be opened in new WebPortal from KNIME Explorer

  • [WEBP-667] - Schedules page: buttons are overlying

  • [WEBP-532] - Old WebPortal Configuration Nodes not accepting parameters

  • [WEBP-100] - WebPortal logout might cause error on trying to discard not run job