diff --git a/README.md b/README.md index 160cc7b0..175500b4 100644 --- a/README.md +++ b/README.md @@ -266,6 +266,14 @@ Default: `undef`. Required. Password to connect to the database. Default: `radius`. Name of the database. Normally you should leave this alone. If you are using Oracle then use this instead: `(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=your_sid)))`. +##### `num_sql_socks` + +Default: same as `max_servers`. Number of sql connections to make to the database server. +Setting this to LESS than the number of threads means that some threads may starve, and +you will see errors like "No connections available and at max connection limit". Setting +this to MORE than the number of threads means that there are more connections than necessary. +Leave blank to set it to the same value as the number of threads. + ```puppet freeradius::sql { 'mydatabase': database => 'mysql', diff --git a/manifests/sql.pp b/manifests/sql.pp index e1c9c932..aec5698f 100644 --- a/manifests/sql.pp +++ b/manifests/sql.pp @@ -5,6 +5,7 @@ $server = 'localhost', $login = 'radius', $radius_db = 'radius', + $num_sql_socks = '${thread[pool].max_servers}', ) { $fr_package = $::freeradius::params::fr_package $fr_service = $::freeradius::params::fr_service diff --git a/templates/sql.conf.erb b/templates/sql.conf.erb index bc176335..f74f1337 100644 --- a/templates/sql.conf.erb +++ b/templates/sql.conf.erb @@ -82,7 +82,7 @@ sql { # Setting this to MORE than the number of threads means # that there are more connections than necessary. # - num_sql_socks = ${thread[pool].max_servers} + num_sql_socks = <%= @num_sql_socks %> # number of seconds to dely retrying on a failed database # connection (per_socket)