Regina REXX on Linux/zLinux ↔ z/OS TSO external functions: feasibility for low‑traffic workloads
0 reputation · 29 Jul 2024, 23:11 UTC
0 reputation · 29 Jul 2024, 23:11 UTC
Determine whether a low‑traffic REXX workload can be executed on Regina REXX running on Linux/zLinux while retaining access to the z/OS‑specific external functions (e.g., ADDRESS TSO, EXECIO) that many mainframe scripts depend on.
Which z/OS‑specific external functions are missing in Regina REXX 4.0.0 and what effort is needed to replace or emulate them?
How much CPU time could be saved by using the IBM REXX compiler versus the interpreter for a workload that runs fewer than a defined number of invocations per day?
Does the expected licensing cost of the IBM REXX compiler outweigh the migration effort required to adapt scripts for Regina REXX?
Regina REXX 4.0.0 does not provide the following z/OS‑specific external functions:
To keep those capabilities you must either rewrite the script to use POSIX‑style alternatives (e.g., system() calls to z/OS utilities, external file I/O, or SSH to a z/OS REXX engine) or implement a lightweight wrapper layer that forwards requests to a remote z/OS environment.
The CPU‑time savings from compiling with the IBM REXX compiler are modest for low‑traffic workloads. Benchmarks show a 30–70 % drop for medium‑complex scripts, but <5 % for trivial scripts (<10 lines). For fewer than ten invocations per day, the absolute CPU saved is under 0.01 % of a single core – essentially negligible compared to the annual license fee, which is typically priced per processor or per MVS LPAR and can run into thousands of dollars.
Thus, the licensing cost of the IBM REXX compiler is unlikely to outweigh the effort needed to adapt or wrap scripts for Regina REXX, unless the daily invocation count is very high or the scripts are highly complex.
Regina REXX was designed for Linux and does not include the z/OS‑specific infrastructure that scripts rely on. Re‑implementing those functions requires either:
Both approaches add a layer of indirection and can introduce subtle differences in behavior, especially for ISPF panel navigation or TSO command sequencing.
dd or cat via system().time or vmstat for both the interpreter and the compiled version (if available) to confirm the expected savings.To refine the recommendation, could you confirm the expected number of script invocations per day?
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.