- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables
Class ::nsmcp::SQLiteDatabase
::nsmcp::SQLiteDatabasecreate ... \
[ -maxBytes:integer (default "1073741824") ] \
[ -path path ] \
[ -pool:required pool:required ]
Defined in /usr/local/ns/tcl/nsmcp/database.tcl
Class Relations
::nx::Class create ::nsmcp::SQLiteDatabase \ -superclass ::nsmcp::ObjectMethods (to be applied on instances)
connect (scripted, public)
<instance of nsmcp::SQLiteDatabase> connect
Check out a session from the dedicated SQLite cache pool. Validate the persistent datasource, apply private session settings and enforce the configured page budget; release resources on failure.
- Returns:
- A DatabaseSession object owning the checked-out handle.
- Testcases:
- No testcase defined.
if {![llength [info commands ns_db]]} { error "databasePool requires nsdb/nsdbsqlite loaded before nsmcp" } set handle [ns_db gethandle -timeout 2 ${:pool}] if {$handle eq ""} { error "MCP database pool timed out" } try { if {[ns_db dbtype $handle] ne "sqlite"} { error "MCP databasePool must use nsdbsqlite" } set source [ns_db datasource $handle] if {$source eq "" || $source eq ":memory:" || [string match file:* $source]} { error "MCP cache requires a persistent file datasource" } set :path [file normalize $source] file attributes ${:path} -permissions 0600 set db [::nsmcp::DatabaseSession new -handle $handle] } on error {message options} { ns_db releasehandle $handle return -options $options $message } try { $db execute {PRAGMA busy_timeout=2000; PRAGMA journal_mode=DELETE; PRAGMA synchronous=FULL; PRAGMA temp_store=MEMORY} set pages [expr {int(${:maxBytes}*0.45)/[$db scalar {PRAGMA page_size}]}] set current [$db scalar {PRAGMA page_count}] if {$current>$pages} { error "existing database exceeds configured byte budget" } $db execute "PRAGMA max_page_count=$pages" return $db } on error {message options} { $db close return -options $options $message }path (scripted, public)
<instance of nsmcp::SQLiteDatabase> path
Return the persistent database path discovered during connection. Read the normalized datasource path recorded by the pool adapter.
- Returns:
- The normalized database filename.
- Testcases:
- No testcase defined.
return ${:path}
- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables
![[i]](/resources/acs-subsite/ZoomIn16.gif)