From 9f7a187a589aa5b69819487e4d12d6d2216781c3 Mon Sep 17 00:00:00 2001 From: Joseph Wecker Date: Fri, 23 Apr 2010 09:15:03 -0700 Subject: [PATCH] Documentation and ignore file --- .gitignore | 4 ++++ LICENSE | 10 ++++++++++ README | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..933b54d --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +\.beam +\.boot +\.script + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9cb8e03 --- /dev/null +++ b/LICENSE @@ -0,0 +1,10 @@ +Copyright (c) 2008, Will Glozer +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the name of Will Glozer nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README b/README new file mode 100644 index 0000000..bbcf87b --- /dev/null +++ b/README @@ -0,0 +1,35 @@ +Erlang PostgreSQL Connection Pool + +* Application + + epgsql_pool will create any pools defined in the application's 'pools' environment + parameter, which is a list of atoms. Each atom must refer to an environment parameter + with the same name and value {Size, Opts} where Opts is a property list with the + following supported options: + + host - host to connect to, default "localhost". + port - port to connect to, default 5432. + username - username to authenticate with, default os:getenv("USER"). + password - password to authenticate with, default "". + database - database to connect to, no default. + + .config file example: + + {epgsql_pool, [{pools, [db1, db2]}, + {db1, {10, [{database, "db1"}]}}, + {db2, {10, [{database, "db2"}]}}]} + +* Pool Usage + + {ok, C} = pgsql_pool:get_connection(Pool, Timeout). + + Pool - Pid or Name of pool. + Timeout - Time, in milliseconds, to wait for a free connection. + + ok = pgsql_pool:return_connection(Pool, Connection). + +* Details + + epgsql_pool monitors the process which called get_connection and returns the + allocated connection to the pool if that process dies. If a connection dies, + a new one is created and added to the pool in its place.