From: Tilghman Lesher Date: Fri, 1 Feb 2008 18:08:44 +0000 (+0000) Subject: Clarify the pooling functionality by changing the config file keyword X-Git-Tag: 1.6.0-beta3~2^2~102 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=de0d0ad13798840b2f16747488f24c875a4947eb;p=thirdparty%2Fasterisk.git Clarify the pooling functionality by changing the config file keyword git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@101824 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/configs/res_odbc.conf.sample b/configs/res_odbc.conf.sample index 097849dd73..c40b47e3ef 100644 --- a/configs/res_odbc.conf.sample +++ b/configs/res_odbc.conf.sample @@ -4,8 +4,9 @@ ; Note that all environmental variables can be seen by all connections, ; so you can't have different values for different connections. [ENV] -INFORMIXSERVER => my_special_database -INFORMIXDIR => /opt/informix +;INFORMIXSERVER => my_special_database +;INFORMIXDIR => /opt/informix +;ORACLE_HOME => /home/oracle ; All other sections are arbitrary names for database connections. @@ -15,6 +16,7 @@ dsn => asterisk ;username => myuser ;password => mypass pre-connect => yes +; ; What should we execute to ensure that our connection is still alive? The ; statement should return a non-zero value in the first field of its first ; record. The default is "select 1". @@ -34,17 +36,18 @@ pre-connect => yes ;idlecheck => 3600 ; Certain servers, such as MS SQL Server and Sybase use the TDS protocol, which -; limits the number of active queries per connection to 1. By setting up pools -; of connections, Asterisk can be made to work with these servers. +; limits the number of active queries per connection to 1. By telling res_odbc +; not to share connections, Asterisk can be made to work with these servers. [sqlserver] enabled => no dsn => mickeysoft -pooling => yes +share_connections => no limit => 5 username => oscar password => thegrouch pre-connect => yes sanitysql => select count(*) from systables +; ; Many databases have a default of '\' to escape special characters. MS SQL ; Server does not. backslash_is_escape => no diff --git a/res/res_odbc.c b/res/res_odbc.c index 201cf77b93..34d905b555 100644 --- a/res/res_odbc.c +++ b/res/res_odbc.c @@ -262,6 +262,10 @@ static int load_odbc_config(void) if (!strcasecmp(v->name, "pooling")) { if (ast_true(v->value)) pooling = 1; + } else if (!strncasecmp(v->name, "share", 5)) { + /* "shareconnections" is a little clearer in meaning than "pooling" */ + if (ast_false(v->value)) + pooling = 1; } else if (!strcasecmp(v->name, "limit")) { sscanf(v->value, "%d", &limit); if (ast_true(v->value) && !limit) { @@ -633,7 +637,12 @@ static int reload(void) bse = 1; for (v = ast_variable_browse(config, cat); v; v = v->next) { if (!strcasecmp(v->name, "pooling")) { - pooling = 1; + if (ast_true(v->value)) + pooling = 1; + } else if (!strncasecmp(v->name, "share", 5)) { + /* "shareconnections" is a little clearer in meaning than "pooling" */ + if (ast_false(v->value)) + pooling = 1; } else if (!strcasecmp(v->name, "limit")) { sscanf(v->value, "%d", &limit); if (ast_true(v->value) && !limit) {