我的日志中出现了一个非常奇怪的错误。这只是随机发生的,并不是由任何版本升级触发的。
2019-08-23 14:49:41.150 ccleves-mac-mini.local com.zaxxer.hikari.HikariDataSource 7177 INFO HikariPool-2 - Starting...
2019-08-23 14:49:41.150 ccleves-mac-mini.local com.zaxxer.hikari.HikariDataSource 7177 INFO HikariPool-1 - Starting...
2019-08-23 14:49:41.150 ccleves-mac-mini.local com.zaxxer.hikari.HikariDataSource 7177 INFO HikariPool-3 - Starting...
2019-08-23 14:49:41.676 ccleves-mac-mini.local com.zaxxer.hikari.pool.HikariPool 7703 ERROR HikariPool-3 - Error thrown while acquiring connection from data source
java.util.NoSuchElementException: null
at sun.misc.CompoundEnumeration.nextElement(CompoundEnumeration.java:59)
at java.util.ServiceLoader$LazyIterator.hasNextService(ServiceLoader.java:357)
at java.util.ServiceLoader$LazyIterator.hasNext(ServiceLoader.java:393)
at java.util.ServiceLoader$1.hasNext(ServiceLoader.java:474)
at com.impossibl.postgres.system.procs.Procs.loadDecoderProc(Procs.java:107)
at com.impossibl.postgres.system.procs.Procs.loadNamedBinaryCodec(Procs.java:83)
at com.impossibl.postgres.types.BaseType.<init>(BaseType.java:46)
at com.impossibl.postgres.types.BaseType.<init>(BaseType.java:50)
at com.impossibl.postgres.types.SharedRegistry.<init>(SharedRegistry.java:123)
at com.impossibl.postgres.jdbc.PGDriver.lambda$connect$0(PGDriver.java:106)
at java.util.HashMap.computeIfAbsent(HashMap.java:1127)
at com.impossibl.postgres.jdbc.PGDriver.lambda$connect$1(PGDriver.java:106)
at com.impossibl.postgres.system.BasicContext.init(BasicContext.java:303)
at com.impossibl.postgres.jdbc.PGDirectConnection.init(PGDirectConnection.java:276)
at com.impossibl.postgres.jdbc.ConnectionUtil.createConnection(ConnectionUtil.java:205)
at com.impossibl.postgres.jdbc.ConnectionUtil.createConnection(ConnectionUtil.java:165)
at com.impossibl.postgres.jdbc.PGDriver.connect(PGDriver.java:113)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:121)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:353)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:562)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81)
更奇怪的是:当我在 Eclipse 中开发应用程序时会发生这种情况。如果我停止应用程序然后在 Eclipse 中重新启动,它就会发生。如果我完全关闭 Eclipse 并重新打开它,问题就会消失并且所有连接都可以正常打开。
如果我查看 Postgres 服务器上的连接,我没有发现任何不合适的地方。当它工作时,会打开 10 个连接。当它失败时,只有一个。