Skip to main content

SAP connections

A SAP connection defines the SAP system, assigned connector, and collections that runtime extracts. Data Streams and credentials are resolved by the server.

Each connection keeps a stable identity even when sources are reordered. If an applied configuration lacks that identity, the connector rejects it and shows a sanitized error instead of attaching cursors or durable state to another connection.

The saved password is bound to the assigned connector plus ASHOST, SYSNR, client, and RFC user. You can edit the alias, language, time zone, or collections without re-entering it. Changing any of those five trust fields requires a new password; ******** or an empty field cannot reuse the previous credential for another runtime or SAP system.

Eight collections​

CollectionDefaultResult
Metrics300 sCCMS and Operations metrics
CCMS events300 sNormalized events
Jobs300 sJob runs and long-running job snapshots
Program statistics300 sStandard ABAP program executions and dependencies
Work processes300 sProcess snapshots
ABAP dumps300 sSanitized ST22 dumps
RFC failures300 sRFC failures/recoveries without payload
Certificates86400 sCertificate inventory and transitions

Each control can be enabled and scheduled independently. The interval is a wall-clock-aligned fixed frequency, not a delay that starts when the previous extraction ends. At 300 seconds, all eight families start at deterministic phases after the exact boundary and within the first minute of each five-minute block. A bounded dispatcher keeps at most one pending execution per source/family, reserves capacity for Metrics, Work Processes, and the long-running Jobs snapshot, and fairly shares the remaining work. A slow CCMS or Jobs read therefore creates neither dozens of workers nor backlog and cannot delay priority collections or the heartbeat. Each ordinary task has a 75-second deadline: expiry cancels and retires only its SAP connection and never commits partial state. Before the isolated Program statistics child starts, source admission has an independent 30-second limit. Only after admission succeeds does it process one subwindow with a fresh 240-second budget and finite termination and reap reserves. It never inherits residual time from another read. An admission timeout or cancellation does not run the worker, bisect a subwindow, export, acknowledge, or move cursors; the next queued source can proceed. When the budget reaches its limit, the worker is interrupted and reaped within a finite bound. The parent retains sanitized descriptor lookup, parameter preparation, output selection, invoke, and decode boundaries even without a terminal record. Zero duration marks entry and a positive duration marks completion; no RFC values are included. This evidence diagnoses the last observed stage but does not validate data or permit export, acknowledgement, or checkpoint movement. If the child reaches its exact 240-second deadline and the active subwindow is still splittable, the coordinator exports nothing and keeps the cursor and prior acknowledgements unchanged. It durably replaces only that subwindow with two contiguous halves, preserves the rest of the queue and the backoff, and queues the continuation immediately with fair scheduling. An upgrade or reload cancellation takes precedence, never authorizes this split, and remains a cancellation rather than a handoff failure. Priority families retain their independent schedules. Startup and configuration reload perform one staggered bootstrap extraction without waiting a full interval.

Subwindows start at 60 seconds. A complete read that takes at least 60 seconds or returns more than 400 main records halves that source's durable maximum, down to one second. Exactly 400 does not reduce it, and the accepted leaf retains every execution. It may grow after eight fast, acknowledged leaves, for the next horizon only; it does not change acknowledged coverage or cross into a different SAP connection.

Capabilities​

The card separates Scoped telemetry from connector heartbeat: data is available only when a v2 document exists for that exact source. Each collection distinguishes No source data yet—a successful lookup with no documents—from Source data status unavailable—a lookup that could not be completed—without exposing Elasticsearch implementation details. Each collection shows its current state, Last success, and Last check. An earlier error disappears after a successful collection; Details folds the latest sub-capability result rather than presenting an error history. One unsupported collection does not block the others.

When SAP omits a required table or list, the connector does not interpret that response as an empty result. The collection remains in error, keeps the latest confirmed state, and publishes no false removals or recoveries. An explicit, valid empty response is still reported as a successful query with no results.

