A simple connection pool. Runs open connections in two data structures: a queue of free connections and a map of busy connections. The connections are taken from a tail of the queue and put back into the head.
Every time the connection is borrowed, it's check for expiration. An expired connection gets closed, and the one is produced.
Should all free connections are in use at the moment and the client is going to borrow another one, an exception is triggered.
When a connection is put back, it's checked for expiration and for the transaction status. Connections that are in the error state are closed; Connections that are in a transaction are rolled back.
A simple connection pool. Runs open connections in two data structures: a queue of free connections and a map of busy connections. The connections are taken from a tail of the queue and put back into the head. Every time the connection is borrowed, it's check for expiration. An expired connection gets closed, and the one is produced. Should all free connections are in use at the moment and the client is going to borrow another one, an exception is triggered. When a connection is put back, it's checked for expiration and for the transaction status. Connections that are in the error state are closed; Connections that are in a transaction are rolled back.
(borrow-connection pool)
Borrow a connection from a pool.
Borrow a connection from a pool.
(close pool)
Close the pool by terminating all the connections, both free and used.
Close the pool by terminating all the connections, both free and used.
(closed? pool)
True if the pool has been closed before.
True if the pool has been closed before.
(free-count pool)
Return the current number of free connections.
Return the current number of free connections.
(pool opt)
(pool host port user password database)
Run a new Pool from a config map.
Run a new Pool from a config map.
(pool? x)
True if a value is a Pool instance.
True if a value is a Pool instance.
(replenish-connections pool)
Forcibly run a task that determines how many new free connections should be created, and creates them. The number is calculated as follows:
gap = min-size - size(free-conns) - size(used-conns)
When gap is > 0, the corresponding number of free connections is created.
Blocks the pool.
Forcibly run a task that determines how many new free connections should be created, and creates them. The number is calculated as follows: gap = min-size - size(free-conns) - size(used-conns) When gap is > 0, the corresponding number of free connections is created. Blocks the pool.
(stats pool)
Return both free and used connection amount as a map.
Return both free and used connection amount as a map.
(used-count pool)
Return the current number of busy connections.
Return the current number of busy connections.
(with-conn [bind pool] & body)
Just a shorter version of with-connection
.
Just a shorter version of `with-connection`.
(with-connection [bind pool] & body)
Execute the body while the bind
symbol is bound
to a borrowed Connection instance. The connection
is marked is busy and won't be available for other
consumers. Return the connection to the pool when
exiting the macro.
When no connections available, throw an exception.
Execute the body while the `bind` symbol is bound to a borrowed Connection instance. The connection is marked is busy and won't be available for other consumers. Return the connection to the pool when exiting the macro. When no connections available, throw an exception.
(with-pool [bind config] & body)
Execute the body while the bind
symbol is bound
to a new Pool instance. Close the pool afterwards.
Execute the body while the `bind` symbol is bound to a new Pool instance. Close the pool afterwards.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close