org.artifactory.storage.StorageException:无法更新唯一索引表

org.artifactory.storage.StorageException:无法更新唯一索引表,artifactory,Artifactory,我们正在本地运行Artifactory 7.5.5,在CI中执行计划的日常任务(npm安装)时会出现此错误 2020-08-21T04:22:16.758Z [jfrt ] [ERROR] [e7728af2916e37c4] [c.e.m.GlobalExceptionMapper:48] [-nio-8081-exec-58377] - Failed to update the unique indices table org.artifactory.storage.StorageExcep

我们正在本地运行Artifactory 7.5.5,在CI中执行计划的日常任务(
npm安装
)时会出现此错误

2020-08-21T04:22:16.758Z [jfrt ] [ERROR] [e7728af2916e37c4] [c.e.m.GlobalExceptionMapper:48] [-nio-8081-exec-58377] - Failed to update the unique indices table
org.artifactory.storage.StorageException: Failed to update the unique indices table
    at org.artifactory.storage.db.util.SimpleIdGenerator.simpleUpdateIndex(SimpleIdGenerator.java:105)
    at org.artifactory.storage.db.util.SimpleIdGenerator.getGoodValue(SimpleIdGenerator.java:69)
    at org.artifactory.storage.db.util.SimpleIdGenerator.nextId(SimpleIdGenerator.java:61)
    at org.artifactory.storage.db.util.SimpleIdGenerator$$FastClassBySpringCGLIB$$d360a883.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)
    at org.artifactory.storage.db.util.SimpleIdGenerator$$EnhancerBySpringCGLIB$$ca10fb90.nextId(<generated>)
    at org.artifactory.storage.db.DbServiceImpl.nextId(DbServiceImpl.java:131)
    at jdk.internal.reflect.GeneratedMethodAccessor543.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:205)
    at com.sun.proxy.$Proxy201.nextId(Unknown Source)
    at org.artifactory.storage.db.event.service.EventsServiceImpl.appendEvents(EventsServiceImpl.java:81)
    at org.artifactory.storage.db.event.service.EventsSessionResource.beforeCommit(EventsSessionResource.java:64)
    at org.artifactory.storage.tx.SessionResourceManagerImpl.beforeCommit(SessionResourceManagerImpl.java:57)
    at org.artifactory.storage.db.fs.session.SqlStorageSession.beforeCommit(SqlStorageSession.java:133)
    at org.artifactory.storage.db.spring.SessionSynchronization.beforeCommit(SessionSynchronization.java:85)
    at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:96)

[...]

Caused by: org.postgresql.util.PSQLException: FATAL: sorry, too many clients already
    at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:443)
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:217)
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:52)
    at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:216)
    at org.postgresql.Driver.makeConnection(Driver.java:404)
    at org.postgresql.Driver.connect(Driver.java:272)
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:319)
    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:212)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:739)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:671)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:198)
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:132)
    at org.artifactory.storage.db.util.SimpleIdGenerator.simpleUpdateIndex(SimpleIdGenerator.java:86)
    ... 123 common frames omitted
最后它说:
org.artifactory.storage.StorageException-未能更新唯一索引表
,原因是
org.postgresql.util.psqleexception:FATAL:抱歉,已经有太多客户端

然后,CI作业将退出

npm ERR! 500 Internal Server Error - GET https://artifactory.company.com/artifactory/api/npm/npm/some-package-name

有人能帮忙吗?

此错误表示PostgreSQL数据库的数据库连接已用完。
我建议您根据可用的公式增加DB端允许的DB连接。

此错误表示PostgreSQL DB已用完DB连接。
我建议您根据可用公式增加DB端允许的DB连接。

嘿,Ariel,谢谢您的帮助。您是指此设置并将
300
设置得更高吗
yml artifactory:database:maxOpenConnections:300
access
meta
设置?@SvenWagner nope。这些配置Artifactory可以打开多少连接。您应该在DB端修改它可以接受的连接数。可能会有帮助:嘿,艾瑞尔,谢谢你的帮助。您是指此设置并将
300
设置得更高吗
yml artifactory:database:maxOpenConnections:300
access
meta
设置?@SvenWagner nope。这些配置Artifactory可以打开多少连接。您应该在DB端修改它可以接受的连接数。可能会有帮助:
npm ERR! 500 Internal Server Error - GET https://artifactory.company.com/artifactory/api/npm/npm/some-package-name