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

Hello Daniel,

Thank you for providing the additional information.

This confirms the cause of the issue.

You are running Temurin OpenJDK 25.0.4, and the jdk.net module is not present in the Java runtime inside the Helical Insight container.

The DB2 JCC driver version you are using is:

jcc-12.1.4.0.jar

The exception reported earlier:

java.lang.ClassNotFoundException: jdk.net.ExtendedSocketOptions

is therefore occurring because the DB2 JDBC driver is attempting to use a JDK class which is not available in the Java runtime packaged in the current Helical Insight container.

jdk.net.ExtendedSocketOptions is part of the standard jdk.net module in Java 25. It is not a separate DB2 or Helical Insight library that should be added to WEB-INF/lib.

We are going to review this with our product/deployment team, specifically the Java runtime packaged in the hiee/helicalinsight:nitrogen-j25t11 image, and determine the appropriate fix.

For now, there is no need to change the datasource type between Tomcat, Adhoc JDBC, or Hikari, since all three are ultimately affected by the same missing JDK class.

We will get back to you once we have confirmed the appropriate runtime/image change.

Thank you for providing the Java version and DB2 driver details. They are helpful for identifying the issue.

Thank you

Hi @E.M.P-Error Daniel,
Can you confirm which version you are using? Is it community or enterprise edition. Also please mention the exact version number also. You can find these details from the home page once you login into helical insight application

Hi.
We are using the community edition and the version number is:
Helical Insight : 7.0.0
Build : R20263007
License Type : Community

Thanks for the fast reply

Hello Daniel,

We would like to clarify that, in our earlier Docker setup, we provided a minimized/lightweight JDK in order to keep the Docker image size smaller and reduce the overall container footprint. As a result, some JDK modules that are not required by most of the standard Helical Insight functionality may not be included.

With the newer Helical Insight Enterprise Docker version, we have moved to providing the complete JDK rather than the minimized/lightweight JDK. This ensures that all standard JDK modules, including jdk.net, are available for integrations such as the DB2 JDBC driver.

So you can possibly try the enterprise version by registering on the website : Register - Helical Insight
You will get enterprise version with 30 days trial link.

We will also see if a solution can be provided in the subsequent release in community version.

Hi @E.M.P-Error Daniel,

one solution which can work on your community edition also is below. Please try once and confirm if that works

  1. stop the application ( docker compose down )
  2. update image name of hiee service to hiee/helicalinsight:nitrogen-j25t11-full in docker-compose.yml file
  3. delete the lock file ( hi.lock)
  4. start the application ( docker compose up -d)

Please confirm if this works

Hi @E.M.P-Error Daniel,
Did you try the above suggested solution? Did it work.

Hi,

sorry for just now answering.
Thank you very much. Yes it does work now.
With the full docker image the DB2 connections works perfectly.

Thanks again for the fast responses.

Thankyou for the confirmation. Let us know incase of any other questions.