DBDriverRegistry errors in headless mode in KNIME 4.6 (running in docker container)

Hi,

I am running an up to date KNIME 4.6 in a docker container both for development of workflows and for scheduled headless execution triggered by Jenkins.

In one workflow I am accessing an SQLite database which works completely fine using the GUI (accessing a local docker container using X2Go) but when I try to run it headless (either triggered by Jenkins or using a local bash opened via docker-compose exec in the very same container where the GUI version is working) I get a series of DBDriverRegistry issues like

ERROR    main DBDriverRegistry   Database driver wrapper creation failed for driver (H2) "H2".
ERROR    main DBDriverRegistry   Failed to load built-in database driver (H2) "H2" from extension 
[...]
ERROR    main DBDriverRegistry   Database driver wrapper creation failed for driver (built-in-sqlite-3.36.0.3) "Driver for SQLite v. 3.36.0.3".
ERROR    main DBDriverRegistry   Failed to load built-in database driver (built-in-sqlite-3.36.0.3) "Driver for SQLite v. 3.36.0.3" from extension org.knime.database.extensions.
ERROR    main Node       Loading model settings failed: Could not find the [SQLite] database driver.
org.knime.core.node.InvalidSettingsException: Could not find the [SQLite] database driver.

DBDriverRegistry_Errors.txt (57.0 KB)

Any ideas what could cause this behaviour and how to fix or work around? Apparently restarting KNIME (which seems to solve some of these issues that appeared with the UI version) is not an option in the “run a fresh container everytime” case.

Thanks!
Lars

You are missing some JVM arguments when running headless. Have a look at the knime.ini and make sure you use the same --add-opens when you start the headless process.

1 Like

Thanks for the hint,

i was still puzzled why I should need to add the --add-opens as I (correctly) expected that the headless process would use the settings from knime.ini.

But then another of your posts pointed me to the root cause. For whatever reasons there was an empty -vmargs argument at the end of my command line and then all the VM arguments from knime.ini are ignored. :confounded:

Anyway, problem seems to be solved right now. Jenkins is happily executing my workflow! :slightly_smiling_face:

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.