nsmcp::LogCorrelation method requestContexts (public)

 <instance of nsmcp::LogCorrelation[i]> requestContexts identifiers \
    [ limit ]

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

Correlate a bounded batch of complete request identifiers. Scan each configured file in one forward pass rather than running an independent scan for every identifier. Retain each record's own identifier.

Parameters:
identifiers (required)
One to twenty exact dash-delimited NaviServer log-thread identifiers.
limit (optional, defaults to "100")
Maximum number of records or entries to return. Defaults to '100'.
Returns:
Combined system/access snapshots with coverage and per-record identifiers.

Testcases:
No testcase defined.
Source code:
if {![string is integer -strict $limit] || $limit < 1 || $limit > 100} {
    error "batch result limit must be 1..100"
}
if {[llength $identifiers] < 1 || [llength $identifiers] > 20} {
    error "expected 1..20 request identifiers"
}
set identifiers [lsort -unique $identifiers]
set connectionIds {}
foreach id $identifiers {
    if {![${:parser} validRequestIdentifier $id]} {
        error "expected complete request identifiers"
    }
    if {[${:parser} validConnectionIdentifier $id]} {
        lappend connectionIds $id
    }
}
set access {}
if {$connectionIds ne ""} {
    foreach source ${:accessSearches} {
        dict set access $source [$source search $connectionIds {} accessMany $limit]
    }
}
return [dict create requestIdentifiers $identifiers  system [${:systemSearch} search $identifiers {} systemMany $limit] access $access]
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: