#include </data/code/userver/odbc/include/userver/storages/odbc/component.hpp>
ODBC client component that owns a storages::odbc::Cluster.
Exactly one of dsn, pools, and secdist_alias must be specified. With secdist_alias, connection data is loaded from components::Secdist and is updated without changing the Cluster object returned by GetCluster().
| Name | Description | Default value |
|---|---|---|
| blocking_task_processor | Task processor used for synchronous ODBC driver-manager and driver calls. Defaults to the global blocking task processor. | – |
| secdist_alias | Name of the database in secdist config. Must not be empty. If specified, DSN will be read from secdist instead of static config. Mutually exclusive with dsn and pools. | – |
| dsn | Connection DSN string (used for single-pool configuration). Must not be empty. Mutually exclusive with secdist_alias and pools. | – |
| min_pool_size | Number of connections created initially by this component instance. Connections are kept even without requests. | 1 |
| max_pool_size | Maximum number of connections that can be created by this component instance. Should not be less than min_pool_size. | 10 |
| max_statement_metrics | Maximum number of named query-name entries retained per ODBC pool. Each entry exports three metric series. Zero disables named query metrics. | 0 |
| max_prepared_cache_size | Maximum number of prepared parameterized SQL statements retained by each physical ODBC connection. Zero disables the prepared statement cache. | 0 |
| dns_resolver | Server hostname resolver type (getaddrinfo or async). Possible values: getaddrinfo, async. | async |
| pools.[] | Connection pool configuration. | – |
| pools.[].dsn | Non-empty connection DSN string for this pool. | – |
| pools.[].min_pool_size | Minimum number of connections in this pool. | 1 |
| pools.[].max_pool_size | Maximum number of connections in this pool. | 10 |
Options inherited from components::ComponentBase :
| Name | Description | Default value |
|---|---|---|
| load-enabled | Set to false to disable loading of the component. | true |
Definition at line 49 of file component.hpp.
Public Member Functions | |
| Odbc (const ComponentConfig &config, const ComponentContext &context) | |
| std::shared_ptr< storages::odbc::Cluster > | GetCluster () const |
| ComponentHealth | GetComponentHealth () const override |
| void | OnLoadingCancelled () override |
| void | OnAllComponentsLoaded () override |
| void | OnGracefulShutdown (engine::Deadline serving_shutdown_deadline) override |
| void | OnAllComponentsAreStopping () override |
Static Public Member Functions | |
| static yaml_config::Schema | GetStaticConfigSchema () |
Static Public Attributes | |
| static constexpr std::string_view | kName = "odbc" |
Protected Types | |
| using | LoggableComponentBase = ComponentBase |
|
protectedinherited |
Definition at line 79 of file component_base.hpp.
|
inlineoverridevirtualinherited |
Override this function to inform the world of the state of your component.
Reimplemented from components::RawComponentBase.
Reimplemented in components::Redis, and server::handlers::Restart.
Definition at line 35 of file component_base.hpp.
|
inlineoverridevirtualinherited |
Component may use this function to stop doing work before the stop of the components that depend on it.
Base components may override it and make final to do some work before the derived object constructor is called. Don't use it otherwise.
Reimplemented from components::RawComponentBase.
Reimplemented in components::Server, and urabbitmq::ConsumerComponentBase.
Definition at line 70 of file component_base.hpp.
|
inlineoverridevirtualinherited |
Component may use this function to finalize registration of other components that depend on it (for example, handler components register in server component, and the latter uses OnAllComponentsLoaded() to start processing requests).
Base components may override it and make final to do some work after the derived object constructor is called. Don't use it otherwise.
Reimplemented from components::RawComponentBase.
Reimplemented in components::Server, server::handlers::Ping, and urabbitmq::ConsumerComponentBase.
Definition at line 51 of file component_base.hpp.
|
overridevirtualinherited |
Serving components like HTTP and gRPC servers may use this function to stop accepting new requests and shutdown serving in the given time interval. Application components likely do not need to override it.
| [in] | serving_shutdown_deadline | The deadline until already running requests should be allowed to complete. The component is supposed to stop accepting new requests and continue processing of already active requests until this deadline (unless those requests finish earlier). And it might completely shutdown requests processing when the deadline is reached (or when no active requests left). |
Reimplemented from components::RawComponentBase.
Reimplemented in components::Server.
|
inlineoverridevirtualinherited |
Called once if the creation of any other component failed. If the current component expects some other component to take any action with the current component, this call is a signal that such action may never happen due to components loading was cancelled. Application components might not want to override it.
Reimplemented from components::RawComponentBase.
Definition at line 42 of file component_base.hpp.
|
staticconstexpr |
Definition at line 51 of file component.hpp.