createPool method

Future<OracleConnectionPool> createPool({
  1. required OracleConfig config,
  2. String poolName = 'default',
  3. PoolConfig? poolConfig,
})

Create a connection pool

Returns a named connection pool that can be used to acquire connections.

Implementation

Future<OracleConnectionPool> createPool({
  required OracleConfig config,
  String poolName = 'default',
  PoolConfig? poolConfig,
}) async {
  _ensureInitialized();

  if (_pools.containsKey(poolName)) {
    throw OraclePoolException('Pool with name "$poolName" already exists');
  }

  final effectivePoolConfig = poolConfig ??
      PoolConfig(
        poolMin: poolMin,
        poolMax: poolMax,
        poolIncrement: poolIncrement,
        poolTimeout: poolTimeout,
        poolPingInterval: poolPingInterval,
        queueMax: queueMax,
        queueTimeout: queueTimeout,
        stmtCacheSize: stmtCacheSize,
        connectionClass: connectionClass,
      );

  final pool = await OracleConnectionPool.create(
    dpiOracle: _dpiOracle!,
    context: _context!,
    config: config,
    poolConfig: effectivePoolConfig,
  );

  _pools[poolName] = pool;
  return pool;
}