/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Specifies the settings that control the size and behavior of the connection
* pool associated with a DBProxyTargetGroup
.See Also:
* AWS
* API Reference
The maximum size of the connection pool for each target in a target group.
* The value is expressed as a percentage of the max_connections
* setting for the RDS DB instance or Aurora DB cluster used by the target
* group.
If you specify MaxIdleConnectionsPercent
, then you
* must also include a value for this parameter.
Default: 10 for RDS for * Microsoft SQL Server, and 100 for all other engines
Constraints: Must be * between 1 and 100.
*/ inline int GetMaxConnectionsPercent() const{ return m_maxConnectionsPercent; } /** *The maximum size of the connection pool for each target in a target group.
* The value is expressed as a percentage of the max_connections
* setting for the RDS DB instance or Aurora DB cluster used by the target
* group.
If you specify MaxIdleConnectionsPercent
, then you
* must also include a value for this parameter.
Default: 10 for RDS for * Microsoft SQL Server, and 100 for all other engines
Constraints: Must be * between 1 and 100.
*/ inline bool MaxConnectionsPercentHasBeenSet() const { return m_maxConnectionsPercentHasBeenSet; } /** *The maximum size of the connection pool for each target in a target group.
* The value is expressed as a percentage of the max_connections
* setting for the RDS DB instance or Aurora DB cluster used by the target
* group.
If you specify MaxIdleConnectionsPercent
, then you
* must also include a value for this parameter.
Default: 10 for RDS for * Microsoft SQL Server, and 100 for all other engines
Constraints: Must be * between 1 and 100.
*/ inline void SetMaxConnectionsPercent(int value) { m_maxConnectionsPercentHasBeenSet = true; m_maxConnectionsPercent = value; } /** *The maximum size of the connection pool for each target in a target group.
* The value is expressed as a percentage of the max_connections
* setting for the RDS DB instance or Aurora DB cluster used by the target
* group.
If you specify MaxIdleConnectionsPercent
, then you
* must also include a value for this parameter.
Default: 10 for RDS for * Microsoft SQL Server, and 100 for all other engines
Constraints: Must be * between 1 and 100.
*/ inline ConnectionPoolConfiguration& WithMaxConnectionsPercent(int value) { SetMaxConnectionsPercent(value); return *this;} /** *Controls how actively the proxy closes idle database connections in the
* connection pool. The value is expressed as a percentage of the
* max_connections
setting for the RDS DB instance or Aurora DB
* cluster used by the target group. With a high value, the proxy leaves a high
* percentage of idle database connections open. A low value causes the proxy to
* close more idle connections and return them to the database.
If you
* specify this parameter, then you must also include a value for
* MaxConnectionsPercent
.
Default: The default value is half of
* the value of MaxConnectionsPercent
. For example, if
* MaxConnectionsPercent
is 80, then the default value of
* MaxIdleConnectionsPercent
is 40. If the value of
* MaxConnectionsPercent
isn't specified, then for SQL Server,
* MaxIdleConnectionsPercent
is 5, and for all other engines, the
* default is 50.
Constraints: Must be between 0 and the value of
* MaxConnectionsPercent
.
Controls how actively the proxy closes idle database connections in the
* connection pool. The value is expressed as a percentage of the
* max_connections
setting for the RDS DB instance or Aurora DB
* cluster used by the target group. With a high value, the proxy leaves a high
* percentage of idle database connections open. A low value causes the proxy to
* close more idle connections and return them to the database.
If you
* specify this parameter, then you must also include a value for
* MaxConnectionsPercent
.
Default: The default value is half of
* the value of MaxConnectionsPercent
. For example, if
* MaxConnectionsPercent
is 80, then the default value of
* MaxIdleConnectionsPercent
is 40. If the value of
* MaxConnectionsPercent
isn't specified, then for SQL Server,
* MaxIdleConnectionsPercent
is 5, and for all other engines, the
* default is 50.
Constraints: Must be between 0 and the value of
* MaxConnectionsPercent
.
Controls how actively the proxy closes idle database connections in the
* connection pool. The value is expressed as a percentage of the
* max_connections
setting for the RDS DB instance or Aurora DB
* cluster used by the target group. With a high value, the proxy leaves a high
* percentage of idle database connections open. A low value causes the proxy to
* close more idle connections and return them to the database.
If you
* specify this parameter, then you must also include a value for
* MaxConnectionsPercent
.
Default: The default value is half of
* the value of MaxConnectionsPercent
. For example, if
* MaxConnectionsPercent
is 80, then the default value of
* MaxIdleConnectionsPercent
is 40. If the value of
* MaxConnectionsPercent
isn't specified, then for SQL Server,
* MaxIdleConnectionsPercent
is 5, and for all other engines, the
* default is 50.
Constraints: Must be between 0 and the value of
* MaxConnectionsPercent
.
Controls how actively the proxy closes idle database connections in the
* connection pool. The value is expressed as a percentage of the
* max_connections
setting for the RDS DB instance or Aurora DB
* cluster used by the target group. With a high value, the proxy leaves a high
* percentage of idle database connections open. A low value causes the proxy to
* close more idle connections and return them to the database.
If you
* specify this parameter, then you must also include a value for
* MaxConnectionsPercent
.
Default: The default value is half of
* the value of MaxConnectionsPercent
. For example, if
* MaxConnectionsPercent
is 80, then the default value of
* MaxIdleConnectionsPercent
is 40. If the value of
* MaxConnectionsPercent
isn't specified, then for SQL Server,
* MaxIdleConnectionsPercent
is 5, and for all other engines, the
* default is 50.
Constraints: Must be between 0 and the value of
* MaxConnectionsPercent
.
The number of seconds for a proxy to wait for a connection to become * available in the connection pool. Only applies when the proxy has opened its * maximum number of connections and all connections are busy with client * sessions.
Default: 120
Constraints: between 1 and 3600, or 0 * representing unlimited
*/ inline int GetConnectionBorrowTimeout() const{ return m_connectionBorrowTimeout; } /** *The number of seconds for a proxy to wait for a connection to become * available in the connection pool. Only applies when the proxy has opened its * maximum number of connections and all connections are busy with client * sessions.
Default: 120
Constraints: between 1 and 3600, or 0 * representing unlimited
*/ inline bool ConnectionBorrowTimeoutHasBeenSet() const { return m_connectionBorrowTimeoutHasBeenSet; } /** *The number of seconds for a proxy to wait for a connection to become * available in the connection pool. Only applies when the proxy has opened its * maximum number of connections and all connections are busy with client * sessions.
Default: 120
Constraints: between 1 and 3600, or 0 * representing unlimited
*/ inline void SetConnectionBorrowTimeout(int value) { m_connectionBorrowTimeoutHasBeenSet = true; m_connectionBorrowTimeout = value; } /** *The number of seconds for a proxy to wait for a connection to become * available in the connection pool. Only applies when the proxy has opened its * maximum number of connections and all connections are busy with client * sessions.
Default: 120
Constraints: between 1 and 3600, or 0 * representing unlimited
*/ inline ConnectionPoolConfiguration& WithConnectionBorrowTimeout(int value) { SetConnectionBorrowTimeout(value); return *this;} /** *Each item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline const Aws::VectorEach item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline bool SessionPinningFiltersHasBeenSet() const { return m_sessionPinningFiltersHasBeenSet; } /** *Each item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline void SetSessionPinningFilters(const Aws::VectorEach item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline void SetSessionPinningFilters(Aws::VectorEach item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline ConnectionPoolConfiguration& WithSessionPinningFilters(const Aws::VectorEach item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline ConnectionPoolConfiguration& WithSessionPinningFilters(Aws::VectorEach item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline ConnectionPoolConfiguration& AddSessionPinningFilters(const Aws::String& value) { m_sessionPinningFiltersHasBeenSet = true; m_sessionPinningFilters.push_back(value); return *this; } /** *Each item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline ConnectionPoolConfiguration& AddSessionPinningFilters(Aws::String&& value) { m_sessionPinningFiltersHasBeenSet = true; m_sessionPinningFilters.push_back(std::move(value)); return *this; } /** *Each item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline ConnectionPoolConfiguration& AddSessionPinningFilters(const char* value) { m_sessionPinningFiltersHasBeenSet = true; m_sessionPinningFilters.push_back(value); return *this; } /** *One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET
statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET
statement, such as
* SET x=1, y=2
.
Default: no initialization query
*/ inline const Aws::String& GetInitQuery() const{ return m_initQuery; } /** *One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET
statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET
statement, such as
* SET x=1, y=2
.
Default: no initialization query
*/ inline bool InitQueryHasBeenSet() const { return m_initQueryHasBeenSet; } /** *One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET
statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET
statement, such as
* SET x=1, y=2
.
Default: no initialization query
*/ inline void SetInitQuery(const Aws::String& value) { m_initQueryHasBeenSet = true; m_initQuery = value; } /** *One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET
statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET
statement, such as
* SET x=1, y=2
.
Default: no initialization query
*/ inline void SetInitQuery(Aws::String&& value) { m_initQueryHasBeenSet = true; m_initQuery = std::move(value); } /** *One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET
statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET
statement, such as
* SET x=1, y=2
.
Default: no initialization query
*/ inline void SetInitQuery(const char* value) { m_initQueryHasBeenSet = true; m_initQuery.assign(value); } /** *One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET
statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET
statement, such as
* SET x=1, y=2
.
Default: no initialization query
*/ inline ConnectionPoolConfiguration& WithInitQuery(const Aws::String& value) { SetInitQuery(value); return *this;} /** *One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET
statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET
statement, such as
* SET x=1, y=2
.
Default: no initialization query
*/ inline ConnectionPoolConfiguration& WithInitQuery(Aws::String&& value) { SetInitQuery(std::move(value)); return *this;} /** *One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET
statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET
statement, such as
* SET x=1, y=2
.
Default: no initialization query
*/ inline ConnectionPoolConfiguration& WithInitQuery(const char* value) { SetInitQuery(value); return *this;} private: int m_maxConnectionsPercent; bool m_maxConnectionsPercentHasBeenSet = false; int m_maxIdleConnectionsPercent; bool m_maxIdleConnectionsPercentHasBeenSet = false; int m_connectionBorrowTimeout; bool m_connectionBorrowTimeoutHasBeenSet = false; Aws::Vector