Clarify the pooling functionality by changing the config file keyword
authorTilghman Lesher <tilghman@meg.abyt.es>
Fri, 1 Feb 2008 18:08:44 +0000 (18:08 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Fri, 1 Feb 2008 18:08:44 +0000 (18:08 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@101824 65c4cc65-6c06-0410-ace0-fbb531ad65f3

configs/res_odbc.conf.sample
res/res_odbc.c

index 097849d..c40b47e 100644 (file)
@@ -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
index 201cf77..34d905b 100644 (file)
@@ -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) {