Openfire4.7.5 Java1.8.0_381 I have been receiving duplicate logs below,How can I fix it?

2023.10.24 12:04:50 INFO [TaskEngine-pool-636]: org.jivesoftware.database.DbConnectionManager - Unable to get a connection from the database pool (attempt 0 out of 10).
java.sql.SQLException: Cannot get a connection, pool error Timeout waiting for idle object
    at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:147) ~[commons-dbcp2-2.9.0.jar:2.9.0]
    at org.jivesoftware.database.DefaultConnectionProvider.getConnection(DefaultConnectionProvider.java:91) ~[xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.database.DbConnectionManager.getConnection(DbConnectionManager.java:171) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.pubsub.DefaultPubSubPersistenceProvider.createAffiliation(DefaultPubSubPersistenceProvider.java:1015) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.pubsub.Node.addAffiliation(Node.java:364) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.pubsub.Node.addNoneAffiliation(Node.java:313) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.pubsub.Node.createSubscription(Node.java:2131) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.pubsub.PubSubEngine.subscribeNodeAsync(PubSubEngine.java:765) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.pubsub.PubSubEngine.access$200(PubSubEngine.java:48) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.pubsub.PubSubEngine$3.run(PubSubEngine.java:678) [xmppserver-4.7.5.jar:4.7.5]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_381]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_381]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_381]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_381]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_381]
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:446) ~[commons-pool2-2.9.0.jar:2.9.0]
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:356) ~[commons-pool2-2.9.0.jar:2.9.0]
    at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:141) ~[commons-dbcp2-2.9.0.jar:2.9.0]
    ... 14 more
2023.10.24 12:04:50 INFO [socket_c2s-thread-3]: org.jivesoftware.database.DbConnectionManager - Unable to get a connection from the database pool (attempt 0 out of 10).
java.sql.SQLException: Cannot get a connection, pool error Timeout waiting for idle object
    at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:147) ~[commons-dbcp2-2.9.0.jar:2.9.0]
    at org.jivesoftware.database.DefaultConnectionProvider.getConnection(DefaultConnectionProvider.java:91) ~[xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.database.DbConnectionManager.getConnection(DbConnectionManager.java:171) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.privacy.PrivacyListProvider.loadDefaultPrivacyList(PrivacyListProvider.java:199) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.privacy.PrivacyListManager.getDefaultPrivacyList(PrivacyListManager.java:178) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:361) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:105) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:74) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.net.StanzaHandler.processIQ(StanzaHandler.java:369) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.net.ClientStanzaHandler.processIQ(ClientStanzaHandler.java:95) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:311) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:198) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:183) [xmppserver-4.7.5.jar:4.7.5]
    at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:1015) [mina-core-2.1.3.jar:?]
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
    at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
    at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) [mina-core-2.1.3.jar:?]
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
    at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
    at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:413) [mina-core-2.1.3.jar:?]
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:257) [mina-core-2.1.3.jar:?]
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
    at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
    at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
    at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:106) [mina-core-2.1.3.jar:?]
    at org.apache.mina.core.session.IoEvent.run(IoEvent.java:89) [mina-core-2.1.3.jar:?]
    at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:766) [mina-core-2.1.3.jar:?]
    at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:758) [mina-core-2.1.3.jar:?]
    at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:697) [mina-core-2.1.3.jar:?]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_381]
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:446) ~[commons-pool2-2.9.0.jar:2.9.0]
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:356) ~[commons-pool2-2.9.0.jar:2.9.0]
    at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:141) ~[commons-dbcp2-2.9.0.jar:2.9.0]
    ... 31 more
2023.10.24 12:04:50 INFO [TaskEngine-pool-1204]: org.jivesoftware.database.DbConnectionManager - Unable to get a connection from the database pool (attempt 0 out of 10).
java.sql.SQLException: Cannot get a connection, pool error Timeout waiting for idle object
    at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:147) ~[commons-dbcp2-2.9.0.jar:2.9.0]
    at org.jivesoftware.database.DefaultConnectionProvider.getConnection(DefaultConnectionProvider.java:91) ~[xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.database.DbConnectionManager.getConnection(DbConnectionManager.java:171) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.pubsub.DefaultPubSubPersistenceProvider.createAffiliation(DefaultPubSubPersistenceProvider.java:1015) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.pubsub.Node.addAffiliation(Node.java:364) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.pubsub.Node.addNoneAffiliation(Node.java:313) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.pubsub.Node.createSubscription(Node.java:2131) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.pubsub.PubSubEngine.subscribeNodeAsync(PubSubEngine.java:765) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.pubsub.PubSubEngine.access$200(PubSubEngine.java:48) [xmppserver-4.7.5.jar:4.7.5]
    at org.jivesoftware.openfire.pubsub.PubSubEngine$3.run(PubSubEngine.java:678) [xmppserver-4.7.5.jar:4.7.5]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_381]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_381]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_381]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_381]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_381]
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:446) ~[commons-pool2-2.9.0.jar:2.9.0]
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:356) ~[commons-pool2-2.9.0.jar:2.9.0]
    at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:141) ~[commons-dbcp2-2.9.0.jar:2.9.0]
    ... 14 more
2023.10.24 12:04:50 INFO [TaskEngine-pool-1095]: org.jivesoftware.database.DbConnectionManager - Unable to get a connection from the database pool (attempt 0 out of 10).
java.sql.SQLException: Cannot get a connection, pool error Timeout waiting for idle object
    at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:147) ~[commons-dbcp2-2.9.0.jar:2.9.0]
    at org.jivesoftware.database.DefaultConnectionProvider.getConnection(DefaultConnectionProvider.java:91) ~[xmppserver-4.7.5.jar:4.7.5]

Openfire uses a pool that holds connections to the database that it is using. Whenever Openfire needs to interact with the database, it will take a connection from that pool, use the connection, and then put it back in the pool.

These exceptions indicate that Openfire cannot get a connection from the pool. Common causes are:

  • incorrect database configuration (but Openfire would have a lot more errors, preventing normal operation)
  • database (pool) undersized.

When Openfire makes a lot of database connections, it could be that the default maximum size of the pool is to small. You can review the pool usage in the admin console, under Server > Server Settings > Database.

For most installations, the default pool size should be plenty. A common cause of pool size issues is a database that is being overwhelmed with requests. This makes the database slower to respond, which makes connections take longer to be returned to the pool. Making the pool contain more connections does generally not help much.

Instead, try to see if you have any queries that take a long time to execute. For default Openfire code, this should be optimized. If you have custom code that interacts with the database, then there might be an issue there.


It seems like no problem. What do you think? Thank you!

When you took this screenshot, there was not an ongoing issue. This kind of problem tends to be very ‘flappy’ or ‘spikey’. It will present itself only sometimes.

In the lower half of the screenshot, you can see that there have been over 800 occurrences of the problem. That number should be 0.

My advise would be to analyze your queries, to see if there are queries that do not perform well.