Transparency

What JOX knows about every run.

When a job fails, or when the auditor asks what actually ran in production two years ago, the depth of your persistence decides whether you have an answer in seconds or spend hours searching. JOX captures every run transactionally in the repository: status, resolved values, before/after states, parallel activity, and sent notifications. SQL statements are always captured; persistence of OS-job output is configurable per template.

Captured per run

Seven kinds of data for every run.

Status

Success or failure, nothing in between.

Every run is captured with precise timestamps, transactionally in the repository: start, end, duration, status. The return code is evaluated as binary: 0 = OK, anything else = failure. This keeps template development simple, because there are no special exit-code rules and no mapping tables to maintain.

OS-job output

stdout / stderr on request, environment variables always.

stdout and stderr can be persisted in the JOX repository per job template via Load Output, in full rather than only the last N lines. The default is off; the log file then stays on the server. Environment variables are always captured for every OS-job run, including the predefined variables that JOX sets, such as JOX_JOB_ID, which give every run a unique, traceable identity.

SQL detail

Every statement, with data depending on statement type.

For SQL Actions, SQL Pipes and SQL Extracts, every executed statement is persisted in the form that actually went to the database after variable resolution, rather than as the code in the template. The data is shown directly in the JOX GUI:

  • SQL Actions with SELECT: results appear automatically.
  • SQL Pipes: per intermediate result configurable (Load Data).
  • SQL Extracts: configurable with row limit (Load Data + Record Number Limit).
Resolution

Which path, which account, which parameter was actually used.

System Functionalities are a template's abstract functionality bindings, such as bin_dir or billing_schema. They map per Location × Area to concrete directories or DB accounts. In addition, classic JOX variables (e.g. order parameters) are resolved at runtime. The run record shows the concrete values instead of the names, i.e. the path, account and parameter that were actually used.

Before / After

Which files changed. Which DB state was visible before and after.

JOX records which files the run created or touched, and which database state was visible immediately before and immediately after execution. With this before/after view the run record covers the effects of a run as well as its output, which is the basis for follow-up audits and re-run decisions.

Activity context

What else was running in parallel.

From any run detail you jump straight into the Activity Report for the exact time window and see all the jobs that ran in parallel (e.g. on the same Location or in the same Area). This is often the information you need when a job behaves differently under load than it does in isolation.

Notifications

Which emails went to which recipients.

Every email that JOX sent in response to the run is persisted with the full recipient list and the complete body. For area-dependent distribution lists you see the resolved recipients, i.e. who was actually notified.

With JOX we have an extremely reliable scheduler with deterministic results. The historization of processes and outcomes leaves our auditors more than satisfied.

In practice

Use cases for the run data.

Forensics: a failed billing run and its rerun

Last night's billing run crashed at 02:17. Instead of digging for log files on the file system, you open the order in JOX. The failed job is flagged red and immediately visible. The output is complete. The last line reads "Segmentation fault", and there is a core file, a failure pattern that almost never happens. In the JOX group "Server Configuration Checks", last evening's order on the billing-relevant location shows that an OS patch was applied yesterday and replaced a library used by the billing module. After the library is restored, the jobs of the billing order that ran from the upgrade point onward, including the billing run itself, are rerun recursively.

Compliance: questions from external auditors

"Which migration scripts ran against the production database in April 2024, and who was notified?" The Activity Report, including archived jobs, finds the migration order. Restore brings the order back from the archive in a few seconds. Status, output, resolved values, number of rows changed by SQL and the mail trail are all there.

Replay: reproducing a historical run

A customer disputes an invoice from last quarter. You want to reproduce the run identically. You copy the JOX order; area, locations and parameters are already the same.

Talk

Seeing it in a demo

A demo walks through the run detail using a concrete use case from your environment. Send a short email describing the use case, and we will show you the run detail for your own example.