class

SqlConnPool

const class SqlConnPool : Obj

SqlConnPool manages a pool of reusable SQL connections

constructors make

It-block construtor

fields autoCommit

autoCommit sets the autoCommit field on a connection just after it is opened by the pool

connectTimeout

Max time to wait when opening a new connection to the database before failing

leakWarn

Time a connection may be held by an execute callback before checkLinger logs a warning that it may be stuck or leaked

linger

Time to linger an idle connection before closing it

log

Logger

maxConns

Max number of simultaneous connections to allow before blocking threads

maxLifetime

Max lifetime of a connection before it is retired, regardless of how recently it was used

password

Connection password

timeout

Max time to block waiting for a connection before raising TimeoutErr

uri

Connection URI

username

Connection username

methods checkLinger

Close idle connections that have lingered past the linger timeout or lived past the maxLifetime

close

Close all connections and raise exception on any new executes

execute

Allocate a SQL connection inside the given callback

isClosed

Return if close has been called

onClose

onClose is invoked just before a connection is closed by the pool

onOpen

onOpen is invoked just after a connection is opened by the pool

autoCommit Bool : autoCommit

autoCommit sets the autoCommit field on a connection just after it is opened by the pool.

If auto-commit is true then each statement is executed and committed as an individual transaction. Otherwise statements are grouped into transaction which must be closed via SqlConn.commit or SqlConn.rollback.

checkLinger Void checkLinger()

Close idle connections that have lingered past the linger timeout or lived past the maxLifetime. Also log a warning for connections held in-use longer than leakWarn.

close Void close()

Close all connections and raise exception on any new executes

connectTimeout const Duration? : connectTimeout

Max time to wait when opening a new connection to the database before failing. If null then the JDBC driver default is used. Note this is implemented via the global DriverManager.setLoginTimeout which applies JVM wide to all JDBC connections.

execute Void execute(|SqlConn| f)

Allocate a SQL connection inside the given callback. If a connection cannot be acquired before timeout elapses then a TimeoutErr is raised. Do not close the connection inside the callback.

isClosed Bool isClosed()

Return if close has been called.

leakWarn const Duration : leakWarn

Time a connection may be held by an execute callback before checkLinger logs a warning that it may be stuck or leaked. The warning is logged once per checkout.

linger const Duration : linger

Time to linger an idle connection before closing it. An external actor must call checkLinger periodically to close idle connetions.

log const Log : log

Logger

make new make(|This|? f)

It-block construtor

maxConns const Int : maxConns

Max number of simultaneous connections to allow before blocking threads

maxLifetime const Duration : maxLifetime

Max lifetime of a connection before it is retired, regardless of how recently it was used. This protects against database and network infrastructure that kills long lived connections. It is enforced by checkLinger; connections in use are never retired until released back to the pool.

onClose virtual Void onClose(SqlConn c)

onClose is invoked just before a connection is closed by the pool.

onOpen virtual Void onOpen(SqlConn c)

onOpen is invoked just after a connection is opened by the pool.

password const Str? : password

Connection password

timeout const Duration : timeout

Max time to block waiting for a connection before raising TimeoutErr

uri const Str : uri

Connection URI

username const Str? : username

Connection username

Haxall 4.0.6 ∙ 21-Jul-2026 09:48 EDT