javadb2socketexceptionsquirrel-sqlinvalid-argument

Need help connecting Squirrel SQL Client 4.0.0 to IBM DB2


I need help negating this stack trace while trying to connect to the database:

java.net.SocketException: Invalid argument: create
    at java.base/java.net.Socket.createImpl(Unknown Source)
    at java.base/java.net.Socket.connect(Unknown Source)
    at com.ibm.db2.jcc.t4.x.run(x.java:49)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at com.ibm.db2.jcc.t4.a0.a(a0.java:436)
    at com.ibm.db2.jcc.t4.a0.<init>(a0.java:96)
    at com.ibm.db2.jcc.t4.a.b(a.java:366)
    at com.ibm.db2.jcc.t4.b.newAgent_(b.java:2164)
    at com.ibm.db2.jcc.am.Connection.initConnection(Connection.java:839)
    at com.ibm.db2.jcc.am.Connection.<init>(Connection.java:784)
    at com.ibm.db2.jcc.t4.b.<init>(b.java:350)
    at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:233)
    at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:200)
    at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:471)
    at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:113)
    at net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriverManager.java:147)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:148)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.lambda$execute$0(OpenConnectionCommand.java:93)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.base/java.lang.Thread.run(Unknown Source)

I've tried googling the best I'm capable of, but cannot figure out what is causing this. Tried changing file/folder permissions to remove any write protection. Tried new drivers from IBM as well, for version 11.5, but same error persists. (With both db2jcc.jar and db2jcc4.jar)

The connection works just fine with an older version of Squirrel, relying on Java 1.7. Version 4.0.0 runs with Java 9, starts just fine, but just won't connect to the database.


Solution

  • As of September 2019 Db2 for LUW 11.5 ships with and lists among supported software Java 8, which you should take to mean that Java 9 is not officially supported and should not be used.