nsmcp::AccessRecordStoreSQLite method disconnect (protected)

 <instance of nsmcp::AccessRecordStoreSQLite[i]> disconnect

Defined in /usr/local/ns/tcl/nsmcp/log-traffic-record-store.tcl

Testcases:
No testcase defined.
Source code:
if {${:db} ne {}} {
    # Cleanup diagnostics must never prevent rollback or handle release.
    catch {
        :accessIngestionObserve store-cleanup
    }
    if {${:querying} || [${:db} inTransaction]} {
        catch {
            ${:db} execute ROLLBACK
        }
        set :querying false
    }
    catch {
        ${:db} execute {PRAGMA query_only=OFF}
    }
    catch {
        ${:db} execute {
            DROP VIEW IF EXISTS temp.nsmcp_record_window; DROP TABLE IF EXISTS temp.nsmcp_scan_batch; DROP TABLE
            IF EXISTS temp.nsmcp_record_scope; DROP TABLE IF
            EXISTS temp.nsmcp_ingest_batch; DROP VIEW IF EXISTS temp.nsmcp_access_requests; DROP VIEW IF EXISTS
            temp.nsmcp_access_metadata; DROP VIEW IF EXISTS temp.nsmcp_access_evictions;
            DROP TABLE IF EXISTS temp.nsmcp_retention_candidates
        }
    }
    if {${:prior} ne {}} {
        catch {
            :accessIngestionObserve restore-connection
        }
        set queryOnly [dict get ${:prior} queryOnly]
        catch {
            ${:db} execute "PRAGMA query_only=$queryOnly"
        }
    }
    catch {
        :accessIngestionObserve release-handle
    }
    try {
        ${:db} close
    } finally {
        catch {
            :accessIngestionObserve store-closed
        }
    }
    set :db {}
    set :handle {}
    set :prior {}
} elseif {${:handle} ne {}} {
    catch {
        :accessIngestionObserve release-handle
    }
    try {
        catch {
            ns_db releasehandle ${:handle}
        }
    } finally {
        catch {
            :accessIngestionObserve store-closed
        }
    }
}
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: