# # Database Configuration # # # Location of this script # set DbPoolConfigDir [file dirname [info script]] # # Pool Names, Driver Name and Description # set DbPools { {pool1 postgres "Pool 1"} {pool2 postgres "Pool 2"} {pool3 postgres "Pool 3"} {remodel1 postgres "Remodel 1"} {remodel2 postgres "Remodel 2"} {remodel3 postgres "Remodel 3"} } # For later usage by servers: set DbPoolsLoaded [list] set DbPoolErrors [list] # # Driver library files: # set DbDriver(postgres) "$home/bin/nspostgres.so" set DbDriverLoad(postgres) 0 ;# if used, will become 1 proc load_dbPool { pool file } { if {![file exists $file]} { ns_log Error " ----------> Unable to load db pool '$pool' ----------> File missing: '$file'\n" return 1 } if {[catch { uplevel source $file } err ]} { ns_log Error " ----------> Unable to load pool: '$pool' ----------> Error: '$err'\n" return 2 } return 0 } foreach poolList $DbPools { set pool [lindex $poolList 0] set poolDriver [lindex $poolList 1] set poolDescription [lindex $poolList 2] set poolFile "$DbPoolConfigDir/nsdb-${MainServer}-db-${pool}.tcl" puts "nsdb: Using DbPoolFile $poolFile" if {![file exists $DbDriver($poolDriver)]} { puts "nsdb: driver library '$DbDriver($poolDriver)' missing" lappend DbPoolErrors $pool continue } if {[load_dbPool $pool $poolFile]} { lappend DbPoolErrors $pool } else { lappend DbPoolsLoaded $pool set DbDriverLoad($poolDriver) 1 lappend ConfigFiles [strip_home_directory "$home/" "$poolFile"] } } set DbDriverLoad(postgres) 1 puts "---> About to load database drivers" # # Database Drivers # if {[llength [array names DbDriverLoad]] > 0} { ns_section "ns/db/drivers" foreach driver [array names DbDriverLoad] { if {$DbDriverLoad($driver)} { ns_param $driver $DbDriver($driver) ns_log Notice "nsdb: $driver -> $DbDriver($driver)" } } } else { ns_log Notice "******No database drivers loaded" }