Logo

0x5a.live

for different kinds of informations and explorations.

GitHub - metabase/connection-pool: Connection pools for JDBC databases. Simple wrapper around C3P0.

Connection pools for JDBC databases. Simple wrapper around C3P0. - metabase/connection-pool

Visit SiteGitHub - metabase/connection-pool: Connection pools for JDBC databases. Simple wrapper around C3P0.

GitHub - metabase/connection-pool: Connection pools for JDBC databases. Simple wrapper around C3P0.

Connection pools for JDBC databases. Simple wrapper around C3P0. - metabase/connection-pool

Powered by 0x5a.live ๐Ÿ’—

Downloads Dependencies Status Circle CI License cljdoc badge

Clojars Project

Creating a Connection Pool

From a clojure.java.jdbc spec

You can create a C3P0 connection pool with any clojure.java.jdbc connection spec map with :subname and :subprotocol keys. connection-pool-spec will return a clojure.java.jdbc connection spec you can use directly:

(require '[clojure.java.jdbc :as jdbc]
         '[metabase.connection-pool :as connection-pool])

;;; Create a C3P0 connection pool

(let [pool-spec (connection-pool/connection-pool-spec my-jdbc-spec)]
  (jdbc/query pool-spec ["SELECT *"]))

(You will almost certainly want to store your pool somewhere, such as in an atom).

From a JDBC URL String:

You can create a pooled DataSource (e.g., for use with next-jdbc) by calling pooled-data-source-from-url:

(require '[next.jdbc :as jdbc]
         '[metabase.connection-pool :as connection-pool])

(with-open [connection (jdbc/get-connection (connection-pool/pooled-data-source-from-url "jdbc:postgresql:localhost:3000/my_db"))]
  (reduce my-fn init-value (jdbc/plan connection ["SELECT *"])))

Configuring the connection pool

You can set connection pool options such as size in a c3p0.properties file, or by passing them as a map to connection-pool-spec:

(def ^:private connection-pool-properties
  {"maxIdleTime"     (* 3 60 60)
   "minPoolSize"     1
   "initialPoolSize" 1
   "maxPoolSize"     15})

(def my-pool-spec
  (connection-pool/connection-pool-spec my-jdbc-spec connection-pool-properties))

See https://www.mchange.com/projects/c3p0/#configuration_properties for a list of all options.

Destroying connection pools

destroy-connection-pool! will destroy the connection pool you created:

(connection-pool/destroy-connection-pool! pool-spec)

Legal Stuff

Copyright ยฉ 2019 Metabase, Inc. This project is licensed under the Eclipse Public License, same as Clojure.

Clojure Resources

are all listed below.

Resources

listed to get explored on!!

Made with โค๏ธ

to provide different kinds of informations and resources.