IBM DB2 fails because jdk.net is missing

Hello Helical Insight Team,

we are currently using Helical Insight 7.0.0 as a podman container running on an AlmaLinux 10 system with the Docker image hiee/helicalinsight:nitrogen-j25t11.

When trying to add a DB2 connection (after downloading and loading the db2 driver), we receive following error: Error: EfwdServiceException: Unable to obtain connection. jdk/net/ExtendedSocketOptions. When looking closer at the error we get:

at com.helicalinsight.datasource.managed.PlainJdbcConnectionProvider.fallBack(PlainJdbcConnectionProvider.java:127) ~[hi-core-7.0.0.jar:?]
at com.helicalinsight.datasource.managed.PlainJdbcConnectionProvider.getConnection(PlainJdbcConnectionProvider.java:85) [hi-core-7.0.0.jar:?]
at com.helicalinsight.datasource.managed.PlainJdbcConnectionProvider.newConnection(PlainJdbcConnectionProvider.java:42) [hi-core-7.0.0.jar:?]
at com.helicalinsight.datasource.managed.TestConnectionProvider.getConnection(TestConnectionProvider.java:74) [hi-core-7.0.0.jar:?]
at com.helicalinsight.datasource.managed.TestConnectionProvider.testConnection(TestConnectionProvider.java:49) [hi-core-7.0.0.jar:?]
at com.helicalinsight.efw.components.GlobalConnectionsTester.executeComponent(GlobalConnectionsTester.java:45) [hi-core-7.0.0.jar:?]
at com.helicalinsight.efw.serviceframework.ServiceUtils.getComponentResult(ServiceUtils.java:202) [hi-core-7.0.0.jar:?]
at com.helicalinsight.efw.serviceframework.ServiceUtils.executeService(ServiceUtils.java:95) [hi-core-7.0.0.jar:?]
at com.helicalinsight.efw.serviceframework.ServiceUtils.executeService(ServiceUtils.java:50) [hi-core-7.0.0.jar:?]
at com.helicalinsight.adhoc.services.DataSourceConnectionTester.doService(DataSourceConnectionTester.java:23) [hi-adhoc-7.0.0.jar:?]
at com.helicalinsight.efw.serviceframework.ServiceManager.getResultFromComponent(ServiceManager.java:497) [hi-core-7.0.0.jar:?]
at com.helicalinsight.efw.serviceframework.ServiceManager.getResult(ServiceManager.java:253) [hi-core-7.0.0.jar:?]
at com.helicalinsight.efw.controller.EfwServicesController.lambda$service$0(EfwServicesController.java:142) [hi-core-7.0.0.jar:?]
at com.helicalinsight.parallelprocessor.ThreadPoolTaskExecutorImpl.lambda$submit$2(ThreadPoolTaskExecutorImpl.java:126) [hi-core-7.0.0.jar:?]
at com.helicalinsight.parallelprocessor.ThreadPoolTaskExecutorImpl$2.call(ThreadPoolTaskExecutorImpl.java:173) [hi-core-7.0.0.jar:?]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: java.lang.ClassNotFoundException: jdk.net.ExtendedSocketOptions
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1315) ~[catalina.jar:11.0.25]
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1146) ~[catalina.jar:11.0.25]
at com.helicalinsight.efw.framework.ParentLastClassLoader$ChildURLClassLoader.findClass(ParentLastClassLoader.java:84) ~[hi-core-7.0.0.jar:?]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]

We check Java inside the container with java --list-modules | grep ‘^jdk . net’ and nothing returns as expected by the error.

So it seems like the java runtime inside the container doesnt include jdk . net which is needed for the db2 connection.

This happens when we select as DataSource: Tomcat, Adhoc JDBC, Hikari.

Could you look into this?

Thanks to the whole team in advance.

Hello E.M.P-Error,

Thank you for providing the detailed stack trace and the information about your Podman deployment.

We reviewed the exception, and the important part of the stack trace is:

Caused by: java.lang.ClassNotFoundException:jdk.net.ExtendedSocketOptions

jdk.net.ExtendedSocketOptions is part of the Java jdk.net module and is used by the DB2 JDBC driver. The error therefore appears to be related to the Java runtime available inside the Helical Insight container rather than the DB2 connection parameters themselves.

This also explains why the same issue occurs with Tomcat, Adhoc JDBC, and Hikari: all of these connection mechanisms ultimately use the JDBC driver, which is failing while initializing because the required JDK class cannot be loaded.

Could you please run the following commands inside the running Helical Insight container and share the output with us?

podman exec -it <container_name> java -version
podman exec -it <container_name> java --list-modules | grep '^jdk.net'

Please note that the module name is jdk.net (with a dot), so the second command should specifically check for jdk.net.

You can also run:

podman exec -it <container_name> java --describe-module jdk.net

If jdk.net is not present in the Java runtime, this confirms that the Java runtime packaged in the container is missing the module required by the DB2 JDBC driver.

In that case, the solution would be to run Helical Insight with a complete Java 25 runtime containing the jdk.net module. We would not recommend adding a separate JAR for jdk.net to the Helical Insight WEB-INF/lib, since this is a JDK module rather than a normal application dependency.

Please share the output of the above commands along with the exact DB2 JDBC driver/JCC version that you downloaded. We can then confirm whether the issue is with the Java runtime packaged in the current nitrogen-j25t11 image and advise on the appropriate image/runtime update.

Thank you

Hi:

The Java version is:

openjdk version "25.0.4" 2026-07-21 LTS
OpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)
OpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode)

java --list-modules | grep '^jdk.net'

Returns nothing as expected as jdk.net is missing.

And the used DB2 JDBC driver is : jcc-12.1.4.0.jar

Hope that helps.
If you need more information you can just reply them.

Best regards