# Postgres JDBC 2nd Connection Class not found

**URL:** <https://forum.inductiveautomation.com/t/postgres-jdbc-2nd-connection-class-not-found/116654>\
**Category:** Ignition\
**Tags:** jdbc, ignition83\
**Created:** [August 4, 2026, 4:25pm UTC](https://forum.inductiveautomation.com/t/postgres-jdbc-2nd-connection-class-not-found/116654 "2026-08-04T16:25:15Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 4, 2026, 4:25pm UTC](https://forum.inductiveautomation.com/t/postgres-jdbc-2nd-connection-class-not-found/116654/1 "2026-08-04T16:25:15Z")

</div>

Got an odd possible bug.

v8.1 to v8.3 conversion testing. Client has a PostgreSQL cluster with two distinct databases. Both URLs point at the same IP and port--just the DB name is different:

- `jdbc:postgresql://a.b.c.d:5432/db1?ssl=true&sslmode=require&sslfactory=org.postgresql.ssl.NonValidatingFactory`
- `jdbc:postgresql://a.b.c.d:5432/db2?ssl=true&sslmode=require&sslfactory=org.postgresql.ssl.NonValidatingFactory`

(Names changed. Notable possible difference: "db2" includes some uppercase characters.)

First connection works reliably.

Second connection gives me this:

```python
java.sql.SQLException: Cannot load JDBC driver class 'org.postgresql.Driver'
	at org.apache.commons.dbcp2.DriverFactory.createDriver(DriverFactory.java:53)
	at org.apache.commons.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:474)
	at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:541)
	at org.apache.commons.dbcp2.BasicDataSource.getLogWriter(BasicDataSource.java:1088)
	at org.apache.commons.dbcp2.BasicDataSourceFactory.createDataSource(BasicDataSourceFactory.java:330)
	at com.inductiveautomation.ignition.gateway.datasource.DatasourceManagerImpl.createDataSource(DatasourceManagerImpl.java:259)
	at com.inductiveautomation.ignition.gateway.IgnitionGateway.createDataSource(IgnitionGateway.java:2914)
	at com.inductiveautomation.ignition.gateway.datasource.DatasourceImpl.initializeDatasource(DatasourceImpl.java:285)
	at com.inductiveautomation.ignition.gateway.datasource.DatasourceImpl.runTest(DatasourceImpl.java:312)
	at com.inductiveautomation.ignition.gateway.datasource.DatasourceManagerImpl$FaultedDatasourceRetryer.lambda$newRetryRunnable$0(DatasourceManagerImpl.java:1318)
	at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$TrackedTask.run(BasicExecutionEngine.java:599)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.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)
Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	at org.eclipse.jetty.ee10.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:443)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	at org.apache.commons.dbcp2.DriverFactory.createDriver(DriverFactory.java:48)
	at org.apache.commons.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:474)
	at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:541)
	at org.apache.commons.dbcp2.BasicDataSource.getLogWriter(BasicDataSource.java:1088)
	at org.apache.commons.dbcp2.BasicDataSourceFactory.createDataSource(BasicDataSourceFactory.java:330)
	at com.inductiveautomation.ignition.gateway.datasource.DatasourceManagerImpl.createDataSource(DatasourceManagerImpl.java:259)
	at com.inductiveautomation.ignition.gateway.IgnitionGateway.createDataSource(IgnitionGateway.java:2914)
	at com.inductiveautomation.ignition.gateway.datasource.DatasourceImpl.initializeDatasource(DatasourceImpl.java:285)
	at com.inductiveautomation.ignition.gateway.datasource.DatasourceImpl.runTest(DatasourceImpl.java:312)
	at com.inductiveautomation.ignition.gateway.datasource.DatasourceManagerImpl$FaultedDatasourceRetryer.lambda$newRetryRunnable$0(DatasourceManagerImpl.java:1318)
	at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$TrackedTask.run(BasicExecutionEngine.java:599)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.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)

```

???

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 4, 2026, 4:35pm UTC](https://forum.inductiveautomation.com/t/postgres-jdbc-2nd-connection-class-not-found/116654/2 "2026-08-04T16:35:20Z")

</div>

Had to delete the driver that came through the upgrade process and then recreate the connections with the "Postgresql" instead of the "Postgresql JDBC Driver".

I'm curious why the legacy imported driver would work with one connection but not the other. 🤷‍♂️

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [August 4, 2026, 4:38pm UTC](https://forum.inductiveautomation.com/t/postgres-jdbc-2nd-connection-class-not-found/116654/3 "2026-08-04T16:38:29Z")

</div>

Did one have a different initial pool size?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 4, 2026, 4:57pm UTC](https://forum.inductiveautomation.com/t/postgres-jdbc-2nd-connection-class-not-found/116654/4 "2026-08-04T16:57:39Z")

</div>

Yes. The latter was set to initial size==4.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 4, 2026, 4:58pm UTC](https://forum.inductiveautomation.com/t/postgres-jdbc-2nd-connection-class-not-found/116654/5 "2026-08-04T16:58:58Z")

</div>

I can confirm that setting the initial size back to 4 broke that connection again.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [August 4, 2026, 5:10pm UTC](https://forum.inductiveautomation.com/t/postgres-jdbc-2nd-connection-class-not-found/116654/6 "2026-08-04T17:10:10Z")

</div>

I created an issue to track this.

It looks like it doesn't have anything to do with upgrades or Postgres - I think any Initial Size value is just broken.

---

<div class="post-metadata">

**Author:** ![hunterdg](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/hunterdg/32/67774_2.png) [@hunterdg](https://forum.inductiveautomation.com/u/hunterdg)\
**Post date:** [August 16, 2026, 6:18pm UTC](https://forum.inductiveautomation.com/t/postgres-jdbc-2nd-connection-class-not-found/116654/7 "2026-08-16T18:18:45Z")

</div>

piling on - MSSQL here, otherwise identical behavior
