in wrapper/src/main/java/software/amazon/jdbc/profile/DriverConfigurationProfiles.java [79:694]
private static Map<String, ConfigurationProfile> getConfigurationProfilePresets() {
Map<String, ConfigurationProfile> presets = new ConcurrentHashMap<>();
presets.put(ConfigurationProfilePresetCodes.A0,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.A0,
Collections.emptyList(), // empty list is important here! it shouldn't be a null.
getProperties(
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "5000",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
(Dialect) null,
null,
null,
null,
null));
presets.put(ConfigurationProfilePresetCodes.A1,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.A1,
Collections.emptyList(), // empty list is important here! it shouldn't be a null.
getProperties(
PropertyDefinition.CONNECT_TIMEOUT.name, "30000",
PropertyDefinition.SOCKET_TIMEOUT.name, "30000",
PropertyDefinition.LOGIN_TIMEOUT.name, "30000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
(Dialect) null,
null,
null,
null,
null));
presets.put(ConfigurationProfilePresetCodes.A2,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.A2,
Collections.emptyList(), // empty list is important here! it shouldn't be a null.
getProperties(
PropertyDefinition.CONNECT_TIMEOUT.name, "3000",
PropertyDefinition.SOCKET_TIMEOUT.name, "3000",
PropertyDefinition.LOGIN_TIMEOUT.name, "3000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
(Dialect) null,
null,
null,
null,
null));
presets.put(ConfigurationProfilePresetCodes.B,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.B,
Collections.emptyList(), // empty list is important here! it shouldn't be a null.
getProperties(
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "0",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "true"),
(Dialect) null,
null,
null,
null,
null));
presets.put(ConfigurationProfilePresetCodes.C0,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.C0,
Collections.singletonList(HostMonitoringConnectionPluginFactory.class),
getProperties(
HostMonitoringConnectionPlugin.FAILURE_DETECTION_TIME.name, "60000",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_COUNT.name, "5",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_INTERVAL.name, "15000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.SOCKET_TIMEOUT.name, "5000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "0",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
(Dialect) null,
null,
null,
null,
null));
presets.put(ConfigurationProfilePresetCodes.C1,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.C1,
Collections.singletonList(HostMonitoringConnectionPluginFactory.class),
getProperties(
HostMonitoringConnectionPlugin.FAILURE_DETECTION_TIME.name, "30000",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_COUNT.name, "3",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_INTERVAL.name, "5000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.CONNECT_TIMEOUT.name, "3000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.SOCKET_TIMEOUT.name, "3000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.LOGIN_TIMEOUT.name, "3000",
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "0",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
(Dialect) null,
null,
null,
null,
null));
presets.put(ConfigurationProfilePresetCodes.D0,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.D0,
Arrays.asList(
AuroraInitialConnectionStrategyPluginFactory.class,
AuroraConnectionTrackerPluginFactory.class,
ReadWriteSplittingPluginFactory.class,
FailoverConnectionPluginFactory.class),
getProperties(
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "5000",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
null,
null,
null,
() -> new HikariPooledConnectionProvider(
(HostSpec hostSpec, Properties originalProps) -> {
final HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(30);
// holds few extra connections in case of sudden traffic peak
config.setMinimumIdle(2);
// close idle connection in 15min; helps to get back to normal pool size after load peak
config.setIdleTimeout(TimeUnit.MINUTES.toMillis(15));
// verify pool configuration and creates no connections during initialization phase
config.setInitializationFailTimeout(-1);
config.setConnectionTimeout(TimeUnit.SECONDS.toMillis(10));
// validate idle connections at least every 3 min
config.setKeepaliveTime(TimeUnit.MINUTES.toMillis(3));
// allows to quickly validate connection in the pool and move on to another connection if needed
config.setValidationTimeout(TimeUnit.SECONDS.toMillis(1));
config.setMaxLifetime(TimeUnit.DAYS.toMillis(1));
return config;
},
null
),
null));
presets.put(ConfigurationProfilePresetCodes.D1,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.D1,
Arrays.asList(
AuroraInitialConnectionStrategyPluginFactory.class,
AuroraConnectionTrackerPluginFactory.class,
ReadWriteSplittingPluginFactory.class,
FailoverConnectionPluginFactory.class),
getProperties(
PropertyDefinition.CONNECT_TIMEOUT.name, "30000",
PropertyDefinition.SOCKET_TIMEOUT.name, "30000",
PropertyDefinition.LOGIN_TIMEOUT.name, "30000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
null,
null,
null,
() -> new HikariPooledConnectionProvider(
(HostSpec hostSpec, Properties originalProps) -> {
final HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(30);
// holds few extra connections in case of sudden traffic peak
config.setMinimumIdle(2);
// close idle connection in 15min; helps to get back to normal pool size after load peak
config.setIdleTimeout(TimeUnit.MINUTES.toMillis(15));
// verify pool configuration and creates no connections during initialization phase
config.setInitializationFailTimeout(-1);
config.setConnectionTimeout(TimeUnit.SECONDS.toMillis(10));
// validate idle connections at least every 3 min
config.setKeepaliveTime(TimeUnit.MINUTES.toMillis(3));
// allows to quickly validate connection in the pool and move on to another connection if needed
config.setValidationTimeout(TimeUnit.SECONDS.toMillis(1));
config.setMaxLifetime(TimeUnit.DAYS.toMillis(1));
return config;
},
null
),
null));
presets.put(ConfigurationProfilePresetCodes.E,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.E,
Arrays.asList(
AuroraInitialConnectionStrategyPluginFactory.class,
AuroraConnectionTrackerPluginFactory.class,
ReadWriteSplittingPluginFactory.class,
FailoverConnectionPluginFactory.class),
getProperties(
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "0",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "true"),
null,
null,
null,
() -> new HikariPooledConnectionProvider(
(HostSpec hostSpec, Properties originalProps) -> {
final HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(30);
// holds few extra connections in case of sudden traffic peak
config.setMinimumIdle(2);
// close idle connection in 15min; helps to get back to normal pool size after load peak
config.setIdleTimeout(TimeUnit.MINUTES.toMillis(15));
// verify pool configuration and creates no connections during initialization phase
config.setInitializationFailTimeout(-1);
config.setConnectionTimeout(TimeUnit.SECONDS.toMillis(10));
// validate idle connections at least every 3 min
config.setKeepaliveTime(TimeUnit.MINUTES.toMillis(3));
// allows to quickly validate connection in the pool and move on to another connection if needed
config.setValidationTimeout(TimeUnit.SECONDS.toMillis(1));
config.setMaxLifetime(TimeUnit.DAYS.toMillis(1));
return config;
},
null
),
null));
presets.put(ConfigurationProfilePresetCodes.F0,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.F0,
Arrays.asList(
AuroraInitialConnectionStrategyPluginFactory.class,
AuroraConnectionTrackerPluginFactory.class,
ReadWriteSplittingPluginFactory.class,
FailoverConnectionPluginFactory.class,
HostMonitoringConnectionPluginFactory.class),
getProperties(
HostMonitoringConnectionPlugin.FAILURE_DETECTION_TIME.name, "60000",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_COUNT.name, "5",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_INTERVAL.name, "15000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.SOCKET_TIMEOUT.name, "5000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "0",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
null,
null,
null,
() -> new HikariPooledConnectionProvider(
(HostSpec hostSpec, Properties originalProps) -> {
final HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(30);
// holds few extra connections in case of sudden traffic peak
config.setMinimumIdle(2);
// close idle connection in 15min; helps to get back to normal pool size after load peak
config.setIdleTimeout(TimeUnit.MINUTES.toMillis(15));
// verify pool configuration and creates no connections during initialization phase
config.setInitializationFailTimeout(-1);
config.setConnectionTimeout(TimeUnit.SECONDS.toMillis(10));
// validate idle connections at least every 3 min
config.setKeepaliveTime(TimeUnit.MINUTES.toMillis(3));
// allows to quickly validate connection in the pool and move on to another connection if needed
config.setValidationTimeout(TimeUnit.SECONDS.toMillis(1));
config.setMaxLifetime(TimeUnit.DAYS.toMillis(1));
return config;
},
null
),
null));
presets.put(ConfigurationProfilePresetCodes.F1,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.F1,
Arrays.asList(
AuroraInitialConnectionStrategyPluginFactory.class,
AuroraConnectionTrackerPluginFactory.class,
ReadWriteSplittingPluginFactory.class,
FailoverConnectionPluginFactory.class,
HostMonitoringConnectionPluginFactory.class),
getProperties(
HostMonitoringConnectionPlugin.FAILURE_DETECTION_TIME.name, "30000",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_COUNT.name, "3",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_INTERVAL.name, "5000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.CONNECT_TIMEOUT.name, "3000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.SOCKET_TIMEOUT.name, "3000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.LOGIN_TIMEOUT.name, "3000",
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "0",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
null,
null,
null,
() -> new HikariPooledConnectionProvider(
(HostSpec hostSpec, Properties originalProps) -> {
final HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(30);
// holds few extra connections in case of sudden traffic peak
config.setMinimumIdle(2);
// close idle connection in 15min; helps to get back to normal pool size after load peak
config.setIdleTimeout(TimeUnit.MINUTES.toMillis(15));
// verify pool configuration and creates no connections during initialization phase
config.setInitializationFailTimeout(-1);
config.setConnectionTimeout(TimeUnit.SECONDS.toMillis(10));
// validate idle connections at least every 3 min
config.setKeepaliveTime(TimeUnit.MINUTES.toMillis(3));
// allows to quickly validate connection in the pool and move on to another connection if needed
config.setValidationTimeout(TimeUnit.SECONDS.toMillis(1));
config.setMaxLifetime(TimeUnit.DAYS.toMillis(1));
return config;
},
null
),
null));
presets.put(ConfigurationProfilePresetCodes.G0,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.G0,
Arrays.asList(
AuroraConnectionTrackerPluginFactory.class,
AuroraStaleDnsPluginFactory.class,
FailoverConnectionPluginFactory.class),
getProperties(
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "5000",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
(Dialect) null,
null,
null,
null,
null));
presets.put(ConfigurationProfilePresetCodes.G1,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.G1,
Arrays.asList(
AuroraConnectionTrackerPluginFactory.class,
AuroraStaleDnsPluginFactory.class,
FailoverConnectionPluginFactory.class),
getProperties(
PropertyDefinition.CONNECT_TIMEOUT.name, "30000",
PropertyDefinition.SOCKET_TIMEOUT.name, "30000",
PropertyDefinition.LOGIN_TIMEOUT.name, "30000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
(Dialect) null,
null,
null,
null,
null));
presets.put(ConfigurationProfilePresetCodes.H,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.H,
Arrays.asList(
AuroraConnectionTrackerPluginFactory.class,
AuroraStaleDnsPluginFactory.class,
FailoverConnectionPluginFactory.class),
getProperties(
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "0",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "true"),
(Dialect) null,
null,
null,
null,
null));
presets.put(ConfigurationProfilePresetCodes.I0,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.I0,
Arrays.asList(
AuroraConnectionTrackerPluginFactory.class,
AuroraStaleDnsPluginFactory.class,
FailoverConnectionPluginFactory.class,
HostMonitoringConnectionPluginFactory.class),
getProperties(
HostMonitoringConnectionPlugin.FAILURE_DETECTION_TIME.name, "60000",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_COUNT.name, "5",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_INTERVAL.name, "15000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.SOCKET_TIMEOUT.name, "5000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "0",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
(Dialect) null,
null,
null,
null,
null));
presets.put(ConfigurationProfilePresetCodes.I1,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.I1,
Arrays.asList(
AuroraConnectionTrackerPluginFactory.class,
AuroraStaleDnsPluginFactory.class,
FailoverConnectionPluginFactory.class,
HostMonitoringConnectionPluginFactory.class),
getProperties(
HostMonitoringConnectionPlugin.FAILURE_DETECTION_TIME.name, "30000",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_COUNT.name, "3",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_INTERVAL.name, "5000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.CONNECT_TIMEOUT.name, "3000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.SOCKET_TIMEOUT.name, "3000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.LOGIN_TIMEOUT.name, "3000",
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "0",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
(Dialect) null,
null,
null,
null,
null));
// Spring Framework / Spring Boot optimized presets
presets.put(ConfigurationProfilePresetCodes.SF_D0,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.SF_D0,
Arrays.asList(
AuroraInitialConnectionStrategyPluginFactory.class,
AuroraConnectionTrackerPluginFactory.class,
FailoverConnectionPluginFactory.class),
getProperties(
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "5000",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
null,
null,
null,
() -> new HikariPooledConnectionProvider(
(HostSpec hostSpec, Properties originalProps) -> {
final HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(30);
// holds few extra connections in case of sudden traffic peak
config.setMinimumIdle(2);
// close idle connection in 15min; helps to get back to normal pool size after load peak
config.setIdleTimeout(TimeUnit.MINUTES.toMillis(15));
// verify pool configuration and creates no connections during initialization phase
config.setInitializationFailTimeout(-1);
config.setConnectionTimeout(TimeUnit.SECONDS.toMillis(10));
// validate idle connections at least every 3 min
config.setKeepaliveTime(TimeUnit.MINUTES.toMillis(3));
// allows to quickly validate connection in the pool and move on to another connection if needed
config.setValidationTimeout(TimeUnit.SECONDS.toMillis(1));
config.setMaxLifetime(TimeUnit.DAYS.toMillis(1));
return config;
},
null
),
null));
presets.put(ConfigurationProfilePresetCodes.SF_D1,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.SF_D1,
Arrays.asList(
AuroraInitialConnectionStrategyPluginFactory.class,
AuroraConnectionTrackerPluginFactory.class,
FailoverConnectionPluginFactory.class),
getProperties(
PropertyDefinition.CONNECT_TIMEOUT.name, "30000",
PropertyDefinition.SOCKET_TIMEOUT.name, "30000",
PropertyDefinition.LOGIN_TIMEOUT.name, "30000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
null,
null,
null,
() -> new HikariPooledConnectionProvider(
(HostSpec hostSpec, Properties originalProps) -> {
final HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(30);
// holds few extra connections in case of sudden traffic peak
config.setMinimumIdle(2);
// close idle connection in 15min; helps to get back to normal pool size after load peak
config.setIdleTimeout(TimeUnit.MINUTES.toMillis(15));
// verify pool configuration and creates no connections during initialization phase
config.setInitializationFailTimeout(-1);
config.setConnectionTimeout(TimeUnit.SECONDS.toMillis(10));
// validate idle connections at least every 3 min
config.setKeepaliveTime(TimeUnit.MINUTES.toMillis(3));
// allows to quickly validate connection in the pool and move on to another connection if needed
config.setValidationTimeout(TimeUnit.SECONDS.toMillis(1));
config.setMaxLifetime(TimeUnit.DAYS.toMillis(1));
return config;
},
null
),
null));
presets.put(ConfigurationProfilePresetCodes.SF_E,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.SF_E,
Arrays.asList(
AuroraInitialConnectionStrategyPluginFactory.class,
AuroraConnectionTrackerPluginFactory.class,
FailoverConnectionPluginFactory.class),
getProperties(
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "0",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "true"),
null,
null,
null,
() -> new HikariPooledConnectionProvider(
(HostSpec hostSpec, Properties originalProps) -> {
final HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(30);
// holds few extra connections in case of sudden traffic peak
config.setMinimumIdle(2);
// close idle connection in 15min; helps to get back to normal pool size after load peak
config.setIdleTimeout(TimeUnit.MINUTES.toMillis(15));
// verify pool configuration and creates no connections during initialization phase
config.setInitializationFailTimeout(-1);
config.setConnectionTimeout(TimeUnit.SECONDS.toMillis(10));
// validate idle connections at least every 3 min
config.setKeepaliveTime(TimeUnit.MINUTES.toMillis(3));
// allows to quickly validate connection in the pool and move on to another connection if needed
config.setValidationTimeout(TimeUnit.SECONDS.toMillis(1));
config.setMaxLifetime(TimeUnit.DAYS.toMillis(1));
return config;
},
null
),
null));
presets.put(ConfigurationProfilePresetCodes.SF_F0,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.SF_F0,
Arrays.asList(
AuroraInitialConnectionStrategyPluginFactory.class,
AuroraConnectionTrackerPluginFactory.class,
FailoverConnectionPluginFactory.class,
HostMonitoringConnectionPluginFactory.class),
getProperties(
HostMonitoringConnectionPlugin.FAILURE_DETECTION_TIME.name, "60000",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_COUNT.name, "5",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_INTERVAL.name, "15000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.SOCKET_TIMEOUT.name, "5000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "0",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
null,
null,
null,
() -> new HikariPooledConnectionProvider(
(HostSpec hostSpec, Properties originalProps) -> {
final HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(30);
// holds few extra connections in case of sudden traffic peak
config.setMinimumIdle(2);
// close idle connection in 15min; helps to get back to normal pool size after load peak
config.setIdleTimeout(TimeUnit.MINUTES.toMillis(15));
// verify pool configuration and creates no connections during initialization phase
config.setInitializationFailTimeout(-1);
config.setConnectionTimeout(TimeUnit.SECONDS.toMillis(10));
// validate idle connections at least every 3 min
config.setKeepaliveTime(TimeUnit.MINUTES.toMillis(3));
// allows to quickly validate connection in the pool and move on to another connection if needed
config.setValidationTimeout(TimeUnit.SECONDS.toMillis(1));
config.setMaxLifetime(TimeUnit.DAYS.toMillis(1));
return config;
},
null
),
null));
presets.put(ConfigurationProfilePresetCodes.SF_F1,
new ConfigurationProfile(
ConfigurationProfilePresetCodes.SF_F1,
Arrays.asList(
AuroraInitialConnectionStrategyPluginFactory.class,
AuroraConnectionTrackerPluginFactory.class,
FailoverConnectionPluginFactory.class,
HostMonitoringConnectionPluginFactory.class),
getProperties(
HostMonitoringConnectionPlugin.FAILURE_DETECTION_TIME.name, "30000",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_COUNT.name, "3",
HostMonitoringConnectionPlugin.FAILURE_DETECTION_INTERVAL.name, "5000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.CONNECT_TIMEOUT.name, "3000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.SOCKET_TIMEOUT.name, "3000",
MONITORING_CONNECTION_PREFIX + PropertyDefinition.LOGIN_TIMEOUT.name, "3000",
PropertyDefinition.CONNECT_TIMEOUT.name, "10000",
PropertyDefinition.SOCKET_TIMEOUT.name, "0",
PropertyDefinition.LOGIN_TIMEOUT.name, "10000",
PropertyDefinition.TCP_KEEP_ALIVE.name, "false"),
null,
null,
null,
() -> new HikariPooledConnectionProvider(
(HostSpec hostSpec, Properties originalProps) -> {
final HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(30);
// holds few extra connections in case of sudden traffic peak
config.setMinimumIdle(2);
// close idle connection in 15min; helps to get back to normal pool size after load peak
config.setIdleTimeout(TimeUnit.MINUTES.toMillis(15));
// verify pool configuration and creates no connections during initialization phase
config.setInitializationFailTimeout(-1);
config.setConnectionTimeout(TimeUnit.SECONDS.toMillis(10));
// validate idle connections at least every 3 min
config.setKeepaliveTime(TimeUnit.MINUTES.toMillis(3));
// allows to quickly validate connection in the pool and move on to another connection if needed
config.setValidationTimeout(TimeUnit.SECONDS.toMillis(1));
config.setMaxLifetime(TimeUnit.DAYS.toMillis(1));
return config;
},
null
),
null));
return presets;
}