Table of Contents

Class ConnectionManager

Namespace
CL.MySQL2.Services
Assembly
CL.MySQL2.dll

Manages MySQL database connections — registration, pooling, health checking, and transaction orchestration for multiple named connection IDs.

public sealed class ConnectionManager
Inheritance
ConnectionManager
Inherited Members

Constructors

ConnectionManager(ILogger?, IEventBus?)

Creates a ConnectionManager.

public ConnectionManager(ILogger? logger = null, IEventBus? events = null)

Parameters

logger ILogger

Optional logger.

events IEventBus

Optional event bus for publishing connection events.

Methods

CloseConnectionAsync(MySqlConnection)

Closes the connection and publishes a DatabaseDisconnectedEvent.

public Task CloseConnectionAsync(MySqlConnection connection)

Parameters

connection MySqlConnection

Returns

Task

ExecuteOnServerAsync<TResult>(Func<MySqlConnection, Task<TResult>>, string, CancellationToken)

Runs action on a server-level connection: the connection ID's host and credentials with no default database selected, so the database itself can be created or dropped. The connection is unpooled and closed afterwards.

public Task<TResult> ExecuteOnServerAsync<TResult>(Func<MySqlConnection, Task<TResult>> action, string connectionId = "Default", CancellationToken ct = default)

Parameters

action Func<MySqlConnection, Task<TResult>>
connectionId string
ct CancellationToken

Returns

Task<TResult>

Type Parameters

TResult

ExecuteWithConnectionAsync<TResult>(Func<MySqlConnection, Task<TResult>>, string, CancellationToken)

Opens a connection, executes the given action, closes the connection, and returns the result.

public Task<TResult> ExecuteWithConnectionAsync<TResult>(Func<MySqlConnection, Task<TResult>> action, string connectionId = "Default", CancellationToken ct = default)

Parameters

action Func<MySqlConnection, Task<TResult>>
connectionId string
ct CancellationToken

Returns

Task<TResult>

Type Parameters

TResult

ExecuteWithTransactionAsync<TResult>(Func<MySqlConnection, MySqlTransaction, Task<TResult>>, string, CancellationToken)

Opens a connection, begins a transaction, executes the action, commits, and returns the result. Rolls back automatically on exception.

public Task<TResult> ExecuteWithTransactionAsync<TResult>(Func<MySqlConnection, MySqlTransaction, Task<TResult>> action, string connectionId = "Default", CancellationToken ct = default)

Parameters

action Func<MySqlConnection, MySqlTransaction, Task<TResult>>
connectionId string
ct CancellationToken

Returns

Task<TResult>

Type Parameters

TResult

GetAllConnectionCounts()

Returns a snapshot of open connection counts for all registered IDs.

public IReadOnlyDictionary<string, int> GetAllConnectionCounts()

Returns

IReadOnlyDictionary<string, int>

GetConfiguration(string)

Returns the configuration for the given connection ID, or null if not found.

public MySqlDatabaseConfig? GetConfiguration(string connectionId = "Default")

Parameters

connectionId string

Returns

MySqlDatabaseConfig

GetConnectionIds()

Returns the registered connection IDs.

public IEnumerable<string> GetConnectionIds()

Returns

IEnumerable<string>

GetConnectionString(string)

Builds the ADO.NET connection string for the given connection ID.

public string GetConnectionString(string connectionId = "Default")

Parameters

connectionId string

Returns

string

GetOpenConnectionCount(string)

Returns the current open connection count for the given connection ID.

public int GetOpenConnectionCount(string connectionId = "Default")

Parameters

connectionId string

Returns

int

GetServerInfoAsync(string, CancellationToken)

Retrieves version and database metadata from the MySQL server.

public Task<ServerInfo> GetServerInfoAsync(string connectionId = "Default", CancellationToken ct = default)

Parameters

connectionId string
ct CancellationToken

Returns

Task<ServerInfo>

HasConfiguration(string)

Returns true when a configuration exists for the given connection ID.

public bool HasConfiguration(string connectionId = "Default")

Parameters

connectionId string

Returns

bool

OpenConnectionAsync(string, CancellationToken)

Opens and returns a new MySqlConnector.MySqlConnection for the given connection ID. Publishes a DatabaseConnectedEvent on success.

public Task<MySqlConnection> OpenConnectionAsync(string connectionId = "Default", CancellationToken ct = default)

Parameters

connectionId string
ct CancellationToken

Returns

Task<MySqlConnection>

RegisterConfiguration(MySqlDatabaseConfig, string)

Registers (or replaces) a connection configuration under a given ID.

public void RegisterConfiguration(MySqlDatabaseConfig config, string connectionId = "Default")

Parameters

config MySqlDatabaseConfig
connectionId string

ReplaceConfigurationAsync(MySqlDatabaseConfig, string)

Replaces the configuration registered under connectionId. When the connection string changed, idle pooled connections opened with the old settings are cleared so new work reconnects; connections already handed out finish normally. Other connection IDs are not touched.

public Task<bool> ReplaceConfigurationAsync(MySqlDatabaseConfig config, string connectionId = "Default")

Parameters

config MySqlDatabaseConfig
connectionId string

Returns

Task<bool>

true when the connection string changed (a reconnect is needed).

TestConnectionAsync(string, CancellationToken)

Tests connectivity for the given connection ID. Returns true on success, false on failure (does not throw).

public Task<bool> TestConnectionAsync(string connectionId = "Default", CancellationToken ct = default)

Parameters

connectionId string
ct CancellationToken

Returns

Task<bool>

UnregisterConfigurationAsync(string)

Removes the configuration registered under connectionId and clears its idle pooled connections. Connections already handed out finish normally.

public Task<bool> UnregisterConfigurationAsync(string connectionId)

Parameters

connectionId string

Returns

Task<bool>

false when nothing was registered under that ID.