This procedure is defined in the server but not documented via ad_proc or proc_doc and may be intended as a private interface.

The procedure is defined as:

proc nsmcp::accessRecordRetry {settings script publish} {
    
    set budget [expr {$settings ne {} && [dict exists $settings lockWaitMs] ? [dict get $settings lockWaitMs] : 3000}]
    set began [clock milliseconds]; set delay 25
    while {1} {
        try {return [uplevel 1 $script]} on error {message options} {
            set code [dict get $options -errorcode]
            set transient [expr {[lrange $code 0 1] eq {NSMCP RECORD_STORE} && [lindex $code 2] in {database-locked database-busy pool-busy}}]
            if {!$transient && [regexp -nocase {database (is |table is |schema is )?(locked|busy)} $message]} {set transient true}
            if {!$transient || [clock milliseconds]-$began >= $budget} {return -options $options $message}
            accessScanProgress $publish waiting-record-store {files {} index 0 examinedBytes 0} {}
            set left [expr {$budget-([clock milliseconds]-$began)}]
            if {$left>0} {ns_sleep [expr {min($left,$delay)/1000.0}]}
            set delay [expr {min(250,$delay*2)}]
        }
    }

}

Show another procedure: