nsmcp::LogService method run (public)

 <instance of nsmcp::LogService[i]> run handle operation identifier

Defined in /usr/local/ns/tcl/nsmcp/lib/log-tools.tcl

Parameters:
handle (required)
operation (required)
identifier (required)

Testcases:
No testcase defined.
Source code:
ns_mutex lock ${:mutex}
try {
    if {![nsv_exists ${:store} $handle]} return
    set record [nsv_get ${:store} $handle]
    dict set record status running
    nsv_set ${:store} $handle $record
} finally {ns_mutex unlock ${:mutex}}
set mappings {}
try {
    if {$operation eq "errors"} {
        set data [:summary [${:correlation} errors] mappings]
    } elseif {$operation eq "accessSummary"} {
        if {${:analytics} eq ""} {error "access analytics is not configured"}
        ${:analytics} ingest [dict get $identifier from]
        set data [::nsmcp::accessSummaryTriples [${:analytics} summary $identifier]]
    } else {
        set context [${:correlation} requestContext $identifier]
        set data [list server string [ns_info server] requestIdentifier string $identifier system object [:summary [dict get $context system] mappings]]
        set access {}; set index 0
        dict for {source snapshot} [dict get $context access] {
            lappend access $index object [:summary $snapshot mappings]
            incr index
        }
        lappend data access array $access
    }
    dict set record status complete
    dict set record data $data
    dict set record mappings $mappings
} on error {message options} {
    dict set record status failed
    # No source paths, log contents, or exception details in client errors.
    ns_log error "nsmcp: background log operation failed: $message"
}
ns_mutex lock ${:mutex}
try {nsv_set ${:store} $handle $record} finally {ns_mutex unlock ${:mutex}}
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: