Release notes for Model 204 version 8.0: Difference between revisions
Add missing 8.0 content from full git-log scan: SOUL enhancements (Imagine/BrokerCallError classes, Record RecordId retrieval, $LISTFINDI_MULT), TCP keep-alive, Security (SUBSYSMGMT/DICTADMIN), new commands (PUSHPARM/POPPARM, MINUTABLE/MINUGLOBAL), changed commands (VIEW/UTABLE/MONITOR/SWITCH/DEFINE DATASET, fractional-second stats), New and changed parameters (RESRQST/ECMAXCPU/EVALOPT/COMPOPT/MAXBG/TEMPPAGE), Discontinued features (SHAPE) |
|||
| (6 intermediate revisions by 3 users not shown) | |||
| Line 3: | Line 3: | ||
==New in this release== | ==New in this release== | ||
The table below cites some highlights of Model 204 version 8.0. For a full list of features, refer to the Table of Contents. | |||
<table> | |||
<tr class="head"><th>Category</th> | |||
<th>Feature</th></tr> | |||
== | <tr> | ||
<td nowrap>Data access</td> | |||
<td> | |||
<ul> | |||
<li>[[#Imagine Transparency support|Imagine Transparency]] allows files in an <var class="product">Imagine</var> database to be accessed from <var class="product">Model 204</var> as if they were native files, using the new [[JANUS DEFINE#IMAGINET|IMAGINET]] Janus port type.</li> | |||
<li>The new SOUL <var>[[Imagine class]]</var> lets applications drive <var class="product">Imagine Transparency</var> broker requests directly.</li> | |||
</ul> | |||
</td></tr> | |||
<tr> | |||
<td nowrap>Security</td> | |||
<td> | |||
<ul> | |||
<li>Janus SSL ports now support [[#TLS 1.3 support|TLS 1.3]] (RFC 8446) for both client and server connections, including client certificate authentication and post-handshake authentication.</li> | |||
<li>The new [[#Janus SSH server|SSH]] Janus port type provides a built-in SSH server with trusted public-key login.</li> | |||
</ul> | |||
</td></tr> | |||
<tr> | |||
<td nowrap>Performance</td> | |||
<td> | |||
<ul> | |||
<li>The SOUL compression functions now exploit [[#Hardware-accelerated deflate/inflate compression|IBM z15 DFLTCC hardware]] for deflate and inflate operations.</li> | |||
</ul> | |||
</td></tr> | |||
<tr> | |||
<td nowrap>New commands</td> | |||
<td> | |||
<ul> | |||
<li>New commands including <var>[[DISPLAY DSNAMES command|DISPLAY DSNAMES]]</var>, <var>[[DISPLAY IMAGINESYNC command|DISPLAY IMAGINESYNC]]</var>, and <var>[[IMAGINE command|IMAGINE]]</var>; new <var>JANUS</var> subcommands for [[#Imagine Transparency support|Imagine Transparency]] and [[#Janus SSH server|SSH]]; and changed output from <var>[[VIEW FILEORG command|VIEW FILEORG]]</var> and <var>VIEW CURLOC</var>. See [[#New and changed commands|New and changed commands]].</li> | |||
</ul> | |||
</td></tr> | |||
</table> | |||
==SOUL | ==Imagine Transparency support== | ||
A new facility called [[Imagine Transparency]] is now available to allow files in an <var class="product">Imagine</var> database to be accessed from <var class="product">Model 204</var> as if they were native files. Applications can issue ordinary SOUL <var>FIND</var>, <var>FOR EACH RECORD</var>, and update statements against a Transparency file, and <var class="product">Model 204</var> transparently retrieves and updates the underlying records through an <var class="product">Imagine</var> broker. | |||
= | A new port type, [[JANUS DEFINE#IMAGINET|IMAGINET]], is now available. It allows <var class="product">Model 204</var> files to be stored on an Imagine server rather than in operating system files. A new option on the <var>[[DEFINE DATASET command#IMAGINE|ALLOCATE]]</var> command indicates that a file is to be accessed via the <var>IMAGINET</var> port rather than from operating system files. | ||
== | The following related features support Imagine Transparency: | ||
<ul> | |||
<li>The <var>[[IMAGINE command]]</var> controls Transparency operations, including <var>IMAGINE EXTRACT</var> (extract records into an Imagine file) and <var>IMAGINE SYNC</var> (synchronize an Imagine file with its underlying database).</li> | |||
<li>The <var>[[DISPLAY IMAGINESYNC command]]</var> displays the status of outstanding Transparency synchronization requests. It replaces the earlier <var>IMAGINE LISTSYNC</var> command.</li> | |||
<li>The <var>[[Release Records statement|RELEASE]]</var> statement has a new <var>RELEASE IMAGINE RECORDS</var> form that releases the records held for the current Transparency transaction. An optional <var>COMMIT</var> or <var>BACKOUT</var> keyword commits or backs out the associated <var class="product">Imagine</var> transaction, and an optional <var>CLEARLISTS</var> keyword also clears associated <var class="term">$lists</var> and <var class="term">StringLists</var>.</li> | |||
<li>The new SOUL <var>[[Imagine class]]</var> lets applications interact with the <var class="product">Imagine Transparency</var> broker for the current transaction. It is a collection of shared methods (there is no <var>Imagine</var> object), including <var>[[Call (Imagine function)|Call]]</var>, which runs Imagine code on the broker and accepts <var class="term">StringList</var> and <var class="term">DollarList</var> parameters and an optional <var class="term">apsySuffix</var> named parameter, along with methods that return the broker version, DBS name, and APSY suffix. See the [[List of Imagine methods]].</li> | |||
<li>A single <var>[[JANUS DEFINE#IMAGINET|IMAGINET]]</var> port can route to multiple <var class="product">Imagine</var> database servers (DBS), selected by an APSY suffix character. The suffix-to-DBS mappings are managed with the new <var>JANUS ADDSUFFIX</var>, <var>JANUS DELETESUFFIX</var>, <var>JANUS DISPLAYSUFFIX</var>, and <var>JANUS SUFFIXSTAT</var> commands, and the active suffix and DBS name are available to SOUL through the <var>[[Imagine class]]</var>.</li> | |||
</ul> | |||
== | ==SOUL (User Language) enhancements== | ||
== | ===Imagine class=== | ||
The new <var>[[Imagine class]]</var> lets SOUL applications interact with the <var class="product">Imagine Transparency</var> broker for the current transaction. See [[#Imagine Transparency support|Imagine Transparency support]] for details. | |||
== | ===BrokerCallError class=== | ||
The new <var>BrokerCallError</var> class represents an error returned by an <var class="product">Imagine Transparency</var> broker call, such as a call made with the <var>[[Call (Imagine function)|Call]]</var> method of the <var>[[Imagine class]]</var>. | |||
== | ===Record retrieval by RecordId=== | ||
The <var>[[Record class]]</var> can now create and retrieve a record directly from a <var class="term">recordId</var>: | |||
<ul> | |||
<li>The new <var>NewFromRecordId</var> constructor creates a <var>Record</var> object from a <var class="term">recordId</var>, optionally in a named file.</li> | |||
<li>The new <var>[[ImagineFile (Record function)|ImagineFile]]</var> function returns the <var class="product">Imagine</var> file associated with a <var>Record</var> object.</li> | |||
</ul> | |||
See the [[List of Record methods]] for the complete set of <var>Record</var> methods. | |||
===$LISTFINDI_MULT functions=== | |||
The new <var>$LISTFINDI_MULT</var>, <var>$LISTFINDI_MULT_SUB</var>, and <var>$LISTFINDI_MULT_UP</var> <var class="term">$functions</var> locate, or build a subset of, the items in an <var class="term">$list</var> that match up to eight image-item values. <var>$LISTFINDI_MULT_UP</var> searches the <var class="term">$list</var> in the backward (up) direction. | |||
==Janus product enhancements== | ==Janus product enhancements== | ||
| Line 44: | Line 94: | ||
==== Client-side TLS 1.3 and post-handshake authentication ==== | ==== Client-side TLS 1.3 and post-handshake authentication ==== | ||
Janus client connections (for example, <var class="term">$SOCK</var> | Janus client connections (for example, clients built with the <var class="term">$SOCK</var> | ||
and Janus Web Server outbound HTTPS requests) now negotiate and complete a full | functions or the equivalent <var class="term">Socket</var> class methods, and Janus | ||
TLS 1.3 handshake as the client, including X25519 key exchange, the HKDF-based | Web Server outbound HTTPS requests) now negotiate and complete a full TLS 1.3 | ||
handshake as the client, including X25519 key exchange, the HKDF-based key | |||
schedule, and RSA-PSS certificate verification of the server. | |||
Client certificate authentication is supported both during the initial handshake | Client certificate authentication is supported both during the initial handshake | ||
| Line 62: | Line 113: | ||
the port. | the port. | ||
=== | ===Janus SSH server=== | ||
A new | A new <var>SSH</var> Janus port type provides a built-in SSH (Secure Shell) server, allowing users to connect to a <var class="product">Model 204</var> <var class="product">Online</var> from a standard SSH client over an encrypted connection. An SSH port is defined with the <var>[[JANUS DEFINE]]</var> command; for example: | ||
JANUS DEFINE SSHPORT 5996 SSH 10 SSL PROFILE SSH.PKEY | |||
In addition to password authentication, SSH ports support <em>trusted public-key login</em>, in which a user is authenticated by an SSH public key that has been registered with the port. The following commands manage trusted keys (see [[Janus SSH]] for full details): | |||
<table> | |||
<tr class="head"><th>Command</th> | |||
<th>Description</th></tr> | |||
<tr><td nowrap><var>JANUS TRUST</var> ''portname userid base64key''</td> | |||
<td>Registers a trusted SSH public key for ''userid'' on the named SSH port.</td></tr> | |||
<tr><td nowrap><var>JANUS DELTRUST</var> ''portname userid''</td> | |||
<td>Removes the trusted key for ''userid'' on the named port.</td></tr> | |||
<tr><td nowrap><var>JANUS DISPLAYTRUST</var> [''portname'']</td> | |||
<td>Displays the trusted keys registered on a port (or on all ports).</td></tr> | |||
<tr><td nowrap><var>JANUS DISTOFU</var> [''portname'']</td> | |||
<td>Displays keys that were auto-registered by trust-on-first-use (TOFU).</td></tr> | |||
<tr><td nowrap><var>JANUS SSHKEY</var></td> | |||
<td>Displays the SSH public key of the current user.</td></tr> | |||
</table> | |||
Trust-on-first-use (TOFU) can be enabled on an SSH port with the <var>TOFU</var> option on the <var>[[JANUS DEFINE]]</var> command. When enabled, a user's public key is automatically registered on first connection, up to a specified maximum number of keys. | |||
===TCP keep-alive on Janus ports=== | |||
The TCP keep-alive interval for a Janus port can now be set with the <var>TCPKEEPALIVE</var> parameter on the <var>[[JANUS DEFINE]]</var> command. | |||
==Security enhancements== | |||
== | ===SUBSYSMGMT and DICTADMIN without preauthorization=== | ||
System managers can now use the <var>SUBSYSMGMT</var> and <var>DICTADMIN</var> subsystems without being separately preauthorized for them. | |||
==Performance enhancements== | ==Performance enhancements== | ||
===Hardware-accelerated deflate/inflate compression=== | ===Hardware-accelerated deflate/inflate compression=== | ||
The SOUL compression functions (<var>Deflate</var>, <var>Inflate</var>, <var>Gzip</var>, <var>Gunzip</var>, <var>Zip</var>, and <var>Unzip</var>) now exploit the IBM z15 (and above) DFLTCC (Deflate Conversion Call) hardware instruction when available. This provides significant performance improvement for compression and decompression of longstrings without any application code changes. | The SOUL compression functions (<var>[[Deflate (String function)|Deflate]]</var>, <var>Inflate</var>, <var>Gzip</var>, <var>Gunzip</var>, <var>Zip</var>, and <var>Unzip</var>) now exploit the IBM z15 (and above) DFLTCC (Deflate Conversion Call) hardware instruction when available. This provides significant performance improvement for compression and decompression of longstrings without any application code changes. | ||
Hardware acceleration is used automatically when the processor supports it. On processors without DFLTCC support, the existing software implementation continues to be used transparently. | Hardware acceleration is used automatically when the processor supports it. On processors without DFLTCC support, the existing software implementation continues to be used transparently. | ||
| Line 79: | Line 153: | ||
==New and changed commands== | ==New and changed commands== | ||
<var>[[DISPLAY DSNAMES command]]</var> | |||
===New commands=== | |||
<var>[[DISPLAY DSNAMES command|DISPLAY DSNAMES]]</var> [''pattern''] displays the data set names allocated to the run, including <var class="product">Model 204</var> database files and [[In-memory files|in-memory]] files, optionally restricted to those matching ''pattern''. | |||
<var>[[DISPLAY IMAGINESYNC command|DISPLAY IMAGINESYNC]]</var> displays the status of outstanding [[Imagine Transparency]] synchronization requests. It replaces the earlier <var>IMAGINE LISTSYNC</var> command. | |||
<var>[[IMAGINE command|IMAGINE]]</var> controls [[Imagine Transparency]] operations, such as <var>IMAGINE EXTRACT</var> and <var>IMAGINE SYNC</var>. | |||
The new <var>PUSHPARM</var> command saves the current value of a resettable user, system, or file parameter—optionally while setting a new value, as in <code>PUSHPARM MCPU 1000</code>—so that the previous value can later be restored with the new <var>POPPARM</var> command. <var>PUSHPARMQ</var> is a quiet form that does not display the new value, <var>PUSHPARMS</var> saves all user parameters, and <var>POPPARMS</var> restores them. Only one <var>PUSHPARM</var> may be issued per <var>INCLUDE</var> level. These commands complement the existing <var>PUSHUTABLE</var> and <var>POPUTABLE</var> commands. | |||
The new <var>[[MINUTABLE command|MINUTABLE]]</var> and <var>[[MINUGLOBAL command|MINUGLOBAL]]</var> commands establish minimum values for parameters that are set with the <var>[[UTABLE command|UTABLE]]</var> or <var>PUSHUTABLE</var> commands. <var>MINUTABLE</var> sets user minimums and <var>MINUGLOBAL</var> sets system minimums; a requested value below the applicable minimum is raised to it, and when both apply, the larger minimum is used. | |||
===Changed commands=== | |||
<var>[[VIEW FILEORG command|VIEW FILEORG]]</var> is not a new command, but its output has changed: the displayed file organization now indicates whether the current file is an [[In-memory files|in-memory]] file or an <var class="product">Imagine</var> Transparency file. | |||
<var>VIEW CURLOC</var> is likewise not a new command, but its output now shows <code>(IMAGINE)</code> when the current file is an <var class="product">Imagine</var> Transparency file. Local files, including in-memory files, continue to display <code>(LOCAL)</code>. | |||
<var>SWITCH STREAM TCPLOG</var> is a new operand of the existing <var>SWITCH</var> command. It switches the TCPLOG output stream, where TCPLOG is the DDNAME specified by the <var>DEFINE JANUS TCPLOG</var> command. The <var>SWITCH</var> command can also now perform a <var>CCAJRNL RESET</var> while inside a checkpoint extended quiesce when both CCAJRNL and CCAJLOG are active, so that disabled members of a parallel stream can be reactivated without affecting subsequent recovery or regeneration. | |||
The <var>VIEW</var> command no longer truncates the <var>USERID</var>, <var>ACCOUNT</var>, and <var>RECSECID</var> values at seven characters. | |||
The <var>[[UTABLE command|UTABLE]]</var> command accepts a new <code>></code> suffix on a value, meaning "this value or more". For example, <code>UTABLE LVTBL 1000></code> raises <var>LVTBL</var> to 1000 only if it is currently smaller, and otherwise leaves it unchanged. | |||
The <var>[[MONITOR command|MONITOR SUBTRAN]]</var> command now supports up to 9,999,999 records, and the <var>MONITOR SIZE</var> display now includes the volume serial and data set name (VOLSER\DSN). | |||
The <var>[[DEFINE DATASET command|DEFINE DATASET]]</var> command supports a new form, <var>DEFINE DATASET</var> ''x'' <var>FROM</var> ''y'', which defines data set ''x'' from a data set ''y'' that is defined in the JCL. | |||
Several statistics displays and the file last-updated time reported by message M204.1203 now include fractional seconds. | |||
===New JANUS commands=== | |||
Several new <var>JANUS</var> subcommands support [[Imagine Transparency]] and the [[#Janus SSH server|Janus SSH server]]: | |||
<ul> | |||
<li><var>JANUS ADDSUFFIX</var>, <var>JANUS DELETESUFFIX</var>, <var>JANUS DISPLAYSUFFIX</var>, and <var>JANUS SUFFIXSTAT</var> manage the suffix-to-DBS mappings that let a single [[JANUS DEFINE#IMAGINET|IMAGINET]] port serve multiple <var class="product">Imagine</var> database servers.</li> | |||
<li><var>JANUS TRUST</var>, <var>JANUS DELTRUST</var>, <var>JANUS DISPLAYTRUST</var>, <var>JANUS DISTOFU</var>, and <var>JANUS SSHKEY</var> manage trusted public-key login on [[Janus SSH|SSH]] ports.</li> | |||
</ul> | |||
==New and changed parameters== | ==New and changed parameters== | ||
== | ===RESRQST=== | ||
The new <var>[[RESRQST parameter|RESRQST]]</var> parameter sets the maximum number of active resident requests. In addition, the <var>VIEW RESCURR</var> and <var>VIEW RESHIGH</var> displays now report the number of bytes and pages in use. | |||
===ECMAXCPU=== | |||
The new <var>ECMAXCPU</var> parameter limits the CPU time, in seconds, that a single External Call Facility (ECF) call may consume. The default of <code>0</code> means no limit; a call that exceeds the limit is cancelled with a retryable user 99 <var class="term">ABEND</var>. <var>ECMAXCPU</var> is set on the User 0 parameter line and can be reset by a system manager. | |||
===EVALOPT=== | |||
Two new <var>[[EVALOPT parameter|EVALOPT]]</var> option bits cancel a request (with message M204.2985) when a value is truncated during evaluation: <code>X'80'</code> cancels on string-to-numeric truncation, and <code>X'40'</code> cancels on numeric-to-numeric truncation. | |||
== | ===COMPOPT=== | ||
The <var>[[COMPOPT parameter|COMPOPT]]</var> parameter has a new value, <code>16</code>, that allows a procedure containing updates to a read-only file to compile successfully. If the update is attempted at evaluation time, the request is cancelled with message M204.3056 (or M204.1036 for a security violation). | |||
== | ===MAXBG=== | ||
The <var>[[MAXBG parameter|MAXBG]]</var> parameter can now be reset by a system manager. | |||
== | ===TEMPPAGE=== | ||
Resetting the <var>[[TEMPPAGE parameter|TEMPPAGE]]</var> parameter can now expand CCATEMP: if the new value is larger than the current size, additional space is allocated; a value equal to or smaller than the current size is rejected. | |||
== | ==Discontinued features== | ||
The <var>SHAPE</var> capability, a single-customer feature that is no longer used, has been removed. | |||
[[Category: Release notes]] | [[Category: Release notes]] | ||
Latest revision as of 04:12, 27 August 2026
Overview
These release notes contain installation and features information for the Rocket Model 204 version 8.0 release. Before beginning your installation, please read through this information about product installation and changes.
New in this release
The table below cites some highlights of Model 204 version 8.0. For a full list of features, refer to the Table of Contents.
| Category | Feature |
|---|---|
| Data access |
|
| Security | |
| Performance |
|
| New commands |
|
Imagine Transparency support
A new facility called Imagine Transparency is now available to allow files in an Imagine database to be accessed from Model 204 as if they were native files. Applications can issue ordinary SOUL FIND, FOR EACH RECORD, and update statements against a Transparency file, and Model 204 transparently retrieves and updates the underlying records through an Imagine broker.
A new port type, IMAGINET, is now available. It allows Model 204 files to be stored on an Imagine server rather than in operating system files. A new option on the ALLOCATE command indicates that a file is to be accessed via the IMAGINET port rather than from operating system files.
The following related features support Imagine Transparency:
- The IMAGINE command controls Transparency operations, including IMAGINE EXTRACT (extract records into an Imagine file) and IMAGINE SYNC (synchronize an Imagine file with its underlying database).
- The DISPLAY IMAGINESYNC command displays the status of outstanding Transparency synchronization requests. It replaces the earlier IMAGINE LISTSYNC command.
- The RELEASE statement has a new RELEASE IMAGINE RECORDS form that releases the records held for the current Transparency transaction. An optional COMMIT or BACKOUT keyword commits or backs out the associated Imagine transaction, and an optional CLEARLISTS keyword also clears associated $lists and StringLists.
- The new SOUL Imagine class lets applications interact with the Imagine Transparency broker for the current transaction. It is a collection of shared methods (there is no Imagine object), including Call, which runs Imagine code on the broker and accepts StringList and DollarList parameters and an optional apsySuffix named parameter, along with methods that return the broker version, DBS name, and APSY suffix. See the List of Imagine methods.
- A single IMAGINET port can route to multiple Imagine database servers (DBS), selected by an APSY suffix character. The suffix-to-DBS mappings are managed with the new JANUS ADDSUFFIX, JANUS DELETESUFFIX, JANUS DISPLAYSUFFIX, and JANUS SUFFIXSTAT commands, and the active suffix and DBS name are available to SOUL through the Imagine class.
SOUL (User Language) enhancements
Imagine class
The new Imagine class lets SOUL applications interact with the Imagine Transparency broker for the current transaction. See Imagine Transparency support for details.
BrokerCallError class
The new BrokerCallError class represents an error returned by an Imagine Transparency broker call, such as a call made with the Call method of the Imagine class.
Record retrieval by RecordId
The Record class can now create and retrieve a record directly from a recordId:
- The new NewFromRecordId constructor creates a Record object from a recordId, optionally in a named file.
- The new ImagineFile function returns the Imagine file associated with a Record object.
See the List of Record methods for the complete set of Record methods.
$LISTFINDI_MULT functions
The new $LISTFINDI_MULT, $LISTFINDI_MULT_SUB, and $LISTFINDI_MULT_UP $functions locate, or build a subset of, the items in an $list that match up to eight image-item values. $LISTFINDI_MULT_UP searches the $list in the backward (up) direction.
Janus product enhancements
TLS 1.3 support
Janus SSL ports now support TLS 1.3 (RFC 8446) for both client and server connections. TLS 1.3 provides improved security and performance over TLS 1.2, including a simplified handshake with fewer round trips, and the removal of legacy features such as renegotiation.
The following TLS 1.3 cipher suites are supported:
TLS_AES_128_GCM_SHA256TLS_AES_256_GCM_SHA384
Key exchange is performed using X25519 (Curve25519 Elliptic Curve Diffie-Hellman, per RFC 7748). Certificate authentication uses RSA-PSS signatures.
Key derivation uses the HKDF-based key schedule defined in RFC 8446, replacing the PRF-based approach of earlier TLS versions.
TLS 1.3 is enabled by default on ports that allow TLS 1.2. To restrict a port to earlier protocol versions, use the existing SSLVERSION parameter on the JANUS DEFINE command.
Client-side TLS 1.3 and post-handshake authentication
Janus client connections (for example, clients built with the $SOCK functions or the equivalent Socket class methods, and Janus Web Server outbound HTTPS requests) now negotiate and complete a full TLS 1.3 handshake as the client, including X25519 key exchange, the HKDF-based key schedule, and RSA-PSS certificate verification of the server.
Client certificate authentication is supported both during the initial handshake
and after it completes. When a TLS 1.3 server sends a post-handshake
CertificateRequest (RFC 8446 Section 4.6.2) — for example, when a
server application requests a client certificate on a connection that did not
originally require one — the Janus client automatically responds with its
Certificate, CertificateVerify, and Finished
messages, allowing the authenticated request to proceed without interrupting the
connection.
No application changes are required. Post-handshake authentication is used automatically when a server requests it and a client certificate is available for the port.
Janus SSH server
A new SSH Janus port type provides a built-in SSH (Secure Shell) server, allowing users to connect to a Model 204 Online from a standard SSH client over an encrypted connection. An SSH port is defined with the JANUS DEFINE command; for example:
JANUS DEFINE SSHPORT 5996 SSH 10 SSL PROFILE SSH.PKEY
In addition to password authentication, SSH ports support trusted public-key login, in which a user is authenticated by an SSH public key that has been registered with the port. The following commands manage trusted keys (see Janus SSH for full details):
| Command | Description |
|---|---|
| JANUS TRUST portname userid base64key | Registers a trusted SSH public key for userid on the named SSH port. |
| JANUS DELTRUST portname userid | Removes the trusted key for userid on the named port. |
| JANUS DISPLAYTRUST [portname] | Displays the trusted keys registered on a port (or on all ports). |
| JANUS DISTOFU [portname] | Displays keys that were auto-registered by trust-on-first-use (TOFU). |
| JANUS SSHKEY | Displays the SSH public key of the current user. |
Trust-on-first-use (TOFU) can be enabled on an SSH port with the TOFU option on the JANUS DEFINE command. When enabled, a user's public key is automatically registered on first connection, up to a specified maximum number of keys.
TCP keep-alive on Janus ports
The TCP keep-alive interval for a Janus port can now be set with the TCPKEEPALIVE parameter on the JANUS DEFINE command.
Security enhancements
SUBSYSMGMT and DICTADMIN without preauthorization
System managers can now use the SUBSYSMGMT and DICTADMIN subsystems without being separately preauthorized for them.
Performance enhancements
Hardware-accelerated deflate/inflate compression
The SOUL compression functions (Deflate, Inflate, Gzip, Gunzip, Zip, and Unzip) now exploit the IBM z15 (and above) DFLTCC (Deflate Conversion Call) hardware instruction when available. This provides significant performance improvement for compression and decompression of longstrings without any application code changes.
Hardware acceleration is used automatically when the processor supports it. On processors without DFLTCC support, the existing software implementation continues to be used transparently.
The DFLTCC instruction handles both the deflate (compress) and inflate (expand) operations natively in hardware, including CRC-32 computation, providing throughput improvements that scale with data size.
New and changed commands
New commands
DISPLAY DSNAMES [pattern] displays the data set names allocated to the run, including Model 204 database files and in-memory files, optionally restricted to those matching pattern.
DISPLAY IMAGINESYNC displays the status of outstanding Imagine Transparency synchronization requests. It replaces the earlier IMAGINE LISTSYNC command.
IMAGINE controls Imagine Transparency operations, such as IMAGINE EXTRACT and IMAGINE SYNC.
The new PUSHPARM command saves the current value of a resettable user, system, or file parameter—optionally while setting a new value, as in PUSHPARM MCPU 1000—so that the previous value can later be restored with the new POPPARM command. PUSHPARMQ is a quiet form that does not display the new value, PUSHPARMS saves all user parameters, and POPPARMS restores them. Only one PUSHPARM may be issued per INCLUDE level. These commands complement the existing PUSHUTABLE and POPUTABLE commands.
The new MINUTABLE and MINUGLOBAL commands establish minimum values for parameters that are set with the UTABLE or PUSHUTABLE commands. MINUTABLE sets user minimums and MINUGLOBAL sets system minimums; a requested value below the applicable minimum is raised to it, and when both apply, the larger minimum is used.
Changed commands
VIEW FILEORG is not a new command, but its output has changed: the displayed file organization now indicates whether the current file is an in-memory file or an Imagine Transparency file.
VIEW CURLOC is likewise not a new command, but its output now shows (IMAGINE) when the current file is an Imagine Transparency file. Local files, including in-memory files, continue to display (LOCAL).
SWITCH STREAM TCPLOG is a new operand of the existing SWITCH command. It switches the TCPLOG output stream, where TCPLOG is the DDNAME specified by the DEFINE JANUS TCPLOG command. The SWITCH command can also now perform a CCAJRNL RESET while inside a checkpoint extended quiesce when both CCAJRNL and CCAJLOG are active, so that disabled members of a parallel stream can be reactivated without affecting subsequent recovery or regeneration.
The VIEW command no longer truncates the USERID, ACCOUNT, and RECSECID values at seven characters.
The UTABLE command accepts a new > suffix on a value, meaning "this value or more". For example, UTABLE LVTBL 1000> raises LVTBL to 1000 only if it is currently smaller, and otherwise leaves it unchanged.
The MONITOR SUBTRAN command now supports up to 9,999,999 records, and the MONITOR SIZE display now includes the volume serial and data set name (VOLSER\DSN).
The DEFINE DATASET command supports a new form, DEFINE DATASET x FROM y, which defines data set x from a data set y that is defined in the JCL.
Several statistics displays and the file last-updated time reported by message M204.1203 now include fractional seconds.
New JANUS commands
Several new JANUS subcommands support Imagine Transparency and the Janus SSH server:
- JANUS ADDSUFFIX, JANUS DELETESUFFIX, JANUS DISPLAYSUFFIX, and JANUS SUFFIXSTAT manage the suffix-to-DBS mappings that let a single IMAGINET port serve multiple Imagine database servers.
- JANUS TRUST, JANUS DELTRUST, JANUS DISPLAYTRUST, JANUS DISTOFU, and JANUS SSHKEY manage trusted public-key login on SSH ports.
New and changed parameters
RESRQST
The new RESRQST parameter sets the maximum number of active resident requests. In addition, the VIEW RESCURR and VIEW RESHIGH displays now report the number of bytes and pages in use.
ECMAXCPU
The new ECMAXCPU parameter limits the CPU time, in seconds, that a single External Call Facility (ECF) call may consume. The default of 0 means no limit; a call that exceeds the limit is cancelled with a retryable user 99 ABEND. ECMAXCPU is set on the User 0 parameter line and can be reset by a system manager.
EVALOPT
Two new EVALOPT option bits cancel a request (with message M204.2985) when a value is truncated during evaluation: X'80' cancels on string-to-numeric truncation, and X'40' cancels on numeric-to-numeric truncation.
COMPOPT
The COMPOPT parameter has a new value, 16, that allows a procedure containing updates to a read-only file to compile successfully. If the update is attempted at evaluation time, the request is cancelled with message M204.3056 (or M204.1036 for a security violation).
MAXBG
The MAXBG parameter can now be reset by a system manager.
TEMPPAGE
Resetting the TEMPPAGE parameter can now expand CCATEMP: if the new value is larger than the current size, additional space is allocated; a value equal to or smaller than the current size is rejected.
Discontinued features
The SHAPE capability, a single-customer feature that is no longer used, has been removed.