Program statistics uses the standard RFC function SWNC_GET_STATRECS_FRAME in the SCSM_NW_WORKLOAD group and installs no transport or custom ABAP code. The technical user needs minimum S_RFC access to that function. SPOT expresses the window with SAP's UTC code, pins the connection client, and sends READ_START_DATE/TIME, READ_END_DATE/TIME, and READ_TIME_ZONE. The same invocation descriptor must declare MAX_RECORDS as an optional IMPORT INT with default -1, READ_ONLY_MAINRECORDS as IMPORT CHAR, and ALL_STATRECS/PROTOCOL as EXPORT TABLE; SPOT sends READ_ONLY_MAINRECORDS="X", omits MAX_RECORDS, and applies its native default without an artificial limit. The release must expose the function as remote-enabled and retain the records. Each cycle rereads a 15-minute overlap and attempts to advance at most 30 minutes, in frames no wider than 60 seconds. A count does not indicate truncation; more than 400 records adapts only that source's future leaves. The protocol may be empty or contain only standard completion rows with a decimal-zero RC; a missing, ambiguous, differently shaped, or non-zero protocol keeps the leaf pending, and its error text is not logged. Explicit truncation also keeps the leaf pending and may be split down to one second, with at most 32 Programs RFC reads in any rolling 60 seconds across all sources, including after restart. Smaller leaves can use that capacity sooner; the continuation waits without holding a SAP connection or starting another worker. SPOT exports each complete leaf with its manifest and confirms its end only after acknowledgement. When cancellation, an error, or a missing acknowledgement leaves a leaf pending, SPOT preserves its exact subwindows and retries them with backoff without reading earlier acknowledged leaves again. This also applies to the first round. Only after that horizon is complete does the next cycle reread from 15 minutes before the checkpoint. If lag exceeds the collection interval plus 120 seconds, it starts immediately; normal cadence resumes near the present. No unread tail is presented as covered. Check the last confirmed SAP time, not only arrival. Each RFC result has a 20,000-row and 64 MiB decode budget. Each leaf retains at most 50,000 documents and 32 MiB of serialized normalized content, including the manifest. Exceeding a limit or repeating an identity with incompatible content leaves that leaf without export or checkpoint progress. These limits do not constrain memory inside the native RFC invoke. A valid leaf retains every main record and a manifest with the exact count and window; only its acknowledgement advances the checkpoint. A valid read is partial because batchstep, rfc, http, and epp are explicitly unavailable; their absence does not prove those steps, calls, or contexts did not occur.

When capability is error, the sanitized diagnosis separates call-budget exhaustion, minimum-frame saturation, an invalid window, aggregate size, and an identity/system conflict. Those classes are conclusive only when reported by the installed version; they do not reinterpret an earlier generic error.

The adaptive window reduces the expected working set but does not guarantee a universal memory ceiling for every SAP system. Eight consecutive full-size, acknowledged leaves under ten seconds, with at most 100 main records and 8 MiB normalized each, may double it up to 60 seconds for the next horizon only; failures reset the streak and timeout or saturation prevents growth for 15 minutes. If Program statistics coincides with sustained memory pressure or stops completing while heartbeat or other families advance, disable only that collection temporarily, preserve the prior configuration, and keep the rest enabled. Reclaim under memory.high without an OOM requires whole-process measurement; it does not by itself prove a Go heap leak or native spin. Install a corrected, supported connector version, measure it under real SAP load against host headroom, and confirm progress of every family before re-enabling the collection. Do not raise resource limits as the first step.

For Jobs, the connector queues terminal executions and collects their complete Job Log asynchronously. SAP does not paginate this response, so the read may temporarily increase agent memory use; later Job Runs observations continue independently. job_runs=supported and job_logs=unavailable may still coexist when SAP does not provide the log read. This does not block runs, their states, canceled-jobs, long-running jobs, or historical lines already indexed.

Dumps never include memory/business data, RFC never includes call payloads, and certificates expose public metadata only—never private keys.

Assign a connector with a recent heartbeat, save the source, wait for the applied configuration revision, and verify Metrics/Events, Programs, Job Monitoring, Certificates, and RFC & Integrations. Agent upgrade required means the producer must be upgraded to 2.0; it is not a valid zero.