postgres Module

Greg Fausak

Edited by

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)
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

Chapter 1. Admin Guide

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

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)

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

Default value is 2 (that means three attepts to submit the query, first will triger 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 both a connection timeout and a query timeout. 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)

4. Functions