; 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.
;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".
;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
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) {
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) {