例如,我有一个设置:
spring.datasource.maxActive=5
答案 0 :(得分:1)
每个连接池对连接的管理方式都不同。他们有不同的策略来扩展池或引发没有可用连接的异常。
通常(但非常规):
要了解适当的池大小是统计信息和可用资源的问题。同样,可以根据服务器上的使用模式和连接可用性来增加或减小最大池大小。
答案 1 :(得分:0)
每个连接池都有其自己的配置选项。甚至连接池的不同版本也可能具有不同的选项。假设在DBCP 1.x中使用了maxActive,在DBCP 2.x中将其重命名为maxTotal
知道要使用的连接池是正确配置它的关键。某些设置可能会有所不同,并且没有统一的答案。
对于您的特定情况,您正在使用HikariCP连接池。 HikariCP具有以下可用设置:
https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby
从源代码开始:
// Properties changeable at runtime through the HikariConfigMXBean
//
private volatile String catalog;
private volatile long connectionTimeout;
private volatile long validationTimeout;
private volatile long idleTimeout;
private volatile long leakDetectionThreshold;
private volatile long maxLifetime;
private volatile int maxPoolSize;
private volatile int minIdle;
private volatile String username;
private volatile String password;
// Properties NOT changeable at runtime
//
private long initializationFailTimeout;
private String connectionInitSql;
private String connectionTestQuery;
private String dataSourceClassName;
private String dataSourceJndiName;
private String driverClassName;
private String jdbcUrl;
private String poolName;
private String schema;
private String transactionIsolationName;
private boolean isAutoCommit;
private boolean isReadOnly;
private boolean isIsolateInternalQueries;
private boolean isRegisterMbeans;
private boolean isAllowPoolSuspension;
private DataSource dataSource;
private Properties dataSourceProperties;
private ThreadFactory threadFactory;
private ScheduledExecutorService scheduledExecutor;
private MetricsTrackerFactory metricsTrackerFactory;
private Object metricRegistry;
private Object healthCheckRegistry;
private Properties healthCheckProperties;
它不使用maxActive属性,因此您的问题不适用于此连接池。
根据您的情况,您可以删除此属性,因为com.zaxxer.hikari.HikariDataSource没有使用它。