postgres Module

Greg Fausak

   August.net

Edited by

Greg Fausak

   Copyright © 2003 Greg Fausak
     __________________________________________________________________

   Table of Contents

   1. Admin Guide

        1. Overview
        2. Dependencies

              2.1. Kamailio Modules
              2.2. External Libraries or Applications

        3. Parameters

              3.1. retries (integer)
              3.2. timeout (integer)
              3.3. tcp_keepalive (integer)
              3.4. lockset (integer)
              3.5. bytea_output_escape (integer)
              3.6. con_param (str)

        4. Functions

   List of Examples

   1.1. Set retries parameter
   1.2. Set timeout parameter
   1.3. Set tcp_keepalive parameter
   1.4. Set lockset parameter
   1.5. Set bytea_output_escape parameter
   1.6. Set con_param parameter

Chapter 1. Admin Guide

   Table of Contents

   1. Overview
   2. Dependencies

        2.1. Kamailio Modules
        2.2. External Libraries or Applications

   3. Parameters

        3.1. retries (integer)
        3.2. timeout (integer)
        3.3. tcp_keepalive (integer)
        3.4. lockset (integer)
        3.5. bytea_output_escape (integer)
        3.6. con_param (str)

   4. Functions

1. Overview

   The module is an implementation of the internal DB API v1 and v2
   connector for PostgreSQL server. It has support for reconnecting when
   the connection is broken.

2. Dependencies

   2.1. Kamailio Modules
   2.2. External Libraries or Applications

2.1. Kamailio Modules

   The following modules must be loaded before this module:
     * No dependencies on other Kamailio modules.

2.2. External Libraries or Applications

   The following libraries or applications must be installed before
   running Kamailio with this module loaded:
     * PostgreSQL library - e.g., libpq5.
     * PostgreSQL devel library - to compile the module (e.g., libpq-dev).

3. Parameters

   3.1. retries (integer)
   3.2. timeout (integer)
   3.3. tcp_keepalive (integer)
   3.4. lockset (integer)
   3.5. bytea_output_escape (integer)
   3.6. con_param (str)

3.1. retries (integer)

   How many retries to attempt to reconnect if connection to Postgres
   server becomes broken.

   Default value is 2 (that means three attempts to submit the query,
   first will trigger the connection error and two more (the value of this
   parameter) after resetting the connection).

   Example 1.1. Set retries parameter
...
modparam("db_postgres", "retries", 3)
...

3.2. timeout (integer)

   Setting this variable to any value larger than zero (which is the
   default value) enables mainly query timeout. For backward compatibility
   it also enables connection timeout if connect_timeout param is not set
   using the con_param below. If a connection attempt or a query takes
   longer than this many seconds, the operation will be aborted and an
   error will be returned.

   Note that this timeout is applied to each underlying operation (i.e.
   for each connection attempt), so depending on circumstances and on the
   value of the “retries” variable, a single query from the SIP proxy's
   point of view can take longer than the “timeout”.

   Example 1.2. Set timeout parameter
...
modparam("db_postgres", "timeout", 10)
...

3.3. tcp_keepalive (integer)

   Enable the TCP keepalive timer and set the number of seconds the
   connection must be idle before to start sending keepalive packets.
   Defaults to zero, which disables TCP keepalive packets.

   Only supported on platforms which understand and support the
   “TCP_KEEPIDLE” socket option.

   Example 1.3. Set tcp_keepalive parameter
...
modparam("db_postgres", "tcp_keepalive", 600)
...

3.4. lockset (integer)

   The value is used as power of two to compute the size of the lock set
   needed to implement the equivalent of REPLACE SQL statement.

   Default value is 4 (lock set size is 16).

   Example 1.4. Set lockset parameter
...
modparam("db_postgres", "lockset", 6)
...

3.5. bytea_output_escape (integer)

   Control if the module should request escaping the output for bytea
   fields.

   Default value is 1 (do the escape).

   Example 1.5. Set bytea_output_escape parameter
...
modparam("db_postgres", "bytea_output_escape", 0)
...

3.6. con_param (str)

   Specifies the connection string parameters. Parameter definition must
   be in the format param1=value1;param2=value2. Many parameters can be
   set.

   NOTE: See postgres connection keyword list
   (https://www.postgresql.org/docs/12/libpq-connect.html#LIBPQ-PARAMKEYWO
   RDS)

   Example 1.6. Set con_param parameter
...
modparam("db_postgres", "con_param", "connect_timeout=15;tcp_user_timeout=5000")
...

4. Functions

   NONE
