<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://m204wiki.rocketsoftware.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tom</id>
	<title>m204wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://m204wiki.rocketsoftware.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tom"/>
	<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Special:Contributions/Tom"/>
	<updated>2026-05-13T20:48:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=SSLPROT_(JANUS_DEFINE_parameter)&amp;diff=120818</id>
		<title>SSLPROT (JANUS DEFINE parameter)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=SSLPROT_(JANUS_DEFINE_parameter)&amp;diff=120818"/>
		<updated>2026-04-13T20:46:38Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span class=&amp;quot;pageSubtitle&amp;quot;&amp;gt;SSLPROT xxx &amp;amp;mdash; Degree of SSL-like encryption&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&amp;lt;var&amp;gt;SSLPROT&amp;lt;/var&amp;gt; is a parameter on the &amp;lt;var&amp;gt;[[JANUS DEFINE]]&amp;lt;/var&amp;gt; command, which defines and sets characteristics of a Janus port. &lt;br /&gt;
&lt;br /&gt;
This parameter lets you specify the degree of SSL-like encryption available at this port. &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[Janus Network Security|Rocket M204 Janus Network Security]]&amp;lt;/var&amp;gt; supports the Secure Socket Layer (SSL) protocol as well as the Transport Layer Security (TLS) protocol, an extension to SSL V3 but developed by the IETF Internet standards group. For the versions and levels of these protocols that are supported, see the parameter table below.&lt;br /&gt;
&lt;br /&gt;
During the negotiation for a connection to or from this port, Janus will offer the most secure protocol available, then, if necessary, will fall back to the next lower one available, and so on. The &amp;lt;var&amp;gt;SSLPROT&amp;lt;/var&amp;gt; parameter lets you explicitly disallow one or more protocols from the negotiation. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;SSLPROT&amp;lt;/var&amp;gt; is a bitmask parameter whose main values are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;thJustBold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;Bit&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;X&#039;01&#039;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;SSL, V2 support. This is less secure than SSL V3 or TLS. Not supported in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; 7.5 and later.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;X&#039;02&#039;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;SSL, V3 support. This is less secure than TLS.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;X&#039;04&#039;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;TLS, 1.0 support.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;X&#039;08&#039;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;TLS 1.1  support. Available as of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; 7.5.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;X&#039;10&#039;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;TLS 1.2  support. Available as of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; 7.5.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;X&#039;20&#039;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;TLS 1.3  support. Available as of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; 8.0.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;X&#039;07&#039;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The default under &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; 7.4 and earlier. SSL V2, SSL V3, and TLS 1.0 are available. Janus will try for them in the order: TLS 1.0, SSL V3, and SSL V2.&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;X&#039;1E&#039;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The default under &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; 7.5 and later. SSL V3, and TLS 1.0, TLS 1.1, and TLS1.2 are available. Janus will try for them in the order: TLS 1.2, TLS 1.1, TLS 1.0, and SSL V3.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A typical reason for explicitly specifying an &amp;lt;var&amp;gt;SSLPROT&amp;lt;/var&amp;gt; value is to require a more secure connection for a port. If a client attempts to connect to a Janus server port using a protocol explicitly disallowed by &amp;lt;var&amp;gt;SSLPROT&amp;lt;/var&amp;gt;, the connection is immediately broken, except for &amp;lt;var&amp;gt;[[JANUS DEFINE#type|WEBSERV]]&amp;lt;/var&amp;gt; ports where the &amp;lt;var&amp;gt;SSLPROTOCOLERR&amp;lt;/var&amp;gt; exception handler will be run if available. &lt;br /&gt;
&lt;br /&gt;
Janus &amp;lt;var&amp;gt;[[JANUS DEFINE#type|CLSOCK]]&amp;lt;/var&amp;gt; ports will attempt to connect under the most secure protocol available, and will fall back to the next-most secure protocol available; if less-secure protocols are disallowed by &amp;lt;var&amp;gt;SSLPROT&amp;lt;/var&amp;gt;, the connection attempt will fail. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;SSLPROT&amp;lt;/var&amp;gt; is valid for &amp;lt;var&amp;gt;[[JANUS DEFINE#type|SRVSOCK]]&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;CLSOCK&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;WEBSERV&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;[[JANUS DEFINE#type|OPENSERV]]&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;[[JANUS DEFINE#type|SDS]]&amp;lt;/var&amp;gt; port types.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SSLCIPH (JANUS DEFINE parameter)]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[List of Janus commands]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[JANUS DEFINE#parmlist|List of JANUS DEFINE parameters]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:JANUS DEFINE parameters|SSLPROT]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Release_notes_for_Model_204_version_7.8&amp;diff=120285</id>
		<title>Release notes for Model 204 version 7.8</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Release_notes_for_Model_204_version_7.8&amp;diff=120285"/>
		<updated>2024-09-18T19:39:25Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* Operating system and hardware requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These release notes list the enhancements and other changes contained in Model 204 version 7.8.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
These release notes contain installation and features information for the Rocket Model 204 version 7.8 release.&lt;br /&gt;
Before beginning your installation, please read through this information about product installation and changes.&lt;br /&gt;
&lt;br /&gt;
==New in this release==&lt;br /&gt;
The table below cites some highlights of Model&amp;amp;nbsp;204 version 7.8. For a full list of features, refer to the Table of Contents. &lt;br /&gt;
&amp;lt;p&amp;gt;See also the [[#Compatibility issues|Compatibility]] section for possible issues.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;Category&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Feature&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;SOUL&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The new [[#AmIndependent method|AmIndependent]] method returns TRUE for daemons spawned by [[RunIndependently (Daemon subroutine)|RunIndependently]].&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Object class now supports the [[#Support for copying Object class objects|copy and deepCopy methods]].&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Janus Web&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[#Web Sockets|Janus Web Sockets]] are now supported.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;Networking&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Janus_Two-Phase_Commit|Two-phase commit]]. A Model 204 online can now be configured to use two-phase commit (2PC). The Janus internal socket API is used for the calls to the coordinator. JANUS commands are used for all 2PC configuration. A new JANUS port type has been added: 2PC.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Application_Subsystem_development#Commit_exits|Commit exits]] are now supported. The commit exit runs within the APSY, which is defined by the &amp;lt;var&amp;gt;[[Application_Subsystem_development#COMMITX parameter|COMMITX]]&amp;lt;/var&amp;gt; parameter and uses normal APSY processing.  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF tables&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The new &amp;lt;var&amp;gt;[[#DISPLAY ECF|DISPLAY ECF]]&amp;lt;/var&amp;gt; command and &amp;lt;var&amp;gt;[[#Managing ECF tables more efficiently|EXTERNAL REMOVE]]&amp;lt;/var&amp;gt; statement enable more efficient management of [[#Managing ECF tables more efficiently|ECF tables]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Performance&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[#MP/204 offload improvements|MP/204 offload improvements]] -- application code for these SOUL statements is now fully offloadable: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;File Records In/On&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Remember&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Position&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Sort Values&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Reset Header/Trailer&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Find and Print Count&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Find All Values&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;For Each Value&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Security&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;CA-Top Secret can [[#CA-Top Secret can disallow CCASTAT logins|disallow CCASTAT logins]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[#DEFUSER can specify a jobname not authorized to access M204|DEFUSER]] can specify a jobname not authorized to access M204.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;System enhancements&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;[[MONITOR command|MONITOR &amp;lt;var&amp;gt;USERS&amp;lt;/var&amp;gt;]]&amp;lt;/var&amp;gt; command output displays [[#New wait types for daemon/master waits|two new wait types]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;AUDIT204 enhancements&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The new TIMEHH parameter on the &amp;lt;var&amp;gt;[[#FORMAT command|FORMAT]]&amp;lt;/var&amp;gt; command of the AUDIT204 utility provides greater time stamp precision.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;New commands&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#DISPLAY ECF|DISPLAY ECF]]&amp;lt;/var&amp;gt; displays details from ECF tables, or the current status of users accessing ECF modules.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;New parameters&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#ENQTIME|ENQTIME]]&amp;lt;/var&amp;gt; specifies the number of milliseconds waited for each record locking retry wait.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#EVALOPT|EVALOPT]]&amp;lt;/var&amp;gt; controls the cancellation of a request on truncation of string data.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#MAXPRE, MAXBOUT, MAXSUBT|MAXPRE, MAXBOUT, and MAXSUBT]]&amp;lt;/var&amp;gt; can be used to cancel a runaway transaction and prevent it from filling the checkpoint data set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#NLDAPBUF|NLDAPBUF]]&amp;lt;/var&amp;gt; allows the number of LDAP buffers allocated during startup to be set in CCAIN.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#SERV4G|SERV4G]]&amp;lt;/var&amp;gt; allows testing of server tables that span a 4-gigabyte boundary.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#WEBDFLT|WEBDFLT]]&amp;lt;/var&amp;gt; changes the default JANUS WEB ALLOW rule back to ALLOW.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;Janus and TN3270 debuggers&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The debuggers can now view or watch the values of [[#Access to exposed variables|variables exposed to local routines/methods]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When execution pauses, the debuggers now [[#Subroutine or method display|display the subroutine or method]] being executed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;User/system statistics&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#MPR, MBO, MCP, and RCV|MPR, MBO, MCP, and RCV]]&amp;lt;/var&amp;gt; provide high water mark transaction information in conjunction with the &amp;lt;var&amp;gt;[[#MAXPRE, MAXBOUT, MAXSUBT|MAXPRE, MAXBOUT, and MAXSUBT]]&amp;lt;/var&amp;gt; parameters. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[#DKWTS and DKWTMICS|New system statistics]] DKWTS (DisK WaiTs) and DKWTMICS (DisK WaiT MICroSeconds) collect data to provide rough disk I/O service time numbers.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Operating system and hardware requirements==&lt;br /&gt;
&lt;br /&gt;
===Operating system requirements===&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/OS versions supported:&amp;lt;/b&amp;gt; &lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;All IBM supported releases up to and including z/OS 3.1. &amp;lt;br /&amp;gt;(For z/OS 2.2, see [[IBM z/OS 2.2 PTF requirement]].)&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Version 1.07 is sufficient for all functionality except for the following features:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;zHPF support requires version [[IBM z/OS 2.1 compatibility issue|2.1]].&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Large (1 MB) page support requires version 1.9.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Extended address volumes (EAV) requires version 1.12.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
On z/OS, Model 204 release 7.8 operates as an APF authorized load module, as required by many 7.8 features. &amp;lt;br /&amp;gt;&lt;br /&gt;
To run Model 204 unauthorized, [[Contacting Rocket Software Technical Support|contact Technical Support]].&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/VM versions supported:&amp;lt;/b&amp;gt; &lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;All IBM supported releases up to and including z/VM 7.3.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/VSE versions supported:&amp;lt;/b&amp;gt;&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;All IBM supported releases up to and including z/VSE 6.1.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Hardware requirements===&lt;br /&gt;
 &lt;br /&gt;
In general, Model 204 version 7.8 requires the IBM z/890 or above processor.&lt;br /&gt;
&amp;lt;p&amp;gt;However, the IBM z10 or above processor is required for the following features:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;large (1 MB) page support&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;IBM&#039;s High Performance FICON (zHPF) support&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; compatibility with Model 204===&lt;br /&gt;
&lt;br /&gt;
Connect&amp;lt;span class=&amp;quot;superstar&amp;quot;&amp;gt;&amp;amp;#9733;&amp;lt;/span&amp;gt; version 7.5 or 7.7 is compatible with Model 204 version 7.8.&lt;br /&gt;
&lt;br /&gt;
For more information on Connect&amp;lt;span class=&amp;quot;superstar&amp;quot;&amp;gt;&amp;amp;#9733;&amp;lt;/span&amp;gt; installation, see the [[:Category:Connect*|Connect&amp;lt;span class=&amp;quot;superstar&amp;quot;&amp;gt;&amp;amp;#9733;&amp;lt;/span&amp;gt; wiki pages]].&lt;br /&gt;
&lt;br /&gt;
==SOUL (User Language) enhancements==&lt;br /&gt;
===AmIndependent method===&lt;br /&gt;
The &amp;lt;var&amp;gt;AmIndependent&amp;lt;/var&amp;gt; method returns TRUE for daemons spawned by &amp;lt;var&amp;gt;[[RunIndependently_(Daemon_subroutine)|RunIndependently]]&amp;lt;/var&amp;gt;. (The action of &amp;lt;var&amp;gt;[[AmDaemon_(Daemon_property)|AmDaemon]]&amp;lt;/var&amp;gt; remains unchanged.)&lt;br /&gt;
&lt;br /&gt;
The following table shows the values returned by &amp;lt;var&amp;gt;AmIndependent&amp;lt;/var&amp;gt; versus &amp;lt;var&amp;gt;AmDaemon&amp;lt;/var&amp;gt; for different daemon types:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;AmDaemon&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;AmIndependent&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;$COMBG&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;False&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;False&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Independent daemon&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;False&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;True&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Other daemon&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;True&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;False&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Web, etc.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;False&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;False&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EndsWith function===&lt;br /&gt;
The [[EndsWith (String function)|EndsWith String function]] determines if one string ends with the characters in another. This is analogous to the [[StartsWith and IsStartOf (String functions)|StartsWith function]] except, of course, it checks the end of a string rather than the start.&lt;br /&gt;
&lt;br /&gt;
The following code snippet:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;gt;printText {~=&amp;quot;War and Peace&amp;quot;:endsWith(&amp;quot;Peace&amp;quot;)}&lt;br /&gt;
printText {~=&amp;quot;War and Peace&amp;quot;:endsWith(&amp;quot;War&amp;quot;)}&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
displays:&lt;br /&gt;
&amp;lt;p class=&amp;quot;output&amp;quot;&amp;gt;&amp;quot;War and Peace&amp;quot;:endsWith(&amp;quot;Peace&amp;quot;)=True&lt;br /&gt;
&amp;quot;War and Peace&amp;quot;:endsWith(&amp;quot;War&amp;quot;)=False &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===$ProcOpn===&lt;br /&gt;
&amp;lt;var&amp;gt;[[$ProcOpn|$ProcOpn]]&amp;lt;/var&amp;gt; now supports the opening of a procedure with an all-numeric name, and including a leading zero, such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%result = $procOpn(&#039;0123&#039;, &#039;MYFILE&#039;)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Support for such procedure names was initially introduced at V7.7, and this feature of &amp;lt;var&amp;gt;$ProcOpn&amp;lt;/var&amp;gt; is enabled in V7.7 with the application of zap 77z054.&lt;br /&gt;
&lt;br /&gt;
===Allow parentheses to surround a boolean enumeration object===&lt;br /&gt;
The following sample code:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;   begin                                       &lt;br /&gt;
   variables are undefined                  &lt;br /&gt;
   %isValid is boolean initial (True)       &lt;br /&gt;
   if (%isValid) then                  &lt;br /&gt;
      print &#039;in IF&#039;                            &lt;br /&gt;
   end if                                   &lt;br /&gt;
   end   &amp;lt;/p&amp;gt;      &lt;br /&gt;
&lt;br /&gt;
will now compile and run successfully, since this syntax: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;if (%isValid) then &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
is logically equivalent to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;if %isValid then &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prior to V7.8 the presence of parentheses surrounding the boolean enumeration object would have caused a compilation error. This change is enabled in V7.7 with the application of zap 77z370.&lt;br /&gt;
&lt;br /&gt;
===Support for copying Object class objects===&lt;br /&gt;
The Object class now supports the copy and deepCopy methods. For example, an Object object can be copied as follows:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;   begin               &lt;br /&gt;
   %x is object object &lt;br /&gt;
   %y is object object &lt;br /&gt;
   %y = new            &lt;br /&gt;
   %x = %y:copy        &lt;br /&gt;
   end &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This change is enabled in v7.7 with the application of zap 77z076, and within V7.6 with the application of zap 76z412.&lt;br /&gt;
&lt;br /&gt;
===Assignment of enumeration values to method variables===&lt;br /&gt;
Enumeration values can now be assigned to method variables whose result is an enumeration. So, for example, the following code:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;   begin                                               &lt;br /&gt;
   enumeration colour                                  &lt;br /&gt;
      public                                           &lt;br /&gt;
         value red                                     &lt;br /&gt;
         value white                                   &lt;br /&gt;
         value blue                                    &lt;br /&gt;
      end public                                       &lt;br /&gt;
   end enumeration                                     &lt;br /&gt;
   %func    is function getColour is enumeration colour&lt;br /&gt;
   local function getColour is enumeration colour      &lt;br /&gt;
      return blue                                      &lt;br /&gt;
   end function                                        &lt;br /&gt;
   %func    = getColour                                &lt;br /&gt;
   %func    = (colour):red                             &lt;br /&gt;
   printText {~=%(Local):(%func)}                      &lt;br /&gt;
   end  &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will produce this result:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt; %(Local):(%func)=red &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
whereas previously this line:   &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt; %func    = (colour):red &amp;lt;/p&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
would have been rejected with this message:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;MSIR.0993: Assignment invalid: mismatch between method and method variable &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This change is enabled in V7.7 with the application of zap 77z128.&lt;br /&gt;
&lt;br /&gt;
===Optional output method parameters===&lt;br /&gt;
Prior to this release output parameters could not be optional or have default values. In this release output parameters can be specified as &amp;lt;var&amp;gt;Optional&amp;lt;/var&amp;gt;, and a default value can be specified with &amp;lt;var&amp;gt;Default&amp;lt;/var&amp;gt;. One related change is that if a &amp;lt;var&amp;gt;Len&amp;lt;/var&amp;gt; value is specified with &amp;lt;var&amp;gt;Optional&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;Default&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;Output&amp;lt;/var&amp;gt;, it indicates the length of the hidden target for the output parameter if none was passed. For all other &amp;lt;var&amp;gt;Output&amp;lt;/var&amp;gt; parameters, &amp;lt;var&amp;gt;Len&amp;lt;/var&amp;gt; is meaningless, just as it was before Model 204 V7.8. The following is an example of the use of an optional output parameter:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;function getRemote( -&lt;br /&gt;
   %target is string len 32, %errorReason is string len 80 optional output -&lt;br /&gt;
) is float&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
In this example, if &amp;lt;code&amp;gt;%errorReason&amp;lt;/code&amp;gt; is not specified in a call and then set to a value longer than 80 bytes it will be truncated to 80 bytes. However, if a string of a different length is passed, the length of that string will determine truncation behavior.&lt;br /&gt;
&lt;br /&gt;
==External Call Facility enhancements==&lt;br /&gt;
===Managing ECF tables more efficiently===&lt;br /&gt;
There are two new features to help manage ECF tables more efficiently, avoid conditions where the table can fill, and prevent the definition of further entities.&lt;br /&gt;
&lt;br /&gt;
The first feature is the new &amp;lt;var&amp;gt;DISPLAY ECF&amp;lt;/var&amp;gt; command, which displays the contents of ECF tables and also the current status of users accessing ECF modules. See more details of the &amp;lt;var&amp;gt;[[#DISPLAY ECF|DISPLAY ECF]]&amp;lt;/var&amp;gt; command below.&lt;br /&gt;
&lt;br /&gt;
The second feature is a new &amp;lt;var&amp;gt;EXTERNAL REMOVE&amp;lt;/var&amp;gt; statement with the following syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;EXTERNAL REMOVE &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;modulename&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This statement causes the entry for the named module to be removed from the module table. The table entry is then placed on a free chain of entries and can be reused by issuing the &amp;lt;var&amp;gt;[[External_Call_Facility#External_Module_statement|EXTERNAL MODULE]]&amp;lt;/var&amp;gt; statement. This allows the module table to be managed with redundant entries removed, without having to recycle the ONLINE.&lt;br /&gt;
&lt;br /&gt;
An &amp;lt;var&amp;gt;EXTERNAL REMOVE&amp;lt;/var&amp;gt; statement will return &amp;lt;code&amp;gt;$status/$statusd&amp;lt;/code&amp;gt; values of &amp;lt;code&amp;gt;0/0&amp;lt;/code&amp;gt;, and most other status values that can be returned by the &amp;lt;var&amp;gt;EXTERNAL REMOVE&amp;lt;/var&amp;gt; statement are already documented in the ECF return codes table. If an &amp;lt;var&amp;gt;EXTERNAL REMOVE&amp;lt;/var&amp;gt; is attempted against a module that is currently being called (in use), then &amp;lt;code&amp;gt;$status/$statusd&amp;lt;/code&amp;gt; will return the values &amp;lt;code&amp;gt;20/1&amp;lt;/code&amp;gt; (module unavailable).&lt;br /&gt;
&lt;br /&gt;
==System enhancements==&lt;br /&gt;
&lt;br /&gt;
===New wait types for daemon/master waits===&lt;br /&gt;
&lt;br /&gt;
Two new wait types, viewable on the &amp;lt;var&amp;gt;[[MONITOR_command|MONITOR]] USERS&amp;lt;/var&amp;gt; command output, have been implemented as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; - Means a daemon thread waiting for its master thread  &amp;lt;br /&amp;gt;     &lt;br /&gt;
&amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; - Means a master thread waiting for one of its daemon threads&lt;br /&gt;
&lt;br /&gt;
This change is enabled in V7.7 with the application of zap 77z410.&lt;br /&gt;
&lt;br /&gt;
===Snap formatting changes===&lt;br /&gt;
Date/time stamps in the page headers of snaps will now be shown in normal format, rather than in Julian format as in previous versions. So in the following example, a particular snap header under v7.7 or previous versions would show as: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;SNAPID    1   19226.060155  M204.0022: Bug .. nnnnn               PAGE     1 &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
whereas the same snap header under v7.8 would show as: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;SNAPID    1  2019/08/14 06:01:06   M204.0022: Bug .. nnnnn        PAGE     1 &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, due to improvements in handling trailing blanks in snap output, a snap generated under v7.8 should be marginally smaller than the same snap generated under previous versions, assuming the same &amp;lt;var&amp;gt;[[SNAPCTL parameter|SNAPCTL]]&amp;lt;/var&amp;gt; settings.&lt;br /&gt;
&lt;br /&gt;
===Call stack trace for problem diagnosis===&lt;br /&gt;
A  call stack trace is now provided to help diagnose and resolve common errors. To enable the stack trace, do either of the following: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Set the &amp;lt;var&amp;gt;[[SIRFACT parameter|SIRFACT]] X&#039;01&#039;&amp;lt;/var&amp;gt; bit.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Set the &amp;lt;var&amp;gt;[[DEBUGUL parameter|DEBUGUL]]&amp;lt;/var&amp;gt; parameter. Note that the &amp;lt;var&amp;gt;DEBUGUL&amp;lt;/var&amp;gt; approach will introduce extra QTBL overhead. &amp;lt;p&amp;gt;(&amp;lt;var&amp;gt;DEBUGUL&amp;lt;/var&amp;gt; provides a similar facility with an include trace of procedures leading to the error, but this might not be potentially as useful as the call trace.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The call stack trace can assist in diagnosing run-time errors that might occur, as illustrated by the following &amp;quot;Variable too small for result&amp;quot; and &amp;quot;MBSCAN exceeded&amp;quot; examples.&lt;br /&gt;
&lt;br /&gt;
====Variable too small for result====&lt;br /&gt;
When the stack trace is enabled, a &amp;quot;variable too small&amp;quot; error results in the following message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;M204.2966: Error at line n, procedure &#039;&#039;procname&#039;&#039; in file &#039;&#039;procfile&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which identifies the line within a procedure where the error is occurring, in addition to the usual message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;M204.0552: Variable too small for result&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Any subsequent M204.2966 messages indicate the point in the code from where the code in error was called. For example, a stack of three subroutine calls leading to a &amp;quot;variable too small&amp;quot; error might result in the following messaging:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;M204.0552: Variable too small for result                             M204.2966: Error at line 978, procedure DOCOOLSTUFF in file COOLFILE&lt;br /&gt;
M204.2966: Called from line 1215, procedure FOOBAR.CLASS in file CLASSES&lt;br /&gt;
M204.2966: Called from line 378, procedure SILLY.CLASS in file CLASSES&lt;br /&gt;
M204.2966: Called from line 187, procedure P.ROCKANDROLL in file APSYFILE&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This information should help in diagnosing the problem. &lt;br /&gt;
&lt;br /&gt;
If the error occurs within a command level program rather than a procedure, then the M204.2966 message is replaced by an M204.2967 message, and a similar error condition to the above with a preceding call stack might be audited as follows:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;   M204.0552: Variable too small for result              &lt;br /&gt;
   M204.2967: Error at line 14 of command level program  &lt;br /&gt;
   M204.2967: Called from line 5 of command level program&lt;br /&gt;
   M204.2967: Called from line 3 of command level program &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If neither &amp;lt;var&amp;gt;SIRFACT X&#039;01&#039;&amp;lt;/var&amp;gt; nor &amp;lt;var&amp;gt;DEBUGUL&amp;lt;/var&amp;gt; is set, then the &amp;quot;variable too small&amp;quot; error produces the following messages:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;   M204.0552: Variable too small for result &lt;br /&gt;
   M204.2968: Error: no debug info &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====MBSCAN exceeded====&lt;br /&gt;
Similarly to the handling of the &amp;quot;variable too small for result&amp;quot; error, the call stack can also be used to diagnose errors where the value of &amp;lt;var&amp;gt;[[MBSCAN parameter|MBSCAN]]&amp;lt;/var&amp;gt; is exceeded as a result of a direct search of Table B records. &lt;br /&gt;
&amp;lt;p&amp;gt;Again, under V7.8, with either the &amp;lt;var&amp;gt;SIRFACT X&#039;01&#039;&amp;lt;/var&amp;gt; bit set or &amp;lt;var&amp;gt;DEBUGUL&amp;lt;/var&amp;gt; set, if a long request occurs as a result of exceeding &amp;lt;var&amp;gt;MBSCAN&amp;lt;/var&amp;gt;, then initially the following message is produced, as before:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;M204.0569: File &#039;&#039;filename&#039;&#039;, Find: Table B records to be searched = &#039;&#039;nnnn&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
followed by a DYRWT prompt message. If the user replies &#039;N&#039; to the prompt, or if the request is run in an environment (such as a batch job) where the default response is &#039;N&#039;, the following message is produced after the M204.0569 message:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;Cancelling request: M204.2969: MBSCAN (&#039;&#039;mm&#039;&#039;) exceeded, records to be searched = &#039;&#039;nnnn&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;mm&#039;&#039; is the current setting of &amp;lt;var&amp;gt;MBSCAN&amp;lt;/var&amp;gt;. The M204.2969 message is followed by M204.2966 messages displaying the call stack trace. Thus, if the following code is run from procedure MYPROC.MBSCAN against the demo database, with an &amp;lt;var&amp;gt;MBSCAN&amp;lt;/var&amp;gt; setting of 10:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;   b                           &lt;br /&gt;
   call sub1                   &lt;br /&gt;
   sub1: subroutine            &lt;br /&gt;
   fd1:                        &lt;br /&gt;
      in clients fd city = ONTARIO&lt;br /&gt;
              end find         &lt;br /&gt;
      fr fd1                      &lt;br /&gt;
         pai                      &lt;br /&gt;
         print                    &lt;br /&gt;
      end for                     &lt;br /&gt;
   end subroutine              &lt;br /&gt;
   end &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then the following messages are produced, assuming any prompts are responded to with an &#039;N&#039;:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;   M204.0569: File CLIENTS, Find: Table B records to be searched = 3415&lt;br /&gt;
   Cancelling request: M204.2969: MBSCAN (10) exceeded, records to be searched = 3415  &lt;br /&gt;
   M204.2966: Error at line 6, procedure MYPROC.MBSCAN in file MYPROC&lt;br /&gt;
   M204.2966: Called from line 3, procedure MYPROC.MBSCAN in file MYPROC  &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===appendJournalData===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[AppendJournalData_(Stringlist_function)|AppendJournalData]]&amp;lt;/var&amp;gt; function is now more tolerant of an outstanding BUMP request. Previously, if &amp;lt;var&amp;gt;AppendJournalData&amp;lt;/var&amp;gt; was called to inadvertently retrieve a large amount of journal data, typically when called implicitly from within SirScan, then any outstanding BUMP request wouldn&#039;t be honored until all of the data had been retrieved, at which point the BUMP request would be completed, and all data would be lost.&lt;br /&gt;
&lt;br /&gt;
Now, the &amp;lt;var&amp;gt;AppendJournalData&amp;lt;/var&amp;gt; process checks for outstanding BUMP requests before each track I/O is executed, thus avoiding excessive I/Os against the journal and long waits for the BUMP of such a process to complete.&lt;br /&gt;
&lt;br /&gt;
==Editor enhancements==&lt;br /&gt;
&amp;lt;p&amp;gt;The [[Model 204 full-screen editor#exit|Model 204 editor]] has been enhanced to not hold a lock on a procedure being edited. Instead the timestamp of the procedure on disk is compared against that of the edited procedure when it was loaded or last saved. If different, the save is not allowed. New commands &amp;lt;var&amp;gt;SSAVE&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;EEND&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;GGO&amp;lt;/var&amp;gt; are available to force the save in this situation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In addition, the &amp;lt;var&amp;gt;GO&amp;lt;/var&amp;gt; command no longer updates the procedure on disk before &amp;lt;var&amp;gt;INCLUDE&amp;lt;/var&amp;gt;ing it if it has not been modified in the editor.&amp;lt;/p&amp;gt;  &lt;br /&gt;
==AUDIT204 enhancements==&lt;br /&gt;
===FORMAT command===&lt;br /&gt;
TIMEHH is a new parameter used with the FORMAT command of the [[Tracking_system_activity_(CCAJRNL,_CCAAUDIT,_CCAJLOG)#AUDIT204_utility|AUDIT204]] utility.  It indicates that timestamps, printed at the beginning of each line of output, should include hundredths of a second. Requires no other arguments.&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; This parameter and the 78 version (or later) of AUDIT204 may be used against a 77 (or later) CCAJRNL.&amp;lt;/p&amp;gt;&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;//CCAIN DD *&lt;br /&gt;
FORMAT YEARFORM 4&lt;br /&gt;
TIMEHH&lt;br /&gt;
TYPE ER MS LI&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Recovery enhancements==&lt;br /&gt;
===Media Recovery in a multi-user environment===&lt;br /&gt;
It is now possible to perform media recovery by issuing the &amp;lt;var&amp;gt;REGENERATE&amp;lt;/var&amp;gt; command to roll forward selected files in a multi-user environment, with the media recovery being carried out by different users with system manager privileges. The new USING option allows for the specification of a ddname for the input journal stream to be used by the &amp;lt;var&amp;gt;REGENERATE&amp;lt;/var&amp;gt; command. Previously media recovery was restricted to single user batch jobs, using the CCAGEN ddname for the input journal. For more details, see the &amp;lt;var&amp;gt;[[#REGENERATE|REGENERATE]]&amp;lt;/var&amp;gt; command below.&lt;br /&gt;
&lt;br /&gt;
===MERGEJ now supports up to 99 input journals===&lt;br /&gt;
The MERGEJ utility, used to merge journals with overlapping timestamps prior to running Media Recovery, now supports up to 99 input SORTINnn journals to be merged. For this release it is still the case that any previously merged journal must be defined as SORTIN01 to the MERGEJ run, and thus that the MERGEJ run can not accept more than one previously merged journal as input.&lt;br /&gt;
&lt;br /&gt;
This change is also enabled in V7.7 with the application of 77z487.&lt;br /&gt;
&lt;br /&gt;
==Security enhancements==&lt;br /&gt;
===CA-Top Secret can disallow CCASTAT logins===&lt;br /&gt;
The [[CA-Top_Secret_interface|CA-Top Secret]] interface now recognizes the &amp;lt;code&amp;gt;DEFACID=&amp;lt;/code&amp;gt;, setting and does not allow CCASTAT logins in the online if &amp;lt;code&amp;gt;DEFACID&amp;lt;/code&amp;gt; is set to null. (There is no attempt to log on M204USR.) Therefore, to disallow CCASTAT logons, set DEFACID=, in [[CA-Top_Secret_interface#Preparing_a_TOPSPARM_parameter_module_with_TOPSGEN|TOPSPARM]]. CCASTAT will be opened because it contains file and group passwords, but it will not be used for logons if CCASTAT logons are not allowed.&lt;br /&gt;
&lt;br /&gt;
===CUSTOM=11 and mixed cased input===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[CUSTOM_parameter|CUSTOM]]&amp;lt;/var&amp;gt; parameter &amp;lt;var&amp;gt;CUSTOM=11&amp;lt;/var&amp;gt; setting no longer requires that a &amp;lt;var&amp;gt;*LOWER&amp;lt;/var&amp;gt; command be issued prior to a &amp;lt;var&amp;gt;LOGCTL&amp;lt;/var&amp;gt; command (to add or change a  password) to preserve mixed case input. Prior to this release, with &amp;lt;var&amp;gt;CUSTOM=11&amp;lt;/var&amp;gt; in place, *LOWER had to be issued before a &amp;lt;var&amp;gt;LOGCTL&amp;lt;/var&amp;gt; command, otherwise any mixed case password strings would automatically be translated into uppercase. This change is enabled in V7.7 with the application of zap 77z108.&lt;br /&gt;
&lt;br /&gt;
===DEFUSER can specify a jobname not authorized to access M204===&lt;br /&gt;
When specifying DEFUSER=JOBNAME and VALIDAT=LOGON in the RACFGEN parms for an ONLINE, if the specified jobname (the owning id for the ONLINE job) isn&#039;t authorized to use Model 204 via RACF, any LOGIN commands specifying no userid will now succeed (previously such a LOGON would have failed). This enables users to submit jobs with USE $JOB, whereby the string USER=jobname will be added to the submitted JCL. This in turn is useful if the specified jobname has dataset access privileges to datasets required by the submitted jobs, even if the jobname itself isn&#039;t authorized to use M204.&lt;br /&gt;
&lt;br /&gt;
==Janus product enhancements==&lt;br /&gt;
&lt;br /&gt;
===Web API calls available on transactional daemons===&lt;br /&gt;
Transactional daemons can now use the Janus Web API, mostly $functions that begin with &amp;lt;var&amp;gt;$web&amp;lt;/var&amp;gt;. The new [[$Web_Api|$web_api function]] makes it possible to test if the Janus Web API is available, whether on a Janus Web Server thread or one of its transactional daemons.&lt;br /&gt;
&lt;br /&gt;
===Web Sockets===&lt;br /&gt;
Web Sockets are now supported in Janus Web Server.&lt;br /&gt;
&lt;br /&gt;
The Web Socket protocol provides various advantages over the HTTP protocol:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Web Sockets allow full-duplex communication.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;Efficient framing of payload data uses minimal overhead.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;The Web Socket protocol is end-user extensible.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Most importantly, Web Sockets can be deployed completely within an existing HTTP/HTTPS framework.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To implement Web Sockets, you must enable the Janus Web port for Web Socket upgrades with the new &amp;lt;var&amp;gt;WEBSOCKET&amp;lt;/var&amp;gt; parameter. The WEBSOCKET option can be specified on either the port definition or the JANUS WEB rule for the URL. &lt;br /&gt;
Likewise, an individual Janus Web rule can either allow or disallow Web Socket connections with the &amp;lt;var&amp;gt;WEBSOCKET&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOWEBSOCKET&amp;lt;/var&amp;gt; parameters, respectively. &lt;br /&gt;
&lt;br /&gt;
For details on implementing Web Sockets, see the [[WebSocket_(Socket_function)|WebSocket]] wiki page.&lt;br /&gt;
&lt;br /&gt;
===$Web_Form_Parm_Binary===&lt;br /&gt;
Janus Web now defers ASCII to EBCDIC translation of form parameter values until a value is requested. This makes it possible to retrieve the exact values sent by the client rather than a translated version. This is important if a form parameter value is UTF-8 encoded and contains non-7-bit ASCII characters (for example if a form parameter contains XML). The [[$Web_Form_Parm_Binary]] function returns the exact value sent by a client for a form parameter with no character translation.&lt;br /&gt;
&lt;br /&gt;
===Janus Web Server access rule===&lt;br /&gt;
The automatic &amp;lt;var&amp;gt;[[JANUS WEB ALLOW]]&amp;lt;/var&amp;gt; rule, which allowed any user to access the port without requiring a login, is changed &amp;lt;i&amp;gt;for non-SSL ports&amp;lt;/i&amp;gt; to the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;JANUS WEB &amp;lt;i&amp;gt;portname&amp;lt;/i&amp;gt; DISALLOW *&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This rule requires a system administrator to explicitly define &amp;lt;var&amp;gt;ALLOW&amp;lt;/var&amp;gt; rules to enable users to access non-SSL ports.&lt;br /&gt;
The rule applies unless overridden by user-added rules. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; To revert from this change in the JANUS DEFINE default and make the default &lt;br /&gt;
 non-SSL &amp;lt;var&amp;gt;ALLOW&amp;lt;/var&amp;gt; rule as it was in version 7.5 and earlier (&amp;lt;code&amp;gt;ALLOW *&amp;lt;/code&amp;gt;), turn on the 1 bit of the &amp;lt;var&amp;gt;[[WEBDFLT parameter|WEBDFLT]]&amp;lt;/var&amp;gt; parameter: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;RESET WEBDFLT=1&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Increase in pending accepts for Janus BPX ports===&lt;br /&gt;
The default number of pending accepts for Janus BPX server ports has been increased from 3 to 12, thus reducing the likelihood that a pending accept may fail with the message&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;MSIR.0019 Connection request rejected for port (port), MAXCON exceeded&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The actual number of pending accepts to be supported on the port can be set with the new parameter MAXPEND, set on the &amp;lt;var&amp;gt;[[JANUS_DEFINE|JANUS DEFINE]]&amp;lt;/var&amp;gt; command, where MAXPEND can vary from 3 up to a maximum value of 32. The change to the default value is enabled in V7.7 with the application of zap 77z269.&lt;br /&gt;
&lt;br /&gt;
===TCP listen backlog increased===&lt;br /&gt;
&lt;br /&gt;
The [[Program_Communication_facilities#LISTEN_call|TCP listen]] backlog has been increased from 16 to 1024 under z/OS.&lt;br /&gt;
&lt;br /&gt;
This update tells the TCP stack to queue up a maximum of 1024 such requests before dropping any. This increased backlog reduces, or in most cases eliminates, the likelihood of a connection request drop, other than in exceptional circumstances, such as a denial of service attack. This change is enabled in V7.7 with the application of zap 77z340.&lt;br /&gt;
&lt;br /&gt;
===Defer the freeing of XMLSCREEN input XML===&lt;br /&gt;
&lt;br /&gt;
The freeing of &amp;lt;var&amp;gt;[[XMLSCREEN_and_NOXMLSCREEN_(JANUS_DEFINE_parameters)|XMLSCREEN]]&amp;lt;/var&amp;gt; input XML is now deferred until the next Read Screen or session termination. This means that if an application error is detected, the input XML can be retrieved with [[$Web_Input_Content|$Web_Input_Content]] and then logged for problem analysis. &lt;br /&gt;
&lt;br /&gt;
Prior to this release the XML received from the client was freed immediately after being used to set the input data for a Read Screen, rendering it unavailable for problem determination.&lt;br /&gt;
&lt;br /&gt;
This change is enabled in V7.7 with the application of zap 77z368.&lt;br /&gt;
&lt;br /&gt;
===XMLSCREEN and Janus Web Legacy blank stripping===&lt;br /&gt;
&lt;br /&gt;
xmlScreens and Janus Web Legacy screens now adhere to the same standard as standard screen processing in terms of stripping leading blanks from input fields defined as [[Full-screen_feature#DEBLANK_or_NODEBLANK_option|DEBLANK]] (either explicitly or implicitly).&lt;br /&gt;
&lt;br /&gt;
This change is enabled in V7.7 with the application of zap 77z400.&lt;br /&gt;
&lt;br /&gt;
===SSL input buffer size===&lt;br /&gt;
&lt;br /&gt;
The default value of &amp;lt;var&amp;gt;[[SSLIBSIZE_(JANUS_DEFINE_parameter)|SSLIBSIZE]]&amp;lt;/var&amp;gt; has been increased to 16384 + 128, or 16512. This size should ensure correct communication with all TLS spec compliant applications. It is the maximum size allowed unless you use &amp;lt;var&amp;gt;[[CUSTOM_parameter#Using_CUSTOM.3D.2818.29|CUSTOM=18]]&amp;lt;/var&amp;gt;.    &lt;br /&gt;
&lt;br /&gt;
This change is enabled in V7.7 with the application of zap 77z415.&lt;br /&gt;
&lt;br /&gt;
===Increasing LDAP buffers===&lt;br /&gt;
&lt;br /&gt;
The number of LDAP buffers allocated at startup can now be changed by setting the &amp;lt;var&amp;gt;NLDAPBUF&amp;lt;/var&amp;gt; parameter in CCAIN. See below for details on &amp;lt;var&amp;gt;[[#NLDAPBUF|NLDAPBUF]]&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Increase URL length returned with $web_form_action===&lt;br /&gt;
With this release the maximum Janus Web Server incoming URL that can be handled by &amp;lt;var&amp;gt;$web_form_action&amp;lt;/var&amp;gt; is increased from 512 bytes to 1280 bytes. This change is enabled in V7.7 with the application of zaps 77z424 and 77z448.&lt;br /&gt;
&lt;br /&gt;
===Maximum RBSIZE setting increased===&lt;br /&gt;
The maximum value for RBSIZE, set on the &amp;lt;var&amp;gt;[[JANUS DEFINE|JANUS DEFINE]]&amp;lt;/var&amp;gt; command, is now increased to 16777215 (previously the maximum was 65534). RBSIZE specifies the RPC or Request Buffer size.  On a Web port, the Janus request buffer holds browser request information such as header data, cookies, and form data. On other port types, it holds RPC input and output parameters. This change is enabled in V7.7 with the application of zap 77z427.&lt;br /&gt;
&lt;br /&gt;
===Limiting the production of MSIR.0019 and MSIR.0020 messages===&lt;br /&gt;
The production of the following messages&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;MSIR.0019 Connection request rejected for port (port), MAXCON exceeded&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;MSIR.0020 Connection request rejected for port (port), no SDAEMONS available&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
is now limited to a maximum of one each per time interval set by the &amp;lt;var&amp;gt;[[MAXAUSEW_parameter|MAXAUSEW]]&amp;lt;/var&amp;gt; parameter ( minimum seconds between &amp;lt;var&amp;gt;[[MAXAUSER_parameter|MAXAUSER]]&amp;lt;/var&amp;gt; warnings, which defaults to 10 seconds ). This avoids flooding the journal / jlog with these messages in situations where the number of connections on a port has been exceeded ( MSIR.0019 ), or the the number of available daemon threads has been exceeded ( MSIR.0020 ). &lt;br /&gt;
&lt;br /&gt;
This change is available in V7.8 with the application of zap 78z011, and within V7.7 with the application of 77z466&lt;br /&gt;
&lt;br /&gt;
==Debugger enhancements==&lt;br /&gt;
These enhancements apply to the Janus and TN3270 debuggers. &lt;br /&gt;
&lt;br /&gt;
===Access to exposed variables===&lt;br /&gt;
The debuggers can now view or watch the values of variables exposed to local routines/methods. Previously, any attempts to access an exposed variable would have displayed &amp;quot;%varname has no value&amp;quot; in the debugger session. This feature is enabled in V7.7 with the application of zap 77z363.&lt;br /&gt;
&lt;br /&gt;
===Subroutine or method display===&lt;br /&gt;
When execution pauses for a break point or runtime error, the subroutine or method being executed is indicated in the status area.  In addition, the source code line information available by right-clicking on a source line now also indicates the subroutine or method.&lt;br /&gt;
&lt;br /&gt;
==Performance enhancements==&lt;br /&gt;
&lt;br /&gt;
===MP/204 offload improvements===&lt;br /&gt;
Application code issuing the following SOUL statements will be fully offloadable:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;File Records In/On&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Remember&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Position&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Sort Values&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;                                             &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Reset Header/Trailer&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Find and Print Count&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Find All Values&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;For Each Value&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
The above improvements are enabled in V7.7 with the application of zaps 77z419 and 77z420.&lt;br /&gt;
&lt;br /&gt;
Also, [[JANUS WEB|Janus Web rules]] scanning will be offloadable. In addition, the scan for persistent web sessions ([[$Web_Form_Done]] and [[Janus Web Legacy Support]]) will be offloadable. While the rendezvous with the persistent thread will still be maintask-only, stateless requests will not need to go back to the maintask to be processed and, even for persistent requests, the persistent session lookup will be offloadable. These changes should provide better scalability for MP/204 sites with heavy Janus Web activity.&lt;br /&gt;
&lt;br /&gt;
===X3270OUT exit offloadable===&lt;br /&gt;
When running MP/204 (AMPSUBS&amp;gt;0) and using the [[Coding_SNA_Communications_Server_conversion_exit_routines#X3270OUT_.28convert_output_from_3270_format.29|X3270OUT]] exit to convert a 3270 output data stream to the appropriate device protocol, the exit can now run in parallel mode to improve performance. This change is enabled in V7.7 with the application of zap 77z313.&lt;br /&gt;
&lt;br /&gt;
The X3270OUT exit must be written to be re-entrant.&lt;br /&gt;
&lt;br /&gt;
===Internal performance improvements===&lt;br /&gt;
A number of internal performance and optimisation improvements have been made in this release. these include&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Sampling buffer pool pages rather than carrying out a full scan of large buffer pools ( NUMBUFG &amp;gt; 200000 ) when calculating BUFFnnn stats for SirMon&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Optimising group and file closure, in particular providing relief on exit from APSYs where a lerga number of groups may be in use, and where the groups may comprise a large number of file members&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Improved handling of timer queues, particularly in an MP/204 environment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;More aggressive prioritisation of journal and checkpoint I/O, in order to reduce user waits for such I/), and to reduce related waits on critical file resources &lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==New and changed commands==&lt;br /&gt;
===MONITOR===&lt;br /&gt;
The MONITOR command output now contains a new column, headed LOG, that shows the logon status of each user in the system, for example&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
USER SVR         FLS  PCPU SMPLS   RUNG    REDY    BLKI    WTSV    BLKO   SWPG &lt;br /&gt;
                   7 0.330                                                     &lt;br /&gt;
                                                                               &lt;br /&gt;
USER SVR USERID     P CUR   SLICE LOG FUNC  CNCT        CPU  SEQIO QUE  WT FLGS&lt;br /&gt;
   0   1 SUPERKLUGE S  56   0.031 CCA EVAL     5      0.012    221 OFFI 12  65 &lt;br /&gt;
   4   2 ADMIN      S  51   0.031 CCA          1      0.000     22 RUNG        &lt;br /&gt;
  20     VT75DIED           0.000              0      0.000      0       2  20 &lt;br /&gt;
  21     VT75READ           0.000             37      0.000      0       3  00 &lt;br /&gt;
  22     VT75ERRS           0.000              0      0.000      0       2  20 &lt;br /&gt;
  23     CHKPTIMO           0.000              0      0.000      0      12  20 &lt;br /&gt;
  24     CHKPTIMR           0.000              0      0.000      0      12  20 &lt;br /&gt;
  25     CHKPPST            0.000              0      0.000      0      12  20 &lt;br /&gt;
  26     CHKPAWW            0.000              0      0.000      0      12  20 &lt;br /&gt;
  27     TC62RAPS           0.000              0      0.000      0      27  04 &lt;br /&gt;
  28     TC62SRVC           0.000              0      0.000      0      27  20 &lt;br /&gt;
&amp;gt;                                                                              &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
The LOG column replaces the AGE column in the MONITOR output, as this information was considered more relevant for this command output. Possible values that are shown in the LOG column are as follows&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; CCA - CCASTAT userid&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; ESM - userid validated by an External Security Manager - ACF2, RACF, or TopSecret/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; SUB - Subsystem controlled logon&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; GST - Guest - neither logged on via CCASTAT nor by an ESM&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; PDG - Logon pending due to errors (e.g. invalid password)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This change is also available with V7.7 with the application of zap 77z478.&lt;br /&gt;
&lt;br /&gt;
===MONITOR IODEV===&lt;br /&gt;
This new command displays the total number, the current usage and the maximum number of each IODEV type. &amp;lt;p&amp;gt; If the Model 204 parameters include telnet threads (TNDEV parameter), the specified IODEV will actually execute as a daemon thread (SDAEMDEV parameter). For that reason, both the telnet and daemon IODEVs will be incremented and the telnet IODEV will appear with an appended &#039;*&#039;. &amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M IODEV &amp;lt;/p&amp;gt;                       &lt;br /&gt;
 Iodev  Total  Active ( % )  Maximum ( % )                                &lt;br /&gt;
     1      1       1  100%        1  100%                                &lt;br /&gt;
     7    300     100   33%      150   50%                                &lt;br /&gt;
    11      4       0    0%        1   25%                                &lt;br /&gt;
    15    500      50   10%       80   16%                                &lt;br /&gt;
    25      1       0    0%        0    0%                                &lt;br /&gt;
    27     10       0    0%        0    0%                                &lt;br /&gt;
    29     10       1    10%       1    10%                                &lt;br /&gt;
    51      5       0    0%        0    0%&lt;br /&gt;
    21*             1              1&lt;br /&gt;
&lt;br /&gt;
===DISPLAY ECF===&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;DISPLAY ECF {{ M | N | U } like ?} &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This new command displays details from ECF tables, or the current status of users accessing ECF modules.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D ECF M&amp;lt;/code&amp;gt; displays the contents of the module table. For example:&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;    D ECF M &lt;br /&gt;
    Module   Loadlib  Address:Length     Loaded@      Lastused@   #Calls  Flags &lt;br /&gt;
    QATUM13C PROGLIB 2FB91FB8:00000028 19023:121506 19023:121506 00000001 &lt;br /&gt;
    QATUM13B PROGLIB 2FE65000:00009C18 19023:121506 19023:121506 00000001 &lt;br /&gt;
    QATUM13A PROGLIB 2FE6EC18:00001CD8 19023:121506 19023:121506 00000001  &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
(flags may be D=deleted; S=shared; H=halted; I=Idle)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D ECF N&amp;lt;/code&amp;gt; displays contents of the name table. For example: &amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;    D ECF N&lt;br /&gt;
    Module   Logical-call-name &lt;br /&gt;
    QATUM13C MOD_QATUM13C &lt;br /&gt;
    QATUM13B MOD_QATUM13B &lt;br /&gt;
    QATUM13A MOD_QATUM13A &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D ECF U&amp;lt;/code&amp;gt; displays details of users currently accessing ECF modules. This is also the default option, and so &amp;lt;code&amp;gt;D ECF&amp;lt;/code&amp;gt; will display the same output as &amp;lt;code&amp;gt;D ECF U&amp;lt;/code&amp;gt;. For example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;    D ECF U                           &lt;br /&gt;
    User# Userid     Module   Parmlen &lt;br /&gt;
    00002 ADMIN      --none--         &lt;br /&gt;
    00003 ADMIN      COBSAMP1 00000002&lt;br /&gt;
    00004 ADMIN      COBSAMP1 00000002 &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D ECF &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;function&amp;lt;/var&amp;gt; LIKE &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;?&amp;lt;/var&amp;gt; &amp;lt;/code&amp;gt; (where &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;?&amp;lt;/var&amp;gt; is a valid pattern) displays details for entities that match the specified pattern. The function is either M (modules), N (names), or U (users), and it defaults to U. So for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;D ECF U L A&amp;lt;/p&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;D ECF U L A*&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
displays details of ECF users whose names begin with A.&lt;br /&gt;
&lt;br /&gt;
===REGENERATE===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[REGENERATE command|REGENERATE]]&amp;lt;/var&amp;gt; command can now be run in a multi-user environment by multiple users with system manager privileges. A new option USING is provided to specify the ddname of the input journal, so that the full syntax is now as follows:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;  REGENERATE [USING ddname] FILE filename [FROM dumpname | IGNORE]&lt;br /&gt;
  [TO {LAST UPDATE [BEFORE yy.ddd hh:mm:ss.th] | LAST CHECKPOINT [BEFORE yy.dd hh:mm:ss.th] &lt;br /&gt;
  | UPDATE number OF yy.ddd hh:mm:ss.th | CHECKPOINT yy.ddd hh:mm:ss.th} ]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default for the using ddname is CCAGEN, but any ddname may be used to allocate an input journal and used. For example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;  ALLOCATE REGEN1 WITH SCOPE=SYSTEM DSN=PROD1.GDGJ OLD SEQUENTIAL GEN=+2&lt;br /&gt;
  REGENERATE USING REGEN1 FILE TEST&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is the user&#039;s responsibility to ensure that the file being regenerated is not in use, and so prior to usage, &amp;lt;var&amp;gt;BUMP FILE&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;STOP FILE&amp;lt;/var&amp;gt; should be used to isolate usage against the file. If the file is in use, the REGEN will fail with these messages:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;  M204.1430: Failed to open file TEST&lt;br /&gt;
  M204.1436: Stopped processing file TEST  &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$STATUS will now be set for &amp;lt;var&amp;gt;REGENERATE&amp;lt;/var&amp;gt; with the following values:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;    &lt;br /&gt;
    0 - Success &amp;lt;br/&amp;gt;&lt;br /&gt;
    1 - No files were processed &amp;lt;br/&amp;gt;&lt;br /&gt;
    2 - At least one file stopped processing &amp;lt;br/&amp;gt;&lt;br /&gt;
    4 - A serious error occurred, REGEN failed &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similarly, &amp;lt;var&amp;gt;[[SETGRC command|SETGRC]]&amp;lt;/var&amp;gt; may be used to get the return code and error message.&lt;br /&gt;
&lt;br /&gt;
==New and changed parameters==&lt;br /&gt;
&lt;br /&gt;
===COMMITX===&lt;br /&gt;
The commit exit runs within the APSY defined by the &amp;lt;var&amp;gt;COMMITX&amp;lt;/var&amp;gt; parameter and uses normal APSY processing.&lt;br /&gt;
&lt;br /&gt;
The new parameter &amp;lt;var&amp;gt;COMMITX&amp;lt;/var&amp;gt; is settable from User 0&#039;s parameter line or by the system manager. It can be reset at any time by the system manager.&lt;br /&gt;
&lt;br /&gt;
Setting/Resetting the parameter sends a DYRWT message to the issuer and requires a Yes or No response (unless set/reset by user0).&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;var&amp;gt;COMMITX&amp;lt;/var&amp;gt; is specified, all APSY subsystems participate by default but any can be exempted.&lt;br /&gt;
&lt;br /&gt;
===ECMSUBS===&lt;br /&gt;
This maximum value may now be reset dynamically by a system manager. If the value is raised, new tasks will be added as needed up to the value specified. If the value is lowered, idle subtasks will be detached before they are activated until the new maximum is established.&lt;br /&gt;
&lt;br /&gt;
===ECMODS===&lt;br /&gt;
The new minimum value for ECMODS, the allowable number of ECF modules, is 1. Prior to V7.8 the minimum value was 0. This change is enabled in V7.7 with the application of zap 77z306.&lt;br /&gt;
&lt;br /&gt;
===ECNAMES===&lt;br /&gt;
The new minimum value for ECNAMES, the allowable number of ECF module names, is 1. Prior to V7.8 the minimum value was 0. This change is enabled in V7.7 with the application of zap 77z306.&lt;br /&gt;
&lt;br /&gt;
===ECPSIZE===&lt;br /&gt;
The new minimum value for ECPSIZE, the initial storage allocation for ECF parameters, is 1024. Prior to V7.8 the minimum value was 0. This change is enabled in V7.7 with the application of zap 77z306.&lt;br /&gt;
&lt;br /&gt;
===ENQTIME===&lt;br /&gt;
Millisecond duration of automatic record locking retry wait.&lt;br /&gt;
&lt;br /&gt;
Prior to this change, if record locking conflicts occur frequently in a busy online, any user with a non-zero value for &amp;lt;var&amp;gt;[[ENQRETRY parameter|ENQRETRY]]&amp;lt;/var&amp;gt; will wait at least 3 seconds before the conflict is dealt with. This can degrade overall system performance.      &lt;br /&gt;
                                                         &lt;br /&gt;
The &amp;lt;var&amp;gt;[[ENQTIME parameter|ENQTIME]]&amp;lt;/var&amp;gt; parameter specifies the number of milliseconds waited for each record locking retry wait. &amp;lt;var&amp;gt;ENQTIME&amp;lt;/var&amp;gt; can be between 1 and 60000, corresponding to a minimum of 1 millisecond and a maximum of 1 minute. The default value of &amp;lt;var&amp;gt;ENQTIME&amp;lt;/var&amp;gt; is 3000 (3 seconds).            &lt;br /&gt;
                                                         &lt;br /&gt;
For example, with &amp;lt;code&amp;gt;ENQTIME = 100&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ENQRETRY = 7&amp;lt;/code&amp;gt;, after a record locking conflict occurs the thread will retry 7 times with wait intervals of .1 seconds, and so within at most .7 seconds either the lock becomes available or the conflict triggers an On unit or cancels the request.     &lt;br /&gt;
                                                         &lt;br /&gt;
The &amp;lt;var&amp;gt;ENQTIME&amp;lt;/var&amp;gt; parameter may also be reset with $ResetN. &lt;br /&gt;
&lt;br /&gt;
This new parameter is enabled in V7.7 with the application of zap 77z299.&lt;br /&gt;
&lt;br /&gt;
===EVALOPT===&lt;br /&gt;
The new &amp;lt;var&amp;gt;[[EVALOPT parameter|EVALOPT]]&amp;lt;/var&amp;gt; parameter controls the cancellation of a request on truncation of string data. The default value is 0, and currently there is just one setting, 1, which means &amp;quot;cancel a request if truncation of string data occurs.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For example, with the default of 0 in place, the following code &amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;    %x is string len 1   &lt;br /&gt;
    %y is string len 2   &lt;br /&gt;
    %y = &#039;ab&#039;            &lt;br /&gt;
    %x = %y              &lt;br /&gt;
    printtext {~} = {%x} &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
would cause silent truncation, and give the result&lt;br /&gt;
    &amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%x = a &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;var&amp;gt;EVALOPT&amp;lt;/var&amp;gt; is set to 1, then the above code produces the following message:&lt;br /&gt;
    &amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.0552: Variable too small for result &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the request is cancelled.&lt;br /&gt;
&lt;br /&gt;
===LFSCB===&lt;br /&gt;
&amp;lt;var&amp;gt;LFSCB&amp;lt;/var&amp;gt;, the length of the full screen buffer, now has a new minimum value of 8 (the previous minimum was 0). This change is enabled in v7.7 with the application of zap 77z042, and within V7.6 with the application of zap 76z393.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MAXPRE, MAXBOUT, MAXSUBT===&lt;br /&gt;
&amp;lt;p&amp;gt;Introduced in zap 77z257.&amp;lt;/p&amp;gt;&lt;br /&gt;
The new &amp;lt;var&amp;gt;MAXPRE&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;MAXBOUT&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;MAXSUBT&amp;lt;/var&amp;gt; parameters can be used to cancel a runaway transaction and prevent it from filling the checkpoint data set. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;MAXPRE&amp;lt;/var&amp;gt;:  Maximum number of pre-images per transaction.  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;MAXBOUT&amp;lt;/var&amp;gt;: Maximum number of backout pages per transaction. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;MAXSUBT&amp;lt;/var&amp;gt;: Maximum number of subtransaction checkpoints that a transaction can span.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Each new parameter defaults to unlimited. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If a parameter value is set, a transaction is cancelled if that value is exceeded, and the following message is displayed:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.0524: Maximum number (&amp;lt;i&amp;gt;num&amp;lt;/i&amp;gt;) of &amp;lt;i&amp;gt;parameter&amp;lt;/i&amp;gt; exceeded.&amp;lt;/p&amp;gt;&lt;br /&gt;
where &amp;lt;i&amp;gt;num&amp;lt;/i&amp;gt; is the value set for &amp;lt;i&amp;gt;parameter&amp;lt;/i&amp;gt; (&amp;lt;var&amp;gt;MAXPRE&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;MAXBOUT&amp;lt;/var&amp;gt;, or &amp;lt;var&amp;gt;MAXSUBT&amp;lt;/var&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===MODENAME in a Transfer Control PROCESSGROUP===&lt;br /&gt;
Previously the MODENAME parameter has been ignored in VTAM TRANSFER PROCESSGROUP processing.   &lt;br /&gt;
&lt;br /&gt;
As of V78 with 78Z029 applied, Users will be able to control the characteristics of a session (for example, Display Model, Ru size, EDS support et al.) bound at the VTAM Transfer Control Target&lt;br /&gt;
by means of the VTAM Transfer PROCESSGROUP&#039;s MODENAME. &lt;br /&gt;
  &lt;br /&gt;
A null or unspecified MODENAME in a VTAM Transfer PROCESSGROUP definition will result in the Target LU&#039;s  &lt;br /&gt;
Default LOGMODE being used to Bind the Target Session (This is how all VTAM Transfers worked previously).  &lt;br /&gt;
     &lt;br /&gt;
Specifying MODENAME=LOGON or MODENAME=LOGIN in a VTAM TRANSFER PROCESSGROUP definition results in the LOGMODE used     &lt;br /&gt;
to Logon to the Source Online also being used to Bind the Session at the Transfer Target.                &lt;br /&gt;
   &lt;br /&gt;
Otherwise, anything specified in a VTAM TRANSFER PROCESSGROUP MODENAME parameter will be assumed to be a &lt;br /&gt;
valid VTAM LOGMODE and will be used to Bind the Transferred session at the Target. There is a potential&lt;br /&gt;
for upward incompatibility in the case where a VTAM TRANSFER PROCESSGROUP definition specifies an invalid value for MODENAME: &lt;br /&gt;
  &lt;br /&gt;
Since the MODENAME is no longer ignored, an invalid value will now fail the Transfer.&lt;br /&gt;
     &lt;br /&gt;
A failed Transfer consequent to an invalid LOGMODE or a LOGMODE unknown at the Target is flagged with:&lt;br /&gt;
M204.2483 &#039;unknown-modename  is not a valid LOGMODE name&#039;.&lt;br /&gt;
&lt;br /&gt;
===MQMXTASK===&lt;br /&gt;
This maximum value may now be reset dynamically by a system manager. If the value is raised, new tasks will be added as needed up to the value specified. If the value is lowered, idle subtasks will be detached before they are activated until the new maximum is established.&lt;br /&gt;
&lt;br /&gt;
===NLDAPBUF===&lt;br /&gt;
This new parameter allows the number of LDAP buffers allocated during startup to be set in CCAIN. The default value is 2, and the settable value can range from 0 to 65535.&lt;br /&gt;
&lt;br /&gt;
===PUPDTH (new minimum value)===&lt;br /&gt;
If a user sets the &amp;lt;var&amp;gt;[[PUPDTH parameter|PUPDTH]]&amp;lt;/var&amp;gt; parameter to 0, it will now automatically be increased to 1, its minimum value.&lt;br /&gt;
&lt;br /&gt;
===SERV4G===&lt;br /&gt;
This parameter allows testing of server tables that span a 4-gigabyte boundary. For example, if &amp;lt;var&amp;gt;SERV4G&amp;lt;/var&amp;gt; is &amp;lt;code&amp;gt;X&#039;FFFFF000&#039;&amp;lt;/code&amp;gt;, each ATB server will begin at &amp;lt;code&amp;gt;XX_FFFFF000&amp;lt;/code&amp;gt;. If &amp;lt;var&amp;gt;SERV4G&amp;lt;/var&amp;gt; is &amp;lt;code&amp;gt;X&#039;FFFF0000&#039;&amp;lt;/code&amp;gt;, each ATB server will begin at &amp;lt;code&amp;gt;XX_FFFF0000&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;XX&amp;lt;/code&amp;gt; is determined by the storage available on the system. The parameter is set in CCAIN.&lt;br /&gt;
&lt;br /&gt;
The contents of the ATB server are specified by using the &amp;lt;var&amp;gt;[[SERVGA parameter|SERVGA]]&amp;lt;/var&amp;gt; parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if you want VTBL to span the 4G boundary, you can use these settings: &amp;lt;code&amp;gt;SERV4G=X&#039;FFFFF000&#039;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SERVGA=X&#039;00040000&#039;&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;LVTBL=200 (6400 bytes, X&#039;1900&#039;)&amp;lt;/code&amp;gt;. This will force each server&#039;s VTBL to begin at &amp;lt;code&amp;gt;XX_FFFFF000&amp;lt;/code&amp;gt; and end at &amp;lt;code&amp;gt;XX+1_00000900&amp;lt;/code&amp;gt;.&lt;br /&gt;
===SIRTERM===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[SIRTERM parameter|SIRTERM]]&amp;lt;/var&amp;gt; (Sirius terminal options) parameter settings have changed. &lt;br /&gt;
The changes to &amp;lt;var&amp;gt;SIRTERM&amp;lt;/var&amp;gt; allow a user to preclude a reset to a Model that is not supported by the terminal emulator in use.&lt;br /&gt;
&lt;br /&gt;
The X&#039;01&#039; setting (MODEL 6 support) is no longer used. &lt;br /&gt;
&lt;br /&gt;
The X&#039;02&#039; setting (Write Structured Field Query Support) now supports MODEL 6 terminals by default. &lt;br /&gt;
&lt;br /&gt;
The new X&#039;08&#039; setting always issues a Write Structured Field Query for Terminal Model Resets for terminals connected to Model 204 through VTAM or TELNET, provided that X&#039;02&#039; has been set. This precludes Terminal Model RESETs to Models that are not supported by the terminal emulator in use.&lt;br /&gt;
&lt;br /&gt;
===WEBDFLT===&lt;br /&gt;
At V7.7, the default access rule for non-SSL ports was changed from ALLOW * to DISALLOW *, meaning that unless any ALLOW rules were in place resulting in a login/password prompt, the port couldn&#039;t be accessed. The new &amp;lt;var&amp;gt;[[WEBDFLT_parameter|WEBDFLT]]&amp;lt;/var&amp;gt; parameter may be set to 1 for reversion to the old default of ALLOW *. This new parameter is enabled in V7.7 with the application of zap 77z090. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;RESET WEBDFLT&amp;lt;/var&amp;gt; requires system administrator privileges. It is recommended to reset the 1 bit of &amp;lt;var&amp;gt;WEBDFLT&amp;lt;/var&amp;gt; to zero after issuing a series of &amp;lt;var&amp;gt;JANUS DEFINE&amp;lt;/var&amp;gt; commands which need &amp;lt;var&amp;gt;WEBDFLT=1&amp;lt;/var&amp;gt;, as in the CCAIN input stream.&lt;br /&gt;
&lt;br /&gt;
===WEBOPT===&lt;br /&gt;
The new x&#039;10&#039; setting of &amp;lt;var&amp;gt;[[WEBOPT_parameter|WEBOPT]]&amp;lt;/var&amp;gt; allows transaction daemon threads to access web data owned by the ancestor ( usually the parent ) thread.&lt;br /&gt;
&lt;br /&gt;
==New and changed statistics==&lt;br /&gt;
===MPR, MBO, MCP, and RCV===&lt;br /&gt;
Introduced in zap 77z257.&lt;br /&gt;
&amp;lt;p&amp;gt;These statistics provide high water mark transaction information. (Since-last values will not be available until V78 GA.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;They are useful in conjunction with the &amp;lt;var&amp;gt;[[#MAXPRE, MAXBOUT, MAXSUBT|MAXPRE, MAXBOUT, and MAXSUBT]]&amp;lt;/VAR&amp;gt; parameters. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
User/system statistics:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;MPR: High water mark of transaction pre-images. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;MBO: High water mark of transaction backout pages. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;MCP: High water mark of transaction chkpoint spans. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
System statistics: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;RCV: Number of blocks needed for subtransaction recovery &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt; M204.0843 now displays the RCV statistic for subtransaction checkpoints.&lt;br /&gt;
The size of recovery checkpoint must be greater than the sum of the last RCV value plus the number of records in [[System_and_media_recovery#RESTART_recovery_considerations_for_sub-transaction_checkpoints|RESTART and RESTARTS]].&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DKWTS and DKWTMICS===&lt;br /&gt;
Introduced in zap 77z7289.&lt;br /&gt;
&amp;lt;p&amp;gt;The new system statistics DKWTS (DisK WaiTs) and DKWTMICS (DisK WaiT MICroSeconds) collect data to provide rough disk I/O service time numbers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DKWTS shows the number of disk I/O waits. DKWTMICS shows the total wait time for those waits in microseconds. Dividing the difference in DKWTMICS by the difference in DKWTS over an interval provides the average disk I/O wait time in microseconds.              &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt; &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The wait time does include internal Model 204 scheduler delays, so on a CPU bound Model 204 system, the service times calculated from DKWTS and DKWTMICS are likely to be an overestimate of actual service times.&amp;lt;/li&amp;gt;  &lt;br /&gt;
                                                                    &lt;br /&gt;
&amp;lt;li&amp;gt;DKWTS and DKWTMICS are not available in SirMon; use &amp;lt;var&amp;gt;[[MONITOR_command|MONITOR]] SYSTEM STATISTICS&amp;lt;/var&amp;gt; to view these statistics.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;  &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compatibility issues==&lt;br /&gt;
===&amp;lt;b id=&amp;quot;listNewInit&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;$ListNew cannot be used in Initial clause===&lt;br /&gt;
It is now a compilation error if &amp;lt;var&amp;gt;$ListNew&amp;lt;/var&amp;gt; is attempted to be used in the &amp;lt;var&amp;gt;Initial&amp;lt;/var&amp;gt; clause of a &lt;br /&gt;
[[Using_variables_and_values_in_computation#Declare_statements_for_.25variables|declaration statement]].&lt;br /&gt;
&amp;lt;p&amp;gt;This change is propagated by zap maintenance to versions 7.5 (zap 75Z487), 7.6 (zap 76Z514), and 7.7 (zap 77z281) of Model 204.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Strictly speaking, this would not be considered a compilation error, because previously although &amp;lt;code&amp;gt;..&amp;amp;nbsp;Initial($ListNew)&amp;lt;/code&amp;gt; did not produce a compilation error, in almost all circumstances it would produce a snap if the initialized %variable were used with some other &amp;lt;var&amp;gt;$List&amp;lt;i&amp;gt;xxx&amp;lt;/i&amp;gt;&amp;lt;/var&amp;gt; invocation.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Restricting the use of the CUSTOM=38 setting===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[CUSTOM parameter|CUSTOM=38]]&amp;lt;/var&amp;gt; parameter setting, introduced at V7.5, inadvertently provided System Manager privileges to all users via the &amp;lt;var&amp;gt;RESET&amp;lt;/var&amp;gt; command. This &amp;lt;var&amp;gt;CUSTOM&amp;lt;/var&amp;gt; setting is now restricted to the &amp;lt;var&amp;gt;RESET&amp;lt;/var&amp;gt; of the &amp;lt;var&amp;gt;LAUDIT&amp;lt;/var&amp;gt; parameter.&lt;br /&gt;
&lt;br /&gt;
===Disabling of Closure support===&lt;br /&gt;
Due to a non-trivial backward incompatibility issue related to Closure support, introduced in V7.7, this feature, which can best be described as exposed methods assigned to method variables, has been disabled in this release. This change was also made to V7.7 with application of zap 77z119.&lt;br /&gt;
&lt;br /&gt;
===Password delimiter enforced===&lt;br /&gt;
When using &amp;lt;var&amp;gt;IFSTRTN&amp;lt;/var&amp;gt; to log on to a Model 204 online from an IFAM2 application, both the logonid and password must be followed by a semicolon, which is the delimiter. For example:      &lt;br /&gt;
                                      &lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;CALL IFSTRTN(RC,&#039;logonid;password;&#039;...)&amp;lt;/p&amp;gt;&lt;br /&gt;
                 &lt;br /&gt;
If a semicolon does not follow the password string, the following message will now be issued:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.2964: Password missing or too long &amp;lt;/p&amp;gt;                 &lt;br /&gt;
                                                         &lt;br /&gt;
Previously, a semicolon following the password was not required and the first blank served as a password delimiter.  However, as of V7.7, embedded blanks are valid password characters and a semicolon is now required to delimit the password.&lt;br /&gt;
&lt;br /&gt;
This change is enabled in V7.7 with the application of zap 77z231.&lt;br /&gt;
&lt;br /&gt;
===PAGESZ parameter validated===&lt;br /&gt;
Previously it was possible to set the &amp;lt;var&amp;gt;PAGESZ&amp;lt;/var&amp;gt; parameter to any value, although Model 204 internally supports one page size of 6184, and any deviation from this value would have led to problems during file creation. The value of this parameter is now controlled, such that setting it to any value other than 6184 will generate an M204.1149 message with the parameter being reset to 6184.&lt;br /&gt;
&lt;br /&gt;
===ECPRIV and the IDCAMS facility===&lt;br /&gt;
At V7.7 a security loophole was closed, whereby all ECF modules were run under external-authorizer profile of the calling user. Previously any ECF tasks were run under the owning job&#039;s external-authorizer profile, and in order for certain sites to retain that ability, a new setting of &amp;lt;var&amp;gt;ECPRIV&amp;lt;/var&amp;gt;, value 4, was introduced to retain the ability to run ECF tasks using the job&#039;s security profile. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;ECPRIV&amp;lt;/var&amp;gt; 4 setting potentially introduced a security loophole when calling the IDCAMS interface, based upon what the IDCAMS utility is able to do at a system level. Consequently as of this release, the &amp;lt;var&amp;gt;ECPRIV&amp;lt;/var&amp;gt; 4 setting will be ignored when calling the IDCAMS facility via ECF, and such IDCAMS processes will always use the calling user&#039;s security profile. Any existing jobs that use ECF to call the IDCAMS utility with the &amp;lt;var&amp;gt;ECFPRIV&amp;lt;/var&amp;gt; 4 bit set should be checked to ensure that the calling user&#039;s security profile still satisfies the job&#039;s requirements.&lt;br /&gt;
&lt;br /&gt;
===TCPOPTS is view-only===&lt;br /&gt;
In previous versions the &amp;lt;var&amp;gt;TCPOPTS&amp;lt;/var&amp;gt; parameter, which identifies the type of IP addressing in use (v4 or v6), was resettable, although it was always documented as a view-only parameter. The parameter is now handled as a view-only parameter, and any attempts to reset the parameter will result in the following message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;gt;   M204.1123: Parameter TCPOPTS not reset&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ZHPF command can only be issued by a system manager===&lt;br /&gt;
In previous versions it was possible to issue the &amp;lt;var&amp;gt;ZHPF&amp;lt;/var&amp;gt; command without being logged on. From this release onwards, a user must be logged on with system manager privileges in order to issue this command.&lt;br /&gt;
&lt;br /&gt;
Additionally, the command output will now only  display results for currently open files.&lt;br /&gt;
&lt;br /&gt;
This change is enabled in v7.7 with the application of zap 77z264.&lt;br /&gt;
&lt;br /&gt;
===Terminal MODEL reset failure===&lt;br /&gt;
If a reset of the terminal &amp;lt;var&amp;gt;MODEL&amp;lt;/var&amp;gt; parameter fails due to an undersized output page buffer, then in addition to the existing messages that inform the user of this failure:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;gt;    M204.1875 UNABLE TO RESET MODEL TO %C &lt;br /&gt;
    M204.1123: Parameter MODEL not reset&amp;lt;/p&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
the following message will now be issued:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;gt;    M204.1008: LOUTPB must be increased to at least &amp;lt;number&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
                                                         &lt;br /&gt;
where &amp;lt;number&amp;gt; is the minimum value of &amp;lt;var&amp;gt;LOUTPB&amp;lt;/var&amp;gt; necessary to support the terminal model.&lt;br /&gt;
&lt;br /&gt;
This change is enabled in V7.7 with the application of zap 77z309.&lt;br /&gt;
&lt;br /&gt;
===BUF and FBMX stats removed===&lt;br /&gt;
Unnecessary scans of the buffer pool have been eliminated from most forms of the MONITOR command ( other than MONITOR DISKBUFF itself ), and this provides performance gain when running these commands. However, as a result of this the BUF stat on the MONITOR command output, and the FBMX stat reported in the system final stats block have been removed. These stats were of extremely limited value, and their elimination should not cause any problems for system management. This change is implemented in V7.8 via zap 78z077, and in V7.7 by zap 77z463.&lt;br /&gt;
&lt;br /&gt;
==Notes for system manager and installer==&lt;br /&gt;
===CRAM SVC installation is deprecated===&lt;br /&gt;
The CRAM SVC installation has been deprecated as of version 7.5. &amp;lt;br /&amp;gt;Installation of CRAM-XDM is described as part of the [[Model 204 installation]].&lt;br /&gt;
===Authorization and maintenance zaps===&lt;br /&gt;
When you download Rocket M204 product object files, all relevant authorization keys and all current maintenance zaps are pre-applied to the object files as part of the download process.&lt;br /&gt;
&lt;br /&gt;
==New products==&lt;br /&gt;
===Janus Two-Phase Commit===&lt;br /&gt;
[[Janus Two-Phase Commit]] support makes it possible to create global transactions where updates on multiple Model 204 Onlines or &amp;lt;var&amp;gt;Imagine&amp;lt;/var&amp;gt; can be atomically committed or backed out.&lt;br /&gt;
&lt;br /&gt;
===Commit Exit===&lt;br /&gt;
The [[Application_Subsystem_development#Commit_exits|Commit exit]] product allows for the invocation of specified APSY code when an an APSY TBO transaction executes its first explicit or implicit COMMIT. The feature is controlled by the new COMMITX parameter.&lt;br /&gt;
&lt;br /&gt;
==New and changed messages==&lt;br /&gt;
&lt;br /&gt;
See [[New and updated messages in Model 204 version 7.8|New and updated messages in Model 204 version 7.8]] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Release notes]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Release_notes_for_Model_204_version_7.7&amp;diff=120284</id>
		<title>Release notes for Model 204 version 7.7</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Release_notes_for_Model_204_version_7.7&amp;diff=120284"/>
		<updated>2024-09-18T19:38:57Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* Operating system requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These release notes list the enhancements and other changes contained in Model 204 version 7.7. &lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
These release notes contain installation and features information for the Rocket Model 204 version 7.7 release.&lt;br /&gt;
Before beginning your installation, please read through this information about product installation and changes.&lt;br /&gt;
&lt;br /&gt;
==New in this release==&lt;br /&gt;
The table below cites some highlights of Model&amp;amp;nbsp;204 version 7.7. For a full list of features, refer to the Table of Contents. &lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;Category&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Feature&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Performance&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Continued expansion of 64-bit addressability. See [[#Elimination of BTB buffers|Elimination of BTB buffers]]. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Greater zIIP processor availability: M204 HPO and Fast/Unload HPO. See [[#zIIP exploitation|zIIP exploitation]]. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;zIIP load tuning. See [[#MPDELAY and MPDELAYZ (new)|MPDELAYZ]], [[#SCHDOFLS (new)|SCHDOFLS]], [[#SCHDOPT (change to X&#039;20&#039; bit processing)|SCHDOPT]]. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Essential removal of application limits on the [[#Increase in request limit for number of images, screens, and menus|number of images, screens, and menus]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Support for large data sets (as many as 16 million tracks) for the Model&amp;amp;nbsp;204 Checkpoint facility [[Checkpoints: Storing before-images of changed pages#Creating the CHKPOINT.2FCHKPNT .28and CHKPNTS.29 data set|CHKPOINT or CHKPNTS data sets]]. See [[System_and_media_recovery#ROLL_BACK_processing.2C_Pass_2|ROLL BACK processing, Pass 2]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Security&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Stronger cryptographic algorithms: SHA-384, SHA-512. See [[#&amp;quot;SSL&amp;quot; String methods|&amp;quot;SSL&amp;quot; String methods]], [[#New DigestAlgorithm values|New DigestAlgorithm values]], and [[#New default certificate-signing algorithm|New default certificate-signing algorithm]]. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Longer RSA keys (as many as 4096 bits). See [[#Janus Network Security ciphers and private keys|Janus Network Security ciphers and private keys]]. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Support for [[#Long password support|longer and mixed-case login passwords]]. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;Add-on enhancements&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A more versatile Fast/Unload through [[#Integration of Fast/Unload with the Online load module|integration with Model&amp;amp;nbsp;204]].  &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Janus products&#039; [[#Support for IPV6|support for the IPV6 network protocol]], expanding the network address space from 32 to 128 bits. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Operating system and hardware requirements==&lt;br /&gt;
&lt;br /&gt;
===Operating system requirements===&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/OS versions supported:&amp;lt;/b&amp;gt; &lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;All IBM supported releases up to and including z/OS 3.1. &amp;lt;br /&amp;gt;(For z/OS 2.2, see [[IBM z/OS 2.2 PTF requirement]].)&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Version 1.07 is sufficient for all functionality except for the following features:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;zHPF support requires version [[IBM z/OS 2.1 compatibility issue|2.1]].&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Large (1 MB) page support requires version 1.9.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Extended address volumes (EAV) requires version 1.12.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
On z/OS, Model 204 release 7.7 operates as an APF authorized load module, as required by many 7.7 features. &amp;lt;br /&amp;gt;&lt;br /&gt;
To run Model 204 unauthorized, [[Contacting Rocket Software Technical Support|contact Technical Support]].&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/VM versions supported:&amp;lt;/b&amp;gt; &lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;All IBM supported releases up to and including z/VM 7.3.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/VSE versions supported:&amp;lt;/b&amp;gt;&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;All IBM supported releases up to and including z/VSE 6.1.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Hardware requirements===&lt;br /&gt;
 &lt;br /&gt;
In general, Model 204 version 7.7 requires the IBM z/890 or above processor.&lt;br /&gt;
&amp;lt;p&amp;gt;However, the IBM z10 or above processor is required for the following features:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;large (1 MB) page support&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;IBM&#039;s High Performance FICON (zHPF) support&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Model 204 compatibility with operating systems===&lt;br /&gt;
&lt;br /&gt;
For information on Model 204 certification with IBM operating systems, see [[Model 204 system requirements]].&lt;br /&gt;
&lt;br /&gt;
===Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; compatibility with Model 204===&lt;br /&gt;
&lt;br /&gt;
Connect&amp;lt;span class=&amp;quot;superstar&amp;quot;&amp;gt;&amp;amp;#9733;&amp;lt;/span&amp;gt; version 7.5 or 7.7 is compatible with Model 204 version 7.7.&lt;br /&gt;
&lt;br /&gt;
For more information on Connect&amp;lt;span class=&amp;quot;superstar&amp;quot;&amp;gt;&amp;amp;#9733;&amp;lt;/span&amp;gt; installation, see the [[:Category:Connect*|Connect&amp;lt;span class=&amp;quot;superstar&amp;quot;&amp;gt;&amp;amp;#9733;&amp;lt;/span&amp;gt; wiki pages]].&lt;br /&gt;
&lt;br /&gt;
==SOUL (User Language) enhancements==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New and changed classes and methods===&lt;br /&gt;
&lt;br /&gt;
====New exception class: WriteError====&lt;br /&gt;
&amp;lt;var&amp;gt;[[WriteError class|WriteError]]&amp;lt;/var&amp;gt; exceptions are thrown by the &amp;lt;var&amp;gt;Close&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;WriteBlock&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;WriteRecord&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;WriteRecords&amp;lt;/var&amp;gt; methods in the [[Dataset class]] if they encounter a full output &amp;lt;var&amp;gt;Dataset&amp;lt;/var&amp;gt; object.&lt;br /&gt;
&lt;br /&gt;
====New default certificate-signing algorithm====&lt;br /&gt;
[[Janus Network Security]] as well as the &amp;lt;var&amp;gt;[[Stringlist_class|StringList]]&amp;lt;/var&amp;gt; methods &amp;lt;var&amp;gt;[[AppendSignedCertificate (Stringlist function)|AppendSignedCertificate]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[AppendSignedClientCertificate (Stringlist function)|AppendSignedClientCertificate]]&amp;lt;/var&amp;gt; methods have changed their default signature algorithm from SHA-1 to SHA-256.&lt;br /&gt;
&lt;br /&gt;
This change is propagated by zap maintenance to versions 7.6 and 7.5 of Model&amp;amp;nbsp;204.&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;SSL&amp;quot; String methods====&lt;br /&gt;
These new methods are added:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;Method&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[SHA384digest (String function)|SHA384digest]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SHA-384 digest&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[SHA512digest (String function)|SHA512digest]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SHA-512 digest&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====New LoadMsgctl method====&lt;br /&gt;
The new &amp;lt;var&amp;gt;[[LoadMsgctl (XmlDoc subroutine)|LoadMsgctl]]&amp;lt;/var&amp;gt; method lets you view what &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; messages have been affected by &amp;lt;var&amp;gt;[[MSGCTL command|MSGCTL]]&amp;lt;/var&amp;gt; commands. The method also displays the current attributes of those messages. &amp;lt;!-- PDS-6119 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, to better understand the effect of the &amp;lt;var&amp;gt;MSGCTL&amp;lt;/var&amp;gt; command, the [[RKTools]] &amp;lt;code&amp;gt;SIRIUS&amp;lt;/code&amp;gt; file will contain a procedure you can use to display the &amp;lt;var&amp;gt;MSGCTL&amp;lt;/var&amp;gt; commands that have been specified in the Online session.&lt;br /&gt;
&lt;br /&gt;
====New DigestAlgorithm values====&lt;br /&gt;
Values &amp;lt;var&amp;gt;SHA384&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;SHA512&amp;lt;/var&amp;gt; are added to the [[DigestAlgorithm enumeration]].&lt;br /&gt;
&lt;br /&gt;
====Method variable invocation====&lt;br /&gt;
[[Method variables]] can now be invoked using &amp;lt;code&amp;gt;%var()&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;%obj:var()&amp;lt;/code&amp;gt;, as in JavaScript.&lt;br /&gt;
&lt;br /&gt;
====X509CertificateToXmlDoc method support for unknown elements====&lt;br /&gt;
A certificate&#039;s &amp;lt;code&amp;gt;&amp;amp;lt;RelativeDistinguishedName&amp;amp;gt;&amp;lt;/code&amp;gt; element can contain a wide variety of attributes that &amp;lt;var&amp;gt;X509CertificateToXmlDoc&amp;lt;/var&amp;gt; does not understand. Under Model&amp;amp;nbsp;204 7.6 and earlier, this results in a parse exception, but under 7.7 and later, such attributes are added as &amp;lt;code&amp;gt;&amp;amp;lt;unknown&amp;amp;gt;&amp;lt;/code&amp;gt; elements with an &amp;lt;code&amp;gt;&amp;amp;lt;ObjectIdentifier&amp;amp;gt;&amp;lt;/code&amp;gt; element that indicates the ASN.1 object identifier. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You are advised not to refer to such an &amp;lt;code&amp;gt;&amp;amp;lt;unknown&amp;amp;gt;&amp;lt;/code&amp;gt; element in your programs, since future updates to the &amp;lt;var&amp;gt;X509CertificateToXmlDoc&amp;lt;/var&amp;gt; method might add support for the element, in which case the element name will change to a proper name. If such an element is of interest, [[Contacting Rocket Software Technical Support|contact Rocket Software technical support]]. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resulting element length in &amp;quot;ToXmlDoc&amp;quot; String methods====&lt;br /&gt;
Prior to version 7.7 of Model&amp;amp;nbsp;204, the &amp;lt;var&amp;gt;[[DerToXmlDoc (String function)|DerToXmlDoc]]&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;[[X509CertificateToXmlDoc (String function)|X509CertificateToXmlDoc]]&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;[[X509CrlToXmlDoc (String function)|X509CrlToXmlDoc]]&amp;lt;/var&amp;gt;, and&lt;br /&gt;
&amp;lt;var&amp;gt;[[RSAPrivateKeyToXmlDoc (String function)|RSAPrivateKeyToXmlDoc]]&amp;lt;/var&amp;gt; methods failed if input to them created any element in the result &amp;lt;var&amp;gt;XmlDoc&amp;lt;/var&amp;gt; with a text child whose length exceeded 650 characters. &lt;br /&gt;
An example of such input is a 4096-bit key (which requires 1024 hex characters).&lt;br /&gt;
&lt;br /&gt;
As of version 7.7, the lengths of the created text nodes are not restricted.&lt;br /&gt;
&lt;br /&gt;
====LDAP request length limit====&lt;br /&gt;
Prior to version 7.7 of Model&amp;amp;nbsp;204, the SOUL [[LDAP class#limit|LDAP client buffers]] allowed a limit of 6144 bytes per request. As of 7.7, the limit is increased to 8184.&lt;br /&gt;
&lt;br /&gt;
===New XHTML entities for square-bracket characters===&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;amp;lsqb;&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;&amp;amp;rsqb;&amp;lt;/b&amp;gt; are newly supported as [[XML processing in Janus SOAP#Entity references|XMHTL entities]] (notably in the [[U (String function)#brackets|U method]]). This provides a better approach to specifying square brackets (such as for [[XPath#Some notes on XPath usage|XPath]] expressions) than the formerly recommended use of &amp;lt;var&amp;gt;Static&amp;lt;/var&amp;gt; %variables initialized to the correct values. &lt;br /&gt;
&lt;br /&gt;
This change is propagated by zap maintenance to version 7.6 of Model 204. &lt;br /&gt;
&lt;br /&gt;
For example, to produce an XPath expression equivalent to the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*/pers[@name=&amp;quot;Hector&amp;quot;] &amp;lt;/nowiki&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
Code like this was recommended under version 7.5 of Model&amp;amp;nbsp;204:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%lsq is string len 1 static initial(&#039;&amp;amp;amp;#x5B;&#039;):u&lt;br /&gt;
%rsq is string len 1 static initial(&#039;&amp;amp;amp;#x5D;&#039;):u&lt;br /&gt;
   . . . &lt;br /&gt;
%myXmldoc:print(&#039;*/pers&#039; %lsq &#039;@name=&amp;quot;Hector&amp;quot;&#039; %rsq) &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under version 7.6 and above, you can instead use the new entities and avoid the declarations, concatenations, and runtime conversions required above:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%myXmldoc:print(&#039;*/pers&amp;lt;b&amp;gt;&amp;amp;lsqb;&amp;lt;/b&amp;gt;@name=&amp;quot;Hector&amp;quot;&amp;lt;b&amp;gt;&amp;amp;rsqb;&amp;lt;/b&amp;gt;&#039;:u)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Procedure names can begin with zero===&lt;br /&gt;
Formerly, a procedure name was not allowed to begin with a zero or a minus sign. As of version 7.7, a procedure name can begin with a zero, and alphanumeric procedure names can begin with a minus sign (&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;), which is interpreted as a hyphen. For example, &amp;lt;code&amp;gt;00123&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-1myproc&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;-myproc&amp;lt;/code&amp;gt; are valid procedure names. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
See the &amp;lt;var&amp;gt;[[PROCEDURE command|PROCEDURE]]&amp;lt;/var&amp;gt; command for details. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Assert statement support for Info expressions===&lt;br /&gt;
The SOUL &amp;lt;var&amp;gt;[[Assert statement|Assert]]&amp;lt;/var&amp;gt; statement allows the optional parameter &amp;lt;var&amp;gt;Info&amp;lt;/var&amp;gt; to provide additional output information. As of version 7.7, the &amp;lt;var&amp;gt;Info&amp;lt;/var&amp;gt; phrase may contain any valid SOUL expression, including a method call or $function. The expression, which must be enclosed in parentheses, is evaluated only in the case of an &amp;lt;var&amp;gt;Assert&amp;lt;/var&amp;gt; failure.&lt;br /&gt;
&lt;br /&gt;
A simple example is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;assert %x gt 0, info (&#039;abc&#039; with &#039;def&#039;) &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This enhancement introduces a slight backward incompatibility: An &amp;lt;var&amp;gt;Assert&amp;lt;/var&amp;gt; statement like the following, whose &amp;lt;var&amp;gt;Info&amp;lt;/var&amp;gt; value begins with an opening parenthesis but has no closing parenthesis, compiled without error prior to version 7.7: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;assert %x gt 0, info (&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
From 7.7 on, such a statement produces a compilation error, because the compiler expects an expression after the open parenthesis. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Security enhancements==&lt;br /&gt;
===Long password support===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Logon passwords, maintained in CCASTAT, can now contain as many as 127 characters. &lt;br /&gt;
&amp;lt;br /&amp;gt;Also, passwords and passphrases can now contain one or more embedded spaces. (Leading and trailing spaces are stripped.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The long password feature includes support for: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[LOGIN or LOGON command|LOGON]]&amp;lt;/var&amp;gt; command&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[LOGINCP or LOGONCP command|LOGONCP]]&amp;lt;/var&amp;gt; command, used to change a password&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[LOGCTL command: Modifying user ID entries in the password table|LOGCTL C USERID]]&amp;lt;/var&amp;gt; command&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[$Sir_Login]]&amp;lt;/var&amp;gt; function&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Mixed-case passwords (if the &amp;lt;var&amp;gt;[[CUSTOM parameter|CUSTOM]]&amp;lt;/var&amp;gt; parameter includes the value 11)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;[[Storing_security_information_(CCASTAT)|CCASTAT]] data sets created with or without password expiration support&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Long passwords (passphrases) for use with the following [[Security interfaces overview|external security interfaces]]: CA-ACF2 MVS, Security Server (formerly RACF), and CA-Top Secret&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This feature is available for logon passwords only; it does not apply to file passwords.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
No changes to CCASTAT and no new CCAIN parameters are required to enable long password support.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to allow embedded blanks in passwords passed on [[IFSTRTN_(IFAM2)_(HLI_function)|IFSTRTN]] calls, a semicolon is required as the password delimiter and the &amp;lt;var&amp;gt;[[CUSTOM parameter|CUSTOM]]&amp;lt;/var&amp;gt; parameter 24 value must be set.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For additional security enhancements in version 7.7, see [[#Janus Network Security ciphers and private keys|Janus Network Security ciphers and private keys]] as well as [[#&amp;quot;SSL&amp;quot; String methods|&amp;quot;SSL&amp;quot; String methods]], [[#New DigestAlgorithm values|New DigestAlgorithm values]], and [[#New default certificate-signing algorithm|New default certificate-signing algorithm]].&lt;br /&gt;
&lt;br /&gt;
==Janus product enhancements==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;IPV6&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;Support for IPV6===&lt;br /&gt;
As of version 7.7, customers can use the [[Janus products]] in an IPV6 (Internet Protocol Version 6) environment. Before this release, all Janus commands and parameters were able to accommodate IPV4 addresses only. IPV6 addresses expand the network address space from 32 to 128 bits.&lt;br /&gt;
&lt;br /&gt;
These parameters, commands, and functions support IPV6 under version 7.7 of Model&amp;amp;nbsp;204:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;Commands&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;System parameter&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;SOUL&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td nowrap&amp;gt;&lt;br /&gt;
JANUS CLSOCK and JANUS SRVSOCK &amp;lt;br&amp;gt;&lt;br /&gt;
JANUSDEBUG and JANUS WEB DEBUG &amp;lt;br&amp;gt;&lt;br /&gt;
JANUS DEFINEIPGROUP &amp;lt;br&amp;gt;&lt;br /&gt;
JANUS DEFINE BINDADDR &amp;lt;br&amp;gt;&lt;br /&gt;
JANUS DISIPG  &amp;lt;br&amp;gt;&lt;br /&gt;
JANUS DISUSG  &amp;lt;br&amp;gt;&lt;br /&gt;
JANUS TRACE &amp;lt;br&amp;gt;&lt;br /&gt;
JANUS WEB ALLOW &lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;&lt;br /&gt;
TCPTYPE &amp;lt;br&amp;gt;&lt;br /&gt;
(see [[#tcptype|TCPTYPE (new IPV6 values)]])&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;&lt;br /&gt;
$Web_IPAddr &amp;lt;br&amp;gt;&lt;br /&gt;
LocalHost (UdpSocket property) &lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Janus Network Security ciphers and private keys===&lt;br /&gt;
Support for certificates signed using [[DigestAlgorithm_enumeration|SHA-384 and SHA-512]] are added to [[Janus Network Security]]. This makes it possible to generate certificates signed with these algorithms and to accept server or client certificates signed with these algorithms.&lt;br /&gt;
&lt;br /&gt;
In addition, support is added for RSA keys that are as many as 4096 bits in length. You can now generate and sign 4096-bit keys and use them in client and server certificates using &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Network Security&amp;lt;/var&amp;gt; application as well as its associated and related methods, including:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;Class&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Method&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;System&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[GeneratedPrivateKey (System function)|GeneratedPrivateKey]]&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;Stringlist&amp;lt;/td&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[AppendCertificateRequest (Stringlist function)|AppendCertificateRequest]]&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[AppendGeneratedPrivateKey (Stringlist subroutine)|AppendGeneratedPrivateKey]]&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[AppendSignedCertificate (Stringlist function)|AppendSignedCertificate]]&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[AppendSignedClientCertificate (Stringlist function)|AppendSignedClientCertificate]]&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;String&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[CertificateRequest (String function)|CertificateRequest]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[ClientCertificateRequest (String function)|ClientCertificateRequest]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[RSAPrivateKeyToXmlDoc (String function)|RSAPrivateKeyToXmlDoc]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[SignedCertificate (String function)|SignedCertificate]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Janus Web Server rules===&lt;br /&gt;
The following changes have been made in version 7.7:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Janus Web used to automatically implement [[Defining Web rules#Notes|two web server ON rules]] to set up access to the Janus Web sample home page and to demonstration application procedures. These rules were removed in version 7.6 (by zap maintenance) and are not present in version 7.7.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;You can now substitute an HTTP method name in the command for a &amp;lt;var&amp;gt;JANUS WEB ON&amp;lt;/var&amp;gt; rule. See [[#ON rules (method name substitution)|ON rules (method name substitution)]] for details.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The automatic &amp;lt;var&amp;gt;[[JANUS WEB ALLOW]]&amp;lt;/var&amp;gt; rule, which allowed any user to access the port without requiring a login, is changed &amp;lt;i&amp;gt;for non-SSL ports&amp;lt;/i&amp;gt; to the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;JANUS WEB &amp;lt;i&amp;gt;portname&amp;lt;/i&amp;gt; DISALLOW *&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This rule requires a system administrator to explicitly define &amp;lt;var&amp;gt;ALLOW&amp;lt;/var&amp;gt; rules to enable users to access non-SSL ports.&lt;br /&gt;
The rule applies (after zap 77Z088 in version 7.7, or after zap 76Z418 in version 7.6) unless overridden by user-added rules. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; With version 7.7 zap 77Z090 or version 7.6 zap 76Z420, you can make the default &amp;lt;var&amp;gt;ALLOW&amp;lt;/var&amp;gt; rule as it was in version 7.5 and earlier (&amp;lt;code&amp;gt;ALLOW *&amp;lt;/code&amp;gt;). To do so, turn on the 1 bit of the &amp;lt;var&amp;gt;[[WEBDFLT parameter|WEBDFLT]]&amp;lt;/var&amp;gt; parameter: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;RESET WEBDFLT=1&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;As described below in [[#JANUS WEB (additional rule support)|JANUS WEB (additional rule support)]], the &amp;lt;var&amp;gt;JANUS WEB&amp;lt;/var&amp;gt; command &amp;lt;var&amp;gt;ALLOW&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;DISALLOW&amp;lt;/var&amp;gt; rules are updated to include support for RESTful and WebDAV HTTP methods. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Janus Web access to HTTP authorization and authentication headers===&lt;br /&gt;
Under version 7.7, Janus Web lets you access HTTP user authentication headers. You can capture the HTTP &amp;quot;Authorization&amp;quot; request header value, and you can set the &amp;quot;WWW-Authenticate&amp;quot; response header. See [[Janus Web Server security#Authorization and WWW-Authenticate headers|Authorization and WWW-Authenticate headers]].&lt;br /&gt;
&lt;br /&gt;
==Fast/Unload enhancements==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;funldIntegrat&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;Integration of Fast/Unload with the Online load module ===&lt;br /&gt;
&amp;lt;!-- PDS-5869 --&amp;gt;&lt;br /&gt;
Previously (for all versions of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Fast/Unload&amp;lt;/var&amp;gt; through 4.7), the standalone &amp;lt;code&amp;gt;FUNLOAD&amp;lt;/code&amp;gt; load module was downloaded and linked separately and independently from Model&amp;amp;nbsp;204. Starting with version 7.7 of Model&amp;amp;nbsp;204:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Fast/Unload&amp;lt;/var&amp;gt; is entirely linked with the Model&amp;amp;nbsp;204 Online load module. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Maintenance zaps applied to the Online load module include all &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Fast/Unload&amp;lt;/var&amp;gt; maintenance.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The version number of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Fast/Unload&amp;lt;/var&amp;gt; is the same as the version number of Model&amp;amp;nbsp;204. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you are authorized for Fast/Unload, the authorization zap for the ONLINE load module will contain authorization for Fast/Unload. The authorization zap used for previous releases of FUNLOAD should not be applied to the FUNLOAD module in 7.7.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under 7.7, the Online load module can be linked with an ALIAS (the standard one is FUNLOAD) and an alternate ENTRY. This alias is functionally indistinguishable from the standalone &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Fast/Unload&amp;lt;/var&amp;gt; FUNLOAD load module installed for all previous versions of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Fast/Unload&amp;lt;/var&amp;gt;.   &lt;br /&gt;
&lt;br /&gt;
The integration of Fast/Unload with the Online load module also makes additional DDnames available to PGM=FUNLOAD for possible problem diagnosis by Rocket Technical Support. These DDnames are &amp;lt;code&amp;gt;CCASNAP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CCAAUDIT&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;CCAPRINT&amp;lt;/code&amp;gt;, and they are described in [[Fast/Unload invocation#ccadd|Fast/Unload invocation]].&lt;br /&gt;
&lt;br /&gt;
A significant benefit of running Fast/Unload integrated with Model&amp;amp;nbsp;204 and not standalone  is the ability to take advantage of zIIP processing, as described next in the &amp;quot;zIIP exploitation&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
===zIIP exploitation===&lt;br /&gt;
If you have an authorization zap that contains both of the following, your standalone PGM=FUNLOAD jobs will run on a zIIP processor, if one is available:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[Performance monitoring and tuning#Offloading Model 204 work to zIIP processors|M204 HPO]]&amp;lt;/var&amp;gt;, the zIIP-support product of Model&amp;amp;nbsp;204&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
PGM=FUNLOAD automatically supplies the necessary Model&amp;amp;nbsp;204 parameters to enable zIIP exploitation. &amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[Fast/Unload overview#fuhpo|Fast/Unload HPO]]&amp;lt;/var&amp;gt; product &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===New #VIEW204 function===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[Fast/Unload standard functions#.23VIEW204: Value of Model 204 parameter|#VIEW204]]&amp;lt;/var&amp;gt; function returns the value of the [[List of Model 204 parameters|Model&amp;amp;nbsp;204 parameter]] you specify as an argument.&lt;br /&gt;
&lt;br /&gt;
===PUT statement enhancements===&lt;br /&gt;
&amp;lt;!-- PDS-6107 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Length prefix for PUT output values====&lt;br /&gt;
&amp;lt;!-- PDS-5871 --&amp;gt;&lt;br /&gt;
New &amp;lt;var&amp;gt;[[Fast/Unload PUT statement#PUT|PUT]]&amp;lt;/var&amp;gt; statement syntax is added to insert a one-byte or two-byte binary integer, containing the byte length of a &amp;lt;var&amp;gt;PUT&amp;lt;/var&amp;gt; value, in the output stream before the value. &lt;br /&gt;
&lt;br /&gt;
For better readability and lower CPU cost than the techniques currently used to achieve the same result, the &amp;lt;var&amp;gt;AS&amp;lt;/var&amp;gt; clause of a &amp;lt;var&amp;gt;PUT&amp;lt;/var&amp;gt; statement will now allow the &amp;lt;var&amp;gt;COUNTED&amp;lt;/var&amp;gt; keyword:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;... PUT &amp;lt;i&amp;gt;info&amp;lt;/i&amp;gt; .. AS [&amp;lt;i&amp;gt;format&amp;lt;/i&amp;gt;] COUNTED[1|2] &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For example, &amp;lt;code&amp;gt;PUT FIRST.NAME AS COUNTED2&amp;lt;/code&amp;gt; puts the first occurrence of field &amp;lt;code&amp;gt;FIRST.NAME&amp;lt;/code&amp;gt; as a string value, preceded by a two-byte binary integer containing the length of that occurrence.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
With this feature, you can replace FUEL code such as the following: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%VAL = ITEM.CODE(%OCC)&lt;br /&gt;
%LEN = #LEN( %VAL )&lt;br /&gt;
PUT %LEN AS FIXED(2)&lt;br /&gt;
PUT %VAL &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;With: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PUT %VAL AS COUNTED2 &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====#function as PUT &amp;quot;info&amp;quot; argument====&lt;br /&gt;
&amp;lt;!-- PDS-5871 --&amp;gt;&lt;br /&gt;
New in this version, a #function call is allowed as the &amp;lt;var&amp;gt;PUT&amp;lt;/var&amp;gt; &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;info&amp;lt;/var&amp;gt; argument. For example, instead of FUEL code such as the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%VAL = #STRIP(ITEM.VALUE(%OCC), &#039;L&#039;, 0)&lt;br /&gt;
PUT %VAL &amp;lt;/p&amp;gt;&lt;br /&gt;
You can use this more readable and somewhat more efficient equivalent:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PUT #STRIP(ITEM.VALUE(%OCC), &#039;L&#039;, 0) &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===#STRIP function enhancements===&lt;br /&gt;
&amp;lt;!-- PDS-5871 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====New #STRIP fourth argument====&lt;br /&gt;
&amp;lt;!-- PDS-5871 --&amp;gt;&lt;br /&gt;
The new fourth argument of &amp;lt;var&amp;gt;[[Fast/Unload standard functions##strip|#STRIP]]&amp;lt;/var&amp;gt; lets you designate a &amp;lt;var&amp;gt;#STRIP&amp;lt;/var&amp;gt; first-argument value to be nullified. That is, when the value of the first argument is equal to the value of the fourth argument, &amp;lt;var&amp;gt;#STRIP&amp;lt;/var&amp;gt; returns a null string. You might use this optional argument for fields that have a &amp;quot;placeholder value&amp;quot; or &amp;quot;default value&amp;quot; which is not actual data.&lt;br /&gt;
&lt;br /&gt;
This argument can be conveniently combined with the&lt;br /&gt;
new &amp;lt;var&amp;gt;[[#Length prefix for PUT output values|COUNTED]]&amp;lt;/var&amp;gt; options for &amp;lt;var&amp;gt;PUT&amp;lt;/var&amp;gt;, because a length-prefixed format allows a reliable, unambiguous representation of a series of null strings. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Combining the new fourth argument, the new &amp;lt;var&amp;gt;COUNTED2&amp;lt;/var&amp;gt; option, and the new [[#optn|N option]] of the second argument provides a simpler alternative to FUEL code such as the following:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%VAL = ITEM.STRING(%OCC)&lt;br /&gt;
IF %VAL EQ &#039;_&#039; THEN&lt;br /&gt;
   PUT 0 AS FIXED(2)&lt;br /&gt;
ELSE&lt;br /&gt;
   %LEN = #LEN(%VAL)&lt;br /&gt;
   PUT %LEN AS FIXED(2)&lt;br /&gt;
   PUT %VAL&lt;br /&gt;
END IF&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
You can replace the above statements by the more readable and efficient: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PUT #STRIP(ITEM.STRING(%OCC), &#039;N&#039;, , &#039;_&#039;) AS COUNTED2&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====New #STRIP type options====&lt;br /&gt;
&amp;lt;!-- PDS-5871 --&amp;gt;&lt;br /&gt;
&amp;lt;var&amp;gt;P&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;N&amp;lt;/var&amp;gt; strip-type options are added to the &amp;lt;var&amp;gt;#STRIP&amp;lt;/var&amp;gt; function:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The new &amp;lt;var&amp;gt;P&amp;lt;/var&amp;gt; option strips all but one leading &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;pad&amp;lt;/var&amp;gt;-argument characters from the &amp;lt;var&amp;gt;#STRIP&amp;lt;/var&amp;gt; first argument returned value, if that value contains a non-zero length string of only &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;pad&amp;lt;/var&amp;gt; characters. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;var&amp;gt;P&amp;lt;/var&amp;gt;, together with other new Fast/Unload &amp;lt;var&amp;gt;PUT&amp;lt;/var&amp;gt; features, provides a simpler alternative to FUEL code such as the following:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%VAL = ITEM.NUMBER(%OCC)&lt;br /&gt;
IF %VAL EQ &#039;_&#039; OR %VAL EQ &amp;amp;apos;&#039; THEN&lt;br /&gt;
   PUT 0 AS FIXED(2)&lt;br /&gt;
ELSE&lt;br /&gt;
   %VAL = #STRIP(%VAL, &#039;L&#039;, &#039;0&#039;)&lt;br /&gt;
   IF %VAL EQ &amp;amp;apos;&#039; THEN&lt;br /&gt;
      %VAL = &#039;0&#039;&lt;br /&gt;
   END IF&lt;br /&gt;
   %LEN = #LEN(%VAL)&lt;br /&gt;
   PUT %LEN AS FIXED(2)&lt;br /&gt;
   PUT %VAL&lt;br /&gt;
END IF &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
You can replace the above statements with the following, which outputs a numeric value with leading zeroes stripped: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PUT #STRIP(ITEM.NUMBER(%OCC), &#039;P&#039;, &#039;0&#039;, &#039;_&#039;) AS COUNTED2&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A FUEL &amp;lt;var&amp;gt;IF&amp;lt;/var&amp;gt; statement oddity is that the precedence of &amp;lt;var&amp;gt;AND&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;OR&amp;lt;/var&amp;gt; are the same.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li id=&amp;quot;optn&amp;quot;&amp;gt;The new &amp;lt;var&amp;gt;N&amp;lt;/var&amp;gt; option strips neither leading-characters nor trailing-characters. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For an example, see [[#New #STRIP fourth argument|New #STRIP fourth argument]], above.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==New and changed commands==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     ******************************************************************&lt;br /&gt;
     Please keep the following subsections alphabetized by command name&lt;br /&gt;
     ******************************************************************&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===AUTHCTL VIEW (additional information displayed)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[AUTHCTL command#Example|AUTHCTL]]&amp;lt;/var&amp;gt; command output now includes a list of the available sets of control parameters for the external security interface you specify in the command.&lt;br /&gt;
&lt;br /&gt;
===DISPLAY MODMAP (new parameter: &amp;lt;var&amp;gt;UEX&amp;lt;/var&amp;gt;)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[DISPLAY MODMAP command|DISPLAY MODMAP]]&amp;lt;/var&amp;gt; command now has a &amp;lt;var&amp;gt;UEX&amp;lt;/var&amp;gt; parameter that displays the entry point addresses of all defined user exits.&lt;br /&gt;
&lt;br /&gt;
===FREE command (new message)===&lt;br /&gt;
Prior to this release, a successful &amp;lt;var&amp;gt;[[FREE command#msg|FREE]]&amp;lt;/var&amp;gt; command was not followed by a message indicating success. Under version 7.7, &amp;lt;var&amp;gt;FREE&amp;lt;/var&amp;gt; now indicates success with the following message:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.0510: FREE command successful; &amp;lt;i&amp;gt;ddname&amp;lt;/i&amp;gt; freed &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also new in this release, a &amp;lt;var&amp;gt;FREE&amp;lt;/var&amp;gt; command that takes no action because the specified file does not exist or is not allocated is now followed by an explanatory message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.0509: No action taken by FREE command; &amp;lt;i&amp;gt;ddname&amp;lt;/i&amp;gt; not allocated &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
In earlier versions, no such message followed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===JANUS DEFINE (new parameter: &amp;lt;var&amp;gt;SSLTRUST&amp;lt;/var&amp;gt;)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[JANUS DEFINE]]&amp;lt;/var&amp;gt; command now has an &amp;lt;var&amp;gt;[[SSLTRUST (JANUS DEFINE parameter)|SSLTRUST]]&amp;lt;/var&amp;gt; parameter that indicates that the certificate presented by the other side of a TLS/SSL connection is to be accepted even if it is not signed by a known certifying authority.&lt;br /&gt;
&lt;br /&gt;
===JANUS WEB (additional rule support)===&lt;br /&gt;
&amp;lt;!-- PDS-5984 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Expanded ALLOW/DISALLOW rules====&lt;br /&gt;
The &amp;lt;var&amp;gt;[[JANUS WEB]]&amp;lt;/var&amp;gt; command &amp;lt;var&amp;gt;ALLOW&amp;lt;/var&amp;gt;/&amp;lt;var&amp;gt;DISALLOW&amp;lt;/var&amp;gt; rules are updated to include support for these HTTP methods:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The RESTful ([https://en.wikipedia.org/wiki/Representational_state_transfer Representational State Transfer]) methods CONNECT, DELETE, OPTIONS, PATCH, and TRACE. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The WebDAV ([http://www.webdav.org/specs/rfc4918.html Distributed Authoring and Versioning]) methods PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, and UNLOCK. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====ON rules (method name substitution)====&lt;br /&gt;
In a version 7.7 &amp;lt;var&amp;gt;[[JANUS WEB ON|JANUS WEB ON]]&amp;lt;/var&amp;gt; command, you can now reference the name of the HTTP method that is associated with the incoming request. To do this, specify an &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; after the escape (&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;) character, as in: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;JANUS WEB WEBPORT ON /TEST/* OPEN FILE TEST CMD &#039;I &amp;quot;M.*&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A GET request for URL &amp;lt;code&amp;gt;/test/foo&amp;lt;/code&amp;gt; would result in the file &amp;lt;code&amp;gt;TEST&amp;lt;/code&amp;gt; being opened and the command &amp;lt;code&amp;gt;I GET.FOO&amp;lt;/code&amp;gt; being issued. A POST for the same URL would result in the command &amp;lt;code&amp;gt;I POST.FOO&amp;lt;/code&amp;gt; being issued.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This behavior is a change from past releases, when &amp;lt;code&amp;gt;&amp;quot;M&amp;lt;/code&amp;gt; was simply converted to &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===LOGINCP or LOGONCP (new)===&lt;br /&gt;
Because colons are now valid password characters, the &amp;lt;var&amp;gt;[[LOGINCP or LOGONCP command|LOGINCP]]&amp;lt;/var&amp;gt; (LOGIN and Change Password) command replaces the former technique for changing passwords using &amp;lt;var&amp;gt;LOGIN&amp;lt;/var&amp;gt;. &lt;br /&gt;
&amp;lt;p&amp;gt;Before version 7.7, with &amp;lt;var&amp;gt;LOGIN&amp;lt;/var&amp;gt;, you specified &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;oldpassword&amp;lt;/var&amp;gt;&amp;lt;tt&amp;gt;:&amp;lt;/tt&amp;gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;newpassword&amp;lt;/var&amp;gt; in response to the &amp;lt;code&amp;gt;M204.0347: Password&amp;lt;/code&amp;gt; prompt.&amp;lt;/p&amp;gt; &lt;br /&gt;
With the &amp;lt;var&amp;gt;LOGINCP&amp;lt;/var&amp;gt; command, you are prompted and re-prompted for the new password after successful logon:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;b&amp;gt;LOGINCP USER1&amp;lt;/b&amp;gt;&lt;br /&gt;
M204.0347: Password  &lt;br /&gt;
M204.0353: USER1     USER1    login  16 JUL 29  12.38 &lt;br /&gt;
M204.2633: Enter new password    &lt;br /&gt;
M204.2633: Re-enter new password &lt;br /&gt;
M204.0350: New password accepted &lt;br /&gt;
M204.0345: CCASTAT updated &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;var&amp;gt;LOGONCP&amp;lt;/var&amp;gt; is a synonym for &amp;lt;var&amp;gt;LOGINCP&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===ZHPF (new parameters: &amp;lt;i&amp;gt;filename&amp;lt;/i&amp;gt; and *)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[ZHPF command|ZHPF]]&amp;lt;/var&amp;gt; command checks zHPF ability for the file currently opened by the user. &lt;br /&gt;
&lt;br /&gt;
As of Model 204 7.7, you can specify parameters to &amp;lt;var&amp;gt;ZHPF&amp;lt;/var&amp;gt;:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;filename&amp;lt;/var&amp;gt;, to check a specific file&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;An asterisk (&amp;lt;tt&amp;gt;*&amp;lt;/tt&amp;gt;), to check local files opened by all users&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==New and changed parameters==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     ********************************************************************&lt;br /&gt;
     Please keep the following subsections alphabetized by parameter name&lt;br /&gt;
     ********************************************************************&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CUSTOM (new and changed values)===&lt;br /&gt;
====New values====&lt;br /&gt;
The following values have been added to the &amp;lt;var&amp;gt;[[CUSTOM parameter|CUSTOM]]&amp;lt;/var&amp;gt; parameter in this release:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;CUSTOM=23&amp;lt;/code&amp;gt; value always truncates the user ID to 10 characters.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;CUSTOM=41&amp;lt;/code&amp;gt; value allows recording of data on successful RACF user logins. The login data is shown in RACFRW batch reports.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;CUSTOM=42&amp;lt;/code&amp;gt; value allows the editing of procedure names containing the following special characters: comma, equal sign, space, single quote, semicolon.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Changed value====&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;CUSTOM=11&amp;lt;/code&amp;gt; value also supports special-characters for RACF passwords as of version 7.7.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===LFSCB (new default/minimum value)===&lt;br /&gt;
The default (and minimum) value of &amp;lt;var&amp;gt;[[LFSCB parameter|LFSCB]]&amp;lt;/var&amp;gt; is now 8 bytes.&lt;br /&gt;
 &lt;br /&gt;
===LITBL (new default/minimum value)===&lt;br /&gt;
The default (and minimum) value of &amp;lt;var&amp;gt;[[LITBL parameter|LITBL]]&amp;lt;/var&amp;gt; is now 8 bytes.&lt;br /&gt;
&lt;br /&gt;
===MINDEBCL (new)===&lt;br /&gt;
The new system parameter, &amp;lt;var&amp;gt;[[MINDEBCL parameter|MINDEBCL]]&amp;lt;/var&amp;gt;, can be set in an Online to specify the minimum [[Debugger]] Client build number that can be used with that Online.&lt;br /&gt;
&lt;br /&gt;
===MPDELAY and MPDELAYZ (new)===&lt;br /&gt;
For an [[Performance monitoring and tuning#Multiprocessing .28MP.2F204.29|MP/204]] Online, the &amp;lt;var&amp;gt;[[MPDELAY parameter|MPDELAY]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[MPDELAYZ parameter|MPDELAYZ]]&amp;lt;/var&amp;gt; parameters are added to improve the efficiency of the MP scheduler. They reduce the cost of starting too many new subtasks for the amount of work to be done.&lt;br /&gt;
&lt;br /&gt;
===NUMBUF and NUMBUFG===&lt;br /&gt;
As described below in [[#Elimination of BTB buffers|Elimination of BTB buffers]], setting &amp;lt;var&amp;gt;NUMBUFG&amp;lt;/var&amp;gt; greater than 0 in version 7.7 forces &amp;lt;var&amp;gt;NUMBUF&amp;lt;/var&amp;gt; to 0 (no buffer pool buffers reside below the bar). Not setting &amp;lt;var&amp;gt;NUMBUFG&amp;lt;/var&amp;gt; or setting it to 0 (no buffers above the bar) allows the calculation of BTB buffers to remain as in previous versions.&lt;br /&gt;
&lt;br /&gt;
===SCHDOFL and SCHDOFLZ (new minimum value)===&lt;br /&gt;
The new minimum value of &amp;lt;var&amp;gt;[[SCHDOFL parameter|SCHDOFL]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[SCHDOFLZ parameter|SCHDOFLZ]]&amp;lt;/var&amp;gt; is 0. Before Model 204 7.7, their minimum allowed value was 1.&lt;br /&gt;
&lt;br /&gt;
===SCHDOFLS (new)===&lt;br /&gt;
For z/OS system customers using &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; zIIP support, the new &amp;lt;var&amp;gt;[[SCHDOFLS parameter|SCHDOFLS]]&amp;lt;/var&amp;gt; system parameter helps you to regulate the zIIP processor workload. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;SCHDOFLS&amp;lt;/var&amp;gt; specifies both of the following: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The target number of threads on the zIIP offload queue before a non-SRB MP subtask is dispatched to help the zIIP subtasks. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If started, how aggressively non-SRB MP subtasks pick up work from the zIIP offload queue. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This parameter applies to z/OS only.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SCHDOPT (change to X&#039;20&#039; bit processing)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[SCHDOPT parameter|SCHDOPT]]&amp;lt;/var&amp;gt; X&#039;20&#039; bit prevents the maintask from running work that is intended to run on a zIIP subtask (when zIIP subtasks are defined and activated). As of Model&amp;amp;nbsp;204 7.7, even when this bit is off, the maintask will run some of the zIIP work only if the zIIP subtasks appear to be saturated. Saturation is defined as a zIIP subtask queue length of at least &amp;lt;code&amp;gt;[[SCHDOFLZ parameter|SCHDOFLZ]]*[[AMPSUBZ parameter|AMPSUBZ]]&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Formerly, this saturation requirement was absent, allowing the maintask to take on more (possibly too much) of the zIIP workload.&lt;br /&gt;
&lt;br /&gt;
===SERVSIZE (new default/minimum value)===&lt;br /&gt;
The minimum value for &amp;lt;var&amp;gt;[[SERVSIZE parameter|SERVSIZE ]]&amp;lt;/var&amp;gt; is changed from zero to 65536. If &amp;lt;var&amp;gt;SERVSIZE&amp;lt;/var&amp;gt; is explicitly set in CCAIN and its value is less than 64K, the following message is issued:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.1149: SERVSIZE has been set to its minimum value: 65536&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;var&amp;gt;SERVSIZE&amp;lt;/var&amp;gt; was not set but was [[Defining the runtime environment (CCAIN)#Sizing user server areas|calculated by the system]] to a value less than 64K, the following message is issued:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.0163: SERVSIZE increased to 65536&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This change is propagated by zap maintenance to versions 7.6, 7.5, and 7.4 of Model&amp;amp;nbsp;204. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;tcptype&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;TCPTYPE (new IPV6 values)===&lt;br /&gt;
As part of the version 7.7 [[#IPV6|support for IPV6]], three new optional (IPV6-address-only) values are added to the &amp;lt;var&amp;gt;[[TCPTYPE parameter|TCPTYPE]]&amp;lt;/var&amp;gt; parameter: &lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;IBMV6&lt;br /&gt;
BPXV6&lt;br /&gt;
IUCVV6&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Performance enhancements==&lt;br /&gt;
&lt;br /&gt;
===Elimination of BTB buffers===&lt;br /&gt;
As of version 7.7, any use of above-the-bar buffer pool (as invoked by a setting of the &amp;lt;var&amp;gt;[[NUMBUFG parameter|NUMBUFG]]&amp;lt;/var&amp;gt; parameter greater than 0) will force all buffer pool buffers above the bar &amp;amp;mdash; no below-the-bar buffers will exist. In this case, the &amp;lt;var&amp;gt;[[NUMBUF parameter|NUMBUF]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[MINBUF parameter|MINBUF]]&amp;lt;/var&amp;gt; parameters will be forced to 0, and the other parameters that affect BTB storage (&amp;lt;var&amp;gt;MAXBUF&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;SPCORE&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;LDKBMWND&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;NLRUQ&amp;lt;/var&amp;gt;) will be ignored.&lt;br /&gt;
&lt;br /&gt;
If you set &amp;lt;var&amp;gt;NUMBUFG&amp;lt;/var&amp;gt; to 0, all buffers will be below the bar, and the settings of the BTB-related parameters will be respected and calculated as in pre-7.7 versions.&lt;br /&gt;
&lt;br /&gt;
===Increase in request limit for number of images, screens, and menus===&lt;br /&gt;
These limits are increased to 4095 per request:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The total number of [[Images|images]] for all blocks (formerly 256)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The maximum number of [[Menu statement or block#Menus and screens|menus and screens]] combined (formerly 256)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Large checkpoint data sets===&lt;br /&gt;
Support is added for large data sets (as many as 16 million tracks) for the Model&amp;amp;nbsp;204 Checkpoint facility [[Checkpoints: Storing before-images of changed pages#Creating the CHKPOINT.2FCHKPNT .28and CHKPNTS.29 data set|CHKPOINT or CHKPNTS data sets]]. For details, see [[System_and_media_recovery#ROLL_BACK_processing.2C_Pass_2|ROLL BACK processing, Pass 2]].&lt;br /&gt;
&lt;br /&gt;
==Statistics enhancements==&lt;br /&gt;
&lt;br /&gt;
===BLKO===&lt;br /&gt;
The [[Using system statistics#System performance statistics|performance statistic]] BLKO now also reports invisible users that are blocked out. In previous releases, invisible users were not reported and BLKO remained virtually zero. The new BLKO value is more precise, and by summing BLKO, WTSV, BLKI, REDY, SWPG, and RUNG, you can now approximate USRS (average active users).&lt;br /&gt;
&lt;br /&gt;
For the &amp;lt;var&amp;gt;MONITOR&amp;lt;/var&amp;gt; command, the [[ONLINE monitoring#User information in formatted displays|QUE column]] now reports new values OFFO and OFFI instead of OFFQ for invisible users:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;OFFO is invisible and blocked out. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;OFFI is invisible and blocked in. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The BLKO QUE value continues to mean blocked out and visible (on some queue), and BLKI means blocked in and visible.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CCATDIFF and CCATDIFH===&lt;br /&gt;
The [[Using system statistics#Description of statistics|CCATDIFF]] user and since-last statistic gets incremented each time a user allocates a CCATEMP page, and it gets decremented each time a user frees a page. Its value is not allowed to drop below zero. In the event of a CCATEMP page shortage, CCATDIFF gives system managers the possibility of determining a particular user that might be primarily responsible. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; CCATDIFF is a rough guide, not definitive: it might give false high readings for some users, but it will indicate a user whose usage is extremely extraordinary. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Using system statistics#Description of statistics|CCATDIFH]] is a since-last statistic that reports a request&#039;s CCATDIFF since-last highwater mark, useful to retrospectively determine which request was responsible for a massive CCATEMP usage spike. For example, it will record a request that allocated a large number of CCATEMP pages but freed the pages before the request ended.&lt;br /&gt;
&lt;br /&gt;
==Other enhancements==&lt;br /&gt;
&lt;br /&gt;
===MODEL 6 screen size and back-paging===&lt;br /&gt;
As of Model 204 version 7.7 (and 7.5 or 7.6 with maintenance applied), a large &amp;lt;var&amp;gt;[[LOUTPB parameter|LOUTPB]]&amp;lt;/var&amp;gt; value for [[Terminal MODEL 6 support|MODEL 6]] geometries is allowed, even if screen back-paging has been enabled. &lt;br /&gt;
&lt;br /&gt;
In previous releases, during initialization, if back-paging was enabled for the IODEV, &amp;lt;var&amp;gt;LOUTPB&amp;lt;/var&amp;gt; was automatically reset to the limit that supported back-paging. &lt;br /&gt;
&lt;br /&gt;
Back-paging will now be disabled for any terminal with a &amp;lt;code&amp;gt;MODEL 6&amp;lt;/code&amp;gt; screen geometry that requires more than 6142 bytes.&lt;br /&gt;
&lt;br /&gt;
===ECF calls to the IBM IDCAMS utility===&lt;br /&gt;
The new &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; option for the &amp;lt;var&amp;gt;[[External Call Facility#module|External Module]]&amp;lt;/var&amp;gt; statement of the Model&amp;amp;nbsp;204 [[External Call Facility]] lets a SOUL program invoke IDCAMS without using the SYSIN and SYSPRINT DD statements. Instead, the Model&amp;amp;nbsp;204 Universal Buffer is used to pass the input lines and receive the output lines from IDCAMS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;ecfprofile&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;Running ECF requests under the invoking user’s profile===&lt;br /&gt;
&amp;lt;!-- see PDS-6158 --&amp;gt;Unless the new system parameter &amp;lt;var&amp;gt;[[ECPRIV parameter|ECPRIV]]&amp;lt;/var&amp;gt; 4 bit is set, the job invoked by a privileged [[External Call Facility]] statement at a site where an external authorizer (ACF2, RACF, or Top/Secret) is used runs under the external-authorizer profile of the &amp;lt;i&amp;gt;user&amp;lt;/i&amp;gt; that invokes the External Call, rather than under the &amp;lt;i&amp;gt;job&#039;s&amp;lt;/i&amp;gt; external-authorizer profile. &lt;br /&gt;
&lt;br /&gt;
Prior to version 7.7, such a job always ran under the job&#039;s external-authorizer profile, so this is a [[#Profile used for running ECF requests|backward compatibility]] issue.&lt;br /&gt;
&lt;br /&gt;
==Debugger updates==&lt;br /&gt;
&lt;br /&gt;
===SoftSpy authorization===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
SoftSpy and Muse are now authorized using the standard zap AUTH mechanism.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
EDIT CONFIG is no longer used to enter authorization keys, and the second (key entry) screen  of SPY EDIT CONFIG no longer appears.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SoftSpy Error message for DBCSENV===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
As in previous releases, SoftSpy is not supported in a DBCS (double-byte character set) environment. As of version 7.7, if the CCAIN parameter DBCSENV is set to a non-zero value, the SPY command is rejected with the following message:&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;Message 207: SoftSpy may not be used in a DBCS environment.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Debugger Client version information display on mainframe===&lt;br /&gt;
As of version 7.7 and Client build 64, the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus/TN3270 Debugger&amp;lt;/var&amp;gt; Client sends its build and tag number to the mainframe, and this information is displayed in message [[MSIR.1077]]:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot; style=&amp;quot;font-size:93%&amp;quot;&amp;gt;MSIR.1077: Begin debug session, user 3, client: Build: 64, Tag: 2 (Janus debugger session)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This information is not sent if the Debugger Client build number is less than 64, and the mainframe side views all Client versions prior to build 64 as build 63.&lt;br /&gt;
&lt;br /&gt;
The build number, which identifies Client versions, is displayed in the Client &amp;lt;b&amp;gt;Audit Trail&amp;lt;/b&amp;gt; tab at start up:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;2016 07 30 17:21:47    The Rocket Software Debugger Client&lt;br /&gt;
2016 07 30 17:21:47    Build: 65 (01 August 2016) Tag: 1 GA&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also view the build number of the Client at any time by selecting &amp;lt;b&amp;gt;Help &amp;gt; About&amp;lt;/b&amp;gt;. And as of Client build 65, the build number is displayed by the Client function &amp;lt;var&amp;gt;&amp;amp;&amp;amp;buildNumber()&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Enforcing use of a minimum version of the Debugger Client===&lt;br /&gt;
Normally, when you use the TN3270 or Janus Debugger, no restrictions are placed on which version of the Debugger workstation client is used. &lt;br /&gt;
As of Client build 65 and Model&amp;amp;nbsp;204 7.7, you can force Clients to have at least a minimum build number in order to invoke a debugging session with your Online. The new Model&amp;amp;nbsp;204 system parameter &amp;lt;var&amp;gt;[[MINDEBCL parameter|MINDEBCL]]&amp;lt;/var&amp;gt; sets such a minimum.&lt;br /&gt;
&lt;br /&gt;
If you set &amp;lt;var&amp;gt;MINDEBCL&amp;lt;/var&amp;gt; to a positive value, use a version of the Debugger Client whose build number is less than &amp;lt;var&amp;gt;MINDEBCL&amp;lt;/var&amp;gt;, and invoke a debugging session, the debugging session is rejected. An error message is shown in your browser and at the Client, calling for a Client upgrade.&lt;br /&gt;
&lt;br /&gt;
You also see the following error on the Online&#039;s Audit Trail (and on the terminal if you are using &amp;lt;code&amp;gt;TN3270 DEBUG ON&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot; style=&amp;quot;font-size:94%&amp;quot;&amp;gt;MSIR.1079: Debugger Client Build: &#039;&#039;xx&#039;&#039; &amp;lt; MINDEBCL: &#039;&#039;yy&#039;&#039; debugger client connection refused  &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compatibility issues==&lt;br /&gt;
&lt;br /&gt;
===APSYPAGE parameter cannot be non-zero===&lt;br /&gt;
&amp;lt;p&amp;gt;(Applies to the IBM z/OS system.)&amp;lt;/p&amp;gt;&lt;br /&gt;
The &amp;lt;var&amp;gt;APSYPAGE&amp;lt;/var&amp;gt; parameter was disabled (but still allowed) in version 7.6. As of version 7.7, if &amp;lt;var&amp;gt;APSYPAGE&amp;lt;/var&amp;gt; is non-zero, the Online will not come up and the following error message will appear: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.2958: APSYPAGE is obsolete as of 7.6. &lt;br /&gt;
Rocket recommends using RESPAGE and/or TEMPPAGE as the alternative&amp;lt;/p&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
See [[APSYPAGE parameter]] for information about alternatives to &amp;lt;var&amp;gt;APSYPAGE&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Unlabeled FDV statement compilation errors===&lt;br /&gt;
Version 7.7 introduces an edge case incompatibility by disallowing code which is very questionable or clearly wrong; that is, previously the compiler allowed pretty much any statements between the label and the FDV. Such statements are no longer allowed.  &lt;br /&gt;
&lt;br /&gt;
For example, the following was allowed in older versions of Model 204:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;a: audit &#039;About to FDV&#039;&lt;br /&gt;
   fdv foo&lt;br /&gt;
b: frv in a&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Inserting SOUL code between a label and an FDV statement is no longer allowed, and so the result of the above is:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.0311 Unacceptable statement reference&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This change is propagated by zap maintenance to versions 7.6 and 7.5 of Model 204.&lt;br /&gt;
&lt;br /&gt;
===KOMM addressing changes===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;KU is no longer 4K addressable from KOMM. It has been relocated to KOMM+1100 and must be addressed using grande (‘G’) instructions.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;KHEOC has been renamed to KGEOC.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;KUUSRNO has been renamed to KBUSRNO.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;In addition, all KUP… fields have been removed and replaced by their 64-bit equivalent KUG… fields. &amp;lt;br /&amp;gt;&lt;br /&gt;
For example, before 7.7, VTBL might be addressed by using &amp;lt;code&amp;gt;L R1,KUPVT&amp;lt;/code&amp;gt;. &amp;lt;br /&amp;gt;&lt;br /&gt;
As of version 7.7, that reference would require &amp;lt;code&amp;gt;LG R1,KUGVT&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;/ul&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For context, see [[Customizing functions and translation tables#Converting user-written functions|Converting user-written functions]].&lt;br /&gt;
&lt;br /&gt;
===JANUS WEB ON -- &amp;quot;M substitution===&lt;br /&gt;
In the command for a &amp;lt;var&amp;gt;JANUS WEB ON&amp;lt;/var&amp;gt; rule, &amp;lt;code&amp;gt;&amp;quot;M&amp;lt;/code&amp;gt; can now be used to specify a method name. &lt;br /&gt;
This behavior is a change from past releases, when &amp;lt;code&amp;gt;&amp;quot;M&amp;lt;/code&amp;gt; was simply converted to &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;. See [[#ON rules .28method name substitution.29|JANUS WEB ON rules (method name substitution)]] for details.&lt;br /&gt;
&lt;br /&gt;
===Journal format compatibility===&lt;br /&gt;
A recovery code error unintentionally allowed recovery to be run using Model&amp;amp;nbsp;204 7.6 against a version 7.5 journal, and vice versa. Although the error was benign because the journal formats were the same in those versions, mixing of journal versions and Model&amp;amp;nbsp;204 versions is no longer allowed.&lt;br /&gt;
&lt;br /&gt;
===Profile used for running ECF requests===&lt;br /&gt;
As [[#ecfprofile|described earlier]], the default external-authorizer (ACF2, RACF, or Top/Secret) profile under which a job invoked by a privileged ECF statement runs is changed in version 7.7. Instead of such a job running under the job&#039;s external-authorizer profile (as it did prior to 7.7), the job runs by default in 7.7 under the user&#039;s external-authorizer profile. &lt;br /&gt;
&lt;br /&gt;
The default behavior can be changed by turning on the new system parameter &amp;lt;var&amp;gt;[[ECPRIV parameter|ECPRIV]]&amp;lt;/var&amp;gt; 4 bit.&lt;br /&gt;
===$ListNew cannot be used in Initial clause===&lt;br /&gt;
&amp;lt;var&amp;gt;$ListNew&amp;lt;/var&amp;gt; cannot be used in the &amp;lt;var&amp;gt;Initial&amp;lt;/var&amp;gt; clause of a [[Using_variables_and_values_in_computation#Declare_statements_for_.25variables|declaration statement]].&lt;br /&gt;
&amp;lt;p&amp;gt;This change was introduced as zap maintenance in versions 7.5, 7.6, and 7.7 of Model 204.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notes for system manager and installer==&lt;br /&gt;
===CRAM SVC installation is deprecated===&lt;br /&gt;
The CRAM SVC installation has been deprecated as of version 7.5. &amp;lt;br /&amp;gt;Installation of CRAM-XDM is described as part of the [[Model 204 installation]].&lt;br /&gt;
===Authorization and maintenance zaps===&lt;br /&gt;
When you download Rocket M204 product object files, all relevant authorization keys and all current maintenance zaps are pre-applied to the object files as part of the download process.&lt;br /&gt;
&lt;br /&gt;
==New and updated messages==&lt;br /&gt;
 &lt;br /&gt;
See [[New and updated messages in Model 204 version 7.7|New and updated messages in Model 204 version 7.7]] for details.&lt;br /&gt;
 &lt;br /&gt;
[[Category: Release notes|Model 204 version 7.7]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Release_notes_for_Model_204_version_7.7&amp;diff=120283</id>
		<title>Release notes for Model 204 version 7.7</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Release_notes_for_Model_204_version_7.7&amp;diff=120283"/>
		<updated>2024-09-18T19:38:15Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* Operating system and hardware requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These release notes list the enhancements and other changes contained in Model 204 version 7.7. &lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
These release notes contain installation and features information for the Rocket Model 204 version 7.7 release.&lt;br /&gt;
Before beginning your installation, please read through this information about product installation and changes.&lt;br /&gt;
&lt;br /&gt;
==New in this release==&lt;br /&gt;
The table below cites some highlights of Model&amp;amp;nbsp;204 version 7.7. For a full list of features, refer to the Table of Contents. &lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;Category&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Feature&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Performance&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Continued expansion of 64-bit addressability. See [[#Elimination of BTB buffers|Elimination of BTB buffers]]. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Greater zIIP processor availability: M204 HPO and Fast/Unload HPO. See [[#zIIP exploitation|zIIP exploitation]]. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;zIIP load tuning. See [[#MPDELAY and MPDELAYZ (new)|MPDELAYZ]], [[#SCHDOFLS (new)|SCHDOFLS]], [[#SCHDOPT (change to X&#039;20&#039; bit processing)|SCHDOPT]]. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Essential removal of application limits on the [[#Increase in request limit for number of images, screens, and menus|number of images, screens, and menus]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Support for large data sets (as many as 16 million tracks) for the Model&amp;amp;nbsp;204 Checkpoint facility [[Checkpoints: Storing before-images of changed pages#Creating the CHKPOINT.2FCHKPNT .28and CHKPNTS.29 data set|CHKPOINT or CHKPNTS data sets]]. See [[System_and_media_recovery#ROLL_BACK_processing.2C_Pass_2|ROLL BACK processing, Pass 2]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Security&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Stronger cryptographic algorithms: SHA-384, SHA-512. See [[#&amp;quot;SSL&amp;quot; String methods|&amp;quot;SSL&amp;quot; String methods]], [[#New DigestAlgorithm values|New DigestAlgorithm values]], and [[#New default certificate-signing algorithm|New default certificate-signing algorithm]]. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Longer RSA keys (as many as 4096 bits). See [[#Janus Network Security ciphers and private keys|Janus Network Security ciphers and private keys]]. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Support for [[#Long password support|longer and mixed-case login passwords]]. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;Add-on enhancements&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A more versatile Fast/Unload through [[#Integration of Fast/Unload with the Online load module|integration with Model&amp;amp;nbsp;204]].  &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Janus products&#039; [[#Support for IPV6|support for the IPV6 network protocol]], expanding the network address space from 32 to 128 bits. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Operating system and hardware requirements==&lt;br /&gt;
&lt;br /&gt;
===Operating system requirements===&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/OS versions supported:&amp;lt;/b&amp;gt; &lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;All IBM supported releases up to and including z/OS 3.1. &amp;lt;br /&amp;gt;(For z/OS 2.2, see [[IBM z/OS 2.2 PTF requirement]].)&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Version 1.07 is sufficient for all functionality except for the following features:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;zHPF support requires version [[IBM z/OS 2.1 compatibility issue|2.1]].&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Large (1 MB) page support requires version 1.9.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Extended address volumes (EAV) requires version 1.12.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
On z/OS, Model 204 release 7.7 operates as an APF authorized load module, as required by many 7.7 features. &amp;lt;br /&amp;gt;&lt;br /&gt;
To run Model 204 unauthorized, [[Contacting Rocket Software Technical Support|contact Technical Support]].&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/VM versions supported:&amp;lt;/b&amp;gt; &lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;All IBM supported releases up to and including z/VM 6.3.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/VSE versions supported:&amp;lt;/b&amp;gt;&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;All IBM supported releases up to and including z/VSE 6.1.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Hardware requirements===&lt;br /&gt;
 &lt;br /&gt;
In general, Model 204 version 7.7 requires the IBM z/890 or above processor.&lt;br /&gt;
&amp;lt;p&amp;gt;However, the IBM z10 or above processor is required for the following features:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;large (1 MB) page support&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;IBM&#039;s High Performance FICON (zHPF) support&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Model 204 compatibility with operating systems===&lt;br /&gt;
&lt;br /&gt;
For information on Model 204 certification with IBM operating systems, see [[Model 204 system requirements]].&lt;br /&gt;
&lt;br /&gt;
===Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; compatibility with Model 204===&lt;br /&gt;
&lt;br /&gt;
Connect&amp;lt;span class=&amp;quot;superstar&amp;quot;&amp;gt;&amp;amp;#9733;&amp;lt;/span&amp;gt; version 7.5 or 7.7 is compatible with Model 204 version 7.7.&lt;br /&gt;
&lt;br /&gt;
For more information on Connect&amp;lt;span class=&amp;quot;superstar&amp;quot;&amp;gt;&amp;amp;#9733;&amp;lt;/span&amp;gt; installation, see the [[:Category:Connect*|Connect&amp;lt;span class=&amp;quot;superstar&amp;quot;&amp;gt;&amp;amp;#9733;&amp;lt;/span&amp;gt; wiki pages]].&lt;br /&gt;
&lt;br /&gt;
==SOUL (User Language) enhancements==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===New and changed classes and methods===&lt;br /&gt;
&lt;br /&gt;
====New exception class: WriteError====&lt;br /&gt;
&amp;lt;var&amp;gt;[[WriteError class|WriteError]]&amp;lt;/var&amp;gt; exceptions are thrown by the &amp;lt;var&amp;gt;Close&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;WriteBlock&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;WriteRecord&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;WriteRecords&amp;lt;/var&amp;gt; methods in the [[Dataset class]] if they encounter a full output &amp;lt;var&amp;gt;Dataset&amp;lt;/var&amp;gt; object.&lt;br /&gt;
&lt;br /&gt;
====New default certificate-signing algorithm====&lt;br /&gt;
[[Janus Network Security]] as well as the &amp;lt;var&amp;gt;[[Stringlist_class|StringList]]&amp;lt;/var&amp;gt; methods &amp;lt;var&amp;gt;[[AppendSignedCertificate (Stringlist function)|AppendSignedCertificate]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[AppendSignedClientCertificate (Stringlist function)|AppendSignedClientCertificate]]&amp;lt;/var&amp;gt; methods have changed their default signature algorithm from SHA-1 to SHA-256.&lt;br /&gt;
&lt;br /&gt;
This change is propagated by zap maintenance to versions 7.6 and 7.5 of Model&amp;amp;nbsp;204.&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;SSL&amp;quot; String methods====&lt;br /&gt;
These new methods are added:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;Method&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[SHA384digest (String function)|SHA384digest]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SHA-384 digest&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[SHA512digest (String function)|SHA512digest]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SHA-512 digest&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====New LoadMsgctl method====&lt;br /&gt;
The new &amp;lt;var&amp;gt;[[LoadMsgctl (XmlDoc subroutine)|LoadMsgctl]]&amp;lt;/var&amp;gt; method lets you view what &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; messages have been affected by &amp;lt;var&amp;gt;[[MSGCTL command|MSGCTL]]&amp;lt;/var&amp;gt; commands. The method also displays the current attributes of those messages. &amp;lt;!-- PDS-6119 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, to better understand the effect of the &amp;lt;var&amp;gt;MSGCTL&amp;lt;/var&amp;gt; command, the [[RKTools]] &amp;lt;code&amp;gt;SIRIUS&amp;lt;/code&amp;gt; file will contain a procedure you can use to display the &amp;lt;var&amp;gt;MSGCTL&amp;lt;/var&amp;gt; commands that have been specified in the Online session.&lt;br /&gt;
&lt;br /&gt;
====New DigestAlgorithm values====&lt;br /&gt;
Values &amp;lt;var&amp;gt;SHA384&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;SHA512&amp;lt;/var&amp;gt; are added to the [[DigestAlgorithm enumeration]].&lt;br /&gt;
&lt;br /&gt;
====Method variable invocation====&lt;br /&gt;
[[Method variables]] can now be invoked using &amp;lt;code&amp;gt;%var()&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;%obj:var()&amp;lt;/code&amp;gt;, as in JavaScript.&lt;br /&gt;
&lt;br /&gt;
====X509CertificateToXmlDoc method support for unknown elements====&lt;br /&gt;
A certificate&#039;s &amp;lt;code&amp;gt;&amp;amp;lt;RelativeDistinguishedName&amp;amp;gt;&amp;lt;/code&amp;gt; element can contain a wide variety of attributes that &amp;lt;var&amp;gt;X509CertificateToXmlDoc&amp;lt;/var&amp;gt; does not understand. Under Model&amp;amp;nbsp;204 7.6 and earlier, this results in a parse exception, but under 7.7 and later, such attributes are added as &amp;lt;code&amp;gt;&amp;amp;lt;unknown&amp;amp;gt;&amp;lt;/code&amp;gt; elements with an &amp;lt;code&amp;gt;&amp;amp;lt;ObjectIdentifier&amp;amp;gt;&amp;lt;/code&amp;gt; element that indicates the ASN.1 object identifier. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You are advised not to refer to such an &amp;lt;code&amp;gt;&amp;amp;lt;unknown&amp;amp;gt;&amp;lt;/code&amp;gt; element in your programs, since future updates to the &amp;lt;var&amp;gt;X509CertificateToXmlDoc&amp;lt;/var&amp;gt; method might add support for the element, in which case the element name will change to a proper name. If such an element is of interest, [[Contacting Rocket Software Technical Support|contact Rocket Software technical support]]. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Resulting element length in &amp;quot;ToXmlDoc&amp;quot; String methods====&lt;br /&gt;
Prior to version 7.7 of Model&amp;amp;nbsp;204, the &amp;lt;var&amp;gt;[[DerToXmlDoc (String function)|DerToXmlDoc]]&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;[[X509CertificateToXmlDoc (String function)|X509CertificateToXmlDoc]]&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;[[X509CrlToXmlDoc (String function)|X509CrlToXmlDoc]]&amp;lt;/var&amp;gt;, and&lt;br /&gt;
&amp;lt;var&amp;gt;[[RSAPrivateKeyToXmlDoc (String function)|RSAPrivateKeyToXmlDoc]]&amp;lt;/var&amp;gt; methods failed if input to them created any element in the result &amp;lt;var&amp;gt;XmlDoc&amp;lt;/var&amp;gt; with a text child whose length exceeded 650 characters. &lt;br /&gt;
An example of such input is a 4096-bit key (which requires 1024 hex characters).&lt;br /&gt;
&lt;br /&gt;
As of version 7.7, the lengths of the created text nodes are not restricted.&lt;br /&gt;
&lt;br /&gt;
====LDAP request length limit====&lt;br /&gt;
Prior to version 7.7 of Model&amp;amp;nbsp;204, the SOUL [[LDAP class#limit|LDAP client buffers]] allowed a limit of 6144 bytes per request. As of 7.7, the limit is increased to 8184.&lt;br /&gt;
&lt;br /&gt;
===New XHTML entities for square-bracket characters===&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;amp;lsqb;&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;&amp;amp;rsqb;&amp;lt;/b&amp;gt; are newly supported as [[XML processing in Janus SOAP#Entity references|XMHTL entities]] (notably in the [[U (String function)#brackets|U method]]). This provides a better approach to specifying square brackets (such as for [[XPath#Some notes on XPath usage|XPath]] expressions) than the formerly recommended use of &amp;lt;var&amp;gt;Static&amp;lt;/var&amp;gt; %variables initialized to the correct values. &lt;br /&gt;
&lt;br /&gt;
This change is propagated by zap maintenance to version 7.6 of Model 204. &lt;br /&gt;
&lt;br /&gt;
For example, to produce an XPath expression equivalent to the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*/pers[@name=&amp;quot;Hector&amp;quot;] &amp;lt;/nowiki&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
Code like this was recommended under version 7.5 of Model&amp;amp;nbsp;204:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%lsq is string len 1 static initial(&#039;&amp;amp;amp;#x5B;&#039;):u&lt;br /&gt;
%rsq is string len 1 static initial(&#039;&amp;amp;amp;#x5D;&#039;):u&lt;br /&gt;
   . . . &lt;br /&gt;
%myXmldoc:print(&#039;*/pers&#039; %lsq &#039;@name=&amp;quot;Hector&amp;quot;&#039; %rsq) &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under version 7.6 and above, you can instead use the new entities and avoid the declarations, concatenations, and runtime conversions required above:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%myXmldoc:print(&#039;*/pers&amp;lt;b&amp;gt;&amp;amp;lsqb;&amp;lt;/b&amp;gt;@name=&amp;quot;Hector&amp;quot;&amp;lt;b&amp;gt;&amp;amp;rsqb;&amp;lt;/b&amp;gt;&#039;:u)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Procedure names can begin with zero===&lt;br /&gt;
Formerly, a procedure name was not allowed to begin with a zero or a minus sign. As of version 7.7, a procedure name can begin with a zero, and alphanumeric procedure names can begin with a minus sign (&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;), which is interpreted as a hyphen. For example, &amp;lt;code&amp;gt;00123&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-1myproc&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;-myproc&amp;lt;/code&amp;gt; are valid procedure names. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
See the &amp;lt;var&amp;gt;[[PROCEDURE command|PROCEDURE]]&amp;lt;/var&amp;gt; command for details. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Assert statement support for Info expressions===&lt;br /&gt;
The SOUL &amp;lt;var&amp;gt;[[Assert statement|Assert]]&amp;lt;/var&amp;gt; statement allows the optional parameter &amp;lt;var&amp;gt;Info&amp;lt;/var&amp;gt; to provide additional output information. As of version 7.7, the &amp;lt;var&amp;gt;Info&amp;lt;/var&amp;gt; phrase may contain any valid SOUL expression, including a method call or $function. The expression, which must be enclosed in parentheses, is evaluated only in the case of an &amp;lt;var&amp;gt;Assert&amp;lt;/var&amp;gt; failure.&lt;br /&gt;
&lt;br /&gt;
A simple example is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;assert %x gt 0, info (&#039;abc&#039; with &#039;def&#039;) &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This enhancement introduces a slight backward incompatibility: An &amp;lt;var&amp;gt;Assert&amp;lt;/var&amp;gt; statement like the following, whose &amp;lt;var&amp;gt;Info&amp;lt;/var&amp;gt; value begins with an opening parenthesis but has no closing parenthesis, compiled without error prior to version 7.7: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;assert %x gt 0, info (&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
From 7.7 on, such a statement produces a compilation error, because the compiler expects an expression after the open parenthesis. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Security enhancements==&lt;br /&gt;
===Long password support===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Logon passwords, maintained in CCASTAT, can now contain as many as 127 characters. &lt;br /&gt;
&amp;lt;br /&amp;gt;Also, passwords and passphrases can now contain one or more embedded spaces. (Leading and trailing spaces are stripped.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The long password feature includes support for: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[LOGIN or LOGON command|LOGON]]&amp;lt;/var&amp;gt; command&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[LOGINCP or LOGONCP command|LOGONCP]]&amp;lt;/var&amp;gt; command, used to change a password&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[LOGCTL command: Modifying user ID entries in the password table|LOGCTL C USERID]]&amp;lt;/var&amp;gt; command&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[$Sir_Login]]&amp;lt;/var&amp;gt; function&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Mixed-case passwords (if the &amp;lt;var&amp;gt;[[CUSTOM parameter|CUSTOM]]&amp;lt;/var&amp;gt; parameter includes the value 11)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;[[Storing_security_information_(CCASTAT)|CCASTAT]] data sets created with or without password expiration support&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Long passwords (passphrases) for use with the following [[Security interfaces overview|external security interfaces]]: CA-ACF2 MVS, Security Server (formerly RACF), and CA-Top Secret&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This feature is available for logon passwords only; it does not apply to file passwords.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
No changes to CCASTAT and no new CCAIN parameters are required to enable long password support.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In order to allow embedded blanks in passwords passed on [[IFSTRTN_(IFAM2)_(HLI_function)|IFSTRTN]] calls, a semicolon is required as the password delimiter and the &amp;lt;var&amp;gt;[[CUSTOM parameter|CUSTOM]]&amp;lt;/var&amp;gt; parameter 24 value must be set.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For additional security enhancements in version 7.7, see [[#Janus Network Security ciphers and private keys|Janus Network Security ciphers and private keys]] as well as [[#&amp;quot;SSL&amp;quot; String methods|&amp;quot;SSL&amp;quot; String methods]], [[#New DigestAlgorithm values|New DigestAlgorithm values]], and [[#New default certificate-signing algorithm|New default certificate-signing algorithm]].&lt;br /&gt;
&lt;br /&gt;
==Janus product enhancements==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;IPV6&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;Support for IPV6===&lt;br /&gt;
As of version 7.7, customers can use the [[Janus products]] in an IPV6 (Internet Protocol Version 6) environment. Before this release, all Janus commands and parameters were able to accommodate IPV4 addresses only. IPV6 addresses expand the network address space from 32 to 128 bits.&lt;br /&gt;
&lt;br /&gt;
These parameters, commands, and functions support IPV6 under version 7.7 of Model&amp;amp;nbsp;204:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;Commands&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;System parameter&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;SOUL&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td nowrap&amp;gt;&lt;br /&gt;
JANUS CLSOCK and JANUS SRVSOCK &amp;lt;br&amp;gt;&lt;br /&gt;
JANUSDEBUG and JANUS WEB DEBUG &amp;lt;br&amp;gt;&lt;br /&gt;
JANUS DEFINEIPGROUP &amp;lt;br&amp;gt;&lt;br /&gt;
JANUS DEFINE BINDADDR &amp;lt;br&amp;gt;&lt;br /&gt;
JANUS DISIPG  &amp;lt;br&amp;gt;&lt;br /&gt;
JANUS DISUSG  &amp;lt;br&amp;gt;&lt;br /&gt;
JANUS TRACE &amp;lt;br&amp;gt;&lt;br /&gt;
JANUS WEB ALLOW &lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;&lt;br /&gt;
TCPTYPE &amp;lt;br&amp;gt;&lt;br /&gt;
(see [[#tcptype|TCPTYPE (new IPV6 values)]])&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;&lt;br /&gt;
$Web_IPAddr &amp;lt;br&amp;gt;&lt;br /&gt;
LocalHost (UdpSocket property) &lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Janus Network Security ciphers and private keys===&lt;br /&gt;
Support for certificates signed using [[DigestAlgorithm_enumeration|SHA-384 and SHA-512]] are added to [[Janus Network Security]]. This makes it possible to generate certificates signed with these algorithms and to accept server or client certificates signed with these algorithms.&lt;br /&gt;
&lt;br /&gt;
In addition, support is added for RSA keys that are as many as 4096 bits in length. You can now generate and sign 4096-bit keys and use them in client and server certificates using &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Network Security&amp;lt;/var&amp;gt; application as well as its associated and related methods, including:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;Class&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Method&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;System&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[GeneratedPrivateKey (System function)|GeneratedPrivateKey]]&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;Stringlist&amp;lt;/td&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[AppendCertificateRequest (Stringlist function)|AppendCertificateRequest]]&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[AppendGeneratedPrivateKey (Stringlist subroutine)|AppendGeneratedPrivateKey]]&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[AppendSignedCertificate (Stringlist function)|AppendSignedCertificate]]&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[AppendSignedClientCertificate (Stringlist function)|AppendSignedClientCertificate]]&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;String&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[CertificateRequest (String function)|CertificateRequest]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[ClientCertificateRequest (String function)|ClientCertificateRequest]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[RSAPrivateKeyToXmlDoc (String function)|RSAPrivateKeyToXmlDoc]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;[[SignedCertificate (String function)|SignedCertificate]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Janus Web Server rules===&lt;br /&gt;
The following changes have been made in version 7.7:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Janus Web used to automatically implement [[Defining Web rules#Notes|two web server ON rules]] to set up access to the Janus Web sample home page and to demonstration application procedures. These rules were removed in version 7.6 (by zap maintenance) and are not present in version 7.7.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;You can now substitute an HTTP method name in the command for a &amp;lt;var&amp;gt;JANUS WEB ON&amp;lt;/var&amp;gt; rule. See [[#ON rules (method name substitution)|ON rules (method name substitution)]] for details.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The automatic &amp;lt;var&amp;gt;[[JANUS WEB ALLOW]]&amp;lt;/var&amp;gt; rule, which allowed any user to access the port without requiring a login, is changed &amp;lt;i&amp;gt;for non-SSL ports&amp;lt;/i&amp;gt; to the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;JANUS WEB &amp;lt;i&amp;gt;portname&amp;lt;/i&amp;gt; DISALLOW *&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This rule requires a system administrator to explicitly define &amp;lt;var&amp;gt;ALLOW&amp;lt;/var&amp;gt; rules to enable users to access non-SSL ports.&lt;br /&gt;
The rule applies (after zap 77Z088 in version 7.7, or after zap 76Z418 in version 7.6) unless overridden by user-added rules. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; With version 7.7 zap 77Z090 or version 7.6 zap 76Z420, you can make the default &amp;lt;var&amp;gt;ALLOW&amp;lt;/var&amp;gt; rule as it was in version 7.5 and earlier (&amp;lt;code&amp;gt;ALLOW *&amp;lt;/code&amp;gt;). To do so, turn on the 1 bit of the &amp;lt;var&amp;gt;[[WEBDFLT parameter|WEBDFLT]]&amp;lt;/var&amp;gt; parameter: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;RESET WEBDFLT=1&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;As described below in [[#JANUS WEB (additional rule support)|JANUS WEB (additional rule support)]], the &amp;lt;var&amp;gt;JANUS WEB&amp;lt;/var&amp;gt; command &amp;lt;var&amp;gt;ALLOW&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;DISALLOW&amp;lt;/var&amp;gt; rules are updated to include support for RESTful and WebDAV HTTP methods. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Janus Web access to HTTP authorization and authentication headers===&lt;br /&gt;
Under version 7.7, Janus Web lets you access HTTP user authentication headers. You can capture the HTTP &amp;quot;Authorization&amp;quot; request header value, and you can set the &amp;quot;WWW-Authenticate&amp;quot; response header. See [[Janus Web Server security#Authorization and WWW-Authenticate headers|Authorization and WWW-Authenticate headers]].&lt;br /&gt;
&lt;br /&gt;
==Fast/Unload enhancements==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;funldIntegrat&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;Integration of Fast/Unload with the Online load module ===&lt;br /&gt;
&amp;lt;!-- PDS-5869 --&amp;gt;&lt;br /&gt;
Previously (for all versions of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Fast/Unload&amp;lt;/var&amp;gt; through 4.7), the standalone &amp;lt;code&amp;gt;FUNLOAD&amp;lt;/code&amp;gt; load module was downloaded and linked separately and independently from Model&amp;amp;nbsp;204. Starting with version 7.7 of Model&amp;amp;nbsp;204:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Fast/Unload&amp;lt;/var&amp;gt; is entirely linked with the Model&amp;amp;nbsp;204 Online load module. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Maintenance zaps applied to the Online load module include all &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Fast/Unload&amp;lt;/var&amp;gt; maintenance.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The version number of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Fast/Unload&amp;lt;/var&amp;gt; is the same as the version number of Model&amp;amp;nbsp;204. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you are authorized for Fast/Unload, the authorization zap for the ONLINE load module will contain authorization for Fast/Unload. The authorization zap used for previous releases of FUNLOAD should not be applied to the FUNLOAD module in 7.7.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under 7.7, the Online load module can be linked with an ALIAS (the standard one is FUNLOAD) and an alternate ENTRY. This alias is functionally indistinguishable from the standalone &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Fast/Unload&amp;lt;/var&amp;gt; FUNLOAD load module installed for all previous versions of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Fast/Unload&amp;lt;/var&amp;gt;.   &lt;br /&gt;
&lt;br /&gt;
The integration of Fast/Unload with the Online load module also makes additional DDnames available to PGM=FUNLOAD for possible problem diagnosis by Rocket Technical Support. These DDnames are &amp;lt;code&amp;gt;CCASNAP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CCAAUDIT&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;CCAPRINT&amp;lt;/code&amp;gt;, and they are described in [[Fast/Unload invocation#ccadd|Fast/Unload invocation]].&lt;br /&gt;
&lt;br /&gt;
A significant benefit of running Fast/Unload integrated with Model&amp;amp;nbsp;204 and not standalone  is the ability to take advantage of zIIP processing, as described next in the &amp;quot;zIIP exploitation&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
===zIIP exploitation===&lt;br /&gt;
If you have an authorization zap that contains both of the following, your standalone PGM=FUNLOAD jobs will run on a zIIP processor, if one is available:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[Performance monitoring and tuning#Offloading Model 204 work to zIIP processors|M204 HPO]]&amp;lt;/var&amp;gt;, the zIIP-support product of Model&amp;amp;nbsp;204&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
PGM=FUNLOAD automatically supplies the necessary Model&amp;amp;nbsp;204 parameters to enable zIIP exploitation. &amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[Fast/Unload overview#fuhpo|Fast/Unload HPO]]&amp;lt;/var&amp;gt; product &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===New #VIEW204 function===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[Fast/Unload standard functions#.23VIEW204: Value of Model 204 parameter|#VIEW204]]&amp;lt;/var&amp;gt; function returns the value of the [[List of Model 204 parameters|Model&amp;amp;nbsp;204 parameter]] you specify as an argument.&lt;br /&gt;
&lt;br /&gt;
===PUT statement enhancements===&lt;br /&gt;
&amp;lt;!-- PDS-6107 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Length prefix for PUT output values====&lt;br /&gt;
&amp;lt;!-- PDS-5871 --&amp;gt;&lt;br /&gt;
New &amp;lt;var&amp;gt;[[Fast/Unload PUT statement#PUT|PUT]]&amp;lt;/var&amp;gt; statement syntax is added to insert a one-byte or two-byte binary integer, containing the byte length of a &amp;lt;var&amp;gt;PUT&amp;lt;/var&amp;gt; value, in the output stream before the value. &lt;br /&gt;
&lt;br /&gt;
For better readability and lower CPU cost than the techniques currently used to achieve the same result, the &amp;lt;var&amp;gt;AS&amp;lt;/var&amp;gt; clause of a &amp;lt;var&amp;gt;PUT&amp;lt;/var&amp;gt; statement will now allow the &amp;lt;var&amp;gt;COUNTED&amp;lt;/var&amp;gt; keyword:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;... PUT &amp;lt;i&amp;gt;info&amp;lt;/i&amp;gt; .. AS [&amp;lt;i&amp;gt;format&amp;lt;/i&amp;gt;] COUNTED[1|2] &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For example, &amp;lt;code&amp;gt;PUT FIRST.NAME AS COUNTED2&amp;lt;/code&amp;gt; puts the first occurrence of field &amp;lt;code&amp;gt;FIRST.NAME&amp;lt;/code&amp;gt; as a string value, preceded by a two-byte binary integer containing the length of that occurrence.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
With this feature, you can replace FUEL code such as the following: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%VAL = ITEM.CODE(%OCC)&lt;br /&gt;
%LEN = #LEN( %VAL )&lt;br /&gt;
PUT %LEN AS FIXED(2)&lt;br /&gt;
PUT %VAL &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;With: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PUT %VAL AS COUNTED2 &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====#function as PUT &amp;quot;info&amp;quot; argument====&lt;br /&gt;
&amp;lt;!-- PDS-5871 --&amp;gt;&lt;br /&gt;
New in this version, a #function call is allowed as the &amp;lt;var&amp;gt;PUT&amp;lt;/var&amp;gt; &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;info&amp;lt;/var&amp;gt; argument. For example, instead of FUEL code such as the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%VAL = #STRIP(ITEM.VALUE(%OCC), &#039;L&#039;, 0)&lt;br /&gt;
PUT %VAL &amp;lt;/p&amp;gt;&lt;br /&gt;
You can use this more readable and somewhat more efficient equivalent:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PUT #STRIP(ITEM.VALUE(%OCC), &#039;L&#039;, 0) &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===#STRIP function enhancements===&lt;br /&gt;
&amp;lt;!-- PDS-5871 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====New #STRIP fourth argument====&lt;br /&gt;
&amp;lt;!-- PDS-5871 --&amp;gt;&lt;br /&gt;
The new fourth argument of &amp;lt;var&amp;gt;[[Fast/Unload standard functions##strip|#STRIP]]&amp;lt;/var&amp;gt; lets you designate a &amp;lt;var&amp;gt;#STRIP&amp;lt;/var&amp;gt; first-argument value to be nullified. That is, when the value of the first argument is equal to the value of the fourth argument, &amp;lt;var&amp;gt;#STRIP&amp;lt;/var&amp;gt; returns a null string. You might use this optional argument for fields that have a &amp;quot;placeholder value&amp;quot; or &amp;quot;default value&amp;quot; which is not actual data.&lt;br /&gt;
&lt;br /&gt;
This argument can be conveniently combined with the&lt;br /&gt;
new &amp;lt;var&amp;gt;[[#Length prefix for PUT output values|COUNTED]]&amp;lt;/var&amp;gt; options for &amp;lt;var&amp;gt;PUT&amp;lt;/var&amp;gt;, because a length-prefixed format allows a reliable, unambiguous representation of a series of null strings. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Combining the new fourth argument, the new &amp;lt;var&amp;gt;COUNTED2&amp;lt;/var&amp;gt; option, and the new [[#optn|N option]] of the second argument provides a simpler alternative to FUEL code such as the following:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%VAL = ITEM.STRING(%OCC)&lt;br /&gt;
IF %VAL EQ &#039;_&#039; THEN&lt;br /&gt;
   PUT 0 AS FIXED(2)&lt;br /&gt;
ELSE&lt;br /&gt;
   %LEN = #LEN(%VAL)&lt;br /&gt;
   PUT %LEN AS FIXED(2)&lt;br /&gt;
   PUT %VAL&lt;br /&gt;
END IF&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
You can replace the above statements by the more readable and efficient: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PUT #STRIP(ITEM.STRING(%OCC), &#039;N&#039;, , &#039;_&#039;) AS COUNTED2&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====New #STRIP type options====&lt;br /&gt;
&amp;lt;!-- PDS-5871 --&amp;gt;&lt;br /&gt;
&amp;lt;var&amp;gt;P&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;N&amp;lt;/var&amp;gt; strip-type options are added to the &amp;lt;var&amp;gt;#STRIP&amp;lt;/var&amp;gt; function:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The new &amp;lt;var&amp;gt;P&amp;lt;/var&amp;gt; option strips all but one leading &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;pad&amp;lt;/var&amp;gt;-argument characters from the &amp;lt;var&amp;gt;#STRIP&amp;lt;/var&amp;gt; first argument returned value, if that value contains a non-zero length string of only &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;pad&amp;lt;/var&amp;gt; characters. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;var&amp;gt;P&amp;lt;/var&amp;gt;, together with other new Fast/Unload &amp;lt;var&amp;gt;PUT&amp;lt;/var&amp;gt; features, provides a simpler alternative to FUEL code such as the following:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%VAL = ITEM.NUMBER(%OCC)&lt;br /&gt;
IF %VAL EQ &#039;_&#039; OR %VAL EQ &amp;amp;apos;&#039; THEN&lt;br /&gt;
   PUT 0 AS FIXED(2)&lt;br /&gt;
ELSE&lt;br /&gt;
   %VAL = #STRIP(%VAL, &#039;L&#039;, &#039;0&#039;)&lt;br /&gt;
   IF %VAL EQ &amp;amp;apos;&#039; THEN&lt;br /&gt;
      %VAL = &#039;0&#039;&lt;br /&gt;
   END IF&lt;br /&gt;
   %LEN = #LEN(%VAL)&lt;br /&gt;
   PUT %LEN AS FIXED(2)&lt;br /&gt;
   PUT %VAL&lt;br /&gt;
END IF &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
You can replace the above statements with the following, which outputs a numeric value with leading zeroes stripped: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PUT #STRIP(ITEM.NUMBER(%OCC), &#039;P&#039;, &#039;0&#039;, &#039;_&#039;) AS COUNTED2&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; A FUEL &amp;lt;var&amp;gt;IF&amp;lt;/var&amp;gt; statement oddity is that the precedence of &amp;lt;var&amp;gt;AND&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;OR&amp;lt;/var&amp;gt; are the same.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li id=&amp;quot;optn&amp;quot;&amp;gt;The new &amp;lt;var&amp;gt;N&amp;lt;/var&amp;gt; option strips neither leading-characters nor trailing-characters. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For an example, see [[#New #STRIP fourth argument|New #STRIP fourth argument]], above.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==New and changed commands==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     ******************************************************************&lt;br /&gt;
     Please keep the following subsections alphabetized by command name&lt;br /&gt;
     ******************************************************************&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===AUTHCTL VIEW (additional information displayed)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[AUTHCTL command#Example|AUTHCTL]]&amp;lt;/var&amp;gt; command output now includes a list of the available sets of control parameters for the external security interface you specify in the command.&lt;br /&gt;
&lt;br /&gt;
===DISPLAY MODMAP (new parameter: &amp;lt;var&amp;gt;UEX&amp;lt;/var&amp;gt;)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[DISPLAY MODMAP command|DISPLAY MODMAP]]&amp;lt;/var&amp;gt; command now has a &amp;lt;var&amp;gt;UEX&amp;lt;/var&amp;gt; parameter that displays the entry point addresses of all defined user exits.&lt;br /&gt;
&lt;br /&gt;
===FREE command (new message)===&lt;br /&gt;
Prior to this release, a successful &amp;lt;var&amp;gt;[[FREE command#msg|FREE]]&amp;lt;/var&amp;gt; command was not followed by a message indicating success. Under version 7.7, &amp;lt;var&amp;gt;FREE&amp;lt;/var&amp;gt; now indicates success with the following message:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.0510: FREE command successful; &amp;lt;i&amp;gt;ddname&amp;lt;/i&amp;gt; freed &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also new in this release, a &amp;lt;var&amp;gt;FREE&amp;lt;/var&amp;gt; command that takes no action because the specified file does not exist or is not allocated is now followed by an explanatory message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.0509: No action taken by FREE command; &amp;lt;i&amp;gt;ddname&amp;lt;/i&amp;gt; not allocated &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
In earlier versions, no such message followed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===JANUS DEFINE (new parameter: &amp;lt;var&amp;gt;SSLTRUST&amp;lt;/var&amp;gt;)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[JANUS DEFINE]]&amp;lt;/var&amp;gt; command now has an &amp;lt;var&amp;gt;[[SSLTRUST (JANUS DEFINE parameter)|SSLTRUST]]&amp;lt;/var&amp;gt; parameter that indicates that the certificate presented by the other side of a TLS/SSL connection is to be accepted even if it is not signed by a known certifying authority.&lt;br /&gt;
&lt;br /&gt;
===JANUS WEB (additional rule support)===&lt;br /&gt;
&amp;lt;!-- PDS-5984 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Expanded ALLOW/DISALLOW rules====&lt;br /&gt;
The &amp;lt;var&amp;gt;[[JANUS WEB]]&amp;lt;/var&amp;gt; command &amp;lt;var&amp;gt;ALLOW&amp;lt;/var&amp;gt;/&amp;lt;var&amp;gt;DISALLOW&amp;lt;/var&amp;gt; rules are updated to include support for these HTTP methods:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The RESTful ([https://en.wikipedia.org/wiki/Representational_state_transfer Representational State Transfer]) methods CONNECT, DELETE, OPTIONS, PATCH, and TRACE. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The WebDAV ([http://www.webdav.org/specs/rfc4918.html Distributed Authoring and Versioning]) methods PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, and UNLOCK. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====ON rules (method name substitution)====&lt;br /&gt;
In a version 7.7 &amp;lt;var&amp;gt;[[JANUS WEB ON|JANUS WEB ON]]&amp;lt;/var&amp;gt; command, you can now reference the name of the HTTP method that is associated with the incoming request. To do this, specify an &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; after the escape (&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;) character, as in: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;JANUS WEB WEBPORT ON /TEST/* OPEN FILE TEST CMD &#039;I &amp;quot;M.*&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A GET request for URL &amp;lt;code&amp;gt;/test/foo&amp;lt;/code&amp;gt; would result in the file &amp;lt;code&amp;gt;TEST&amp;lt;/code&amp;gt; being opened and the command &amp;lt;code&amp;gt;I GET.FOO&amp;lt;/code&amp;gt; being issued. A POST for the same URL would result in the command &amp;lt;code&amp;gt;I POST.FOO&amp;lt;/code&amp;gt; being issued.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This behavior is a change from past releases, when &amp;lt;code&amp;gt;&amp;quot;M&amp;lt;/code&amp;gt; was simply converted to &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===LOGINCP or LOGONCP (new)===&lt;br /&gt;
Because colons are now valid password characters, the &amp;lt;var&amp;gt;[[LOGINCP or LOGONCP command|LOGINCP]]&amp;lt;/var&amp;gt; (LOGIN and Change Password) command replaces the former technique for changing passwords using &amp;lt;var&amp;gt;LOGIN&amp;lt;/var&amp;gt;. &lt;br /&gt;
&amp;lt;p&amp;gt;Before version 7.7, with &amp;lt;var&amp;gt;LOGIN&amp;lt;/var&amp;gt;, you specified &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;oldpassword&amp;lt;/var&amp;gt;&amp;lt;tt&amp;gt;:&amp;lt;/tt&amp;gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;newpassword&amp;lt;/var&amp;gt; in response to the &amp;lt;code&amp;gt;M204.0347: Password&amp;lt;/code&amp;gt; prompt.&amp;lt;/p&amp;gt; &lt;br /&gt;
With the &amp;lt;var&amp;gt;LOGINCP&amp;lt;/var&amp;gt; command, you are prompted and re-prompted for the new password after successful logon:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;b&amp;gt;LOGINCP USER1&amp;lt;/b&amp;gt;&lt;br /&gt;
M204.0347: Password  &lt;br /&gt;
M204.0353: USER1     USER1    login  16 JUL 29  12.38 &lt;br /&gt;
M204.2633: Enter new password    &lt;br /&gt;
M204.2633: Re-enter new password &lt;br /&gt;
M204.0350: New password accepted &lt;br /&gt;
M204.0345: CCASTAT updated &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;var&amp;gt;LOGONCP&amp;lt;/var&amp;gt; is a synonym for &amp;lt;var&amp;gt;LOGINCP&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===ZHPF (new parameters: &amp;lt;i&amp;gt;filename&amp;lt;/i&amp;gt; and *)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[ZHPF command|ZHPF]]&amp;lt;/var&amp;gt; command checks zHPF ability for the file currently opened by the user. &lt;br /&gt;
&lt;br /&gt;
As of Model 204 7.7, you can specify parameters to &amp;lt;var&amp;gt;ZHPF&amp;lt;/var&amp;gt;:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;filename&amp;lt;/var&amp;gt;, to check a specific file&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;An asterisk (&amp;lt;tt&amp;gt;*&amp;lt;/tt&amp;gt;), to check local files opened by all users&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==New and changed parameters==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     ********************************************************************&lt;br /&gt;
     Please keep the following subsections alphabetized by parameter name&lt;br /&gt;
     ********************************************************************&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CUSTOM (new and changed values)===&lt;br /&gt;
====New values====&lt;br /&gt;
The following values have been added to the &amp;lt;var&amp;gt;[[CUSTOM parameter|CUSTOM]]&amp;lt;/var&amp;gt; parameter in this release:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;CUSTOM=23&amp;lt;/code&amp;gt; value always truncates the user ID to 10 characters.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;CUSTOM=41&amp;lt;/code&amp;gt; value allows recording of data on successful RACF user logins. The login data is shown in RACFRW batch reports.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;CUSTOM=42&amp;lt;/code&amp;gt; value allows the editing of procedure names containing the following special characters: comma, equal sign, space, single quote, semicolon.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Changed value====&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;code&amp;gt;CUSTOM=11&amp;lt;/code&amp;gt; value also supports special-characters for RACF passwords as of version 7.7.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===LFSCB (new default/minimum value)===&lt;br /&gt;
The default (and minimum) value of &amp;lt;var&amp;gt;[[LFSCB parameter|LFSCB]]&amp;lt;/var&amp;gt; is now 8 bytes.&lt;br /&gt;
 &lt;br /&gt;
===LITBL (new default/minimum value)===&lt;br /&gt;
The default (and minimum) value of &amp;lt;var&amp;gt;[[LITBL parameter|LITBL]]&amp;lt;/var&amp;gt; is now 8 bytes.&lt;br /&gt;
&lt;br /&gt;
===MINDEBCL (new)===&lt;br /&gt;
The new system parameter, &amp;lt;var&amp;gt;[[MINDEBCL parameter|MINDEBCL]]&amp;lt;/var&amp;gt;, can be set in an Online to specify the minimum [[Debugger]] Client build number that can be used with that Online.&lt;br /&gt;
&lt;br /&gt;
===MPDELAY and MPDELAYZ (new)===&lt;br /&gt;
For an [[Performance monitoring and tuning#Multiprocessing .28MP.2F204.29|MP/204]] Online, the &amp;lt;var&amp;gt;[[MPDELAY parameter|MPDELAY]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[MPDELAYZ parameter|MPDELAYZ]]&amp;lt;/var&amp;gt; parameters are added to improve the efficiency of the MP scheduler. They reduce the cost of starting too many new subtasks for the amount of work to be done.&lt;br /&gt;
&lt;br /&gt;
===NUMBUF and NUMBUFG===&lt;br /&gt;
As described below in [[#Elimination of BTB buffers|Elimination of BTB buffers]], setting &amp;lt;var&amp;gt;NUMBUFG&amp;lt;/var&amp;gt; greater than 0 in version 7.7 forces &amp;lt;var&amp;gt;NUMBUF&amp;lt;/var&amp;gt; to 0 (no buffer pool buffers reside below the bar). Not setting &amp;lt;var&amp;gt;NUMBUFG&amp;lt;/var&amp;gt; or setting it to 0 (no buffers above the bar) allows the calculation of BTB buffers to remain as in previous versions.&lt;br /&gt;
&lt;br /&gt;
===SCHDOFL and SCHDOFLZ (new minimum value)===&lt;br /&gt;
The new minimum value of &amp;lt;var&amp;gt;[[SCHDOFL parameter|SCHDOFL]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[SCHDOFLZ parameter|SCHDOFLZ]]&amp;lt;/var&amp;gt; is 0. Before Model 204 7.7, their minimum allowed value was 1.&lt;br /&gt;
&lt;br /&gt;
===SCHDOFLS (new)===&lt;br /&gt;
For z/OS system customers using &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; zIIP support, the new &amp;lt;var&amp;gt;[[SCHDOFLS parameter|SCHDOFLS]]&amp;lt;/var&amp;gt; system parameter helps you to regulate the zIIP processor workload. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;SCHDOFLS&amp;lt;/var&amp;gt; specifies both of the following: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The target number of threads on the zIIP offload queue before a non-SRB MP subtask is dispatched to help the zIIP subtasks. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If started, how aggressively non-SRB MP subtasks pick up work from the zIIP offload queue. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This parameter applies to z/OS only.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SCHDOPT (change to X&#039;20&#039; bit processing)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[SCHDOPT parameter|SCHDOPT]]&amp;lt;/var&amp;gt; X&#039;20&#039; bit prevents the maintask from running work that is intended to run on a zIIP subtask (when zIIP subtasks are defined and activated). As of Model&amp;amp;nbsp;204 7.7, even when this bit is off, the maintask will run some of the zIIP work only if the zIIP subtasks appear to be saturated. Saturation is defined as a zIIP subtask queue length of at least &amp;lt;code&amp;gt;[[SCHDOFLZ parameter|SCHDOFLZ]]*[[AMPSUBZ parameter|AMPSUBZ]]&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Formerly, this saturation requirement was absent, allowing the maintask to take on more (possibly too much) of the zIIP workload.&lt;br /&gt;
&lt;br /&gt;
===SERVSIZE (new default/minimum value)===&lt;br /&gt;
The minimum value for &amp;lt;var&amp;gt;[[SERVSIZE parameter|SERVSIZE ]]&amp;lt;/var&amp;gt; is changed from zero to 65536. If &amp;lt;var&amp;gt;SERVSIZE&amp;lt;/var&amp;gt; is explicitly set in CCAIN and its value is less than 64K, the following message is issued:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.1149: SERVSIZE has been set to its minimum value: 65536&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;var&amp;gt;SERVSIZE&amp;lt;/var&amp;gt; was not set but was [[Defining the runtime environment (CCAIN)#Sizing user server areas|calculated by the system]] to a value less than 64K, the following message is issued:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.0163: SERVSIZE increased to 65536&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This change is propagated by zap maintenance to versions 7.6, 7.5, and 7.4 of Model&amp;amp;nbsp;204. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;tcptype&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;TCPTYPE (new IPV6 values)===&lt;br /&gt;
As part of the version 7.7 [[#IPV6|support for IPV6]], three new optional (IPV6-address-only) values are added to the &amp;lt;var&amp;gt;[[TCPTYPE parameter|TCPTYPE]]&amp;lt;/var&amp;gt; parameter: &lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;IBMV6&lt;br /&gt;
BPXV6&lt;br /&gt;
IUCVV6&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Performance enhancements==&lt;br /&gt;
&lt;br /&gt;
===Elimination of BTB buffers===&lt;br /&gt;
As of version 7.7, any use of above-the-bar buffer pool (as invoked by a setting of the &amp;lt;var&amp;gt;[[NUMBUFG parameter|NUMBUFG]]&amp;lt;/var&amp;gt; parameter greater than 0) will force all buffer pool buffers above the bar &amp;amp;mdash; no below-the-bar buffers will exist. In this case, the &amp;lt;var&amp;gt;[[NUMBUF parameter|NUMBUF]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[MINBUF parameter|MINBUF]]&amp;lt;/var&amp;gt; parameters will be forced to 0, and the other parameters that affect BTB storage (&amp;lt;var&amp;gt;MAXBUF&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;SPCORE&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;LDKBMWND&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;NLRUQ&amp;lt;/var&amp;gt;) will be ignored.&lt;br /&gt;
&lt;br /&gt;
If you set &amp;lt;var&amp;gt;NUMBUFG&amp;lt;/var&amp;gt; to 0, all buffers will be below the bar, and the settings of the BTB-related parameters will be respected and calculated as in pre-7.7 versions.&lt;br /&gt;
&lt;br /&gt;
===Increase in request limit for number of images, screens, and menus===&lt;br /&gt;
These limits are increased to 4095 per request:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The total number of [[Images|images]] for all blocks (formerly 256)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The maximum number of [[Menu statement or block#Menus and screens|menus and screens]] combined (formerly 256)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Large checkpoint data sets===&lt;br /&gt;
Support is added for large data sets (as many as 16 million tracks) for the Model&amp;amp;nbsp;204 Checkpoint facility [[Checkpoints: Storing before-images of changed pages#Creating the CHKPOINT.2FCHKPNT .28and CHKPNTS.29 data set|CHKPOINT or CHKPNTS data sets]]. For details, see [[System_and_media_recovery#ROLL_BACK_processing.2C_Pass_2|ROLL BACK processing, Pass 2]].&lt;br /&gt;
&lt;br /&gt;
==Statistics enhancements==&lt;br /&gt;
&lt;br /&gt;
===BLKO===&lt;br /&gt;
The [[Using system statistics#System performance statistics|performance statistic]] BLKO now also reports invisible users that are blocked out. In previous releases, invisible users were not reported and BLKO remained virtually zero. The new BLKO value is more precise, and by summing BLKO, WTSV, BLKI, REDY, SWPG, and RUNG, you can now approximate USRS (average active users).&lt;br /&gt;
&lt;br /&gt;
For the &amp;lt;var&amp;gt;MONITOR&amp;lt;/var&amp;gt; command, the [[ONLINE monitoring#User information in formatted displays|QUE column]] now reports new values OFFO and OFFI instead of OFFQ for invisible users:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;OFFO is invisible and blocked out. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;OFFI is invisible and blocked in. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The BLKO QUE value continues to mean blocked out and visible (on some queue), and BLKI means blocked in and visible.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CCATDIFF and CCATDIFH===&lt;br /&gt;
The [[Using system statistics#Description of statistics|CCATDIFF]] user and since-last statistic gets incremented each time a user allocates a CCATEMP page, and it gets decremented each time a user frees a page. Its value is not allowed to drop below zero. In the event of a CCATEMP page shortage, CCATDIFF gives system managers the possibility of determining a particular user that might be primarily responsible. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; CCATDIFF is a rough guide, not definitive: it might give false high readings for some users, but it will indicate a user whose usage is extremely extraordinary. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Using system statistics#Description of statistics|CCATDIFH]] is a since-last statistic that reports a request&#039;s CCATDIFF since-last highwater mark, useful to retrospectively determine which request was responsible for a massive CCATEMP usage spike. For example, it will record a request that allocated a large number of CCATEMP pages but freed the pages before the request ended.&lt;br /&gt;
&lt;br /&gt;
==Other enhancements==&lt;br /&gt;
&lt;br /&gt;
===MODEL 6 screen size and back-paging===&lt;br /&gt;
As of Model 204 version 7.7 (and 7.5 or 7.6 with maintenance applied), a large &amp;lt;var&amp;gt;[[LOUTPB parameter|LOUTPB]]&amp;lt;/var&amp;gt; value for [[Terminal MODEL 6 support|MODEL 6]] geometries is allowed, even if screen back-paging has been enabled. &lt;br /&gt;
&lt;br /&gt;
In previous releases, during initialization, if back-paging was enabled for the IODEV, &amp;lt;var&amp;gt;LOUTPB&amp;lt;/var&amp;gt; was automatically reset to the limit that supported back-paging. &lt;br /&gt;
&lt;br /&gt;
Back-paging will now be disabled for any terminal with a &amp;lt;code&amp;gt;MODEL 6&amp;lt;/code&amp;gt; screen geometry that requires more than 6142 bytes.&lt;br /&gt;
&lt;br /&gt;
===ECF calls to the IBM IDCAMS utility===&lt;br /&gt;
The new &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; option for the &amp;lt;var&amp;gt;[[External Call Facility#module|External Module]]&amp;lt;/var&amp;gt; statement of the Model&amp;amp;nbsp;204 [[External Call Facility]] lets a SOUL program invoke IDCAMS without using the SYSIN and SYSPRINT DD statements. Instead, the Model&amp;amp;nbsp;204 Universal Buffer is used to pass the input lines and receive the output lines from IDCAMS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;ecfprofile&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;Running ECF requests under the invoking user’s profile===&lt;br /&gt;
&amp;lt;!-- see PDS-6158 --&amp;gt;Unless the new system parameter &amp;lt;var&amp;gt;[[ECPRIV parameter|ECPRIV]]&amp;lt;/var&amp;gt; 4 bit is set, the job invoked by a privileged [[External Call Facility]] statement at a site where an external authorizer (ACF2, RACF, or Top/Secret) is used runs under the external-authorizer profile of the &amp;lt;i&amp;gt;user&amp;lt;/i&amp;gt; that invokes the External Call, rather than under the &amp;lt;i&amp;gt;job&#039;s&amp;lt;/i&amp;gt; external-authorizer profile. &lt;br /&gt;
&lt;br /&gt;
Prior to version 7.7, such a job always ran under the job&#039;s external-authorizer profile, so this is a [[#Profile used for running ECF requests|backward compatibility]] issue.&lt;br /&gt;
&lt;br /&gt;
==Debugger updates==&lt;br /&gt;
&lt;br /&gt;
===SoftSpy authorization===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
SoftSpy and Muse are now authorized using the standard zap AUTH mechanism.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
EDIT CONFIG is no longer used to enter authorization keys, and the second (key entry) screen  of SPY EDIT CONFIG no longer appears.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SoftSpy Error message for DBCSENV===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
As in previous releases, SoftSpy is not supported in a DBCS (double-byte character set) environment. As of version 7.7, if the CCAIN parameter DBCSENV is set to a non-zero value, the SPY command is rejected with the following message:&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;Message 207: SoftSpy may not be used in a DBCS environment.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Debugger Client version information display on mainframe===&lt;br /&gt;
As of version 7.7 and Client build 64, the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus/TN3270 Debugger&amp;lt;/var&amp;gt; Client sends its build and tag number to the mainframe, and this information is displayed in message [[MSIR.1077]]:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot; style=&amp;quot;font-size:93%&amp;quot;&amp;gt;MSIR.1077: Begin debug session, user 3, client: Build: 64, Tag: 2 (Janus debugger session)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This information is not sent if the Debugger Client build number is less than 64, and the mainframe side views all Client versions prior to build 64 as build 63.&lt;br /&gt;
&lt;br /&gt;
The build number, which identifies Client versions, is displayed in the Client &amp;lt;b&amp;gt;Audit Trail&amp;lt;/b&amp;gt; tab at start up:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;2016 07 30 17:21:47    The Rocket Software Debugger Client&lt;br /&gt;
2016 07 30 17:21:47    Build: 65 (01 August 2016) Tag: 1 GA&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also view the build number of the Client at any time by selecting &amp;lt;b&amp;gt;Help &amp;gt; About&amp;lt;/b&amp;gt;. And as of Client build 65, the build number is displayed by the Client function &amp;lt;var&amp;gt;&amp;amp;&amp;amp;buildNumber()&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Enforcing use of a minimum version of the Debugger Client===&lt;br /&gt;
Normally, when you use the TN3270 or Janus Debugger, no restrictions are placed on which version of the Debugger workstation client is used. &lt;br /&gt;
As of Client build 65 and Model&amp;amp;nbsp;204 7.7, you can force Clients to have at least a minimum build number in order to invoke a debugging session with your Online. The new Model&amp;amp;nbsp;204 system parameter &amp;lt;var&amp;gt;[[MINDEBCL parameter|MINDEBCL]]&amp;lt;/var&amp;gt; sets such a minimum.&lt;br /&gt;
&lt;br /&gt;
If you set &amp;lt;var&amp;gt;MINDEBCL&amp;lt;/var&amp;gt; to a positive value, use a version of the Debugger Client whose build number is less than &amp;lt;var&amp;gt;MINDEBCL&amp;lt;/var&amp;gt;, and invoke a debugging session, the debugging session is rejected. An error message is shown in your browser and at the Client, calling for a Client upgrade.&lt;br /&gt;
&lt;br /&gt;
You also see the following error on the Online&#039;s Audit Trail (and on the terminal if you are using &amp;lt;code&amp;gt;TN3270 DEBUG ON&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot; style=&amp;quot;font-size:94%&amp;quot;&amp;gt;MSIR.1079: Debugger Client Build: &#039;&#039;xx&#039;&#039; &amp;lt; MINDEBCL: &#039;&#039;yy&#039;&#039; debugger client connection refused  &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compatibility issues==&lt;br /&gt;
&lt;br /&gt;
===APSYPAGE parameter cannot be non-zero===&lt;br /&gt;
&amp;lt;p&amp;gt;(Applies to the IBM z/OS system.)&amp;lt;/p&amp;gt;&lt;br /&gt;
The &amp;lt;var&amp;gt;APSYPAGE&amp;lt;/var&amp;gt; parameter was disabled (but still allowed) in version 7.6. As of version 7.7, if &amp;lt;var&amp;gt;APSYPAGE&amp;lt;/var&amp;gt; is non-zero, the Online will not come up and the following error message will appear: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.2958: APSYPAGE is obsolete as of 7.6. &lt;br /&gt;
Rocket recommends using RESPAGE and/or TEMPPAGE as the alternative&amp;lt;/p&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
See [[APSYPAGE parameter]] for information about alternatives to &amp;lt;var&amp;gt;APSYPAGE&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Unlabeled FDV statement compilation errors===&lt;br /&gt;
Version 7.7 introduces an edge case incompatibility by disallowing code which is very questionable or clearly wrong; that is, previously the compiler allowed pretty much any statements between the label and the FDV. Such statements are no longer allowed.  &lt;br /&gt;
&lt;br /&gt;
For example, the following was allowed in older versions of Model 204:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;a: audit &#039;About to FDV&#039;&lt;br /&gt;
   fdv foo&lt;br /&gt;
b: frv in a&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Inserting SOUL code between a label and an FDV statement is no longer allowed, and so the result of the above is:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.0311 Unacceptable statement reference&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This change is propagated by zap maintenance to versions 7.6 and 7.5 of Model 204.&lt;br /&gt;
&lt;br /&gt;
===KOMM addressing changes===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;KU is no longer 4K addressable from KOMM. It has been relocated to KOMM+1100 and must be addressed using grande (‘G’) instructions.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;KHEOC has been renamed to KGEOC.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;KUUSRNO has been renamed to KBUSRNO.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;In addition, all KUP… fields have been removed and replaced by their 64-bit equivalent KUG… fields. &amp;lt;br /&amp;gt;&lt;br /&gt;
For example, before 7.7, VTBL might be addressed by using &amp;lt;code&amp;gt;L R1,KUPVT&amp;lt;/code&amp;gt;. &amp;lt;br /&amp;gt;&lt;br /&gt;
As of version 7.7, that reference would require &amp;lt;code&amp;gt;LG R1,KUGVT&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;/ul&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For context, see [[Customizing functions and translation tables#Converting user-written functions|Converting user-written functions]].&lt;br /&gt;
&lt;br /&gt;
===JANUS WEB ON -- &amp;quot;M substitution===&lt;br /&gt;
In the command for a &amp;lt;var&amp;gt;JANUS WEB ON&amp;lt;/var&amp;gt; rule, &amp;lt;code&amp;gt;&amp;quot;M&amp;lt;/code&amp;gt; can now be used to specify a method name. &lt;br /&gt;
This behavior is a change from past releases, when &amp;lt;code&amp;gt;&amp;quot;M&amp;lt;/code&amp;gt; was simply converted to &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;. See [[#ON rules .28method name substitution.29|JANUS WEB ON rules (method name substitution)]] for details.&lt;br /&gt;
&lt;br /&gt;
===Journal format compatibility===&lt;br /&gt;
A recovery code error unintentionally allowed recovery to be run using Model&amp;amp;nbsp;204 7.6 against a version 7.5 journal, and vice versa. Although the error was benign because the journal formats were the same in those versions, mixing of journal versions and Model&amp;amp;nbsp;204 versions is no longer allowed.&lt;br /&gt;
&lt;br /&gt;
===Profile used for running ECF requests===&lt;br /&gt;
As [[#ecfprofile|described earlier]], the default external-authorizer (ACF2, RACF, or Top/Secret) profile under which a job invoked by a privileged ECF statement runs is changed in version 7.7. Instead of such a job running under the job&#039;s external-authorizer profile (as it did prior to 7.7), the job runs by default in 7.7 under the user&#039;s external-authorizer profile. &lt;br /&gt;
&lt;br /&gt;
The default behavior can be changed by turning on the new system parameter &amp;lt;var&amp;gt;[[ECPRIV parameter|ECPRIV]]&amp;lt;/var&amp;gt; 4 bit.&lt;br /&gt;
===$ListNew cannot be used in Initial clause===&lt;br /&gt;
&amp;lt;var&amp;gt;$ListNew&amp;lt;/var&amp;gt; cannot be used in the &amp;lt;var&amp;gt;Initial&amp;lt;/var&amp;gt; clause of a [[Using_variables_and_values_in_computation#Declare_statements_for_.25variables|declaration statement]].&lt;br /&gt;
&amp;lt;p&amp;gt;This change was introduced as zap maintenance in versions 7.5, 7.6, and 7.7 of Model 204.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notes for system manager and installer==&lt;br /&gt;
===CRAM SVC installation is deprecated===&lt;br /&gt;
The CRAM SVC installation has been deprecated as of version 7.5. &amp;lt;br /&amp;gt;Installation of CRAM-XDM is described as part of the [[Model 204 installation]].&lt;br /&gt;
===Authorization and maintenance zaps===&lt;br /&gt;
When you download Rocket M204 product object files, all relevant authorization keys and all current maintenance zaps are pre-applied to the object files as part of the download process.&lt;br /&gt;
&lt;br /&gt;
==New and updated messages==&lt;br /&gt;
 &lt;br /&gt;
See [[New and updated messages in Model 204 version 7.7|New and updated messages in Model 204 version 7.7]] for details.&lt;br /&gt;
 &lt;br /&gt;
[[Category: Release notes|Model 204 version 7.7]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=SendWebSocket_(Socket_function)&amp;diff=120263</id>
		<title>SendWebSocket (Socket function)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=SendWebSocket_(Socket_function)&amp;diff=120263"/>
		<updated>2024-07-29T19:53:08Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* Usage notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Socket:SendWebSocket subtitle}}&lt;br /&gt;
&lt;br /&gt;
This page is [[under construction]].&lt;br /&gt;
==Syntax==&lt;br /&gt;
{{Template:Socket:SendWebSocket syntax}}&lt;br /&gt;
===Syntax terms===&lt;br /&gt;
&amp;lt;table class=&amp;quot;syntaxTable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;socket&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Socket object&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;string&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;number&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;number is an op code indicating the type of web socket frame. Numbers 0-7 are non-control frames. Numbers 8-15 are control frames. Control frames are always sent immediately and cannot be fragmented. Specifying a reserved code will cause immediate request cancellation.&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;0&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A continuation frame. A continuation frame is treated as text or binary based on the op code of the first frame. A continuation frame cannot also be the first frame.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;1&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A text frame. Text frames are are translated to ASCII with the translate table in effect for the port.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;2&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A binary frame. No translation is done for binary frames.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;3-7&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Reserved for future use and will cause request cancellation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;8&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Connection close frame.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;9&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Ping. The receiver should respond with a Pong frame, unless a close frame has been received.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;10&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pong. This is sent as a response to a Ping frame.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;11-15&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Reserved for future use and will cause request cancellation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;128&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;This value is added to the frame op code to indicate the final fragment of a non-control message. The first fragment may also be the final fragment.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;boolean&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;Boolean&amp;lt;/var&amp;gt; value that indicates whether to mask the data with a masking key. The default is not to mask the data. Masking is done using an internally generated masking key.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sending a control frame always forces a flush of the TCP output buffer. A close or a ping are the only valid control frames.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
The following example sends a text message to the WebSocket client.&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;...&lt;br /&gt;
                                                           &lt;br /&gt;
%sock = WebSocket                                                              &lt;br /&gt;
if %sock is null then                                                          &lt;br /&gt;
   audittext Socket closed, status is {$STATUSD}                               &lt;br /&gt;
   stop                                                                        &lt;br /&gt;
end if   &lt;br /&gt;
                                                                      &lt;br /&gt;
%op = %sock:ReceiveWebSocket(%wsi)                                             &lt;br /&gt;
if %op eq 1 then                                                               &lt;br /&gt;
   setText %wso  = Received your text message of {%wsi:length} bytes.          &lt;br /&gt;
   %sock:SendWebSocket(%wso, %op, true)                                        &lt;br /&gt;
end if                                                                         &lt;br /&gt;
                                                                               &lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Template:Socket:SendWebSocket footer}}&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Release_notes_for_Model_204_version_7.8&amp;diff=120262</id>
		<title>Release notes for Model 204 version 7.8</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Release_notes_for_Model_204_version_7.8&amp;diff=120262"/>
		<updated>2024-07-29T19:19:31Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* Operating system requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These release notes list the enhancements and other changes contained in Model 204 version 7.8.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
These release notes contain installation and features information for the Rocket Model 204 version 7.8 release.&lt;br /&gt;
Before beginning your installation, please read through this information about product installation and changes.&lt;br /&gt;
&lt;br /&gt;
==New in this release==&lt;br /&gt;
The table below cites some highlights of Model&amp;amp;nbsp;204 version 7.8. For a full list of features, refer to the Table of Contents. &lt;br /&gt;
&amp;lt;p&amp;gt;See also the [[#Compatibility issues|Compatibility]] section for possible issues.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;Category&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Feature&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;SOUL&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The new [[#AmIndependent method|AmIndependent]] method returns TRUE for daemons spawned by [[RunIndependently (Daemon subroutine)|RunIndependently]].&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Object class now supports the [[#Support for copying Object class objects|copy and deepCopy methods]].&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Janus Web&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[#Web Sockets|Janus Web Sockets]] are now supported.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;Networking&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Janus_Two-Phase_Commit|Two-phase commit]]. A Model 204 online can now be configured to use two-phase commit (2PC). The Janus internal socket API is used for the calls to the coordinator. JANUS commands are used for all 2PC configuration. A new JANUS port type has been added: 2PC.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Application_Subsystem_development#Commit_exits|Commit exits]] are now supported. The commit exit runs within the APSY, which is defined by the &amp;lt;var&amp;gt;[[Application_Subsystem_development#COMMITX parameter|COMMITX]]&amp;lt;/var&amp;gt; parameter and uses normal APSY processing.  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF tables&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The new &amp;lt;var&amp;gt;[[#DISPLAY ECF|DISPLAY ECF]]&amp;lt;/var&amp;gt; command and &amp;lt;var&amp;gt;[[#Managing ECF tables more efficiently|EXTERNAL REMOVE]]&amp;lt;/var&amp;gt; statement enable more efficient management of [[#Managing ECF tables more efficiently|ECF tables]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Performance&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[#MP/204 offload improvements|MP/204 offload improvements]] -- application code for these SOUL statements is now fully offloadable: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;File Records In/On&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Remember&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Position&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Sort Values&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Reset Header/Trailer&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Find and Print Count&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Find All Values&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;For Each Value&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Security&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;CA-Top Secret can [[#CA-Top Secret can disallow CCASTAT logins|disallow CCASTAT logins]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[#DEFUSER can specify a jobname not authorized to access M204|DEFUSER]] can specify a jobname not authorized to access M204.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;System enhancements&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;[[MONITOR command|MONITOR &amp;lt;var&amp;gt;USERS&amp;lt;/var&amp;gt;]]&amp;lt;/var&amp;gt; command output displays [[#New wait types for daemon/master waits|two new wait types]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;AUDIT204 enhancements&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The new TIMEHH parameter on the &amp;lt;var&amp;gt;[[#FORMAT command|FORMAT]]&amp;lt;/var&amp;gt; command of the AUDIT204 utility provides greater time stamp precision.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;New commands&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#DISPLAY ECF|DISPLAY ECF]]&amp;lt;/var&amp;gt; displays details from ECF tables, or the current status of users accessing ECF modules.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;New parameters&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#ENQTIME|ENQTIME]]&amp;lt;/var&amp;gt; specifies the number of milliseconds waited for each record locking retry wait.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#EVALOPT|EVALOPT]]&amp;lt;/var&amp;gt; controls the cancellation of a request on truncation of string data.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#MAXPRE, MAXBOUT, MAXSUBT|MAXPRE, MAXBOUT, and MAXSUBT]]&amp;lt;/var&amp;gt; can be used to cancel a runaway transaction and prevent it from filling the checkpoint data set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#NLDAPBUF|NLDAPBUF]]&amp;lt;/var&amp;gt; allows the number of LDAP buffers allocated during startup to be set in CCAIN.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#SERV4G|SERV4G]]&amp;lt;/var&amp;gt; allows testing of server tables that span a 4-gigabyte boundary.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#WEBDFLT|WEBDFLT]]&amp;lt;/var&amp;gt; changes the default JANUS WEB ALLOW rule back to ALLOW.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;Janus and TN3270 debuggers&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The debuggers can now view or watch the values of [[#Access to exposed variables|variables exposed to local routines/methods]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When execution pauses, the debuggers now [[#Subroutine or method display|display the subroutine or method]] being executed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;User/system statistics&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[#MPR, MBO, MCP, and RCV|MPR, MBO, MCP, and RCV]]&amp;lt;/var&amp;gt; provide high water mark transaction information in conjunction with the &amp;lt;var&amp;gt;[[#MAXPRE, MAXBOUT, MAXSUBT|MAXPRE, MAXBOUT, and MAXSUBT]]&amp;lt;/var&amp;gt; parameters. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[#DKWTS and DKWTMICS|New system statistics]] DKWTS (DisK WaiTs) and DKWTMICS (DisK WaiT MICroSeconds) collect data to provide rough disk I/O service time numbers.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Operating system and hardware requirements==&lt;br /&gt;
&lt;br /&gt;
===Operating system requirements===&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/OS versions supported:&amp;lt;/b&amp;gt; &lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;All IBM supported releases up to and including z/OS 3.1. &amp;lt;br /&amp;gt;(For z/OS 2.2, see [[IBM z/OS 2.2 PTF requirement]].)&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Version 1.07 is sufficient for all functionality except for the following features:&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;zHPF support requires version [[IBM z/OS 2.1 compatibility issue|2.1]].&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Large (1 MB) page support requires version 1.9.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Extended address volumes (EAV) requires version 1.12.&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
On z/OS, Model 204 release 7.8 operates as an APF authorized load module, as required by many 7.8 features. &amp;lt;br /&amp;gt;&lt;br /&gt;
To run Model 204 unauthorized, [[Contacting Rocket Software Technical Support|contact Technical Support]].&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/VM versions supported:&amp;lt;/b&amp;gt; &lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;All IBM supported releases up to and including z/VM 6.4.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/VSE versions supported:&amp;lt;/b&amp;gt;&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;All IBM supported releases up to and including z/VSE 6.1.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Hardware requirements===&lt;br /&gt;
 &lt;br /&gt;
In general, Model 204 version 7.8 requires the IBM z/890 or above processor.&lt;br /&gt;
&amp;lt;p&amp;gt;However, the IBM z10 or above processor is required for the following features:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;large (1 MB) page support&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;IBM&#039;s High Performance FICON (zHPF) support&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; compatibility with Model 204===&lt;br /&gt;
&lt;br /&gt;
Connect&amp;lt;span class=&amp;quot;superstar&amp;quot;&amp;gt;&amp;amp;#9733;&amp;lt;/span&amp;gt; version 7.5 or 7.7 is compatible with Model 204 version 7.8.&lt;br /&gt;
&lt;br /&gt;
For more information on Connect&amp;lt;span class=&amp;quot;superstar&amp;quot;&amp;gt;&amp;amp;#9733;&amp;lt;/span&amp;gt; installation, see the [[:Category:Connect*|Connect&amp;lt;span class=&amp;quot;superstar&amp;quot;&amp;gt;&amp;amp;#9733;&amp;lt;/span&amp;gt; wiki pages]].&lt;br /&gt;
&lt;br /&gt;
==SOUL (User Language) enhancements==&lt;br /&gt;
===AmIndependent method===&lt;br /&gt;
The &amp;lt;var&amp;gt;AmIndependent&amp;lt;/var&amp;gt; method returns TRUE for daemons spawned by &amp;lt;var&amp;gt;[[RunIndependently_(Daemon_subroutine)|RunIndependently]]&amp;lt;/var&amp;gt;. (The action of &amp;lt;var&amp;gt;[[AmDaemon_(Daemon_property)|AmDaemon]]&amp;lt;/var&amp;gt; remains unchanged.)&lt;br /&gt;
&lt;br /&gt;
The following table shows the values returned by &amp;lt;var&amp;gt;AmIndependent&amp;lt;/var&amp;gt; versus &amp;lt;var&amp;gt;AmDaemon&amp;lt;/var&amp;gt; for different daemon types:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Type&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;AmDaemon&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;AmIndependent&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;$COMBG&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;False&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;False&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Independent daemon&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;False&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;True&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Other daemon&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;True&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;False&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Web, etc.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;False&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;False&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EndsWith function===&lt;br /&gt;
The [[EndsWith (String function)|EndsWith String function]] determines if one string ends with the characters in another. This is analogous to the [[StartsWith and IsStartOf (String functions)|StartsWith function]] except, of course, it checks the end of a string rather than the start.&lt;br /&gt;
&lt;br /&gt;
The following code snippet:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;gt;printText {~=&amp;quot;War and Peace&amp;quot;:endsWith(&amp;quot;Peace&amp;quot;)}&lt;br /&gt;
printText {~=&amp;quot;War and Peace&amp;quot;:endsWith(&amp;quot;War&amp;quot;)}&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
displays:&lt;br /&gt;
&amp;lt;p class=&amp;quot;output&amp;quot;&amp;gt;&amp;quot;War and Peace&amp;quot;:endsWith(&amp;quot;Peace&amp;quot;)=True&lt;br /&gt;
&amp;quot;War and Peace&amp;quot;:endsWith(&amp;quot;War&amp;quot;)=False &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===$ProcOpn===&lt;br /&gt;
&amp;lt;var&amp;gt;[[$ProcOpn|$ProcOpn]]&amp;lt;/var&amp;gt; now supports the opening of a procedure with an all-numeric name, and including a leading zero, such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%result = $procOpn(&#039;0123&#039;, &#039;MYFILE&#039;)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Support for such procedure names was initially introduced at V7.7, and this feature of &amp;lt;var&amp;gt;$ProcOpn&amp;lt;/var&amp;gt; is enabled in V7.7 with the application of zap 77z054.&lt;br /&gt;
&lt;br /&gt;
===Allow parentheses to surround a boolean enumeration object===&lt;br /&gt;
The following sample code:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;   begin                                       &lt;br /&gt;
   variables are undefined                  &lt;br /&gt;
   %isValid is boolean initial (True)       &lt;br /&gt;
   if (%isValid) then                  &lt;br /&gt;
      print &#039;in IF&#039;                            &lt;br /&gt;
   end if                                   &lt;br /&gt;
   end   &amp;lt;/p&amp;gt;      &lt;br /&gt;
&lt;br /&gt;
will now compile and run successfully, since this syntax: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;if (%isValid) then &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
is logically equivalent to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;if %isValid then &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prior to V7.8 the presence of parentheses surrounding the boolean enumeration object would have caused a compilation error. This change is enabled in V7.7 with the application of zap 77z370.&lt;br /&gt;
&lt;br /&gt;
===Support for copying Object class objects===&lt;br /&gt;
The Object class now supports the copy and deepCopy methods. For example, an Object object can be copied as follows:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;   begin               &lt;br /&gt;
   %x is object object &lt;br /&gt;
   %y is object object &lt;br /&gt;
   %y = new            &lt;br /&gt;
   %x = %y:copy        &lt;br /&gt;
   end &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This change is enabled in v7.7 with the application of zap 77z076, and within V7.6 with the application of zap 76z412.&lt;br /&gt;
&lt;br /&gt;
===Assignment of enumeration values to method variables===&lt;br /&gt;
Enumeration values can now be assigned to method variables whose result is an enumeration. So, for example, the following code:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;   begin                                               &lt;br /&gt;
   enumeration colour                                  &lt;br /&gt;
      public                                           &lt;br /&gt;
         value red                                     &lt;br /&gt;
         value white                                   &lt;br /&gt;
         value blue                                    &lt;br /&gt;
      end public                                       &lt;br /&gt;
   end enumeration                                     &lt;br /&gt;
   %func    is function getColour is enumeration colour&lt;br /&gt;
   local function getColour is enumeration colour      &lt;br /&gt;
      return blue                                      &lt;br /&gt;
   end function                                        &lt;br /&gt;
   %func    = getColour                                &lt;br /&gt;
   %func    = (colour):red                             &lt;br /&gt;
   printText {~=%(Local):(%func)}                      &lt;br /&gt;
   end  &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will produce this result:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt; %(Local):(%func)=red &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
whereas previously this line:   &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt; %func    = (colour):red &amp;lt;/p&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
would have been rejected with this message:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;MSIR.0993: Assignment invalid: mismatch between method and method variable &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This change is enabled in V7.7 with the application of zap 77z128.&lt;br /&gt;
&lt;br /&gt;
===Optional output method parameters===&lt;br /&gt;
Prior to this release output parameters could not be optional or have default values. In this release output parameters can be specified as &amp;lt;var&amp;gt;Optional&amp;lt;/var&amp;gt;, and a default value can be specified with &amp;lt;var&amp;gt;Default&amp;lt;/var&amp;gt;. One related change is that if a &amp;lt;var&amp;gt;Len&amp;lt;/var&amp;gt; value is specified with &amp;lt;var&amp;gt;Optional&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;Default&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;Output&amp;lt;/var&amp;gt;, it indicates the length of the hidden target for the output parameter if none was passed. For all other &amp;lt;var&amp;gt;Output&amp;lt;/var&amp;gt; parameters, &amp;lt;var&amp;gt;Len&amp;lt;/var&amp;gt; is meaningless, just as it was before Model 204 V7.8. The following is an example of the use of an optional output parameter:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;function getRemote( -&lt;br /&gt;
   %target is string len 32, %errorReason is string len 80 optional output -&lt;br /&gt;
) is float&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
In this example, if &amp;lt;code&amp;gt;%errorReason&amp;lt;/code&amp;gt; is not specified in a call and then set to a value longer than 80 bytes it will be truncated to 80 bytes. However, if a string of a different length is passed, the length of that string will determine truncation behavior.&lt;br /&gt;
&lt;br /&gt;
==External Call Facility enhancements==&lt;br /&gt;
===Managing ECF tables more efficiently===&lt;br /&gt;
There are two new features to help manage ECF tables more efficiently, avoid conditions where the table can fill, and prevent the definition of further entities.&lt;br /&gt;
&lt;br /&gt;
The first feature is the new &amp;lt;var&amp;gt;DISPLAY ECF&amp;lt;/var&amp;gt; command, which displays the contents of ECF tables and also the current status of users accessing ECF modules. See more details of the &amp;lt;var&amp;gt;[[#DISPLAY ECF|DISPLAY ECF]]&amp;lt;/var&amp;gt; command below.&lt;br /&gt;
&lt;br /&gt;
The second feature is a new &amp;lt;var&amp;gt;EXTERNAL REMOVE&amp;lt;/var&amp;gt; statement with the following syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;EXTERNAL REMOVE &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;modulename&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This statement causes the entry for the named module to be removed from the module table. The table entry is then placed on a free chain of entries and can be reused by issuing the &amp;lt;var&amp;gt;[[External_Call_Facility#External_Module_statement|EXTERNAL MODULE]]&amp;lt;/var&amp;gt; statement. This allows the module table to be managed with redundant entries removed, without having to recycle the ONLINE.&lt;br /&gt;
&lt;br /&gt;
An &amp;lt;var&amp;gt;EXTERNAL REMOVE&amp;lt;/var&amp;gt; statement will return &amp;lt;code&amp;gt;$status/$statusd&amp;lt;/code&amp;gt; values of &amp;lt;code&amp;gt;0/0&amp;lt;/code&amp;gt;, and most other status values that can be returned by the &amp;lt;var&amp;gt;EXTERNAL REMOVE&amp;lt;/var&amp;gt; statement are already documented in the ECF return codes table. If an &amp;lt;var&amp;gt;EXTERNAL REMOVE&amp;lt;/var&amp;gt; is attempted against a module that is currently being called (in use), then &amp;lt;code&amp;gt;$status/$statusd&amp;lt;/code&amp;gt; will return the values &amp;lt;code&amp;gt;20/1&amp;lt;/code&amp;gt; (module unavailable).&lt;br /&gt;
&lt;br /&gt;
==System enhancements==&lt;br /&gt;
&lt;br /&gt;
===New wait types for daemon/master waits===&lt;br /&gt;
&lt;br /&gt;
Two new wait types, viewable on the &amp;lt;var&amp;gt;[[MONITOR_command|MONITOR]] USERS&amp;lt;/var&amp;gt; command output, have been implemented as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;57&amp;lt;/code&amp;gt; - Means a daemon thread waiting for its master thread  &amp;lt;br /&amp;gt;     &lt;br /&gt;
&amp;lt;code&amp;gt;58&amp;lt;/code&amp;gt; - Means a master thread waiting for one of its daemon threads&lt;br /&gt;
&lt;br /&gt;
This change is enabled in V7.7 with the application of zap 77z410.&lt;br /&gt;
&lt;br /&gt;
===Snap formatting changes===&lt;br /&gt;
Date/time stamps in the page headers of snaps will now be shown in normal format, rather than in Julian format as in previous versions. So in the following example, a particular snap header under v7.7 or previous versions would show as: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;SNAPID    1   19226.060155  M204.0022: Bug .. nnnnn               PAGE     1 &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
whereas the same snap header under v7.8 would show as: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;SNAPID    1  2019/08/14 06:01:06   M204.0022: Bug .. nnnnn        PAGE     1 &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, due to improvements in handling trailing blanks in snap output, a snap generated under v7.8 should be marginally smaller than the same snap generated under previous versions, assuming the same &amp;lt;var&amp;gt;[[SNAPCTL parameter|SNAPCTL]]&amp;lt;/var&amp;gt; settings.&lt;br /&gt;
&lt;br /&gt;
===Call stack trace for problem diagnosis===&lt;br /&gt;
A  call stack trace is now provided to help diagnose and resolve common errors. To enable the stack trace, do either of the following: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Set the &amp;lt;var&amp;gt;[[SIRFACT parameter|SIRFACT]] X&#039;01&#039;&amp;lt;/var&amp;gt; bit.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Set the &amp;lt;var&amp;gt;[[DEBUGUL parameter|DEBUGUL]]&amp;lt;/var&amp;gt; parameter. Note that the &amp;lt;var&amp;gt;DEBUGUL&amp;lt;/var&amp;gt; approach will introduce extra QTBL overhead. &amp;lt;p&amp;gt;(&amp;lt;var&amp;gt;DEBUGUL&amp;lt;/var&amp;gt; provides a similar facility with an include trace of procedures leading to the error, but this might not be potentially as useful as the call trace.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The call stack trace can assist in diagnosing run-time errors that might occur, as illustrated by the following &amp;quot;Variable too small for result&amp;quot; and &amp;quot;MBSCAN exceeded&amp;quot; examples.&lt;br /&gt;
&lt;br /&gt;
====Variable too small for result====&lt;br /&gt;
When the stack trace is enabled, a &amp;quot;variable too small&amp;quot; error results in the following message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;M204.2966: Error at line n, procedure &#039;&#039;procname&#039;&#039; in file &#039;&#039;procfile&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which identifies the line within a procedure where the error is occurring, in addition to the usual message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;M204.0552: Variable too small for result&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Any subsequent M204.2966 messages indicate the point in the code from where the code in error was called. For example, a stack of three subroutine calls leading to a &amp;quot;variable too small&amp;quot; error might result in the following messaging:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;M204.0552: Variable too small for result                             M204.2966: Error at line 978, procedure DOCOOLSTUFF in file COOLFILE&lt;br /&gt;
M204.2966: Called from line 1215, procedure FOOBAR.CLASS in file CLASSES&lt;br /&gt;
M204.2966: Called from line 378, procedure SILLY.CLASS in file CLASSES&lt;br /&gt;
M204.2966: Called from line 187, procedure P.ROCKANDROLL in file APSYFILE&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This information should help in diagnosing the problem. &lt;br /&gt;
&lt;br /&gt;
If the error occurs within a command level program rather than a procedure, then the M204.2966 message is replaced by an M204.2967 message, and a similar error condition to the above with a preceding call stack might be audited as follows:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;   M204.0552: Variable too small for result              &lt;br /&gt;
   M204.2967: Error at line 14 of command level program  &lt;br /&gt;
   M204.2967: Called from line 5 of command level program&lt;br /&gt;
   M204.2967: Called from line 3 of command level program &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If neither &amp;lt;var&amp;gt;SIRFACT X&#039;01&#039;&amp;lt;/var&amp;gt; nor &amp;lt;var&amp;gt;DEBUGUL&amp;lt;/var&amp;gt; is set, then the &amp;quot;variable too small&amp;quot; error produces the following messages:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;   M204.0552: Variable too small for result &lt;br /&gt;
   M204.2968: Error: no debug info &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====MBSCAN exceeded====&lt;br /&gt;
Similarly to the handling of the &amp;quot;variable too small for result&amp;quot; error, the call stack can also be used to diagnose errors where the value of &amp;lt;var&amp;gt;[[MBSCAN parameter|MBSCAN]]&amp;lt;/var&amp;gt; is exceeded as a result of a direct search of Table B records. &lt;br /&gt;
&amp;lt;p&amp;gt;Again, under V7.8, with either the &amp;lt;var&amp;gt;SIRFACT X&#039;01&#039;&amp;lt;/var&amp;gt; bit set or &amp;lt;var&amp;gt;DEBUGUL&amp;lt;/var&amp;gt; set, if a long request occurs as a result of exceeding &amp;lt;var&amp;gt;MBSCAN&amp;lt;/var&amp;gt;, then initially the following message is produced, as before:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;M204.0569: File &#039;&#039;filename&#039;&#039;, Find: Table B records to be searched = &#039;&#039;nnnn&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
followed by a DYRWT prompt message. If the user replies &#039;N&#039; to the prompt, or if the request is run in an environment (such as a batch job) where the default response is &#039;N&#039;, the following message is produced after the M204.0569 message:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;Cancelling request: M204.2969: MBSCAN (&#039;&#039;mm&#039;&#039;) exceeded, records to be searched = &#039;&#039;nnnn&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;mm&#039;&#039; is the current setting of &amp;lt;var&amp;gt;MBSCAN&amp;lt;/var&amp;gt;. The M204.2969 message is followed by M204.2966 messages displaying the call stack trace. Thus, if the following code is run from procedure MYPROC.MBSCAN against the demo database, with an &amp;lt;var&amp;gt;MBSCAN&amp;lt;/var&amp;gt; setting of 10:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;   b                           &lt;br /&gt;
   call sub1                   &lt;br /&gt;
   sub1: subroutine            &lt;br /&gt;
   fd1:                        &lt;br /&gt;
      in clients fd city = ONTARIO&lt;br /&gt;
              end find         &lt;br /&gt;
      fr fd1                      &lt;br /&gt;
         pai                      &lt;br /&gt;
         print                    &lt;br /&gt;
      end for                     &lt;br /&gt;
   end subroutine              &lt;br /&gt;
   end &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then the following messages are produced, assuming any prompts are responded to with an &#039;N&#039;:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;   M204.0569: File CLIENTS, Find: Table B records to be searched = 3415&lt;br /&gt;
   Cancelling request: M204.2969: MBSCAN (10) exceeded, records to be searched = 3415  &lt;br /&gt;
   M204.2966: Error at line 6, procedure MYPROC.MBSCAN in file MYPROC&lt;br /&gt;
   M204.2966: Called from line 3, procedure MYPROC.MBSCAN in file MYPROC  &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===appendJournalData===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[AppendJournalData_(Stringlist_function)|AppendJournalData]]&amp;lt;/var&amp;gt; function is now more tolerant of an outstanding BUMP request. Previously, if &amp;lt;var&amp;gt;AppendJournalData&amp;lt;/var&amp;gt; was called to inadvertently retrieve a large amount of journal data, typically when called implicitly from within SirScan, then any outstanding BUMP request wouldn&#039;t be honored until all of the data had been retrieved, at which point the BUMP request would be completed, and all data would be lost.&lt;br /&gt;
&lt;br /&gt;
Now, the &amp;lt;var&amp;gt;AppendJournalData&amp;lt;/var&amp;gt; process checks for outstanding BUMP requests before each track I/O is executed, thus avoiding excessive I/Os against the journal and long waits for the BUMP of such a process to complete.&lt;br /&gt;
&lt;br /&gt;
==Editor enhancements==&lt;br /&gt;
&amp;lt;p&amp;gt;The [[Model 204 full-screen editor#exit|Model 204 editor]] has been enhanced to not hold a lock on a procedure being edited. Instead the timestamp of the procedure on disk is compared against that of the edited procedure when it was loaded or last saved. If different, the save is not allowed. New commands &amp;lt;var&amp;gt;SSAVE&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;EEND&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;GGO&amp;lt;/var&amp;gt; are available to force the save in this situation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In addition, the &amp;lt;var&amp;gt;GO&amp;lt;/var&amp;gt; command no longer updates the procedure on disk before &amp;lt;var&amp;gt;INCLUDE&amp;lt;/var&amp;gt;ing it if it has not been modified in the editor.&amp;lt;/p&amp;gt;  &lt;br /&gt;
==AUDIT204 enhancements==&lt;br /&gt;
===FORMAT command===&lt;br /&gt;
TIMEHH is a new parameter used with the FORMAT command of the [[Tracking_system_activity_(CCAJRNL,_CCAAUDIT,_CCAJLOG)#AUDIT204_utility|AUDIT204]] utility.  It indicates that timestamps, printed at the beginning of each line of output, should include hundredths of a second. Requires no other arguments.&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; This parameter and the 78 version (or later) of AUDIT204 may be used against a 77 (or later) CCAJRNL.&amp;lt;/p&amp;gt;&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;//CCAIN DD *&lt;br /&gt;
FORMAT YEARFORM 4&lt;br /&gt;
TIMEHH&lt;br /&gt;
TYPE ER MS LI&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Recovery enhancements==&lt;br /&gt;
===Media Recovery in a multi-user environment===&lt;br /&gt;
It is now possible to perform media recovery by issuing the &amp;lt;var&amp;gt;REGENERATE&amp;lt;/var&amp;gt; command to roll forward selected files in a multi-user environment, with the media recovery being carried out by different users with system manager privileges. The new USING option allows for the specification of a ddname for the input journal stream to be used by the &amp;lt;var&amp;gt;REGENERATE&amp;lt;/var&amp;gt; command. Previously media recovery was restricted to single user batch jobs, using the CCAGEN ddname for the input journal. For more details, see the &amp;lt;var&amp;gt;[[#REGENERATE|REGENERATE]]&amp;lt;/var&amp;gt; command below.&lt;br /&gt;
&lt;br /&gt;
===MERGEJ now supports up to 99 input journals===&lt;br /&gt;
The MERGEJ utility, used to merge journals with overlapping timestamps prior to running Media Recovery, now supports up to 99 input SORTINnn journals to be merged. For this release it is still the case that any previously merged journal must be defined as SORTIN01 to the MERGEJ run, and thus that the MERGEJ run can not accept more than one previously merged journal as input.&lt;br /&gt;
&lt;br /&gt;
This change is also enabled in V7.7 with the application of 77z487.&lt;br /&gt;
&lt;br /&gt;
==Security enhancements==&lt;br /&gt;
===CA-Top Secret can disallow CCASTAT logins===&lt;br /&gt;
The [[CA-Top_Secret_interface|CA-Top Secret]] interface now recognizes the &amp;lt;code&amp;gt;DEFACID=&amp;lt;/code&amp;gt;, setting and does not allow CCASTAT logins in the online if &amp;lt;code&amp;gt;DEFACID&amp;lt;/code&amp;gt; is set to null. (There is no attempt to log on M204USR.) Therefore, to disallow CCASTAT logons, set DEFACID=, in [[CA-Top_Secret_interface#Preparing_a_TOPSPARM_parameter_module_with_TOPSGEN|TOPSPARM]]. CCASTAT will be opened because it contains file and group passwords, but it will not be used for logons if CCASTAT logons are not allowed.&lt;br /&gt;
&lt;br /&gt;
===CUSTOM=11 and mixed cased input===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[CUSTOM_parameter|CUSTOM]]&amp;lt;/var&amp;gt; parameter &amp;lt;var&amp;gt;CUSTOM=11&amp;lt;/var&amp;gt; setting no longer requires that a &amp;lt;var&amp;gt;*LOWER&amp;lt;/var&amp;gt; command be issued prior to a &amp;lt;var&amp;gt;LOGCTL&amp;lt;/var&amp;gt; command (to add or change a  password) to preserve mixed case input. Prior to this release, with &amp;lt;var&amp;gt;CUSTOM=11&amp;lt;/var&amp;gt; in place, *LOWER had to be issued before a &amp;lt;var&amp;gt;LOGCTL&amp;lt;/var&amp;gt; command, otherwise any mixed case password strings would automatically be translated into uppercase. This change is enabled in V7.7 with the application of zap 77z108.&lt;br /&gt;
&lt;br /&gt;
===DEFUSER can specify a jobname not authorized to access M204===&lt;br /&gt;
When specifying DEFUSER=JOBNAME and VALIDAT=LOGON in the RACFGEN parms for an ONLINE, if the specified jobname (the owning id for the ONLINE job) isn&#039;t authorized to use Model 204 via RACF, any LOGIN commands specifying no userid will now succeed (previously such a LOGON would have failed). This enables users to submit jobs with USE $JOB, whereby the string USER=jobname will be added to the submitted JCL. This in turn is useful if the specified jobname has dataset access privileges to datasets required by the submitted jobs, even if the jobname itself isn&#039;t authorized to use M204.&lt;br /&gt;
&lt;br /&gt;
==Janus product enhancements==&lt;br /&gt;
&lt;br /&gt;
===Web API calls available on transactional daemons===&lt;br /&gt;
Transactional daemons can now use the Janus Web API, mostly $functions that begin with &amp;lt;var&amp;gt;$web&amp;lt;/var&amp;gt;. The new [[$Web_Api|$web_api function]] makes it possible to test if the Janus Web API is available, whether on a Janus Web Server thread or one of its transactional daemons.&lt;br /&gt;
&lt;br /&gt;
===Web Sockets===&lt;br /&gt;
Web Sockets are now supported in Janus Web Server.&lt;br /&gt;
&lt;br /&gt;
The Web Socket protocol provides various advantages over the HTTP protocol:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Web Sockets allow full-duplex communication.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;Efficient framing of payload data uses minimal overhead.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;The Web Socket protocol is end-user extensible.&amp;lt;/li&amp;gt;  &lt;br /&gt;
&amp;lt;li&amp;gt;Most importantly, Web Sockets can be deployed completely within an existing HTTP/HTTPS framework.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To implement Web Sockets, you must enable the Janus Web port for Web Socket upgrades with the new &amp;lt;var&amp;gt;WEBSOCKET&amp;lt;/var&amp;gt; parameter. The WEBSOCKET option can be specified on either the port definition or the JANUS WEB rule for the URL. &lt;br /&gt;
Likewise, an individual Janus Web rule can either allow or disallow Web Socket connections with the &amp;lt;var&amp;gt;WEBSOCKET&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOWEBSOCKET&amp;lt;/var&amp;gt; parameters, respectively. &lt;br /&gt;
&lt;br /&gt;
For details on implementing Web Sockets, see the [[WebSocket_(Socket_function)|WebSocket]] wiki page.&lt;br /&gt;
&lt;br /&gt;
===$Web_Form_Parm_Binary===&lt;br /&gt;
Janus Web now defers ASCII to EBCDIC translation of form parameter values until a value is requested. This makes it possible to retrieve the exact values sent by the client rather than a translated version. This is important if a form parameter value is UTF-8 encoded and contains non-7-bit ASCII characters (for example if a form parameter contains XML). The [[$Web_Form_Parm_Binary]] function returns the exact value sent by a client for a form parameter with no character translation.&lt;br /&gt;
&lt;br /&gt;
===Janus Web Server access rule===&lt;br /&gt;
The automatic &amp;lt;var&amp;gt;[[JANUS WEB ALLOW]]&amp;lt;/var&amp;gt; rule, which allowed any user to access the port without requiring a login, is changed &amp;lt;i&amp;gt;for non-SSL ports&amp;lt;/i&amp;gt; to the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;JANUS WEB &amp;lt;i&amp;gt;portname&amp;lt;/i&amp;gt; DISALLOW *&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This rule requires a system administrator to explicitly define &amp;lt;var&amp;gt;ALLOW&amp;lt;/var&amp;gt; rules to enable users to access non-SSL ports.&lt;br /&gt;
The rule applies unless overridden by user-added rules. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; To revert from this change in the JANUS DEFINE default and make the default &lt;br /&gt;
 non-SSL &amp;lt;var&amp;gt;ALLOW&amp;lt;/var&amp;gt; rule as it was in version 7.5 and earlier (&amp;lt;code&amp;gt;ALLOW *&amp;lt;/code&amp;gt;), turn on the 1 bit of the &amp;lt;var&amp;gt;[[WEBDFLT parameter|WEBDFLT]]&amp;lt;/var&amp;gt; parameter: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;RESET WEBDFLT=1&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Increase in pending accepts for Janus BPX ports===&lt;br /&gt;
The default number of pending accepts for Janus BPX server ports has been increased from 3 to 12, thus reducing the likelihood that a pending accept may fail with the message&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;MSIR.0019 Connection request rejected for port (port), MAXCON exceeded&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The actual number of pending accepts to be supported on the port can be set with the new parameter MAXPEND, set on the &amp;lt;var&amp;gt;[[JANUS_DEFINE|JANUS DEFINE]]&amp;lt;/var&amp;gt; command, where MAXPEND can vary from 3 up to a maximum value of 32. The change to the default value is enabled in V7.7 with the application of zap 77z269.&lt;br /&gt;
&lt;br /&gt;
===TCP listen backlog increased===&lt;br /&gt;
&lt;br /&gt;
The [[Program_Communication_facilities#LISTEN_call|TCP listen]] backlog has been increased from 16 to 1024 under z/OS.&lt;br /&gt;
&lt;br /&gt;
This update tells the TCP stack to queue up a maximum of 1024 such requests before dropping any. This increased backlog reduces, or in most cases eliminates, the likelihood of a connection request drop, other than in exceptional circumstances, such as a denial of service attack. This change is enabled in V7.7 with the application of zap 77z340.&lt;br /&gt;
&lt;br /&gt;
===Defer the freeing of XMLSCREEN input XML===&lt;br /&gt;
&lt;br /&gt;
The freeing of &amp;lt;var&amp;gt;[[XMLSCREEN_and_NOXMLSCREEN_(JANUS_DEFINE_parameters)|XMLSCREEN]]&amp;lt;/var&amp;gt; input XML is now deferred until the next Read Screen or session termination. This means that if an application error is detected, the input XML can be retrieved with [[$Web_Input_Content|$Web_Input_Content]] and then logged for problem analysis. &lt;br /&gt;
&lt;br /&gt;
Prior to this release the XML received from the client was freed immediately after being used to set the input data for a Read Screen, rendering it unavailable for problem determination.&lt;br /&gt;
&lt;br /&gt;
This change is enabled in V7.7 with the application of zap 77z368.&lt;br /&gt;
&lt;br /&gt;
===XMLSCREEN and Janus Web Legacy blank stripping===&lt;br /&gt;
&lt;br /&gt;
xmlScreens and Janus Web Legacy screens now adhere to the same standard as standard screen processing in terms of stripping leading blanks from input fields defined as [[Full-screen_feature#DEBLANK_or_NODEBLANK_option|DEBLANK]] (either explicitly or implicitly).&lt;br /&gt;
&lt;br /&gt;
This change is enabled in V7.7 with the application of zap 77z400.&lt;br /&gt;
&lt;br /&gt;
===SSL input buffer size===&lt;br /&gt;
&lt;br /&gt;
The default value of &amp;lt;var&amp;gt;[[SSLIBSIZE_(JANUS_DEFINE_parameter)|SSLIBSIZE]]&amp;lt;/var&amp;gt; has been increased to 16384 + 128, or 16512. This size should ensure correct communication with all TLS spec compliant applications. It is the maximum size allowed unless you use &amp;lt;var&amp;gt;[[CUSTOM_parameter#Using_CUSTOM.3D.2818.29|CUSTOM=18]]&amp;lt;/var&amp;gt;.    &lt;br /&gt;
&lt;br /&gt;
This change is enabled in V7.7 with the application of zap 77z415.&lt;br /&gt;
&lt;br /&gt;
===Increasing LDAP buffers===&lt;br /&gt;
&lt;br /&gt;
The number of LDAP buffers allocated at startup can now be changed by setting the &amp;lt;var&amp;gt;NLDAPBUF&amp;lt;/var&amp;gt; parameter in CCAIN. See below for details on &amp;lt;var&amp;gt;[[#NLDAPBUF|NLDAPBUF]]&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Increase URL length returned with $web_form_action===&lt;br /&gt;
With this release the maximum Janus Web Server incoming URL that can be handled by &amp;lt;var&amp;gt;$web_form_action&amp;lt;/var&amp;gt; is increased from 512 bytes to 1280 bytes. This change is enabled in V7.7 with the application of zaps 77z424 and 77z448.&lt;br /&gt;
&lt;br /&gt;
===Maximum RBSIZE setting increased===&lt;br /&gt;
The maximum value for RBSIZE, set on the &amp;lt;var&amp;gt;[[JANUS DEFINE|JANUS DEFINE]]&amp;lt;/var&amp;gt; command, is now increased to 16777215 (previously the maximum was 65534). RBSIZE specifies the RPC or Request Buffer size.  On a Web port, the Janus request buffer holds browser request information such as header data, cookies, and form data. On other port types, it holds RPC input and output parameters. This change is enabled in V7.7 with the application of zap 77z427.&lt;br /&gt;
&lt;br /&gt;
===Limiting the production of MSIR.0019 and MSIR.0020 messages===&lt;br /&gt;
The production of the following messages&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;MSIR.0019 Connection request rejected for port (port), MAXCON exceeded&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;MSIR.0020 Connection request rejected for port (port), no SDAEMONS available&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
is now limited to a maximum of one each per time interval set by the &amp;lt;var&amp;gt;[[MAXAUSEW_parameter|MAXAUSEW]]&amp;lt;/var&amp;gt; parameter ( minimum seconds between &amp;lt;var&amp;gt;[[MAXAUSER_parameter|MAXAUSER]]&amp;lt;/var&amp;gt; warnings, which defaults to 10 seconds ). This avoids flooding the journal / jlog with these messages in situations where the number of connections on a port has been exceeded ( MSIR.0019 ), or the the number of available daemon threads has been exceeded ( MSIR.0020 ). &lt;br /&gt;
&lt;br /&gt;
This change is available in V7.8 with the application of zap 78z011, and within V7.7 with the application of 77z466&lt;br /&gt;
&lt;br /&gt;
==Debugger enhancements==&lt;br /&gt;
These enhancements apply to the Janus and TN3270 debuggers. &lt;br /&gt;
&lt;br /&gt;
===Access to exposed variables===&lt;br /&gt;
The debuggers can now view or watch the values of variables exposed to local routines/methods. Previously, any attempts to access an exposed variable would have displayed &amp;quot;%varname has no value&amp;quot; in the debugger session. This feature is enabled in V7.7 with the application of zap 77z363.&lt;br /&gt;
&lt;br /&gt;
===Subroutine or method display===&lt;br /&gt;
When execution pauses for a break point or runtime error, the subroutine or method being executed is indicated in the status area.  In addition, the source code line information available by right-clicking on a source line now also indicates the subroutine or method.&lt;br /&gt;
&lt;br /&gt;
==Performance enhancements==&lt;br /&gt;
&lt;br /&gt;
===MP/204 offload improvements===&lt;br /&gt;
Application code issuing the following SOUL statements will be fully offloadable:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;File Records In/On&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Remember&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Position&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Sort Values&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;                                             &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Reset Header/Trailer&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Find and Print Count&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;Find All Values&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;For Each Value&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
The above improvements are enabled in V7.7 with the application of zaps 77z419 and 77z420.&lt;br /&gt;
&lt;br /&gt;
Also, [[JANUS WEB|Janus Web rules]] scanning will be offloadable. In addition, the scan for persistent web sessions ([[$Web_Form_Done]] and [[Janus Web Legacy Support]]) will be offloadable. While the rendezvous with the persistent thread will still be maintask-only, stateless requests will not need to go back to the maintask to be processed and, even for persistent requests, the persistent session lookup will be offloadable. These changes should provide better scalability for MP/204 sites with heavy Janus Web activity.&lt;br /&gt;
&lt;br /&gt;
===X3270OUT exit offloadable===&lt;br /&gt;
When running MP/204 (AMPSUBS&amp;gt;0) and using the [[Coding_SNA_Communications_Server_conversion_exit_routines#X3270OUT_.28convert_output_from_3270_format.29|X3270OUT]] exit to convert a 3270 output data stream to the appropriate device protocol, the exit can now run in parallel mode to improve performance. This change is enabled in V7.7 with the application of zap 77z313.&lt;br /&gt;
&lt;br /&gt;
The X3270OUT exit must be written to be re-entrant.&lt;br /&gt;
&lt;br /&gt;
===Internal performance improvements===&lt;br /&gt;
A number of internal performance and optimisation improvements have been made in this release. these include&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Sampling buffer pool pages rather than carrying out a full scan of large buffer pools ( NUMBUFG &amp;gt; 200000 ) when calculating BUFFnnn stats for SirMon&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Optimising group and file closure, in particular providing relief on exit from APSYs where a lerga number of groups may be in use, and where the groups may comprise a large number of file members&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Improved handling of timer queues, particularly in an MP/204 environment&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;More aggressive prioritisation of journal and checkpoint I/O, in order to reduce user waits for such I/), and to reduce related waits on critical file resources &lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==New and changed commands==&lt;br /&gt;
===MONITOR===&lt;br /&gt;
The MONITOR command output now contains a new column, headed LOG, that shows the logon status of each user in the system, for example&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
USER SVR         FLS  PCPU SMPLS   RUNG    REDY    BLKI    WTSV    BLKO   SWPG &lt;br /&gt;
                   7 0.330                                                     &lt;br /&gt;
                                                                               &lt;br /&gt;
USER SVR USERID     P CUR   SLICE LOG FUNC  CNCT        CPU  SEQIO QUE  WT FLGS&lt;br /&gt;
   0   1 SUPERKLUGE S  56   0.031 CCA EVAL     5      0.012    221 OFFI 12  65 &lt;br /&gt;
   4   2 ADMIN      S  51   0.031 CCA          1      0.000     22 RUNG        &lt;br /&gt;
  20     VT75DIED           0.000              0      0.000      0       2  20 &lt;br /&gt;
  21     VT75READ           0.000             37      0.000      0       3  00 &lt;br /&gt;
  22     VT75ERRS           0.000              0      0.000      0       2  20 &lt;br /&gt;
  23     CHKPTIMO           0.000              0      0.000      0      12  20 &lt;br /&gt;
  24     CHKPTIMR           0.000              0      0.000      0      12  20 &lt;br /&gt;
  25     CHKPPST            0.000              0      0.000      0      12  20 &lt;br /&gt;
  26     CHKPAWW            0.000              0      0.000      0      12  20 &lt;br /&gt;
  27     TC62RAPS           0.000              0      0.000      0      27  04 &lt;br /&gt;
  28     TC62SRVC           0.000              0      0.000      0      27  20 &lt;br /&gt;
&amp;gt;                                                                              &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
The LOG column replaces the AGE column in the MONITOR output, as this information was considered more relevant for this command output. Possible values that are shown in the LOG column are as follows&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; CCA - CCASTAT userid&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; ESM - userid validated by an External Security Manager - ACF2, RACF, or TopSecret/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; SUB - Subsystem controlled logon&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; GST - Guest - neither logged on via CCASTAT nor by an ESM&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; PDG - Logon pending due to errors (e.g. invalid password)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This change is also available with V7.7 with the application of zap 77z478.&lt;br /&gt;
&lt;br /&gt;
===MONITOR IODEV===&lt;br /&gt;
This new command displays the total number, the current usage and the maximum number of each IODEV type. &amp;lt;p&amp;gt; If the Model 204 parameters include telnet threads (TNDEV parameter), the specified IODEV will actually execute as a daemon thread (SDAEMDEV parameter). For that reason, both the telnet and daemon IODEVs will be incremented and the telnet IODEV will appear with an appended &#039;*&#039;. &amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M IODEV &amp;lt;/p&amp;gt;                       &lt;br /&gt;
 Iodev  Total  Active ( % )  Maximum ( % )                                &lt;br /&gt;
     1      1       1  100%        1  100%                                &lt;br /&gt;
     7    300     100   33%      150   50%                                &lt;br /&gt;
    11      4       0    0%        1   25%                                &lt;br /&gt;
    15    500      50   10%       80   16%                                &lt;br /&gt;
    25      1       0    0%        0    0%                                &lt;br /&gt;
    27     10       0    0%        0    0%                                &lt;br /&gt;
    29     10       1    10%       1    10%                                &lt;br /&gt;
    51      5       0    0%        0    0%&lt;br /&gt;
    21*             1              1&lt;br /&gt;
&lt;br /&gt;
===DISPLAY ECF===&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;DISPLAY ECF {{ M | N | U } like ?} &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This new command displays details from ECF tables, or the current status of users accessing ECF modules.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D ECF M&amp;lt;/code&amp;gt; displays the contents of the module table. For example:&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;    D ECF M &lt;br /&gt;
    Module   Loadlib  Address:Length     Loaded@      Lastused@   #Calls  Flags &lt;br /&gt;
    QATUM13C PROGLIB 2FB91FB8:00000028 19023:121506 19023:121506 00000001 &lt;br /&gt;
    QATUM13B PROGLIB 2FE65000:00009C18 19023:121506 19023:121506 00000001 &lt;br /&gt;
    QATUM13A PROGLIB 2FE6EC18:00001CD8 19023:121506 19023:121506 00000001  &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
(flags may be D=deleted; S=shared; H=halted; I=Idle)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D ECF N&amp;lt;/code&amp;gt; displays contents of the name table. For example: &amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;    D ECF N&lt;br /&gt;
    Module   Logical-call-name &lt;br /&gt;
    QATUM13C MOD_QATUM13C &lt;br /&gt;
    QATUM13B MOD_QATUM13B &lt;br /&gt;
    QATUM13A MOD_QATUM13A &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D ECF U&amp;lt;/code&amp;gt; displays details of users currently accessing ECF modules. This is also the default option, and so &amp;lt;code&amp;gt;D ECF&amp;lt;/code&amp;gt; will display the same output as &amp;lt;code&amp;gt;D ECF U&amp;lt;/code&amp;gt;. For example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;    D ECF U                           &lt;br /&gt;
    User# Userid     Module   Parmlen &lt;br /&gt;
    00002 ADMIN      --none--         &lt;br /&gt;
    00003 ADMIN      COBSAMP1 00000002&lt;br /&gt;
    00004 ADMIN      COBSAMP1 00000002 &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;D ECF &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;function&amp;lt;/var&amp;gt; LIKE &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;?&amp;lt;/var&amp;gt; &amp;lt;/code&amp;gt; (where &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;?&amp;lt;/var&amp;gt; is a valid pattern) displays details for entities that match the specified pattern. The function is either M (modules), N (names), or U (users), and it defaults to U. So for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;D ECF U L A&amp;lt;/p&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;D ECF U L A*&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
displays details of ECF users whose names begin with A.&lt;br /&gt;
&lt;br /&gt;
===REGENERATE===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[REGENERATE command|REGENERATE]]&amp;lt;/var&amp;gt; command can now be run in a multi-user environment by multiple users with system manager privileges. A new option USING is provided to specify the ddname of the input journal, so that the full syntax is now as follows:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;  REGENERATE [USING ddname] FILE filename [FROM dumpname | IGNORE]&lt;br /&gt;
  [TO {LAST UPDATE [BEFORE yy.ddd hh:mm:ss.th] | LAST CHECKPOINT [BEFORE yy.dd hh:mm:ss.th] &lt;br /&gt;
  | UPDATE number OF yy.ddd hh:mm:ss.th | CHECKPOINT yy.ddd hh:mm:ss.th} ]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default for the using ddname is CCAGEN, but any ddname may be used to allocate an input journal and used. For example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;  ALLOCATE REGEN1 WITH SCOPE=SYSTEM DSN=PROD1.GDGJ OLD SEQUENTIAL GEN=+2&lt;br /&gt;
  REGENERATE USING REGEN1 FILE TEST&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is the user&#039;s responsibility to ensure that the file being regenerated is not in use, and so prior to usage, &amp;lt;var&amp;gt;BUMP FILE&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;STOP FILE&amp;lt;/var&amp;gt; should be used to isolate usage against the file. If the file is in use, the REGEN will fail with these messages:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;  M204.1430: Failed to open file TEST&lt;br /&gt;
  M204.1436: Stopped processing file TEST  &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$STATUS will now be set for &amp;lt;var&amp;gt;REGENERATE&amp;lt;/var&amp;gt; with the following values:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;    &lt;br /&gt;
    0 - Success &amp;lt;br/&amp;gt;&lt;br /&gt;
    1 - No files were processed &amp;lt;br/&amp;gt;&lt;br /&gt;
    2 - At least one file stopped processing &amp;lt;br/&amp;gt;&lt;br /&gt;
    4 - A serious error occurred, REGEN failed &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similarly, &amp;lt;var&amp;gt;[[SETGRC command|SETGRC]]&amp;lt;/var&amp;gt; may be used to get the return code and error message.&lt;br /&gt;
&lt;br /&gt;
==New and changed parameters==&lt;br /&gt;
&lt;br /&gt;
===COMMITX===&lt;br /&gt;
The commit exit runs within the APSY defined by the &amp;lt;var&amp;gt;COMMITX&amp;lt;/var&amp;gt; parameter and uses normal APSY processing.&lt;br /&gt;
&lt;br /&gt;
The new parameter &amp;lt;var&amp;gt;COMMITX&amp;lt;/var&amp;gt; is settable from User 0&#039;s parameter line or by the system manager. It can be reset at any time by the system manager.&lt;br /&gt;
&lt;br /&gt;
Setting/Resetting the parameter sends a DYRWT message to the issuer and requires a Yes or No response (unless set/reset by user0).&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;var&amp;gt;COMMITX&amp;lt;/var&amp;gt; is specified, all APSY subsystems participate by default but any can be exempted.&lt;br /&gt;
&lt;br /&gt;
===ECMSUBS===&lt;br /&gt;
This maximum value may now be reset dynamically by a system manager. If the value is raised, new tasks will be added as needed up to the value specified. If the value is lowered, idle subtasks will be detached before they are activated until the new maximum is established.&lt;br /&gt;
&lt;br /&gt;
===ECMODS===&lt;br /&gt;
The new minimum value for ECMODS, the allowable number of ECF modules, is 1. Prior to V7.8 the minimum value was 0. This change is enabled in V7.7 with the application of zap 77z306.&lt;br /&gt;
&lt;br /&gt;
===ECNAMES===&lt;br /&gt;
The new minimum value for ECNAMES, the allowable number of ECF module names, is 1. Prior to V7.8 the minimum value was 0. This change is enabled in V7.7 with the application of zap 77z306.&lt;br /&gt;
&lt;br /&gt;
===ECPSIZE===&lt;br /&gt;
The new minimum value for ECPSIZE, the initial storage allocation for ECF parameters, is 1024. Prior to V7.8 the minimum value was 0. This change is enabled in V7.7 with the application of zap 77z306.&lt;br /&gt;
&lt;br /&gt;
===ENQTIME===&lt;br /&gt;
Millisecond duration of automatic record locking retry wait.&lt;br /&gt;
&lt;br /&gt;
Prior to this change, if record locking conflicts occur frequently in a busy online, any user with a non-zero value for &amp;lt;var&amp;gt;[[ENQRETRY parameter|ENQRETRY]]&amp;lt;/var&amp;gt; will wait at least 3 seconds before the conflict is dealt with. This can degrade overall system performance.      &lt;br /&gt;
                                                         &lt;br /&gt;
The &amp;lt;var&amp;gt;[[ENQTIME parameter|ENQTIME]]&amp;lt;/var&amp;gt; parameter specifies the number of milliseconds waited for each record locking retry wait. &amp;lt;var&amp;gt;ENQTIME&amp;lt;/var&amp;gt; can be between 1 and 60000, corresponding to a minimum of 1 millisecond and a maximum of 1 minute. The default value of &amp;lt;var&amp;gt;ENQTIME&amp;lt;/var&amp;gt; is 3000 (3 seconds).            &lt;br /&gt;
                                                         &lt;br /&gt;
For example, with &amp;lt;code&amp;gt;ENQTIME = 100&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ENQRETRY = 7&amp;lt;/code&amp;gt;, after a record locking conflict occurs the thread will retry 7 times with wait intervals of .1 seconds, and so within at most .7 seconds either the lock becomes available or the conflict triggers an On unit or cancels the request.     &lt;br /&gt;
                                                         &lt;br /&gt;
The &amp;lt;var&amp;gt;ENQTIME&amp;lt;/var&amp;gt; parameter may also be reset with $ResetN. &lt;br /&gt;
&lt;br /&gt;
This new parameter is enabled in V7.7 with the application of zap 77z299.&lt;br /&gt;
&lt;br /&gt;
===EVALOPT===&lt;br /&gt;
The new &amp;lt;var&amp;gt;[[EVALOPT parameter|EVALOPT]]&amp;lt;/var&amp;gt; parameter controls the cancellation of a request on truncation of string data. The default value is 0, and currently there is just one setting, 1, which means &amp;quot;cancel a request if truncation of string data occurs.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For example, with the default of 0 in place, the following code &amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;    %x is string len 1   &lt;br /&gt;
    %y is string len 2   &lt;br /&gt;
    %y = &#039;ab&#039;            &lt;br /&gt;
    %x = %y              &lt;br /&gt;
    printtext {~} = {%x} &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
would cause silent truncation, and give the result&lt;br /&gt;
    &amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%x = a &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;var&amp;gt;EVALOPT&amp;lt;/var&amp;gt; is set to 1, then the above code produces the following message:&lt;br /&gt;
    &amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.0552: Variable too small for result &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the request is cancelled.&lt;br /&gt;
&lt;br /&gt;
===LFSCB===&lt;br /&gt;
&amp;lt;var&amp;gt;LFSCB&amp;lt;/var&amp;gt;, the length of the full screen buffer, now has a new minimum value of 8 (the previous minimum was 0). This change is enabled in v7.7 with the application of zap 77z042, and within V7.6 with the application of zap 76z393.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MAXPRE, MAXBOUT, MAXSUBT===&lt;br /&gt;
&amp;lt;p&amp;gt;Introduced in zap 77z257.&amp;lt;/p&amp;gt;&lt;br /&gt;
The new &amp;lt;var&amp;gt;MAXPRE&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;MAXBOUT&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;MAXSUBT&amp;lt;/var&amp;gt; parameters can be used to cancel a runaway transaction and prevent it from filling the checkpoint data set. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;MAXPRE&amp;lt;/var&amp;gt;:  Maximum number of pre-images per transaction.  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;MAXBOUT&amp;lt;/var&amp;gt;: Maximum number of backout pages per transaction. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;MAXSUBT&amp;lt;/var&amp;gt;: Maximum number of subtransaction checkpoints that a transaction can span.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Each new parameter defaults to unlimited. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If a parameter value is set, a transaction is cancelled if that value is exceeded, and the following message is displayed:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.0524: Maximum number (&amp;lt;i&amp;gt;num&amp;lt;/i&amp;gt;) of &amp;lt;i&amp;gt;parameter&amp;lt;/i&amp;gt; exceeded.&amp;lt;/p&amp;gt;&lt;br /&gt;
where &amp;lt;i&amp;gt;num&amp;lt;/i&amp;gt; is the value set for &amp;lt;i&amp;gt;parameter&amp;lt;/i&amp;gt; (&amp;lt;var&amp;gt;MAXPRE&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;MAXBOUT&amp;lt;/var&amp;gt;, or &amp;lt;var&amp;gt;MAXSUBT&amp;lt;/var&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===MODENAME in a Transfer Control PROCESSGROUP===&lt;br /&gt;
Previously the MODENAME parameter has been ignored in VTAM TRANSFER PROCESSGROUP processing.   &lt;br /&gt;
&lt;br /&gt;
As of V78 with 78Z029 applied, Users will be able to control the characteristics of a session (for example, Display Model, Ru size, EDS support et al.) bound at the VTAM Transfer Control Target&lt;br /&gt;
by means of the VTAM Transfer PROCESSGROUP&#039;s MODENAME. &lt;br /&gt;
  &lt;br /&gt;
A null or unspecified MODENAME in a VTAM Transfer PROCESSGROUP definition will result in the Target LU&#039;s  &lt;br /&gt;
Default LOGMODE being used to Bind the Target Session (This is how all VTAM Transfers worked previously).  &lt;br /&gt;
     &lt;br /&gt;
Specifying MODENAME=LOGON or MODENAME=LOGIN in a VTAM TRANSFER PROCESSGROUP definition results in the LOGMODE used     &lt;br /&gt;
to Logon to the Source Online also being used to Bind the Session at the Transfer Target.                &lt;br /&gt;
   &lt;br /&gt;
Otherwise, anything specified in a VTAM TRANSFER PROCESSGROUP MODENAME parameter will be assumed to be a &lt;br /&gt;
valid VTAM LOGMODE and will be used to Bind the Transferred session at the Target. There is a potential&lt;br /&gt;
for upward incompatibility in the case where a VTAM TRANSFER PROCESSGROUP definition specifies an invalid value for MODENAME: &lt;br /&gt;
  &lt;br /&gt;
Since the MODENAME is no longer ignored, an invalid value will now fail the Transfer.&lt;br /&gt;
     &lt;br /&gt;
A failed Transfer consequent to an invalid LOGMODE or a LOGMODE unknown at the Target is flagged with:&lt;br /&gt;
M204.2483 &#039;unknown-modename  is not a valid LOGMODE name&#039;.&lt;br /&gt;
&lt;br /&gt;
===MQMXTASK===&lt;br /&gt;
This maximum value may now be reset dynamically by a system manager. If the value is raised, new tasks will be added as needed up to the value specified. If the value is lowered, idle subtasks will be detached before they are activated until the new maximum is established.&lt;br /&gt;
&lt;br /&gt;
===NLDAPBUF===&lt;br /&gt;
This new parameter allows the number of LDAP buffers allocated during startup to be set in CCAIN. The default value is 2, and the settable value can range from 0 to 65535.&lt;br /&gt;
&lt;br /&gt;
===PUPDTH (new minimum value)===&lt;br /&gt;
If a user sets the &amp;lt;var&amp;gt;[[PUPDTH parameter|PUPDTH]]&amp;lt;/var&amp;gt; parameter to 0, it will now automatically be increased to 1, its minimum value.&lt;br /&gt;
&lt;br /&gt;
===SERV4G===&lt;br /&gt;
This parameter allows testing of server tables that span a 4-gigabyte boundary. For example, if &amp;lt;var&amp;gt;SERV4G&amp;lt;/var&amp;gt; is &amp;lt;code&amp;gt;X&#039;FFFFF000&#039;&amp;lt;/code&amp;gt;, each ATB server will begin at &amp;lt;code&amp;gt;XX_FFFFF000&amp;lt;/code&amp;gt;. If &amp;lt;var&amp;gt;SERV4G&amp;lt;/var&amp;gt; is &amp;lt;code&amp;gt;X&#039;FFFF0000&#039;&amp;lt;/code&amp;gt;, each ATB server will begin at &amp;lt;code&amp;gt;XX_FFFF0000&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;XX&amp;lt;/code&amp;gt; is determined by the storage available on the system. The parameter is set in CCAIN.&lt;br /&gt;
&lt;br /&gt;
The contents of the ATB server are specified by using the &amp;lt;var&amp;gt;[[SERVGA parameter|SERVGA]]&amp;lt;/var&amp;gt; parameter.&lt;br /&gt;
&lt;br /&gt;
For example, if you want VTBL to span the 4G boundary, you can use these settings: &amp;lt;code&amp;gt;SERV4G=X&#039;FFFFF000&#039;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SERVGA=X&#039;00040000&#039;&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;LVTBL=200 (6400 bytes, X&#039;1900&#039;)&amp;lt;/code&amp;gt;. This will force each server&#039;s VTBL to begin at &amp;lt;code&amp;gt;XX_FFFFF000&amp;lt;/code&amp;gt; and end at &amp;lt;code&amp;gt;XX+1_00000900&amp;lt;/code&amp;gt;.&lt;br /&gt;
===SIRTERM===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[SIRTERM parameter|SIRTERM]]&amp;lt;/var&amp;gt; (Sirius terminal options) parameter settings have changed. &lt;br /&gt;
The changes to &amp;lt;var&amp;gt;SIRTERM&amp;lt;/var&amp;gt; allow a user to preclude a reset to a Model that is not supported by the terminal emulator in use.&lt;br /&gt;
&lt;br /&gt;
The X&#039;01&#039; setting (MODEL 6 support) is no longer used. &lt;br /&gt;
&lt;br /&gt;
The X&#039;02&#039; setting (Write Structured Field Query Support) now supports MODEL 6 terminals by default. &lt;br /&gt;
&lt;br /&gt;
The new X&#039;08&#039; setting always issues a Write Structured Field Query for Terminal Model Resets for terminals connected to Model 204 through VTAM or TELNET, provided that X&#039;02&#039; has been set. This precludes Terminal Model RESETs to Models that are not supported by the terminal emulator in use.&lt;br /&gt;
&lt;br /&gt;
===WEBDFLT===&lt;br /&gt;
At V7.7, the default access rule for non-SSL ports was changed from ALLOW * to DISALLOW *, meaning that unless any ALLOW rules were in place resulting in a login/password prompt, the port couldn&#039;t be accessed. The new &amp;lt;var&amp;gt;[[WEBDFLT_parameter|WEBDFLT]]&amp;lt;/var&amp;gt; parameter may be set to 1 for reversion to the old default of ALLOW *. This new parameter is enabled in V7.7 with the application of zap 77z090. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;RESET WEBDFLT&amp;lt;/var&amp;gt; requires system administrator privileges. It is recommended to reset the 1 bit of &amp;lt;var&amp;gt;WEBDFLT&amp;lt;/var&amp;gt; to zero after issuing a series of &amp;lt;var&amp;gt;JANUS DEFINE&amp;lt;/var&amp;gt; commands which need &amp;lt;var&amp;gt;WEBDFLT=1&amp;lt;/var&amp;gt;, as in the CCAIN input stream.&lt;br /&gt;
&lt;br /&gt;
===WEBOPT===&lt;br /&gt;
The new x&#039;10&#039; setting of &amp;lt;var&amp;gt;[[WEBOPT_parameter|WEBOPT]]&amp;lt;/var&amp;gt; allows transaction daemon threads to access web data owned by the ancestor ( usually the parent ) thread.&lt;br /&gt;
&lt;br /&gt;
==New and changed statistics==&lt;br /&gt;
===MPR, MBO, MCP, and RCV===&lt;br /&gt;
Introduced in zap 77z257.&lt;br /&gt;
&amp;lt;p&amp;gt;These statistics provide high water mark transaction information. (Since-last values will not be available until V78 GA.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;They are useful in conjunction with the &amp;lt;var&amp;gt;[[#MAXPRE, MAXBOUT, MAXSUBT|MAXPRE, MAXBOUT, and MAXSUBT]]&amp;lt;/VAR&amp;gt; parameters. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
User/system statistics:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;MPR: High water mark of transaction pre-images. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;MBO: High water mark of transaction backout pages. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;MCP: High water mark of transaction chkpoint spans. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
System statistics: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;RCV: Number of blocks needed for subtransaction recovery &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt; M204.0843 now displays the RCV statistic for subtransaction checkpoints.&lt;br /&gt;
The size of recovery checkpoint must be greater than the sum of the last RCV value plus the number of records in [[System_and_media_recovery#RESTART_recovery_considerations_for_sub-transaction_checkpoints|RESTART and RESTARTS]].&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DKWTS and DKWTMICS===&lt;br /&gt;
Introduced in zap 77z7289.&lt;br /&gt;
&amp;lt;p&amp;gt;The new system statistics DKWTS (DisK WaiTs) and DKWTMICS (DisK WaiT MICroSeconds) collect data to provide rough disk I/O service time numbers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DKWTS shows the number of disk I/O waits. DKWTMICS shows the total wait time for those waits in microseconds. Dividing the difference in DKWTMICS by the difference in DKWTS over an interval provides the average disk I/O wait time in microseconds.              &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt; &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The wait time does include internal Model 204 scheduler delays, so on a CPU bound Model 204 system, the service times calculated from DKWTS and DKWTMICS are likely to be an overestimate of actual service times.&amp;lt;/li&amp;gt;  &lt;br /&gt;
                                                                    &lt;br /&gt;
&amp;lt;li&amp;gt;DKWTS and DKWTMICS are not available in SirMon; use &amp;lt;var&amp;gt;[[MONITOR_command|MONITOR]] SYSTEM STATISTICS&amp;lt;/var&amp;gt; to view these statistics.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;  &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Compatibility issues==&lt;br /&gt;
===&amp;lt;b id=&amp;quot;listNewInit&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;$ListNew cannot be used in Initial clause===&lt;br /&gt;
It is now a compilation error if &amp;lt;var&amp;gt;$ListNew&amp;lt;/var&amp;gt; is attempted to be used in the &amp;lt;var&amp;gt;Initial&amp;lt;/var&amp;gt; clause of a &lt;br /&gt;
[[Using_variables_and_values_in_computation#Declare_statements_for_.25variables|declaration statement]].&lt;br /&gt;
&amp;lt;p&amp;gt;This change is propagated by zap maintenance to versions 7.5 (zap 75Z487), 7.6 (zap 76Z514), and 7.7 (zap 77z281) of Model 204.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Strictly speaking, this would not be considered a compilation error, because previously although &amp;lt;code&amp;gt;..&amp;amp;nbsp;Initial($ListNew)&amp;lt;/code&amp;gt; did not produce a compilation error, in almost all circumstances it would produce a snap if the initialized %variable were used with some other &amp;lt;var&amp;gt;$List&amp;lt;i&amp;gt;xxx&amp;lt;/i&amp;gt;&amp;lt;/var&amp;gt; invocation.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Restricting the use of the CUSTOM=38 setting===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[CUSTOM parameter|CUSTOM=38]]&amp;lt;/var&amp;gt; parameter setting, introduced at V7.5, inadvertently provided System Manager privileges to all users via the &amp;lt;var&amp;gt;RESET&amp;lt;/var&amp;gt; command. This &amp;lt;var&amp;gt;CUSTOM&amp;lt;/var&amp;gt; setting is now restricted to the &amp;lt;var&amp;gt;RESET&amp;lt;/var&amp;gt; of the &amp;lt;var&amp;gt;LAUDIT&amp;lt;/var&amp;gt; parameter.&lt;br /&gt;
&lt;br /&gt;
===Disabling of Closure support===&lt;br /&gt;
Due to a non-trivial backward incompatibility issue related to Closure support, introduced in V7.7, this feature, which can best be described as exposed methods assigned to method variables, has been disabled in this release. This change was also made to V7.7 with application of zap 77z119.&lt;br /&gt;
&lt;br /&gt;
===Password delimiter enforced===&lt;br /&gt;
When using &amp;lt;var&amp;gt;IFSTRTN&amp;lt;/var&amp;gt; to log on to a Model 204 online from an IFAM2 application, both the logonid and password must be followed by a semicolon, which is the delimiter. For example:      &lt;br /&gt;
                                      &lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;CALL IFSTRTN(RC,&#039;logonid;password;&#039;...)&amp;lt;/p&amp;gt;&lt;br /&gt;
                 &lt;br /&gt;
If a semicolon does not follow the password string, the following message will now be issued:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.2964: Password missing or too long &amp;lt;/p&amp;gt;                 &lt;br /&gt;
                                                         &lt;br /&gt;
Previously, a semicolon following the password was not required and the first blank served as a password delimiter.  However, as of V7.7, embedded blanks are valid password characters and a semicolon is now required to delimit the password.&lt;br /&gt;
&lt;br /&gt;
This change is enabled in V7.7 with the application of zap 77z231.&lt;br /&gt;
&lt;br /&gt;
===PAGESZ parameter validated===&lt;br /&gt;
Previously it was possible to set the &amp;lt;var&amp;gt;PAGESZ&amp;lt;/var&amp;gt; parameter to any value, although Model 204 internally supports one page size of 6184, and any deviation from this value would have led to problems during file creation. The value of this parameter is now controlled, such that setting it to any value other than 6184 will generate an M204.1149 message with the parameter being reset to 6184.&lt;br /&gt;
&lt;br /&gt;
===ECPRIV and the IDCAMS facility===&lt;br /&gt;
At V7.7 a security loophole was closed, whereby all ECF modules were run under external-authorizer profile of the calling user. Previously any ECF tasks were run under the owning job&#039;s external-authorizer profile, and in order for certain sites to retain that ability, a new setting of &amp;lt;var&amp;gt;ECPRIV&amp;lt;/var&amp;gt;, value 4, was introduced to retain the ability to run ECF tasks using the job&#039;s security profile. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;ECPRIV&amp;lt;/var&amp;gt; 4 setting potentially introduced a security loophole when calling the IDCAMS interface, based upon what the IDCAMS utility is able to do at a system level. Consequently as of this release, the &amp;lt;var&amp;gt;ECPRIV&amp;lt;/var&amp;gt; 4 setting will be ignored when calling the IDCAMS facility via ECF, and such IDCAMS processes will always use the calling user&#039;s security profile. Any existing jobs that use ECF to call the IDCAMS utility with the &amp;lt;var&amp;gt;ECFPRIV&amp;lt;/var&amp;gt; 4 bit set should be checked to ensure that the calling user&#039;s security profile still satisfies the job&#039;s requirements.&lt;br /&gt;
&lt;br /&gt;
===TCPOPTS is view-only===&lt;br /&gt;
In previous versions the &amp;lt;var&amp;gt;TCPOPTS&amp;lt;/var&amp;gt; parameter, which identifies the type of IP addressing in use (v4 or v6), was resettable, although it was always documented as a view-only parameter. The parameter is now handled as a view-only parameter, and any attempts to reset the parameter will result in the following message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;gt;   M204.1123: Parameter TCPOPTS not reset&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ZHPF command can only be issued by a system manager===&lt;br /&gt;
In previous versions it was possible to issue the &amp;lt;var&amp;gt;ZHPF&amp;lt;/var&amp;gt; command without being logged on. From this release onwards, a user must be logged on with system manager privileges in order to issue this command.&lt;br /&gt;
&lt;br /&gt;
Additionally, the command output will now only  display results for currently open files.&lt;br /&gt;
&lt;br /&gt;
This change is enabled in v7.7 with the application of zap 77z264.&lt;br /&gt;
&lt;br /&gt;
===Terminal MODEL reset failure===&lt;br /&gt;
If a reset of the terminal &amp;lt;var&amp;gt;MODEL&amp;lt;/var&amp;gt; parameter fails due to an undersized output page buffer, then in addition to the existing messages that inform the user of this failure:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;gt;    M204.1875 UNABLE TO RESET MODEL TO %C &lt;br /&gt;
    M204.1123: Parameter MODEL not reset&amp;lt;/p&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
the following message will now be issued:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;gt;    M204.1008: LOUTPB must be increased to at least &amp;lt;number&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
                                                         &lt;br /&gt;
where &amp;lt;number&amp;gt; is the minimum value of &amp;lt;var&amp;gt;LOUTPB&amp;lt;/var&amp;gt; necessary to support the terminal model.&lt;br /&gt;
&lt;br /&gt;
This change is enabled in V7.7 with the application of zap 77z309.&lt;br /&gt;
&lt;br /&gt;
===BUF and FBMX stats removed===&lt;br /&gt;
Unnecessary scans of the buffer pool have been eliminated from most forms of the MONITOR command ( other than MONITOR DISKBUFF itself ), and this provides performance gain when running these commands. However, as a result of this the BUF stat on the MONITOR command output, and the FBMX stat reported in the system final stats block have been removed. These stats were of extremely limited value, and their elimination should not cause any problems for system management. This change is implemented in V7.8 via zap 78z077, and in V7.7 by zap 77z463.&lt;br /&gt;
&lt;br /&gt;
==Notes for system manager and installer==&lt;br /&gt;
===CRAM SVC installation is deprecated===&lt;br /&gt;
The CRAM SVC installation has been deprecated as of version 7.5. &amp;lt;br /&amp;gt;Installation of CRAM-XDM is described as part of the [[Model 204 installation]].&lt;br /&gt;
===Authorization and maintenance zaps===&lt;br /&gt;
When you download Rocket M204 product object files, all relevant authorization keys and all current maintenance zaps are pre-applied to the object files as part of the download process.&lt;br /&gt;
&lt;br /&gt;
==New products==&lt;br /&gt;
===Janus Two-Phase Commit===&lt;br /&gt;
[[Janus Two-Phase Commit]] support makes it possible to create global transactions where updates on multiple Model 204 Onlines or &amp;lt;var&amp;gt;Imagine&amp;lt;/var&amp;gt; can be atomically committed or backed out.&lt;br /&gt;
&lt;br /&gt;
===Commit Exit===&lt;br /&gt;
The [[Application_Subsystem_development#Commit_exits|Commit exit]] product allows for the invocation of specified APSY code when an an APSY TBO transaction executes its first explicit or implicit COMMIT. The feature is controlled by the new COMMITX parameter.&lt;br /&gt;
&lt;br /&gt;
==New and changed messages==&lt;br /&gt;
&lt;br /&gt;
See [[New and updated messages in Model 204 version 7.8|New and updated messages in Model 204 version 7.8]] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Release notes]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Release_notes_for_Model_204_version_7.9_(Beta)&amp;diff=120130</id>
		<title>Release notes for Model 204 version 7.9 (Beta)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Release_notes_for_Model_204_version_7.9_(Beta)&amp;diff=120130"/>
		<updated>2024-05-07T20:18:49Z</updated>

		<summary type="html">&lt;p&gt;Tom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;THIS PAGE IS UNDER CONSTRUCTION!&amp;lt;/b&amp;gt;&lt;br /&gt;
These release notes list the enhancements and other changes contained in Model 204 version 7.9, &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;which is still in development&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;. Until the commercial release of the software, Rocket reserves the right to add to, remove, or change anything described herein. &lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
These release notes contain installation and features information for the Rocket Model 204 version 7.9 release.&lt;br /&gt;
Before beginning your installation, please read through this information about product installation and changes.&lt;br /&gt;
&lt;br /&gt;
==New in this release==&lt;br /&gt;
===Regular expression engine enhancements===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The [[Regex processing|regular expression engine]] can now produce traces of regular expression processing to help debug and optimize regular expressions. There are new user parameters [[REGEXTR parameter|REGEXTR]] and [[MREGEXTR parameter|MREGEXTR]], as well as a new [[Regex_processing#Common_regex_options|&amp;quot;t&amp;quot; option]] on regex method and $function invocations to control this tracing.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The regular expression engine now supports [https://www.regular-expressions.info/backref.html back references]. The following illustrates the use of a back reference (\1 in the example) to display all lines in procedure FOO where the left side of an assignment also appears on the right side. Note that this example is somewhat simplistic in that it it doesn&#039;t account for continuation lines and might not be what one wants if the left side of an assignment is an object member or array element.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;b                                                                   &lt;br /&gt;
                                                                    &lt;br /&gt;
%i   is float                                                       &lt;br /&gt;
%sl  is object stringlist                                           &lt;br /&gt;
                                                                    &lt;br /&gt;
%sl = new                                                           &lt;br /&gt;
$procopn(&amp;quot;FOO&amp;quot;, &amp;quot;FOOPROC&amp;quot;)                                         &lt;br /&gt;
%sl:appendOpenProcedure                                             &lt;br /&gt;
                                                                    &lt;br /&gt;
%i = 1                                                              &lt;br /&gt;
repeat while %i le %sl:count                                        &lt;br /&gt;
   %i = %sl:regexLocate(&amp;quot;(%[a-z._$]+) *=.*\1&amp;quot;, %i, options=&amp;quot;i&amp;quot;)     &lt;br /&gt;
   if %i eq 0 then loop end; end if                                 &lt;br /&gt;
   print %ls(%i)                                                    &lt;br /&gt;
   %i = %i + 1                                                      &lt;br /&gt;
end repeat                                                          &lt;br /&gt;
                                                                    &lt;br /&gt;
end  &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
===New Regex class===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Regular expressions can now be compiled into [[Regex class|Regex objects]]. This can be useful in allowing the compilations of dynamically generated regular expressions to be reused without recompilation. There is a new system parameter, [[REGXSTBL parameter|REGXSTBL]] that controls how much STBL space is to be reserved for each &amp;lt;var&amp;gt;Regex&amp;lt;/var&amp;gt; object.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===New HDRCTL setting for DAEMONS===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Prior to V7.9, daemons did not output header lines.&lt;br /&gt;
Starting with V7.9, HDRCTL may be set to 8 to force daemons to output header lines.&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===New MSGCTLU command to allow message changes by non-managers===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Message behavior may now be changed by non-managers effecting the user&#039;s thread only.&lt;br /&gt;
For instance, anyone may now produce a snap on a specific message within their thread which does not affect anyone else.&lt;br /&gt;
See [[MSGCTLU_command|MSGCTLU]] command for more details.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
==System Enhancements==&lt;br /&gt;
===EAV support for SIRTUNED===&lt;br /&gt;
&lt;br /&gt;
==Debugger enhancements==&lt;br /&gt;
Enhancements have been made for debugging applications that use IMAGEs to all of Model 204 debuggers (Janus Debugger, Tn3270 Debugger and SoftSpy).&lt;br /&gt;
&lt;br /&gt;
==Performance enhancements==&lt;br /&gt;
===Regex Rewrite===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The [[Regex processing|regular expression engine]] has been completely rewritten to make it significantly faster. Tests indicate simple regex is at least three times as fast as the earlier regular expression engine, and 10 times or more faster for more complex regular expressions. In addition, constant regular expressions are now compiled when the containing procedure is compiled to eliminate the runtime cost of regular expression compilation and to detect errors in regular expressions at SOUL compile-time lather than evaluation time.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
===ATB Storage Usage Greatly Increased===&lt;br /&gt;
Many more M204 data structures can be placed in ATB storage with 7.9.  Probably the most important of these is the Push Down List (PDL).&lt;br /&gt;
&lt;br /&gt;
==New and changed messages==&lt;br /&gt;
&lt;br /&gt;
See [[New and updated messages in Model 204 version 7.9|New and updated messages in Model 204 version 7.9]] for details.&lt;br /&gt;
&lt;br /&gt;
[[Category: Release notes]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=TCPTYPE_parameter&amp;diff=120052</id>
		<title>TCPTYPE parameter</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=TCPTYPE_parameter&amp;diff=120052"/>
		<updated>2024-02-06T17:11:07Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:TCPTYPE parameter subtitle}}&lt;br /&gt;
==Summary==&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Default value&lt;br /&gt;
&amp;lt;dd&amp;gt;UNKNOWN&lt;br /&gt;
&amp;lt;dt&amp;gt;Parameter type&lt;br /&gt;
&amp;lt;dd&amp;gt;System&lt;br /&gt;
&amp;lt;dt&amp;gt;Where set&lt;br /&gt;
&amp;lt;dd&amp;gt;User 0 CCAIN parameters&lt;br /&gt;
&amp;lt;dt&amp;gt;Related products&lt;br /&gt;
&amp;lt;dd&amp;gt;All&lt;br /&gt;
&amp;lt;dt&amp;gt;Introduced&lt;br /&gt;
&amp;lt;dd&amp;gt;Before &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Sirius Mods&amp;lt;/var&amp;gt; 6.7&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This parameter specifies the type of [[Janus_TCP/IP_Base|TCP/IP]] network to which Model&amp;amp;nbsp;204 is connected.&lt;br /&gt;
Generally, you can let this parameter default (&amp;lt;var&amp;gt;UNKNOWN&amp;lt;/var&amp;gt; is default value). Janus then automatically detects the type of TCP/IP you have on your machine, and it resets the &amp;lt;var&amp;gt;TCPTYPE&amp;lt;/var&amp;gt; value accordingly. In this case, IPV4 values are preferred; IPV6 values must be explicitly set. &lt;br /&gt;
&lt;br /&gt;
If you specify type &amp;lt;var&amp;gt;IBM&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;IBMV6&amp;lt;/var&amp;gt;, Janus detects and sets the type of IBM interface it will use, as shown in the table below. Only these values invoke auto-detection.&lt;br /&gt;
&lt;br /&gt;
You can also override auto-detection by explicitly supplying a &amp;lt;var&amp;gt;TCPTYPE&amp;lt;/var&amp;gt; parameter value.&lt;br /&gt;
The likely reason to do this would be if you have multiple TCP/IP stacks installed, and you want to force use of the non-preferred stack.&lt;br /&gt;
&lt;br /&gt;
The valid &amp;lt;var&amp;gt;TCPTYPE&amp;lt;/var&amp;gt; values are in the third column below:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;Operating system&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Network version&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Value&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Meaning&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;7&amp;quot;&amp;gt;z/OS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;5&amp;quot;&amp;gt;IPV4 only&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;IBM&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Auto-detect the &amp;quot;best&amp;quot; IBM TCP/IP interface. For z/OS, this is BPX. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;BPX&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;IBM BPX (Unix System Services). &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;HPNS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;IBM HPNS (High Performance Native Sockets). Note that despite its name, HPNS&#039;s performance is not nearly as good as BPX&#039;s. No longer supported as of version 7.9 of Model&amp;amp;nbsp;204. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;INTERLNK&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;InterLink TCP/IP. No longer supported as of version 7.9 of Model&amp;amp;nbsp;204.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;IUCV&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;IBM TCP/IP IUCV (Inter User Communication Vehicle). &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot;&amp;gt;IPV6 only&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;IBMV6&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Auto-detect the &amp;quot;best&amp;quot; IBM TCP/IP interface. For z/OS, this is BPXV6. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This option is available as of version 7.7 of Model&amp;amp;nbsp;204.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;BPXV6&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;IBM BPX (Unix System Services). &amp;lt;p&amp;gt;&lt;br /&gt;
This option is available as of version 7.7 of Model&amp;amp;nbsp;204.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;4&amp;quot;&amp;gt;CMS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot;&amp;gt;IPV4 only&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;IBM&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Auto-detect the &amp;quot;best&amp;quot; IBM TCP/IP interface. For CMS, this is IUCV. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;IUCV&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;IBM TCP/IP IUCV (Inter User Communication Vehicle).  &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr rowspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot;&amp;gt;IPV6 only&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;IBMV6&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Auto-detect the &amp;quot;best&amp;quot; IBM TCP/IP interface. For CMS, this is IUCVV6. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This option is available as of version 7.7 of Model&amp;amp;nbsp;204.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;IUCVV6&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;IBM TCP/IP IUCV (Inter User Communication Vehicle).&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This option is available as of version 7.7 of Model&amp;amp;nbsp;204.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;z/VSE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;IPV4 only&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CSI&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;Connectivity Systems TCP/IP. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most of the communication with the TCP/IP address space is accomplished with a [[Controlling system operations (CCAIN)#Pseudo subtasks|Pseudo subtask (PST)]].&lt;br /&gt;
Because of this, you may need to increase the &amp;lt;var&amp;gt;[[NSUBTKS parameter|NSUBTKS]]&amp;lt;/var&amp;gt; parameter by 1 before using Janus.&lt;br /&gt;
&lt;br /&gt;
[[Category:System parameters]]&lt;br /&gt;
[[Category:Parameters]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=NEWSESCMD_(JANUS_DEFINE_parameter)&amp;diff=119989</id>
		<title>NEWSESCMD (JANUS DEFINE parameter)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=NEWSESCMD_(JANUS_DEFINE_parameter)&amp;diff=119989"/>
		<updated>2023-09-11T19:27:53Z</updated>

		<summary type="html">&lt;p&gt;Tom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span class=&amp;quot;pageSubtitle&amp;quot;&amp;gt;NEWSESCMD &#039;xxx&#039; &amp;amp;mdash; Commands to execute on new session initiation&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; is a parameter on &amp;lt;var&amp;gt;[[JANUS DEFINE]]&amp;lt;/var&amp;gt;, which defines and sets characteristics of a Janus port. &lt;br /&gt;
&lt;br /&gt;
This parameter specifies the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; commands to be executed when a new login session is initiated. For &amp;lt;var&amp;gt;[[JANUS DEFINE#type|SRVSOCK]]&amp;lt;/var&amp;gt; ports every connection starts a new login session. For &amp;lt;var&amp;gt;[[JANUS DEFINE#type|WEBSERV]]&amp;lt;/var&amp;gt; ports, a new login session is only started when the user requests a &amp;quot;login required&amp;quot; URL (based on &amp;lt;var&amp;gt;[[JANUS WEB ALLOW]]&amp;lt;/var&amp;gt; rules) and the user is not continuing a login session via &amp;lt;var&amp;gt;[[SSLSES (JANUS DEFINE parameter)|SSLSES]]&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;[[SESCOOKIE (JANUS DEFINE parameter)|SESCOOKIE]]&amp;lt;/var&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Multiple commands must be separated by &amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt;, and any command that contains blanks must be enclosed in quotes. &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; may span more than one line (if a hyphen (-) continues the line), but the total length of commands plus one overhead byte per command cannot exceed 255 bytes. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; commands are executed before any commands specified in the &amp;lt;var&amp;gt;[[CMD (JANUS DEFINE parameter)|CMD]]&amp;lt;/var&amp;gt; clause or &amp;lt;var&amp;gt;[[JANUS WEB ON]]&amp;lt;/var&amp;gt; rules for &amp;lt;var&amp;gt;WEBSERV&amp;lt;/var&amp;gt; ports. User authentication is the primary function of &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; commands. Any [[Janus Web Server $functions|$Web_ function]] can be issued in &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; commands on &amp;lt;var&amp;gt;WEBSERV&amp;lt;/var&amp;gt; ports, and any [[Janus Sockets $functions|$Sock_ function]] can be issued in &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; commands on &amp;lt;var&amp;gt;SRVSOCK&amp;lt;/var&amp;gt; ports. In addition, a &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; command can issue the &amp;lt;var&amp;gt;[[$Sir_Login]]&amp;lt;/var&amp;gt; function as well as the &amp;lt;var&amp;gt;[[$Web_Password]]&amp;lt;/var&amp;gt; function on &amp;lt;var&amp;gt;WEBSERV&amp;lt;/var&amp;gt; threads. The &amp;lt;var&amp;gt;[[$Web_Hdr_Parm]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[$Web_Hdr_Parm_Lstr]]&amp;lt;/var&amp;gt; functions can retrieve the Authorization header parameters while running as part of a NEWSESCMD, but will otherwise return a null string.&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; specifies an &amp;lt;var&amp;gt;INCLUDE&amp;lt;/var&amp;gt; command, the included procedure is assumed to come from the first file or group specified in a &amp;lt;var&amp;gt;[[NEWSESOPEN (JANUS DEFINE parameter)|NEWSESOPEN]]&amp;lt;/var&amp;gt; clause.&lt;br /&gt;
&lt;br /&gt;
Examples of some valid &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; clauses:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;JANUS DEFINE MYWEB 80 WEBSERV 10 NEWSESCMD WEBLOGIN&lt;br /&gt;
&lt;br /&gt;
JANUS DEFINE TELNETSRV 23 SRVSOCK 10 -&lt;br /&gt;
NEWSESOPEN TELNETP                   -&lt;br /&gt;
NEWSESCMD &#039;UTABLE LQTBL 3000&#039; AND    -&lt;br /&gt;
&#039;INCLUDE TELNETLOGIN&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because of the role of &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; in enforcing user access security, most resources used during &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; processing are automatically cleaned up after the &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; processing is completed. This includes all files being closed and all user tables being cleared (though not resized). The one exception to this is that GTBL can be left intact after &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; processing, if the &amp;lt;var&amp;gt;[[NEWSESNOCLEARG (JANUS DEFINE parameter)|NEWSESNOCLEARG]]&amp;lt;/var&amp;gt; parameter is specified on the port definition. &lt;br /&gt;
&lt;br /&gt;
If a &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; command logs a user in using &amp;lt;var&amp;gt;$Sir_Login&amp;lt;/var&amp;gt;, the rest of the request runs under that userid. For web requests, it is possible that a &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; will log a user on, but that user will not be authorized to run the request URL based on &amp;lt;var&amp;gt;[[JANUS WEB ALLOW]]&amp;lt;/var&amp;gt; rules. In such a case, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[Janus Web Server]]&amp;lt;/var&amp;gt; will either send a &amp;quot;404 Unauthorized&amp;quot; status to the browser (which will result in a login pop-up window being presented to the end-user), or it will run the &amp;lt;var&amp;gt;[[JANUS WEB exception rules#unauth|UNAUTHORIZED]]&amp;lt;/var&amp;gt; exception handler, if one is present. &lt;br /&gt;
&lt;br /&gt;
If the &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; does not perform a &amp;lt;var&amp;gt;$Sir_Login&amp;lt;/var&amp;gt;, processing continues as it would without a &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt;. That is, on a &amp;lt;var&amp;gt;SRVSOCK&amp;lt;/var&amp;gt; port, the request will run under the &amp;lt;var&amp;gt;[[SOCKUSER (JANUS DEFINE parameter)|SOCKUSER]]&amp;lt;/var&amp;gt; userid, and on a &amp;lt;var&amp;gt;WEBSERV&amp;lt;/var&amp;gt; port, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Janus Web Server&amp;lt;/var&amp;gt; will attempt to log the user in based on the userid and password passed in the HTTP authorization header, if one is present. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; command processing can also close the connection with the client, either with a &amp;lt;var&amp;gt;[[$Sock_Close]]&amp;lt;/var&amp;gt; on a &amp;lt;var&amp;gt;SRVSOCK&amp;lt;/var&amp;gt; port or with a &amp;lt;var&amp;gt;[[$Web_Done]]&amp;lt;/var&amp;gt; on a &amp;lt;var&amp;gt;WEBSERV&amp;lt;/var&amp;gt; port. In such a case, no further processing occurs on the thread after the &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; commands complete. &lt;br /&gt;
&lt;br /&gt;
This parameter is valid for &amp;lt;var&amp;gt;[[JANUS DEFINE#type|SRVSOCK]]&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;[[JANUS DEFINE#type|WEBSERV]]&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;[[JANUS DEFINE#type|TNSERV]]&amp;lt;/var&amp;gt; port types. &lt;br /&gt;
&lt;br /&gt;
This parameter is &#039;&#039;&#039;not&#039;&#039;&#039; valid on an &amp;lt;var&amp;gt;[[JANUS DEFINE#type|FTPSERVER]]&amp;lt;/var&amp;gt; port definition. &lt;br /&gt;
&lt;br /&gt;
For &amp;lt;var&amp;gt;[[JANUS DEFINE#type|TNSERV]]&amp;lt;/var&amp;gt; ports, the &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; is only run for the initial &#039;&#039;&#039;connection&#039;&#039;&#039;. If a user logs off and logs back on in the same connection, the &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; will not be executed. Because of this, if a &amp;lt;var&amp;gt;NEWSESCMD&amp;lt;/var&amp;gt; does a &amp;lt;var&amp;gt;$Sir_Login&amp;lt;/var&amp;gt;, it might make sense for it to specify the &amp;lt;var&amp;gt;TRUST&amp;lt;/var&amp;gt; parameter on the &amp;lt;var&amp;gt;$Sir_Login&amp;lt;/var&amp;gt; to allow subsequent logins in the same connection to be trusted logins.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[List of Janus commands]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[JANUS DEFINE#parmlist|List of JANUS DEFINE parameters]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:JANUS DEFINE parameters|NEWSESCMD]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=File:Befirxdzhkjycwg1c4la.jpg&amp;diff=119677</id>
		<title>File:Befirxdzhkjycwg1c4la.jpg</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=File:Befirxdzhkjycwg1c4la.jpg&amp;diff=119677"/>
		<updated>2023-04-06T13:48:08Z</updated>

		<summary type="html">&lt;p&gt;Tom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=File:Gitbad.png&amp;diff=119676</id>
		<title>File:Gitbad.png</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=File:Gitbad.png&amp;diff=119676"/>
		<updated>2023-04-05T18:42:49Z</updated>

		<summary type="html">&lt;p&gt;Tom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=File:Soloette.jpg&amp;diff=119675</id>
		<title>File:Soloette.jpg</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=File:Soloette.jpg&amp;diff=119675"/>
		<updated>2023-04-05T17:01:31Z</updated>

		<summary type="html">&lt;p&gt;Tom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=LoadSystemFunctionInfo_(XmlDoc_subroutine)&amp;diff=119626</id>
		<title>LoadSystemFunctionInfo (XmlDoc subroutine)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=LoadSystemFunctionInfo_(XmlDoc_subroutine)&amp;diff=119626"/>
		<updated>2023-03-21T19:45:58Z</updated>

		<summary type="html">&lt;p&gt;Tom: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=LoadSystemFunctionInfo_(XmlDoc_subroutine)&amp;diff=119625</id>
		<title>LoadSystemFunctionInfo (XmlDoc subroutine)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=LoadSystemFunctionInfo_(XmlDoc_subroutine)&amp;diff=119625"/>
		<updated>2023-03-21T19:38:29Z</updated>

		<summary type="html">&lt;p&gt;Tom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:XmlDoc:LoadSystemMethodInfo subtitle}}&lt;br /&gt;
&amp;lt;var&amp;gt;LoadSystemMethodInfo&amp;lt;/var&amp;gt; loads an &amp;lt;var&amp;gt;XmlDoc&amp;lt;/var&amp;gt; with information about methods in classes selected by a &amp;quot;pattern&amp;quot; argument.  This method is primarily intended for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; products delivered by Rocket Software, and the schema of the document may change from release to release. Users of [[SoulEdit]] (V7.5 and later) can see this method in action via the INFO command which provides introspection into specified methods.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
{{Template:XmlDoc:LoadSystemFunctionInfo syntax}}&lt;br /&gt;
&lt;br /&gt;
===Syntax terms===&lt;br /&gt;
&amp;lt;table class=&amp;quot;syntaxTable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;doc&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;An expression that points to the &amp;lt;var&amp;gt;XmlDoc&amp;lt;/var&amp;gt; to contain the selected method information.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;pattern&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A string whose case is ignored and that can have any of the following forms:&lt;br /&gt;
&amp;lt;table class=&amp;quot;syntaxNested&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;methodPattern&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;This selects, from any system class, all methods that match the specified pattern.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;classPattern&amp;lt;var&amp;gt;:&amp;lt;/var&amp;gt;methodPattern&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;This selects, from any system class matching &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;classPattern&amp;lt;/var&amp;gt;, all methods that match &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;methodPattern&amp;lt;/var&amp;gt;. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;System:&amp;lt;/var&amp;gt;classPattern&amp;lt;var&amp;gt;:&amp;lt;/var&amp;gt;methodPattern&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;This is the same as &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;classPattern&amp;lt;var&amp;gt;:&amp;lt;/var&amp;gt;methodPattern&amp;lt;/var&amp;gt;. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;ShowBase&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A &amp;lt;var&amp;gt;[[Enumerations#Using_Boolean_enumerations|Boolean]]&amp;lt;/var&amp;gt; enumeration that specifies how to handle base and extension classes:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If &amp;lt;var&amp;gt;False&amp;lt;/var&amp;gt;, the default, then base classes are omitted from the output &amp;lt;var&amp;gt;XmlDoc&amp;lt;/var&amp;gt;, and the methods in extension classes include methods from their base classes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If &amp;lt;var&amp;gt;True&amp;lt;/var&amp;gt;, then base classes (which match the selection pattern) are included in the output &amp;lt;var&amp;gt;XmlDoc&amp;lt;/var&amp;gt;, and the members of base classes are not included in extension classes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
This [[Notation conventions for methods#Named parameters|name required]] argument was new in version 7.9 of the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Sirius Mods&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Usage notes==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;New&amp;lt;/var&amp;gt; method will only be displayed if either is true: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &#039;&#039;methodPattern&#039;&#039; is the string &amp;lt;code&amp;gt;New&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;New&amp;lt;/var&amp;gt; method has any arguments. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;LoadSystemMethodInfo&amp;lt;/var&amp;gt; will not display classes in the module LOCAL, if they are selected by a pattern (that is, &#039;&#039;pattern&#039;&#039; contains a wildcard character), or if there is no &#039;&#039;classPattern&#039;&#039; component.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
The following request displays the class data for the &amp;lt;var&amp;gt;[[AddAttribute (XmlNode function)|AddAttribute]]&amp;lt;/var&amp;gt; method:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;begin&lt;br /&gt;
   %d is object xmlDoc&lt;br /&gt;
   %d = new&lt;br /&gt;
   %d:loadSystemMethodInfo(&#039;AddAttribute&#039;)&lt;br /&gt;
   %d:print&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
The example result follows:&lt;br /&gt;
&amp;lt;p class=&amp;quot;output&amp;quot;&amp;gt;&amp;lt;classes selection=&amp;quot;AddAttribute&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;class name=&amp;quot;XmlNode&amp;quot; system=&amp;quot;yes&amp;quot; new=&amp;quot;no&amp;quot; discard=&amp;quot;no&amp;quot; docObject=&amp;quot;nod&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;methods module=&amp;quot;JSOPF&amp;quot; offset=&amp;quot;00002038&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;method name=&amp;quot;AddAttribute&amp;quot; type=&amp;quot;function&amp;quot; callable=&amp;quot;yes&amp;quot; requiredProdNum=&amp;quot;35&amp;quot; desc=&amp;quot;Add Attribute to Element node&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;result&amp;gt;&lt;br /&gt;
               &amp;lt;type name=&amp;quot;Object&amp;quot; class=&amp;quot;XmlNode&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/result&amp;gt;&lt;br /&gt;
            &amp;lt;arg docArg=&amp;quot;name&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;type name=&amp;quot;Unicode&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/arg&amp;gt;&lt;br /&gt;
            &amp;lt;arg docArg=&amp;quot;value&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;type name=&amp;quot;Unicode&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/arg&amp;gt;&lt;br /&gt;
            &amp;lt;arg optional=&amp;quot;yes&amp;quot; docArg=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;type name=&amp;quot;Unicode&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/arg&amp;gt;&lt;br /&gt;
         &amp;lt;/method&amp;gt;&lt;br /&gt;
      &amp;lt;/methods&amp;gt;&lt;br /&gt;
   &amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/classes&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Template:XmlDoc:LoadSystemMethodInfo footer}}&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=LoadSystemFunctionInfo_(XmlDoc_subroutine)&amp;diff=119624</id>
		<title>LoadSystemFunctionInfo (XmlDoc subroutine)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=LoadSystemFunctionInfo_(XmlDoc_subroutine)&amp;diff=119624"/>
		<updated>2023-03-21T19:35:16Z</updated>

		<summary type="html">&lt;p&gt;Tom: Copy/paste of System method Xmldoc for new systemFunction Xmldoc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:XmlDoc:LoadSystemMethodInfo subtitle}}&lt;br /&gt;
&amp;lt;var&amp;gt;LoadSystemMethodInfo&amp;lt;/var&amp;gt; loads an &amp;lt;var&amp;gt;XmlDoc&amp;lt;/var&amp;gt; with information about methods in classes selected by a &amp;quot;pattern&amp;quot; argument.  This method is primarily intended for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; products delivered by Rocket Software, and the schema of the document may change from release to release. Users of [[SoulEdit]] (V7.5 and later) can see this method in action via the INFO command which provides introspection into specified methods.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
{{Template:XmlDoc:LoadSystemMethodInfo syntax}}&lt;br /&gt;
&lt;br /&gt;
===Syntax terms===&lt;br /&gt;
&amp;lt;table class=&amp;quot;syntaxTable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;doc&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;An expression that points to the &amp;lt;var&amp;gt;XmlDoc&amp;lt;/var&amp;gt; to contain the selected method information.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;pattern&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A string whose case is ignored and that can have any of the following forms:&lt;br /&gt;
&amp;lt;table class=&amp;quot;syntaxNested&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;methodPattern&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;This selects, from any system class, all methods that match the specified pattern.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;classPattern&amp;lt;var&amp;gt;:&amp;lt;/var&amp;gt;methodPattern&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;This selects, from any system class matching &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;classPattern&amp;lt;/var&amp;gt;, all methods that match &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;methodPattern&amp;lt;/var&amp;gt;. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;System:&amp;lt;/var&amp;gt;classPattern&amp;lt;var&amp;gt;:&amp;lt;/var&amp;gt;methodPattern&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;This is the same as &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;classPattern&amp;lt;var&amp;gt;:&amp;lt;/var&amp;gt;methodPattern&amp;lt;/var&amp;gt;. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;ShowBase&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A &amp;lt;var&amp;gt;[[Enumerations#Using_Boolean_enumerations|Boolean]]&amp;lt;/var&amp;gt; enumeration that specifies how to handle base and extension classes:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If &amp;lt;var&amp;gt;False&amp;lt;/var&amp;gt;, the default, then base classes are omitted from the output &amp;lt;var&amp;gt;XmlDoc&amp;lt;/var&amp;gt;, and the methods in extension classes include methods from their base classes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If &amp;lt;var&amp;gt;True&amp;lt;/var&amp;gt;, then base classes (which match the selection pattern) are included in the output &amp;lt;var&amp;gt;XmlDoc&amp;lt;/var&amp;gt;, and the members of base classes are not included in extension classes. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
This [[Notation conventions for methods#Named parameters|name required]] argument was new in version 7.9 of the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Sirius Mods&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Usage notes==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;New&amp;lt;/var&amp;gt; method will only be displayed if either is true: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &#039;&#039;methodPattern&#039;&#039; is the string &amp;lt;code&amp;gt;New&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;New&amp;lt;/var&amp;gt; method has any arguments. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;LoadSystemMethodInfo&amp;lt;/var&amp;gt; will not display classes in the module LOCAL, if they are selected by a pattern (that is, &#039;&#039;pattern&#039;&#039; contains a wildcard character), or if there is no &#039;&#039;classPattern&#039;&#039; component.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
The following request displays the class data for the &amp;lt;var&amp;gt;[[AddAttribute (XmlNode function)|AddAttribute]]&amp;lt;/var&amp;gt; method:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;begin&lt;br /&gt;
   %d is object xmlDoc&lt;br /&gt;
   %d = new&lt;br /&gt;
   %d:loadSystemMethodInfo(&#039;AddAttribute&#039;)&lt;br /&gt;
   %d:print&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
The example result follows:&lt;br /&gt;
&amp;lt;p class=&amp;quot;output&amp;quot;&amp;gt;&amp;lt;classes selection=&amp;quot;AddAttribute&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;class name=&amp;quot;XmlNode&amp;quot; system=&amp;quot;yes&amp;quot; new=&amp;quot;no&amp;quot; discard=&amp;quot;no&amp;quot; docObject=&amp;quot;nod&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;methods module=&amp;quot;JSOPF&amp;quot; offset=&amp;quot;00002038&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;method name=&amp;quot;AddAttribute&amp;quot; type=&amp;quot;function&amp;quot; callable=&amp;quot;yes&amp;quot; requiredProdNum=&amp;quot;35&amp;quot; desc=&amp;quot;Add Attribute to Element node&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;result&amp;gt;&lt;br /&gt;
               &amp;lt;type name=&amp;quot;Object&amp;quot; class=&amp;quot;XmlNode&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/result&amp;gt;&lt;br /&gt;
            &amp;lt;arg docArg=&amp;quot;name&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;type name=&amp;quot;Unicode&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/arg&amp;gt;&lt;br /&gt;
            &amp;lt;arg docArg=&amp;quot;value&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;type name=&amp;quot;Unicode&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/arg&amp;gt;&lt;br /&gt;
            &amp;lt;arg optional=&amp;quot;yes&amp;quot; docArg=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;type name=&amp;quot;Unicode&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/arg&amp;gt;&lt;br /&gt;
         &amp;lt;/method&amp;gt;&lt;br /&gt;
      &amp;lt;/methods&amp;gt;&lt;br /&gt;
   &amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;/classes&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Template:XmlDoc:LoadSystemMethodInfo footer}}&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=List_of_XmlDoc_API_methods&amp;diff=119623</id>
		<title>List of XmlDoc API methods</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=List_of_XmlDoc_API_methods&amp;diff=119623"/>
		<updated>2023-03-21T19:33:50Z</updated>

		<summary type="html">&lt;p&gt;Tom: Make entry for $function XmlDoc  method&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- This page was automatically generated and will be automatically&lt;br /&gt;
     replaced, so any manual edits will be lost. You&#039;ve been warned. --&amp;gt;&lt;br /&gt;
{{Template:API list header|desc=XmlDoc API}}&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Method&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Class&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[AddAttribute (XmlNode function)|AddAttribute]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Add Attribute to Element node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[AddComment (XmlDoc/XmlNode function)|AddComment]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Add Comment to XmlDoc Root or to Element XmlNode&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[AddElement (XmlDoc/XmlNode function)|AddElement]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Add Element to XmlDoc Root or to Element XmlNode&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[AddNamespace (XmlNode subroutine)|AddNamespace]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Add namespace declaration to Element node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[AddPI (XmlDoc/XmlNode function)|AddPI]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Add Processing Instruction to XmlDoc Root or to Element XmlNode&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[AddSubtree (XmlDoc/XmlNode function)|AddSubtree]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Copy subtree to XmlDoc Root or to Element XmlNode&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[AddText (XmlNode function)|AddText]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Add Text child to Element node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[AddTopElement (XmlDoc function)|AddTopElement]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Add new top element to XmlDoc&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[AddToRecord (XmlDoc subroutine)|AddToRecord]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Add fields and/or fieldgroups to the current record&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[AdjacentText (XmlDoc property)|AdjacentText]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Are adjacent text nodes allowed?&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[AllowNull (XmlDoc property)|AllowNull]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Allow null characters in node values?&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[AllowXmlAttribute (XmlDoc property)|AllowXmlAttribute]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;May Attribute names begin with &amp;quot;xml&amp;quot;?&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[AllowXmlElement (XmlDoc property)|AllowXmlElement]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;May Element names begin with &amp;quot;xml&amp;quot;?&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[AppendValue (XmlNode subroutine)|AppendValue]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Append to value of node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Audit (XmlDoc/XmlNode subroutine)|Audit]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Display selected subtree on audit trail&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[ClientCertificate (XmlDoc function)|ClientCertificate]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Create XmlDoc with client certificate details&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Copy (XmlDoc function)|Copy]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Copy this XmlDoc&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Count (XmlNodelist function)|Count]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNodelist&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Number of nodes in this nodelist&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[DeepCopy (XmlDoc function)|DeepCopy]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Deep copy this XmlDoc&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[DeepCopy (XmlNode function)|DeepCopy]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Deep copy this node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[DeepDiscard (XmlNode subroutine)|DeepDiscard]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Do deep discard of an XmlNode object&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[DefaultURI (XmlDoc/XmlNode function)|DefaultURI]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Default URI in scope at selected node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[DeleteSelectionPrefix (XmlDoc subroutine)|DeleteSelectionPrefix]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Delete prefix&#039;s XPath-selection association&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[DeleteSubtree (XmlDoc/XmlNode subroutine)|DeleteSubtree]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Delete selected subtree&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[DeleteTopElement (XmlDoc subroutine)|DeleteTopElement]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Delete top element from XmlDoc&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Difference (XmlNodelist function)|Difference]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNodelist&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Difference between XmlNodelists&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Encoding (XmlDoc property)|Encoding]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Encoding of XML document&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Exists (XmlDoc/XmlNode function)|Exists]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Is XPath result non-empty?&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[InsertCommentBefore (XmlNode function)|InsertCommentBefore]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Insert a Comment before this node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[InsertElementBefore (XmlNode function)|InsertElementBefore]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Insert an Element before this node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[InsertPIBefore (XmlNode function)|InsertPIBefore]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Insert a processing instruction before this node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[InsertSubtreeBefore (XmlNode function)|InsertSubtreeBefore]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Insert copy of subtree before this node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[InsertTextBefore (XmlNode function)|InsertTextBefore]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Insert Text node before this node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[InvalidChar (XmlDoc property)|InvalidChar]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Allow invalid characters (obsolete)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[InvalidCharacterPosition (XmlDoc function)|InvalidCharacterPosition]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Detect invalid characters&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[IsSelectionPrefix (XmlDoc function)|IsSelectionPrefix]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Check if prefix has XPath-selection association&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[IsValidString (XmlDoc function)|IsValidString]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Valid XML Element/Attribute value? (obsolete)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Item (XmlNodelist function)|Item]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNodelist&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Retrieve an item from this nodelist&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Length (XmlDoc/XmlNode function)|Length]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Length of string-value of selected node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[LoadCommandInfo (XmlDoc subroutine)|LoadCommandInfo]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Load command info into this XmlDoc&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[LoadFromRecord (XmlDoc/XmlNode subroutine)|LoadFromRecord]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Load fields and fieldgroups from current record&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[LoadFromStringlist (XmlDoc/XmlNode function)|LoadFromStringlist]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Deserialize Stringlist into XmlDoc (obsolete)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[LoadMessageInfo (XmlDoc subroutine)|LoadMessageInfo]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Load message info into this XmlDoc&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[LoadMsgctl (XmlDoc subroutine)|LoadMsgctl]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Load MSGCTL commands to this XmlDoc&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[LoadParameterInfo (XmlDoc subroutine)|LoadParameterInfo]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Load parameter info into this XmlDoc&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[LoadSystemFunctionInfo (XmlDoc subroutine)|LoadSystemFunctionInfo]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Load info about system $functions into this XmlDoc&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[LoadSystemMethodInfo (XmlDoc subroutine)|LoadSystemMethodInfo]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Load info about system methods into this XmlDoc&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[LoadXml (XmlDoc/XmlNode function)|LoadXml]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Deserialize XML document or fragment into XmlDoc Root or into Element XmlNode&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[LocalName (XmlDoc/XmlNode function)|LocalName]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Name (without prefix) of selected node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Namespace (XmlDoc property)|Namespace]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;(Dis)allow or disable prefix handling&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[New (XmlDoc constructor)|New]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Create a new XmlDoc object&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[New (XmlNodelist constructor)|New]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNodelist&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Create a new XmlNodelist&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[NewFromRecord (XmlDoc function)|NewFromRecord]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Create a new XmlDoc from the current record&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Next (XmlNode function)|Next]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Get the next node after this node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[NoEmptyElement (XmlNode property)|NoEmptyElement]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Suppress/produce empty tag when serializing this Element, if childless&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Prefix (XmlDoc/XmlNode function)|Prefix]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Prefix part of name of selected node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[PrefixURI (XmlDoc/XmlNode function)|PrefixURI]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;URI of specified prefix in context of selected node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Previous (XmlNode function)|Previous]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Get node previous to this node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Print (XmlDoc/XmlNode subroutine)|Print]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Print selected subtree&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[QName (XmlDoc/XmlNode function)|QName]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Name (with prefix, if any) of selected node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[SelectCount (XmlDoc/XmlNode function)|SelectCount]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Number of selected nodes&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[SelectionNamespace (XmlDoc property)|SelectionNamespace]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Bind prefix to URI (or null) for XPath&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[SelectNodes (XmlDoc/XmlNode function)|SelectNodes]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Get list of selected nodes as XmlNodelist&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[SelectSingleNode (XmlDoc/XmlNode function)|SelectSingleNode]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Get selected node as XmlNode&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Serial (XmlDoc/XmlNode function)|Serial]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Serialize selected subtree as string&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Standalone (XmlDoc property)|Standalone]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Standalone specification in &amp;quot;XML declaration&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[ToXPathString (XmlDoc/XmlNode function)|ToXPathString]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XPath expression for selected node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[ToXPathStringlist (XmlDoc/XmlNode function)|ToXPathStringlist]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XPath expression (in Stringlist) for selected node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Trace (XmlDoc/XmlNode subroutine)|Trace]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Display selected subtree on Trace stream&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Type (XmlDoc/XmlNode function)|Type]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Type of selected node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[UnionSelected (XmlNodelist function)|UnionSelected]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNodelist&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Union of XmlNodelist and selected nodes&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[URI (XmlDoc/XmlNode function)|URI]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Namespace URI of name of selected node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Value (XmlDoc/XmlNode property)|Value]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;String-value of selected node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[ValueDefault (XmlDoc/XmlNode function)|ValueDefault]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;String-value of selected node (allow empty XPath)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Version (XmlDoc property)|Version]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Version number in &amp;quot;XML declaration&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[WebReceive (XmlDoc function)|WebReceive]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Deserialize Web request into this XmlDoc&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[WebSend (XmlDoc subroutine)|WebSend]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Serialize XmlDoc as Web response&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[Xml (XmlDoc function)|Xml]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Serialize XmlDoc as UTF-8 string&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[XmlDoc (XmlNode function)|XmlDoc]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Get the XmlDoc associated with this node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[XmlDoc (XmlNodelist function)|XmlDoc]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlNodelist&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Get the XmlDoc associated with this nodelist&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;[[XPathNodeID (XmlDoc/XmlNode function)|XPathNodeID]]&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XmlDoc/XmlNode&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;XPath expression (in Stringlist) for selected node&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==See also==&lt;br /&gt;
&amp;lt;table class=&amp;quot;list&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;ul style=&amp;quot;margin-top:0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[XmlDoc class]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[XmlNode class]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[XmlNodelist class]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;ul style=&amp;quot;margin-top:0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[List of XmlDoc methods]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[List of XmlNode methods]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[List of XmlNodelist methods]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;ul style=&amp;quot;margin-top:0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[XmlDoc methods syntax]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[XmlNode methods syntax]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[XmlNodelist methods syntax]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
[[Category:Lists of methods]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=SirAud_parameters&amp;diff=118473</id>
		<title>SirAud parameters</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=SirAud_parameters&amp;diff=118473"/>
		<updated>2022-02-24T21:38:44Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* NCP parameter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; has a set of parameters you can use to restrict the size of some&lt;br /&gt;
reports or otherwise configure the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; run.&lt;br /&gt;
These parameters must be provided in either of these ways:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;As a PARM on the EXEC card in MVS, for example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;//SIRAUD   EXEC PGM=SIRAUD,PARM=&#039;NSUBS=10 ALLPR&#039;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;As options on the M204CMS command in CMS, for example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;M204CMS SIRAUD ( NSUBS 10 ALLPR %&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under MVS, parameters are specified either by a parameter name alone or&lt;br /&gt;
by a parameter name followed by an equal sign (&amp;lt;tt&amp;gt;=&amp;lt;/tt&amp;gt;) followed by the parameter value.&lt;br /&gt;
Under CMS, parameters are specified by a parameter name followed&lt;br /&gt;
by a space and a percent sign (&amp;lt;tt&amp;gt;%&amp;lt;/tt&amp;gt;), or by a parameter name followed by a space and a parameter value.&lt;br /&gt;
&lt;br /&gt;
This page describes the parameter settings that are available for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt;.&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can change the default setting for some of the parameters; see [[#SirAud default customization|SirAud default customization]], below. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;allpr&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;ALLPR and NOPR==&lt;br /&gt;
These are two of the report selection parameters.&lt;br /&gt;
The report selection parameters determine which reports are produced.&lt;br /&gt;
They also direct all of the report output of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; to be written to the SYSPRINT output file, rather than&lt;br /&gt;
having each of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt;&#039;s reports written to a separate output file.&lt;br /&gt;
If any report selection parameter is specified, all of the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; report output is written to SYSPRINT, and only to there.&lt;br /&gt;
&lt;br /&gt;
The report selection parameters are &amp;lt;var&amp;gt;ALLPR&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;NOPR&amp;lt;/var&amp;gt;, and the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;FILERP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOFILERP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;PERFRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPERFRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;PROCRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPROCRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;SUBRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOSUBRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;UTBLRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;UTBLSM&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLSM&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Any of the above individual report parameters beginning with &amp;lt;code&amp;gt;NO&amp;lt;/code&amp;gt; is called the &amp;quot;negative&amp;quot; form of&lt;br /&gt;
the parameter, and it indicates that the given report should not be produced&lt;br /&gt;
The form &amp;lt;i&amp;gt;without&amp;lt;/i&amp;gt; &amp;lt;code&amp;gt;NO&amp;lt;/code&amp;gt; is called the &amp;quot;positive&amp;quot; form, and it indicates the given report should be produced.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;ALLPR&amp;lt;/var&amp;gt; is a shorthand for a list of all of the positive forms of the&lt;br /&gt;
individual report parameters.&lt;br /&gt;
&amp;lt;var&amp;gt;NOPR&amp;lt;/var&amp;gt; is a shorthand for a list of all of the negative forms of the&lt;br /&gt;
individual report parameters.&lt;br /&gt;
&lt;br /&gt;
The effect of the report selection parameters is cumulative, and the specification of any of them can override the effect of a preceding specification.&lt;br /&gt;
If the first report selection parameter specified is a positive individual&lt;br /&gt;
report parameter, an implicit &amp;lt;code&amp;gt;NOPR&amp;lt;/code&amp;gt; precedes that.&lt;br /&gt;
If the first report selection parameter specified is a negative individual&lt;br /&gt;
report parameter, an implicit &amp;lt;code&amp;gt;ALLPR&amp;lt;/code&amp;gt; precedes that.&lt;br /&gt;
&lt;br /&gt;
Thus, for example, the following produces all reports except PERFREPT and FILEREPT:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PARM=(NOPERFRP,NOFILERP)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following produces only the UTBLSUMM and SUBREPT reports:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PARM=(UTBLSM,SUBRP)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the following produces all reports except PROCREPT (the &amp;lt;code&amp;gt;UTBLRP&amp;lt;/code&amp;gt; in this example is superfluous):&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PARM=(NOPROCRP,UTBLRP)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may customize your &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; load module so that &amp;lt;var&amp;gt;ALLPR&amp;lt;/var&amp;gt; is the default; see&lt;br /&gt;
[[SirAud parameters#cszallp|ALLPR parameter customization]].&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;from&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;FROM parameter==&lt;br /&gt;
This parameter is used to restrict the analysis of the journal&lt;br /&gt;
to those journal blocks that contain records that&lt;br /&gt;
are at or after the indicated date and time.&lt;br /&gt;
If the time on the journal block&#039;s trailer is greater than or equal to&lt;br /&gt;
the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; specification, the records in that block are included in the&lt;br /&gt;
report analysis.&lt;br /&gt;
Consequently, some records that are earlier than the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; setting may be included.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; syntax is: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;FROM = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;time&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd time&amp;lt;/span&amp;gt;  &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; parameter options are:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;yyddd&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; century is such that the start of the time period is within 40 years of the start date of the journal.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis starts at the first journal record in the first journal block on or after the indicated day.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the 24-hour time in the format &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;]; &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 00.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis starts at the first journal record in the first journal block on or after the indicated time of the first day of the journal.&lt;br /&gt;
If the &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;time&amp;lt;/var&amp;gt; value is less than the time of the first journal block, the analysis starts at the first journal record in the first journal block on or after the indicated time of the day after the first day of the journal.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;yyddd time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; century is such that the start of the time period is within 40 years of the start date of the journal, and the 24-hour time in the format &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;] (where &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 00).&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis starts at the first journal record in the first journal block on or after the indicated time of the indicated day.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This format cannot be passed as a command line program parameter under CMS, although it may be used in a SYSIN file record (see [[SirAud#sysin|SYSIN]]). Under MVS, the format is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;...,PARM=&#039; ... FROM=&amp;lt;i&amp;gt;yyddd time&amp;lt;/i&amp;gt; ... &#039;&lt;br /&gt;
&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see the [[#toparm|TO parameter]], which can be used to specify the end of the date/time range for analysis.&lt;br /&gt;
&lt;br /&gt;
Regardless of any date range restriction specified by &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; or&lt;br /&gt;
&amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt;, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; examines the beginning part of the journal, through the following message:&lt;br /&gt;
&amp;lt;code&amp;gt;M204.0075: INITIALIZATION COMPLETED.  BUFFERS = n&amp;lt;/code&amp;gt;.&lt;br /&gt;
The histogram of journal record types will include totals from this&lt;br /&gt;
initialization section of the journal as well as from the date range&lt;br /&gt;
selected for analysis.&lt;br /&gt;
&lt;br /&gt;
A date range can be useful to provide a reference for interpreting&lt;br /&gt;
other measures of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; activity.&lt;br /&gt;
For example, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[SirTune]]&amp;lt;/var&amp;gt; can show ratios for running procedure A versus other procedures:&lt;br /&gt;
Assume that a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirTune&amp;lt;/var&amp;gt; report over some busy time period shows procedure A using 11% of the CPU in&lt;br /&gt;
that period, and then you change the procedure.&lt;br /&gt;
After the changes, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirTune&amp;lt;/var&amp;gt; on a new busy period might show procedure A CPU goes up to 12%.&lt;br /&gt;
One way to check the effectiveness of your changes is to use&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; [[SirAud report contents#PROCREPT|PROCREPT]] reports with date/time ranges to see if this increase in CPU correlates to an increased number of invocations between the two busy times.&lt;br /&gt;
&lt;br /&gt;
==FILERP and NOFILERP==&lt;br /&gt;
The &amp;lt;var&amp;gt;FILERP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOFILERP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;FILERP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOFILERP&amp;lt;/var&amp;gt;) the [[SirAud report contents#FILEREPT|FILEREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==MAXBLK parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;MAXBLK = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
This parameter is used to specify the number of journal blocks to process.&lt;br /&gt;
&lt;br /&gt;
==NAMEOFF parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NAMEOFF = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be used, under the direction of Technical Support,&lt;br /&gt;
to facilitate running &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; with newer releases of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt;,&lt;br /&gt;
compensating for changes in the journal format.&lt;br /&gt;
&lt;br /&gt;
==NCP parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NCP = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;1-255&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter sets the number of channel programs to use for the input journal.&lt;br /&gt;
A higher value can improve journal I/O performance. If this parameter not specified, the value specified in the JOURNAL DD statement is used, otherwise the default of 22 is used. Under CMS, this parameter is allowed but ignored, and the value is set to 1.&lt;br /&gt;
&lt;br /&gt;
==NFILES parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NFILES = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of files summarized in [[SirAud report contents#FILEREPT|FILEREPT]]&lt;br /&gt;
to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; files by total disk I/O.&lt;br /&gt;
&lt;br /&gt;
==NPROCS parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NPROCS = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of procedures summarized in&lt;br /&gt;
[[SirAud report contents#PROCREPT|PROCREPT]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; procedures by total CPU.&lt;br /&gt;
&lt;br /&gt;
==NSUBS parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NSUBS = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of subsystems summarized in&lt;br /&gt;
[[SirAud report contents#SUBREPT|SUBREPT]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; subsystems by total CPU.&lt;br /&gt;
&lt;br /&gt;
==NUTBLS parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NUTBLS = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of subsystems summarized in&lt;br /&gt;
[[SirAud report contents#UTBLREPT|UTBLREPT]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; subsystems by server size.&lt;br /&gt;
&lt;br /&gt;
==NUSUMM parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NUSUMM = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of subsystems summarized in&lt;br /&gt;
[[SirAud report contents#UTBLSUMM|UTBLSUMM]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; subsystems by server size.&lt;br /&gt;
&lt;br /&gt;
==PERFRP and NOPERFRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;PERFRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPERFRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;PERFRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOPERFRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#PERFREPT|PERFREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==PROCRP and NOPROCRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;PROCRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPROCRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;PROCRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOPROCRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#PROCREPT|PROCREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==SKIPBLK parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;SKIPBLK = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to specify a number of journal blocks to skip.&lt;br /&gt;
&lt;br /&gt;
==SUBRP and NOSUBRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;SUBRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOSUBRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;SUBRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOSUBRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#SUBREPT|SUBREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;toparm&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;TO parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;TO = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;time&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd time&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the analysis of the journal&lt;br /&gt;
to those journal blocks that contain records that are at the indicated date and time.&lt;br /&gt;
If the time on the journal block&#039;s header is less than or equal to the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; specification, the records in that block are included in the report analysis.&lt;br /&gt;
Consequently, some records that are later than the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; setting may be included.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; parameter options are:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;yyddd&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; century is such that the end of the time period is within 40 years of the start date of the journal.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis ends with the last journal record in the last journal block on or before the indicated day.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the 24-hour time in the &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;] format; &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 59.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis ends with the last journal record in the last journal block on or before the indicated time of the starting day of analysis.&lt;br /&gt;
If the &amp;lt;code&amp;gt;time&amp;lt;/code&amp;gt; value is less than the starting time of analysis, the analysis ends with the last journal record in the last journal block on or before the indicated time of the day after the starting day of analysis. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The starting date and time of analysis is specified by the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; parameter, if present, and otherwise is the date and time at the start of the journal.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;yyddd time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; century is such that the end of the time period is within 40 years of the start date of the journal, and the 24-hour time in the format &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;]; &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 59.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis ends with the last journal record in the last journal block on or before the indicated time of the indicated day.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This format cannot be passed as a command line program parameter under CMS, although it may be used in a SYSIN file record (see [[SirAud#sysin|SYSIN]]).&lt;br /&gt;
Under MVS, the format is: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;...,PARM=&#039; ... TO=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd time&amp;lt;/span&amp;gt; ... &#039;&lt;br /&gt;
&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see the [[#from|FROM parameter]], which can be used to specify the start of the date/time range for analysis.&lt;br /&gt;
The description there also provides an example of one benefit of date/time range selection with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==UTBLRANG parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;UTBLRANG = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to specify the number of standard deviations a server table&lt;br /&gt;
highwater mark for an individual procedure is allowed to vary from the&lt;br /&gt;
mean for the subsystem before the procedure is flagged for [[SirAud report contents#UTBLREPT|UTBLREPT]].&lt;br /&gt;
&lt;br /&gt;
The default is 2.&lt;br /&gt;
&lt;br /&gt;
==UTBLRP and NOUTBLRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;UTBLRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;UTBLRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOUTBLRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#UTBLREPT|UTBLREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other&lt;br /&gt;
report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==UTBLSM and NOUTBLSM parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;UTBLSM&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLSM&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;UTBLSM&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOUTBLSM&amp;lt;/var&amp;gt;) the [[SirAud report contents#UTBLSUMM|UTBLSUMM]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other&lt;br /&gt;
report selection parameters.&lt;br /&gt;
&lt;br /&gt;
You can change some of the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; defaults by applying zaps any time after you have installed the load module.&lt;br /&gt;
This page contains the customizations you can perform.&lt;br /&gt;
&lt;br /&gt;
==SirAud default customization==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;cszallp&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;ALLPR parameter customization===&lt;br /&gt;
Apply the following zap to make the &amp;lt;var&amp;gt;[[SirAud parameters#allpr|ALLPR]]&amp;lt;/var&amp;gt; parameter the default:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;NAME SIRAUD JCUST&lt;br /&gt;
VER 08 00&lt;br /&gt;
REP 08 80   ALLPR is default&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- .*!UNPUB Keep DEBUG info private:&lt;br /&gt;
.* NAME SIRAUD JCUST&lt;br /&gt;
.* VER 38 00&lt;br /&gt;
.* REP 38 80   Produce GETNEXT trace of journal location/time --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Template:SirAud topic list}}&lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=SirAud_parameters&amp;diff=118472</id>
		<title>SirAud parameters</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=SirAud_parameters&amp;diff=118472"/>
		<updated>2022-02-24T21:37:28Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* NCP parameter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; has a set of parameters you can use to restrict the size of some&lt;br /&gt;
reports or otherwise configure the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; run.&lt;br /&gt;
These parameters must be provided in either of these ways:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;As a PARM on the EXEC card in MVS, for example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;//SIRAUD   EXEC PGM=SIRAUD,PARM=&#039;NSUBS=10 ALLPR&#039;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;As options on the M204CMS command in CMS, for example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;M204CMS SIRAUD ( NSUBS 10 ALLPR %&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under MVS, parameters are specified either by a parameter name alone or&lt;br /&gt;
by a parameter name followed by an equal sign (&amp;lt;tt&amp;gt;=&amp;lt;/tt&amp;gt;) followed by the parameter value.&lt;br /&gt;
Under CMS, parameters are specified by a parameter name followed&lt;br /&gt;
by a space and a percent sign (&amp;lt;tt&amp;gt;%&amp;lt;/tt&amp;gt;), or by a parameter name followed by a space and a parameter value.&lt;br /&gt;
&lt;br /&gt;
This page describes the parameter settings that are available for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt;.&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can change the default setting for some of the parameters; see [[#SirAud default customization|SirAud default customization]], below. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;allpr&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;ALLPR and NOPR==&lt;br /&gt;
These are two of the report selection parameters.&lt;br /&gt;
The report selection parameters determine which reports are produced.&lt;br /&gt;
They also direct all of the report output of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; to be written to the SYSPRINT output file, rather than&lt;br /&gt;
having each of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt;&#039;s reports written to a separate output file.&lt;br /&gt;
If any report selection parameter is specified, all of the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; report output is written to SYSPRINT, and only to there.&lt;br /&gt;
&lt;br /&gt;
The report selection parameters are &amp;lt;var&amp;gt;ALLPR&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;NOPR&amp;lt;/var&amp;gt;, and the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;FILERP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOFILERP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;PERFRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPERFRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;PROCRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPROCRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;SUBRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOSUBRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;UTBLRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;UTBLSM&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLSM&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Any of the above individual report parameters beginning with &amp;lt;code&amp;gt;NO&amp;lt;/code&amp;gt; is called the &amp;quot;negative&amp;quot; form of&lt;br /&gt;
the parameter, and it indicates that the given report should not be produced&lt;br /&gt;
The form &amp;lt;i&amp;gt;without&amp;lt;/i&amp;gt; &amp;lt;code&amp;gt;NO&amp;lt;/code&amp;gt; is called the &amp;quot;positive&amp;quot; form, and it indicates the given report should be produced.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;ALLPR&amp;lt;/var&amp;gt; is a shorthand for a list of all of the positive forms of the&lt;br /&gt;
individual report parameters.&lt;br /&gt;
&amp;lt;var&amp;gt;NOPR&amp;lt;/var&amp;gt; is a shorthand for a list of all of the negative forms of the&lt;br /&gt;
individual report parameters.&lt;br /&gt;
&lt;br /&gt;
The effect of the report selection parameters is cumulative, and the specification of any of them can override the effect of a preceding specification.&lt;br /&gt;
If the first report selection parameter specified is a positive individual&lt;br /&gt;
report parameter, an implicit &amp;lt;code&amp;gt;NOPR&amp;lt;/code&amp;gt; precedes that.&lt;br /&gt;
If the first report selection parameter specified is a negative individual&lt;br /&gt;
report parameter, an implicit &amp;lt;code&amp;gt;ALLPR&amp;lt;/code&amp;gt; precedes that.&lt;br /&gt;
&lt;br /&gt;
Thus, for example, the following produces all reports except PERFREPT and FILEREPT:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PARM=(NOPERFRP,NOFILERP)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following produces only the UTBLSUMM and SUBREPT reports:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PARM=(UTBLSM,SUBRP)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the following produces all reports except PROCREPT (the &amp;lt;code&amp;gt;UTBLRP&amp;lt;/code&amp;gt; in this example is superfluous):&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PARM=(NOPROCRP,UTBLRP)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may customize your &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; load module so that &amp;lt;var&amp;gt;ALLPR&amp;lt;/var&amp;gt; is the default; see&lt;br /&gt;
[[SirAud parameters#cszallp|ALLPR parameter customization]].&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;from&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;FROM parameter==&lt;br /&gt;
This parameter is used to restrict the analysis of the journal&lt;br /&gt;
to those journal blocks that contain records that&lt;br /&gt;
are at or after the indicated date and time.&lt;br /&gt;
If the time on the journal block&#039;s trailer is greater than or equal to&lt;br /&gt;
the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; specification, the records in that block are included in the&lt;br /&gt;
report analysis.&lt;br /&gt;
Consequently, some records that are earlier than the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; setting may be included.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; syntax is: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;FROM = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;time&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd time&amp;lt;/span&amp;gt;  &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; parameter options are:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;yyddd&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; century is such that the start of the time period is within 40 years of the start date of the journal.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis starts at the first journal record in the first journal block on or after the indicated day.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the 24-hour time in the format &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;]; &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 00.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis starts at the first journal record in the first journal block on or after the indicated time of the first day of the journal.&lt;br /&gt;
If the &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;time&amp;lt;/var&amp;gt; value is less than the time of the first journal block, the analysis starts at the first journal record in the first journal block on or after the indicated time of the day after the first day of the journal.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;yyddd time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; century is such that the start of the time period is within 40 years of the start date of the journal, and the 24-hour time in the format &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;] (where &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 00).&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis starts at the first journal record in the first journal block on or after the indicated time of the indicated day.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This format cannot be passed as a command line program parameter under CMS, although it may be used in a SYSIN file record (see [[SirAud#sysin|SYSIN]]). Under MVS, the format is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;...,PARM=&#039; ... FROM=&amp;lt;i&amp;gt;yyddd time&amp;lt;/i&amp;gt; ... &#039;&lt;br /&gt;
&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see the [[#toparm|TO parameter]], which can be used to specify the end of the date/time range for analysis.&lt;br /&gt;
&lt;br /&gt;
Regardless of any date range restriction specified by &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; or&lt;br /&gt;
&amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt;, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; examines the beginning part of the journal, through the following message:&lt;br /&gt;
&amp;lt;code&amp;gt;M204.0075: INITIALIZATION COMPLETED.  BUFFERS = n&amp;lt;/code&amp;gt;.&lt;br /&gt;
The histogram of journal record types will include totals from this&lt;br /&gt;
initialization section of the journal as well as from the date range&lt;br /&gt;
selected for analysis.&lt;br /&gt;
&lt;br /&gt;
A date range can be useful to provide a reference for interpreting&lt;br /&gt;
other measures of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; activity.&lt;br /&gt;
For example, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[SirTune]]&amp;lt;/var&amp;gt; can show ratios for running procedure A versus other procedures:&lt;br /&gt;
Assume that a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirTune&amp;lt;/var&amp;gt; report over some busy time period shows procedure A using 11% of the CPU in&lt;br /&gt;
that period, and then you change the procedure.&lt;br /&gt;
After the changes, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirTune&amp;lt;/var&amp;gt; on a new busy period might show procedure A CPU goes up to 12%.&lt;br /&gt;
One way to check the effectiveness of your changes is to use&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; [[SirAud report contents#PROCREPT|PROCREPT]] reports with date/time ranges to see if this increase in CPU correlates to an increased number of invocations between the two busy times.&lt;br /&gt;
&lt;br /&gt;
==FILERP and NOFILERP==&lt;br /&gt;
The &amp;lt;var&amp;gt;FILERP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOFILERP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;FILERP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOFILERP&amp;lt;/var&amp;gt;) the [[SirAud report contents#FILEREPT|FILEREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==MAXBLK parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;MAXBLK = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
This parameter is used to specify the number of journal blocks to process.&lt;br /&gt;
&lt;br /&gt;
==NAMEOFF parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NAMEOFF = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be used, under the direction of Technical Support,&lt;br /&gt;
to facilitate running &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; with newer releases of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt;,&lt;br /&gt;
compensating for changes in the journal format.&lt;br /&gt;
&lt;br /&gt;
==NCP parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NCP = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;1-255&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter sets the number of channel programs to use for the input journal.&lt;br /&gt;
A higher value can improve journal I/O performance. If this parameter not specified, the value specified in the JOURNAL DD statement is used, otherwise the default of 22 is used. Under CMS, this parameter is allowed, but ignored.&lt;br /&gt;
&lt;br /&gt;
==NFILES parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NFILES = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of files summarized in [[SirAud report contents#FILEREPT|FILEREPT]]&lt;br /&gt;
to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; files by total disk I/O.&lt;br /&gt;
&lt;br /&gt;
==NPROCS parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NPROCS = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of procedures summarized in&lt;br /&gt;
[[SirAud report contents#PROCREPT|PROCREPT]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; procedures by total CPU.&lt;br /&gt;
&lt;br /&gt;
==NSUBS parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NSUBS = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of subsystems summarized in&lt;br /&gt;
[[SirAud report contents#SUBREPT|SUBREPT]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; subsystems by total CPU.&lt;br /&gt;
&lt;br /&gt;
==NUTBLS parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NUTBLS = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of subsystems summarized in&lt;br /&gt;
[[SirAud report contents#UTBLREPT|UTBLREPT]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; subsystems by server size.&lt;br /&gt;
&lt;br /&gt;
==NUSUMM parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NUSUMM = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of subsystems summarized in&lt;br /&gt;
[[SirAud report contents#UTBLSUMM|UTBLSUMM]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; subsystems by server size.&lt;br /&gt;
&lt;br /&gt;
==PERFRP and NOPERFRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;PERFRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPERFRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;PERFRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOPERFRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#PERFREPT|PERFREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==PROCRP and NOPROCRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;PROCRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPROCRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;PROCRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOPROCRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#PROCREPT|PROCREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==SKIPBLK parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;SKIPBLK = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to specify a number of journal blocks to skip.&lt;br /&gt;
&lt;br /&gt;
==SUBRP and NOSUBRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;SUBRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOSUBRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;SUBRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOSUBRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#SUBREPT|SUBREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;toparm&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;TO parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;TO = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;time&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd time&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the analysis of the journal&lt;br /&gt;
to those journal blocks that contain records that are at the indicated date and time.&lt;br /&gt;
If the time on the journal block&#039;s header is less than or equal to the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; specification, the records in that block are included in the report analysis.&lt;br /&gt;
Consequently, some records that are later than the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; setting may be included.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; parameter options are:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;yyddd&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; century is such that the end of the time period is within 40 years of the start date of the journal.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis ends with the last journal record in the last journal block on or before the indicated day.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the 24-hour time in the &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;] format; &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 59.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis ends with the last journal record in the last journal block on or before the indicated time of the starting day of analysis.&lt;br /&gt;
If the &amp;lt;code&amp;gt;time&amp;lt;/code&amp;gt; value is less than the starting time of analysis, the analysis ends with the last journal record in the last journal block on or before the indicated time of the day after the starting day of analysis. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The starting date and time of analysis is specified by the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; parameter, if present, and otherwise is the date and time at the start of the journal.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;yyddd time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; century is such that the end of the time period is within 40 years of the start date of the journal, and the 24-hour time in the format &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;]; &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 59.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis ends with the last journal record in the last journal block on or before the indicated time of the indicated day.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This format cannot be passed as a command line program parameter under CMS, although it may be used in a SYSIN file record (see [[SirAud#sysin|SYSIN]]).&lt;br /&gt;
Under MVS, the format is: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;...,PARM=&#039; ... TO=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd time&amp;lt;/span&amp;gt; ... &#039;&lt;br /&gt;
&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see the [[#from|FROM parameter]], which can be used to specify the start of the date/time range for analysis.&lt;br /&gt;
The description there also provides an example of one benefit of date/time range selection with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==UTBLRANG parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;UTBLRANG = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to specify the number of standard deviations a server table&lt;br /&gt;
highwater mark for an individual procedure is allowed to vary from the&lt;br /&gt;
mean for the subsystem before the procedure is flagged for [[SirAud report contents#UTBLREPT|UTBLREPT]].&lt;br /&gt;
&lt;br /&gt;
The default is 2.&lt;br /&gt;
&lt;br /&gt;
==UTBLRP and NOUTBLRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;UTBLRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;UTBLRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOUTBLRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#UTBLREPT|UTBLREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other&lt;br /&gt;
report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==UTBLSM and NOUTBLSM parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;UTBLSM&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLSM&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;UTBLSM&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOUTBLSM&amp;lt;/var&amp;gt;) the [[SirAud report contents#UTBLSUMM|UTBLSUMM]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other&lt;br /&gt;
report selection parameters.&lt;br /&gt;
&lt;br /&gt;
You can change some of the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; defaults by applying zaps any time after you have installed the load module.&lt;br /&gt;
This page contains the customizations you can perform.&lt;br /&gt;
&lt;br /&gt;
==SirAud default customization==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;cszallp&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;ALLPR parameter customization===&lt;br /&gt;
Apply the following zap to make the &amp;lt;var&amp;gt;[[SirAud parameters#allpr|ALLPR]]&amp;lt;/var&amp;gt; parameter the default:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;NAME SIRAUD JCUST&lt;br /&gt;
VER 08 00&lt;br /&gt;
REP 08 80   ALLPR is default&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- .*!UNPUB Keep DEBUG info private:&lt;br /&gt;
.* NAME SIRAUD JCUST&lt;br /&gt;
.* VER 38 00&lt;br /&gt;
.* REP 38 80   Produce GETNEXT trace of journal location/time --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Template:SirAud topic list}}&lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=AUD039_NCP_value_must_be_from_1-255&amp;diff=118465</id>
		<title>AUD039 NCP value must be from 1-255</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=AUD039_NCP_value_must_be_from_1-255&amp;diff=118465"/>
		<updated>2022-02-24T19:35:37Z</updated>

		<summary type="html">&lt;p&gt;Tom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An invalid NCP value was specified in the EXEC statement parameters.  If no value is specified in the PARM= parameter, the value specified in the JOURNAL DD statement is used, otherwise a default of 22 is used. A higher value can improve journal I/O performance.&lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=AUD038_(message_text)&amp;diff=118464</id>
		<title>AUD038 (message text)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=AUD038_(message_text)&amp;diff=118464"/>
		<updated>2022-02-24T18:28:11Z</updated>

		<summary type="html">&lt;p&gt;Tom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This informational message displays the date, time, and message text from a Model 204 journal entry indicating a journal stream switch occurred during the run. &lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=SirAud_parameters&amp;diff=118463</id>
		<title>SirAud parameters</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=SirAud_parameters&amp;diff=118463"/>
		<updated>2022-02-24T16:01:38Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* NCP parameter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; has a set of parameters you can use to restrict the size of some&lt;br /&gt;
reports or otherwise configure the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; run.&lt;br /&gt;
These parameters must be provided in either of these ways:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;As a PARM on the EXEC card in MVS, for example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;//SIRAUD   EXEC PGM=SIRAUD,PARM=&#039;NSUBS=10 ALLPR&#039;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;As options on the M204CMS command in CMS, for example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;M204CMS SIRAUD ( NSUBS 10 ALLPR %&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under MVS, parameters are specified either by a parameter name alone or&lt;br /&gt;
by a parameter name followed by an equal sign (&amp;lt;tt&amp;gt;=&amp;lt;/tt&amp;gt;) followed by the parameter value.&lt;br /&gt;
Under CMS, parameters are specified by a parameter name followed&lt;br /&gt;
by a space and a percent sign (&amp;lt;tt&amp;gt;%&amp;lt;/tt&amp;gt;), or by a parameter name followed by a space and a parameter value.&lt;br /&gt;
&lt;br /&gt;
This page describes the parameter settings that are available for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt;.&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can change the default setting for some of the parameters; see [[#SirAud default customization|SirAud default customization]], below. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;allpr&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;ALLPR and NOPR==&lt;br /&gt;
These are two of the report selection parameters.&lt;br /&gt;
The report selection parameters determine which reports are produced.&lt;br /&gt;
They also direct all of the report output of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; to be written to the SYSPRINT output file, rather than&lt;br /&gt;
having each of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt;&#039;s reports written to a separate output file.&lt;br /&gt;
If any report selection parameter is specified, all of the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; report output is written to SYSPRINT, and only to there.&lt;br /&gt;
&lt;br /&gt;
The report selection parameters are &amp;lt;var&amp;gt;ALLPR&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;NOPR&amp;lt;/var&amp;gt;, and the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;FILERP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOFILERP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;PERFRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPERFRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;PROCRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPROCRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;SUBRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOSUBRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;UTBLRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;UTBLSM&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLSM&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Any of the above individual report parameters beginning with &amp;lt;code&amp;gt;NO&amp;lt;/code&amp;gt; is called the &amp;quot;negative&amp;quot; form of&lt;br /&gt;
the parameter, and it indicates that the given report should not be produced&lt;br /&gt;
The form &amp;lt;i&amp;gt;without&amp;lt;/i&amp;gt; &amp;lt;code&amp;gt;NO&amp;lt;/code&amp;gt; is called the &amp;quot;positive&amp;quot; form, and it indicates the given report should be produced.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;ALLPR&amp;lt;/var&amp;gt; is a shorthand for a list of all of the positive forms of the&lt;br /&gt;
individual report parameters.&lt;br /&gt;
&amp;lt;var&amp;gt;NOPR&amp;lt;/var&amp;gt; is a shorthand for a list of all of the negative forms of the&lt;br /&gt;
individual report parameters.&lt;br /&gt;
&lt;br /&gt;
The effect of the report selection parameters is cumulative, and the specification of any of them can override the effect of a preceding specification.&lt;br /&gt;
If the first report selection parameter specified is a positive individual&lt;br /&gt;
report parameter, an implicit &amp;lt;code&amp;gt;NOPR&amp;lt;/code&amp;gt; precedes that.&lt;br /&gt;
If the first report selection parameter specified is a negative individual&lt;br /&gt;
report parameter, an implicit &amp;lt;code&amp;gt;ALLPR&amp;lt;/code&amp;gt; precedes that.&lt;br /&gt;
&lt;br /&gt;
Thus, for example, the following produces all reports except PERFREPT and FILEREPT:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PARM=(NOPERFRP,NOFILERP)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following produces only the UTBLSUMM and SUBREPT reports:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PARM=(UTBLSM,SUBRP)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the following produces all reports except PROCREPT (the &amp;lt;code&amp;gt;UTBLRP&amp;lt;/code&amp;gt; in this example is superfluous):&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PARM=(NOPROCRP,UTBLRP)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may customize your &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; load module so that &amp;lt;var&amp;gt;ALLPR&amp;lt;/var&amp;gt; is the default; see&lt;br /&gt;
[[SirAud parameters#cszallp|ALLPR parameter customization]].&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;from&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;FROM parameter==&lt;br /&gt;
This parameter is used to restrict the analysis of the journal&lt;br /&gt;
to those journal blocks that contain records that&lt;br /&gt;
are at or after the indicated date and time.&lt;br /&gt;
If the time on the journal block&#039;s trailer is greater than or equal to&lt;br /&gt;
the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; specification, the records in that block are included in the&lt;br /&gt;
report analysis.&lt;br /&gt;
Consequently, some records that are earlier than the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; setting may be included.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; syntax is: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;FROM = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;time&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd time&amp;lt;/span&amp;gt;  &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; parameter options are:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;yyddd&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; century is such that the start of the time period is within 40 years of the start date of the journal.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis starts at the first journal record in the first journal block on or after the indicated day.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the 24-hour time in the format &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;]; &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 00.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis starts at the first journal record in the first journal block on or after the indicated time of the first day of the journal.&lt;br /&gt;
If the &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;time&amp;lt;/var&amp;gt; value is less than the time of the first journal block, the analysis starts at the first journal record in the first journal block on or after the indicated time of the day after the first day of the journal.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;yyddd time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; century is such that the start of the time period is within 40 years of the start date of the journal, and the 24-hour time in the format &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;] (where &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 00).&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis starts at the first journal record in the first journal block on or after the indicated time of the indicated day.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This format cannot be passed as a command line program parameter under CMS, although it may be used in a SYSIN file record (see [[SirAud#sysin|SYSIN]]). Under MVS, the format is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;...,PARM=&#039; ... FROM=&amp;lt;i&amp;gt;yyddd time&amp;lt;/i&amp;gt; ... &#039;&lt;br /&gt;
&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see the [[#toparm|TO parameter]], which can be used to specify the end of the date/time range for analysis.&lt;br /&gt;
&lt;br /&gt;
Regardless of any date range restriction specified by &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; or&lt;br /&gt;
&amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt;, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; examines the beginning part of the journal, through the following message:&lt;br /&gt;
&amp;lt;code&amp;gt;M204.0075: INITIALIZATION COMPLETED.  BUFFERS = n&amp;lt;/code&amp;gt;.&lt;br /&gt;
The histogram of journal record types will include totals from this&lt;br /&gt;
initialization section of the journal as well as from the date range&lt;br /&gt;
selected for analysis.&lt;br /&gt;
&lt;br /&gt;
A date range can be useful to provide a reference for interpreting&lt;br /&gt;
other measures of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; activity.&lt;br /&gt;
For example, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[SirTune]]&amp;lt;/var&amp;gt; can show ratios for running procedure A versus other procedures:&lt;br /&gt;
Assume that a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirTune&amp;lt;/var&amp;gt; report over some busy time period shows procedure A using 11% of the CPU in&lt;br /&gt;
that period, and then you change the procedure.&lt;br /&gt;
After the changes, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirTune&amp;lt;/var&amp;gt; on a new busy period might show procedure A CPU goes up to 12%.&lt;br /&gt;
One way to check the effectiveness of your changes is to use&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; [[SirAud report contents#PROCREPT|PROCREPT]] reports with date/time ranges to see if this increase in CPU correlates to an increased number of invocations between the two busy times.&lt;br /&gt;
&lt;br /&gt;
==FILERP and NOFILERP==&lt;br /&gt;
The &amp;lt;var&amp;gt;FILERP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOFILERP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;FILERP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOFILERP&amp;lt;/var&amp;gt;) the [[SirAud report contents#FILEREPT|FILEREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==MAXBLK parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;MAXBLK = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
This parameter is used to specify the number of journal blocks to process.&lt;br /&gt;
&lt;br /&gt;
==NAMEOFF parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NAMEOFF = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be used, under the direction of Technical Support,&lt;br /&gt;
to facilitate running &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; with newer releases of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt;,&lt;br /&gt;
compensating for changes in the journal format.&lt;br /&gt;
&lt;br /&gt;
==NCP parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NCP = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;1-255&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter sets the number of channel programs to use for the input journal.&lt;br /&gt;
A higher value can improve I/O performance. If this parameter not specified, the value specified in the JOURNAL DD statement is used, otherwise the default of 22 is used. Under CMS, this parameter is allowed, but ignored.&lt;br /&gt;
&lt;br /&gt;
==NFILES parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NFILES = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of files summarized in [[SirAud report contents#FILEREPT|FILEREPT]]&lt;br /&gt;
to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; files by total disk I/O.&lt;br /&gt;
&lt;br /&gt;
==NPROCS parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NPROCS = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of procedures summarized in&lt;br /&gt;
[[SirAud report contents#PROCREPT|PROCREPT]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; procedures by total CPU.&lt;br /&gt;
&lt;br /&gt;
==NSUBS parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NSUBS = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of subsystems summarized in&lt;br /&gt;
[[SirAud report contents#SUBREPT|SUBREPT]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; subsystems by total CPU.&lt;br /&gt;
&lt;br /&gt;
==NUTBLS parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NUTBLS = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of subsystems summarized in&lt;br /&gt;
[[SirAud report contents#UTBLREPT|UTBLREPT]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; subsystems by server size.&lt;br /&gt;
&lt;br /&gt;
==NUSUMM parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NUSUMM = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of subsystems summarized in&lt;br /&gt;
[[SirAud report contents#UTBLSUMM|UTBLSUMM]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; subsystems by server size.&lt;br /&gt;
&lt;br /&gt;
==PERFRP and NOPERFRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;PERFRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPERFRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;PERFRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOPERFRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#PERFREPT|PERFREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==PROCRP and NOPROCRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;PROCRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPROCRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;PROCRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOPROCRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#PROCREPT|PROCREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==SKIPBLK parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;SKIPBLK = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to specify a number of journal blocks to skip.&lt;br /&gt;
&lt;br /&gt;
==SUBRP and NOSUBRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;SUBRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOSUBRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;SUBRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOSUBRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#SUBREPT|SUBREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;toparm&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;TO parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;TO = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;time&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd time&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the analysis of the journal&lt;br /&gt;
to those journal blocks that contain records that are at the indicated date and time.&lt;br /&gt;
If the time on the journal block&#039;s header is less than or equal to the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; specification, the records in that block are included in the report analysis.&lt;br /&gt;
Consequently, some records that are later than the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; setting may be included.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; parameter options are:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;yyddd&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; century is such that the end of the time period is within 40 years of the start date of the journal.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis ends with the last journal record in the last journal block on or before the indicated day.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the 24-hour time in the &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;] format; &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 59.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis ends with the last journal record in the last journal block on or before the indicated time of the starting day of analysis.&lt;br /&gt;
If the &amp;lt;code&amp;gt;time&amp;lt;/code&amp;gt; value is less than the starting time of analysis, the analysis ends with the last journal record in the last journal block on or before the indicated time of the day after the starting day of analysis. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The starting date and time of analysis is specified by the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; parameter, if present, and otherwise is the date and time at the start of the journal.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;yyddd time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; century is such that the end of the time period is within 40 years of the start date of the journal, and the 24-hour time in the format &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;]; &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 59.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis ends with the last journal record in the last journal block on or before the indicated time of the indicated day.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This format cannot be passed as a command line program parameter under CMS, although it may be used in a SYSIN file record (see [[SirAud#sysin|SYSIN]]).&lt;br /&gt;
Under MVS, the format is: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;...,PARM=&#039; ... TO=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd time&amp;lt;/span&amp;gt; ... &#039;&lt;br /&gt;
&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see the [[#from|FROM parameter]], which can be used to specify the start of the date/time range for analysis.&lt;br /&gt;
The description there also provides an example of one benefit of date/time range selection with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==UTBLRANG parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;UTBLRANG = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to specify the number of standard deviations a server table&lt;br /&gt;
highwater mark for an individual procedure is allowed to vary from the&lt;br /&gt;
mean for the subsystem before the procedure is flagged for [[SirAud report contents#UTBLREPT|UTBLREPT]].&lt;br /&gt;
&lt;br /&gt;
The default is 2.&lt;br /&gt;
&lt;br /&gt;
==UTBLRP and NOUTBLRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;UTBLRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;UTBLRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOUTBLRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#UTBLREPT|UTBLREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other&lt;br /&gt;
report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==UTBLSM and NOUTBLSM parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;UTBLSM&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLSM&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;UTBLSM&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOUTBLSM&amp;lt;/var&amp;gt;) the [[SirAud report contents#UTBLSUMM|UTBLSUMM]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other&lt;br /&gt;
report selection parameters.&lt;br /&gt;
&lt;br /&gt;
You can change some of the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; defaults by applying zaps any time after you have installed the load module.&lt;br /&gt;
This page contains the customizations you can perform.&lt;br /&gt;
&lt;br /&gt;
==SirAud default customization==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;cszallp&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;ALLPR parameter customization===&lt;br /&gt;
Apply the following zap to make the &amp;lt;var&amp;gt;[[SirAud parameters#allpr|ALLPR]]&amp;lt;/var&amp;gt; parameter the default:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;NAME SIRAUD JCUST&lt;br /&gt;
VER 08 00&lt;br /&gt;
REP 08 80   ALLPR is default&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- .*!UNPUB Keep DEBUG info private:&lt;br /&gt;
.* NAME SIRAUD JCUST&lt;br /&gt;
.* VER 38 00&lt;br /&gt;
.* REP 38 80   Produce GETNEXT trace of journal location/time --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Template:SirAud topic list}}&lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=SirAud_parameters&amp;diff=118462</id>
		<title>SirAud parameters</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=SirAud_parameters&amp;diff=118462"/>
		<updated>2022-02-24T15:59:40Z</updated>

		<summary type="html">&lt;p&gt;Tom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; has a set of parameters you can use to restrict the size of some&lt;br /&gt;
reports or otherwise configure the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; run.&lt;br /&gt;
These parameters must be provided in either of these ways:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;As a PARM on the EXEC card in MVS, for example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;//SIRAUD   EXEC PGM=SIRAUD,PARM=&#039;NSUBS=10 ALLPR&#039;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;As options on the M204CMS command in CMS, for example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;M204CMS SIRAUD ( NSUBS 10 ALLPR %&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under MVS, parameters are specified either by a parameter name alone or&lt;br /&gt;
by a parameter name followed by an equal sign (&amp;lt;tt&amp;gt;=&amp;lt;/tt&amp;gt;) followed by the parameter value.&lt;br /&gt;
Under CMS, parameters are specified by a parameter name followed&lt;br /&gt;
by a space and a percent sign (&amp;lt;tt&amp;gt;%&amp;lt;/tt&amp;gt;), or by a parameter name followed by a space and a parameter value.&lt;br /&gt;
&lt;br /&gt;
This page describes the parameter settings that are available for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt;.&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can change the default setting for some of the parameters; see [[#SirAud default customization|SirAud default customization]], below. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;allpr&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;ALLPR and NOPR==&lt;br /&gt;
These are two of the report selection parameters.&lt;br /&gt;
The report selection parameters determine which reports are produced.&lt;br /&gt;
They also direct all of the report output of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; to be written to the SYSPRINT output file, rather than&lt;br /&gt;
having each of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt;&#039;s reports written to a separate output file.&lt;br /&gt;
If any report selection parameter is specified, all of the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; report output is written to SYSPRINT, and only to there.&lt;br /&gt;
&lt;br /&gt;
The report selection parameters are &amp;lt;var&amp;gt;ALLPR&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;NOPR&amp;lt;/var&amp;gt;, and the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;FILERP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOFILERP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;PERFRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPERFRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;PROCRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPROCRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;SUBRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOSUBRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;UTBLRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLRP&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;UTBLSM&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLSM&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Any of the above individual report parameters beginning with &amp;lt;code&amp;gt;NO&amp;lt;/code&amp;gt; is called the &amp;quot;negative&amp;quot; form of&lt;br /&gt;
the parameter, and it indicates that the given report should not be produced&lt;br /&gt;
The form &amp;lt;i&amp;gt;without&amp;lt;/i&amp;gt; &amp;lt;code&amp;gt;NO&amp;lt;/code&amp;gt; is called the &amp;quot;positive&amp;quot; form, and it indicates the given report should be produced.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;ALLPR&amp;lt;/var&amp;gt; is a shorthand for a list of all of the positive forms of the&lt;br /&gt;
individual report parameters.&lt;br /&gt;
&amp;lt;var&amp;gt;NOPR&amp;lt;/var&amp;gt; is a shorthand for a list of all of the negative forms of the&lt;br /&gt;
individual report parameters.&lt;br /&gt;
&lt;br /&gt;
The effect of the report selection parameters is cumulative, and the specification of any of them can override the effect of a preceding specification.&lt;br /&gt;
If the first report selection parameter specified is a positive individual&lt;br /&gt;
report parameter, an implicit &amp;lt;code&amp;gt;NOPR&amp;lt;/code&amp;gt; precedes that.&lt;br /&gt;
If the first report selection parameter specified is a negative individual&lt;br /&gt;
report parameter, an implicit &amp;lt;code&amp;gt;ALLPR&amp;lt;/code&amp;gt; precedes that.&lt;br /&gt;
&lt;br /&gt;
Thus, for example, the following produces all reports except PERFREPT and FILEREPT:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PARM=(NOPERFRP,NOFILERP)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following produces only the UTBLSUMM and SUBREPT reports:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PARM=(UTBLSM,SUBRP)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the following produces all reports except PROCREPT (the &amp;lt;code&amp;gt;UTBLRP&amp;lt;/code&amp;gt; in this example is superfluous):&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PARM=(NOPROCRP,UTBLRP)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may customize your &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; load module so that &amp;lt;var&amp;gt;ALLPR&amp;lt;/var&amp;gt; is the default; see&lt;br /&gt;
[[SirAud parameters#cszallp|ALLPR parameter customization]].&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;from&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;FROM parameter==&lt;br /&gt;
This parameter is used to restrict the analysis of the journal&lt;br /&gt;
to those journal blocks that contain records that&lt;br /&gt;
are at or after the indicated date and time.&lt;br /&gt;
If the time on the journal block&#039;s trailer is greater than or equal to&lt;br /&gt;
the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; specification, the records in that block are included in the&lt;br /&gt;
report analysis.&lt;br /&gt;
Consequently, some records that are earlier than the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; setting may be included.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; syntax is: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;FROM = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;time&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd time&amp;lt;/span&amp;gt;  &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; parameter options are:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;yyddd&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; century is such that the start of the time period is within 40 years of the start date of the journal.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis starts at the first journal record in the first journal block on or after the indicated day.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the 24-hour time in the format &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;]; &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 00.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis starts at the first journal record in the first journal block on or after the indicated time of the first day of the journal.&lt;br /&gt;
If the &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;time&amp;lt;/var&amp;gt; value is less than the time of the first journal block, the analysis starts at the first journal record in the first journal block on or after the indicated time of the day after the first day of the journal.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;yyddd time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; century is such that the start of the time period is within 40 years of the start date of the journal, and the 24-hour time in the format &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;] (where &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 00).&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis starts at the first journal record in the first journal block on or after the indicated time of the indicated day.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This format cannot be passed as a command line program parameter under CMS, although it may be used in a SYSIN file record (see [[SirAud#sysin|SYSIN]]). Under MVS, the format is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;...,PARM=&#039; ... FROM=&amp;lt;i&amp;gt;yyddd time&amp;lt;/i&amp;gt; ... &#039;&lt;br /&gt;
&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see the [[#toparm|TO parameter]], which can be used to specify the end of the date/time range for analysis.&lt;br /&gt;
&lt;br /&gt;
Regardless of any date range restriction specified by &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; or&lt;br /&gt;
&amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt;, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; examines the beginning part of the journal, through the following message:&lt;br /&gt;
&amp;lt;code&amp;gt;M204.0075: INITIALIZATION COMPLETED.  BUFFERS = n&amp;lt;/code&amp;gt;.&lt;br /&gt;
The histogram of journal record types will include totals from this&lt;br /&gt;
initialization section of the journal as well as from the date range&lt;br /&gt;
selected for analysis.&lt;br /&gt;
&lt;br /&gt;
A date range can be useful to provide a reference for interpreting&lt;br /&gt;
other measures of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; activity.&lt;br /&gt;
For example, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[SirTune]]&amp;lt;/var&amp;gt; can show ratios for running procedure A versus other procedures:&lt;br /&gt;
Assume that a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirTune&amp;lt;/var&amp;gt; report over some busy time period shows procedure A using 11% of the CPU in&lt;br /&gt;
that period, and then you change the procedure.&lt;br /&gt;
After the changes, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirTune&amp;lt;/var&amp;gt; on a new busy period might show procedure A CPU goes up to 12%.&lt;br /&gt;
One way to check the effectiveness of your changes is to use&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; [[SirAud report contents#PROCREPT|PROCREPT]] reports with date/time ranges to see if this increase in CPU correlates to an increased number of invocations between the two busy times.&lt;br /&gt;
&lt;br /&gt;
==FILERP and NOFILERP==&lt;br /&gt;
The &amp;lt;var&amp;gt;FILERP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOFILERP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;FILERP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOFILERP&amp;lt;/var&amp;gt;) the [[SirAud report contents#FILEREPT|FILEREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==MAXBLK parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;MAXBLK = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
This parameter is used to specify the number of journal blocks to process.&lt;br /&gt;
&lt;br /&gt;
==NAMEOFF parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NAMEOFF = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be used, under the direction of Technical Support,&lt;br /&gt;
to facilitate running &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; with newer releases of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt;,&lt;br /&gt;
compensating for changes in the journal format.&lt;br /&gt;
&lt;br /&gt;
==NCP parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NCP = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;1-255&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter sets the number of channel programs to use for the input journal.&lt;br /&gt;
A higher value can improve I/O performance. If this parameter not specified, the value specified in the JOURNAL DD statement is used, otherwise the default of 22 is used.&lt;br /&gt;
&lt;br /&gt;
==NFILES parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NFILES = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of files summarized in [[SirAud report contents#FILEREPT|FILEREPT]]&lt;br /&gt;
to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; files by total disk I/O.&lt;br /&gt;
&lt;br /&gt;
==NPROCS parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NPROCS = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of procedures summarized in&lt;br /&gt;
[[SirAud report contents#PROCREPT|PROCREPT]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; procedures by total CPU.&lt;br /&gt;
&lt;br /&gt;
==NSUBS parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NSUBS = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of subsystems summarized in&lt;br /&gt;
[[SirAud report contents#SUBREPT|SUBREPT]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; subsystems by total CPU.&lt;br /&gt;
&lt;br /&gt;
==NUTBLS parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NUTBLS = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of subsystems summarized in&lt;br /&gt;
[[SirAud report contents#UTBLREPT|UTBLREPT]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; subsystems by server size.&lt;br /&gt;
&lt;br /&gt;
==NUSUMM parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NUSUMM = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the number of subsystems summarized in&lt;br /&gt;
[[SirAud report contents#UTBLSUMM|UTBLSUMM]] to the top &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/var&amp;gt; subsystems by server size.&lt;br /&gt;
&lt;br /&gt;
==PERFRP and NOPERFRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;PERFRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPERFRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;PERFRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOPERFRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#PERFREPT|PERFREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==PROCRP and NOPROCRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;PROCRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOPROCRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;PROCRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOPROCRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#PROCREPT|PROCREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==SKIPBLK parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;SKIPBLK = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to specify a number of journal blocks to skip.&lt;br /&gt;
&lt;br /&gt;
==SUBRP and NOSUBRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;SUBRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOSUBRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;SUBRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOSUBRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#SUBREPT|SUBREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;toparm&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;TO parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;TO = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;time&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd time&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to restrict the analysis of the journal&lt;br /&gt;
to those journal blocks that contain records that are at the indicated date and time.&lt;br /&gt;
If the time on the journal block&#039;s header is less than or equal to the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; specification, the records in that block are included in the report analysis.&lt;br /&gt;
Consequently, some records that are later than the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; setting may be included.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; parameter options are:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;yyddd&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; century is such that the end of the time period is within 40 years of the start date of the journal.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis ends with the last journal record in the last journal block on or before the indicated day.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the 24-hour time in the &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;] format; &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 59.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis ends with the last journal record in the last journal block on or before the indicated time of the starting day of analysis.&lt;br /&gt;
If the &amp;lt;code&amp;gt;time&amp;lt;/code&amp;gt; value is less than the starting time of analysis, the analysis ends with the last journal record in the last journal block on or before the indicated time of the day after the starting day of analysis. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The starting date and time of analysis is specified by the &amp;lt;var&amp;gt;FROM&amp;lt;/var&amp;gt; parameter, if present, and otherwise is the date and time at the start of the journal.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;yyddd time&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Indicates the date, in Julian format, where the &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; century is such that the end of the time period is within 40 years of the start date of the journal, and the 24-hour time in the format &amp;lt;i&amp;gt;hh&amp;lt;/i&amp;gt;:&amp;lt;i&amp;gt;mm&amp;lt;/i&amp;gt;[:&amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt;]; &amp;lt;i&amp;gt;ss&amp;lt;/i&amp;gt; defaults to 59.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The analysis ends with the last journal record in the last journal block on or before the indicated time of the indicated day.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; This format cannot be passed as a command line program parameter under CMS, although it may be used in a SYSIN file record (see [[SirAud#sysin|SYSIN]]).&lt;br /&gt;
Under MVS, the format is: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;...,PARM=&#039; ... TO=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;yyddd time&amp;lt;/span&amp;gt; ... &#039;&lt;br /&gt;
&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see the [[#from|FROM parameter]], which can be used to specify the start of the date/time range for analysis.&lt;br /&gt;
The description there also provides an example of one benefit of date/time range selection with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==UTBLRANG parameter==&lt;br /&gt;
Syntax: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;UTBLRANG = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;n&amp;lt;/span&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This parameter is used to specify the number of standard deviations a server table&lt;br /&gt;
highwater mark for an individual procedure is allowed to vary from the&lt;br /&gt;
mean for the subsystem before the procedure is flagged for [[SirAud report contents#UTBLREPT|UTBLREPT]].&lt;br /&gt;
&lt;br /&gt;
The default is 2.&lt;br /&gt;
&lt;br /&gt;
==UTBLRP and NOUTBLRP parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;UTBLRP&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLRP&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;UTBLRP&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOUTBLRP&amp;lt;/var&amp;gt;) the [[SirAud report contents#UTBLREPT|UTBLREPT]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other&lt;br /&gt;
report selection parameters.&lt;br /&gt;
&lt;br /&gt;
==UTBLSM and NOUTBLSM parameters==&lt;br /&gt;
The &amp;lt;var&amp;gt;UTBLSM&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;NOUTBLSM&amp;lt;/var&amp;gt; parameters have two effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Forcing all report output to the SYSPRINT file&lt;br /&gt;
&amp;lt;li&amp;gt;Producing (&amp;lt;var&amp;gt;UTBLSM&amp;lt;/var&amp;gt;) or suppressing (&amp;lt;var&amp;gt;NOUTBLSM&amp;lt;/var&amp;gt;) the [[SirAud report contents#UTBLSUMM|UTBLSUMM]] report.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#allpr|ALLPR and NOPR]] for a discussion of these and the other&lt;br /&gt;
report selection parameters.&lt;br /&gt;
&lt;br /&gt;
You can change some of the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; defaults by applying zaps any time after you have installed the load module.&lt;br /&gt;
This page contains the customizations you can perform.&lt;br /&gt;
&lt;br /&gt;
==SirAud default customization==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;cszallp&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;ALLPR parameter customization===&lt;br /&gt;
Apply the following zap to make the &amp;lt;var&amp;gt;[[SirAud parameters#allpr|ALLPR]]&amp;lt;/var&amp;gt; parameter the default:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;NAME SIRAUD JCUST&lt;br /&gt;
VER 08 00&lt;br /&gt;
REP 08 80   ALLPR is default&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!-- .*!UNPUB Keep DEBUG info private:&lt;br /&gt;
.* NAME SIRAUD JCUST&lt;br /&gt;
.* VER 38 00&lt;br /&gt;
.* REP 38 80   Produce GETNEXT trace of journal location/time --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Template:SirAud topic list}}&lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=AUD039_NCP_value_must_be_from_1-255&amp;diff=118461</id>
		<title>AUD039 NCP value must be from 1-255</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=AUD039_NCP_value_must_be_from_1-255&amp;diff=118461"/>
		<updated>2022-02-24T15:34:58Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;An invalid NCP value was specified in the EXEC statement parameters. A higher value can improve I/O performance on the input JOURNAL. If no value is specified in the PARM= par...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An invalid NCP value was specified in the EXEC statement parameters. A higher value can improve I/O performance on the input JOURNAL. If no value is specified in the PARM= parameter, the value specified in the JOURNAL DD statement is used, otherwise a default of 22 is used.&lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=AUD038_(message_text)&amp;diff=118460</id>
		<title>AUD038 (message text)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=AUD038_(message_text)&amp;diff=118460"/>
		<updated>2022-02-24T15:13:52Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;This informational message displays the message text from a Model 204 journal entry indicating a journal stream switch occurred during the run.   Category:SirAud messages&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This informational message displays the message text from a Model 204 journal entry indicating a journal stream switch occurred during the run. &lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=AUD037_Using_header_to_determine_version_%3D_(version)_jobname_%3D_(jobname)_JESID_%3D_(jesid)_SMFid_%3D_(smfid)&amp;diff=118459</id>
		<title>AUD037 Using header to determine version = (version) jobname = (jobname) JESID = (jesid) SMFid = (smfid)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=AUD037_Using_header_to_determine_version_%3D_(version)_jobname_%3D_(jobname)_JESID_%3D_(jesid)_SMFid_%3D_(smfid)&amp;diff=118459"/>
		<updated>2022-02-24T15:11:27Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;This informational message displays the Model 204 version and operating system information  from the initialization record in the journal being processed.  Category:SirAud m...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This informational message displays the Model 204 version and operating system information  from the initialization record in the journal being processed.&lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=AUD036_Assuming_Version_%3D_(version)&amp;diff=118458</id>
		<title>AUD036 Assuming Version = (version)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=AUD036_Assuming_Version_%3D_(version)&amp;diff=118458"/>
		<updated>2022-02-24T15:04:43Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;This informational message indicates that SirAud could not determine the release Model 204 from the initialization record in the journal and assumes it is generated by the ver...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This informational message indicates that SirAud could not determine the release Model 204 from the initialization record in the journal and assumes it is generated by the version shown in the message.&lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=AUD035_(date/time)_(error_text)&amp;diff=118457</id>
		<title>AUD035 (date/time) (error text)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=AUD035_(date/time)_(error_text)&amp;diff=118457"/>
		<updated>2022-02-24T14:59:12Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;This informational message shows the Model 204 error text written to the journal after a snap was taken. This message usually follows an AUD034 message.  Category:SirAud mes...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This informational message shows the Model 204 error text written to the journal after a snap was taken. This message usually follows an AUD034 message.&lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=AUD034_(date/time)_SNAPID_%3D_1_was_begun_for_user_(user_number)&amp;diff=118456</id>
		<title>AUD034 (date/time) SNAPID = 1 was begun for user (user number)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=AUD034_(date/time)_SNAPID_%3D_1_was_begun_for_user_(user_number)&amp;diff=118456"/>
		<updated>2022-02-24T14:44:43Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;This informational message indicates that a Model 204 snap was taken for the specified user during the run being analyzed by SirAud.  Category:SirAud messages&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This informational message indicates that a Model 204 snap was taken for the specified user during the run being analyzed by SirAud.&lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=AUD033_(date/time)_Termination_record_with_return_code_(return_code)&amp;diff=118455</id>
		<title>AUD033 (date/time) Termination record with return code (return code)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=AUD033_(date/time)_Termination_record_with_return_code_(return_code)&amp;diff=118455"/>
		<updated>2022-02-24T14:41:46Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;This is an information messages that shows the Model 204 completion code at the end of the run being analyzed.  Category:SirAud messages&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an information messages that shows the Model 204 completion code at the end of the run being analyzed.&lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=AUD032_JOURNAL_contains_(types)_records&amp;diff=118454</id>
		<title>AUD032 JOURNAL contains (types) records</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=AUD032_JOURNAL_contains_(types)_records&amp;diff=118454"/>
		<updated>2022-02-24T14:38:52Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;This indicates that the CCAJLOG or CCAJRNL input file contains either recovery records, statistics and message records, or both types of records.This is an informational messa...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This indicates that the CCAJLOG or CCAJRNL input file contains either recovery records, statistics and message records, or both types of records.This is an informational message.&lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=AUD031_(date/time)_Initialization_record_for_(m204_version)_on_system_(system_ID)&amp;diff=118453</id>
		<title>AUD031 (date/time) Initialization record for (m204 version) on system (system ID)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=AUD031_(date/time)_Initialization_record_for_(m204_version)_on_system_(system_ID)&amp;diff=118453"/>
		<updated>2022-02-24T14:26:48Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;This informational message displays the contents of the CCAJRNL/CCAJLOG initialization record.  Category:SirAud messages&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This informational message displays the contents of the CCAJRNL/CCAJLOG initialization record.&lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=AUD030_Merged_journal_produced_by_MERGEJ_from_input_journal(s)&amp;diff=118452</id>
		<title>AUD030 Merged journal produced by MERGEJ from input journal(s)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=AUD030_Merged_journal_produced_by_MERGEJ_from_input_journal(s)&amp;diff=118452"/>
		<updated>2022-02-24T14:14:40Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;This indicates that &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; detected an input journal created by the MERGEJ utility. This is an informational message.  Category:SirAud messages&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This indicates that &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; detected an input journal created by the MERGEJ utility. This is an informational message.&lt;br /&gt;
&lt;br /&gt;
[[Category:SirAud messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=RockZap&amp;diff=118446</id>
		<title>RockZap</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=RockZap&amp;diff=118446"/>
		<updated>2022-02-18T20:07:21Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* UPPER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is a load module maintenance facility, similar to z/OS IMASPZAP&lt;br /&gt;
or the CMS ZAP command. Prior to version 7.5 of Model 204, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; was named &amp;lt;code&amp;gt;SirZap&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; modifies load modules (or for CMS, both&lt;br /&gt;
load modules and text libraries) based on&lt;br /&gt;
information from control statements supplied by the user.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is not&lt;br /&gt;
a plug compatible replacement for the IBM ZAP utilities, but it provides&lt;br /&gt;
functional and performance enhancements for load module maintenance.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is distributed as part of a software maintenance agreement&lt;br /&gt;
between Rocket Software Inc. and its customers.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is provided for&lt;br /&gt;
the purpose of applying maintenance to Rocket Model 204 products, but&lt;br /&gt;
you need not limit use of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; to those products.&lt;br /&gt;
&lt;br /&gt;
===Versions===&lt;br /&gt;
This wiki page&lt;br /&gt;
assumes that a site is running &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6 or later.&lt;br /&gt;
Any documented feature or facility that requires a later version&lt;br /&gt;
of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; will be clearly marked to indicate this.&lt;br /&gt;
If a feature or parameter is not&lt;br /&gt;
indicated as requiring any specific version of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;, it can&lt;br /&gt;
be assumed that it is available in all versions covered by this&lt;br /&gt;
document; that is, versions 1.6 and later of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Messages===&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; messages are documented in [[:Category:RockZap messages]].&lt;br /&gt;
&lt;br /&gt;
===Downloading===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Using your [[Rocket M204 user ID]] and password, log in to the [https://model204.rocketsoftware.com/maint/objlist Model 204 object file download page].&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Click the &amp;lt;b&amp;gt;Download object file&amp;lt;/b&amp;gt; link to the right of the RockZap object file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==RockZap features==&lt;br /&gt;
RockZap provides the following features:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; can save significant amounts of elapsed time and CPU for long&lt;br /&gt;
ZAP input streams.&lt;br /&gt;
This is because &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; applies all ZAPs in the input&lt;br /&gt;
stream before writing a module back to disk.&lt;br /&gt;
(IMASPZAP and CMS ZAP both&lt;br /&gt;
write parts of the load module back to disk each time a new &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt;&lt;br /&gt;
statement is encountered, reducing performance significantly.)&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; detects and reports ZAPs that are already applied.&lt;br /&gt;
Using&lt;br /&gt;
IMASPZAP or CMS ZAP, the user must inspect long CSECT dumps produced by&lt;br /&gt;
the ZAP utility in order to determine if the ZAP is already applied, or&lt;br /&gt;
simply in error.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; allows the module name on all &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements to be overridden using the &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; option.&lt;br /&gt;
This provides the ability to have the same set of &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt;s and &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt;s applied to different load modules without making global changes to the &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements.  &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; can &amp;quot;back out&amp;quot; or remove ZAPs without requiring&lt;br /&gt;
modification to the ZAP control statements.&lt;br /&gt;
By using the BACKOUT&lt;br /&gt;
option, ZAPs can be removed from the load module and replaced by the&lt;br /&gt;
original Verify data.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; limits error reporting to the specific statements in error, and it&lt;br /&gt;
reports only the information necessary to diagnose and correct the&lt;br /&gt;
error.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; only writes modified load modules.&lt;br /&gt;
If the ZAPs are already&lt;br /&gt;
completely applied, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not write the load module back to disk.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; enforces stricter rules on ZAP input statements.&lt;br /&gt;
Verify statements are required for all replaced bytes.&lt;br /&gt;
This ensures that the&lt;br /&gt;
load module contents are known before they are modified, and that a ZAP&lt;br /&gt;
can be removed or &amp;quot;backed out&amp;quot; if necessary.&lt;br /&gt;
You can override this feature,&lt;br /&gt;
however, using the &amp;lt;var&amp;gt;[[#* !NOVERIFY|* !NOVERIFY]]&amp;lt;/var&amp;gt; statement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; 1.7 and later support z/OS datasets with the LARGE attribute.&amp;lt;/li&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Differences between RockZap and IMASPZAP==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; requires that every byte in the load module that is replaced&lt;br /&gt;
is also verified, unless the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; only modifies direct access load libraries.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not&lt;br /&gt;
modify PDSEs or any other types of direct access data sets.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following SPZAP statements are not supported but are ignored&lt;br /&gt;
when encountered in the input stream: SETSSI, IDRDATA, and CHECKSUM.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following IMASPZAP statments are not supported and will cause&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; to terminate when they are encountered:&lt;br /&gt;
CONSOLE, ABSDUMP, ABSDUMPT, and RECORD.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Differences between RockZap and CMS ZAP==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; requires that every byte in the load module that is replaced&lt;br /&gt;
is also verified, unless the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not support CMS LOADLIBs.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following ZAP statements are not supported but are ignored&lt;br /&gt;
when encountered in the input stream: COMMENT and LOG.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CMS installation==&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is distributed as a single load module in VMFPLC2 format.&lt;br /&gt;
A set of object decks is also included in case linkedit is required.&lt;br /&gt;
(This might be necessary for some older CMS versions).&lt;br /&gt;
 &lt;br /&gt;
[[#downloading|Obtain]] and [[Web help download object files#How should the RockZap object file be linked?|link]] the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; object file.&lt;br /&gt;
 &lt;br /&gt;
The &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; load module is linked &amp;lt;code&amp;gt;AMODE=31&amp;lt;/code&amp;gt;.&lt;br /&gt;
If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; must be relinked&lt;br /&gt;
on your system, use the following commands:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;LOAD ROCKZAP (RESET ROCKZAP RMODE 24 AMODE 31&lt;br /&gt;
GENMOD ROCKZAP (FROM APPL&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can omit the &amp;lt;var&amp;gt;RMODE&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;AMODE&amp;lt;/var&amp;gt; parameters if you are running in a non-XA environment.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==IBM z/OS installation== &lt;br /&gt;
[[#downloading|Obtain]] and [[Web help download object files#How should the RockZap object file be linked?|link]] the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; object file.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;ROCKZAP&amp;lt;/code&amp;gt; can be copied to SYS1.LINKLIB or SYS1.LPALIB, and it is reentrant.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div id=&amp;quot;options&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==RockZap options==&lt;br /&gt;
z/OS users supply &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; options in the &amp;lt;code&amp;gt;PARM&amp;lt;/code&amp;gt; parameter of the EXEC job control statement.&lt;br /&gt;
&lt;br /&gt;
For example, to force uppercase output and to&lt;br /&gt;
backout ZAPs, use the following EXEC statement:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ROCKZAP EXEC PGM=ROCKZAP,PARM=&#039;UPPER,BACKOUT&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
CMS users specify options following a left parenthesis on the &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt;&lt;br /&gt;
command line.&lt;br /&gt;
&lt;br /&gt;
For example, to force uppercase output and to backout the&lt;br /&gt;
ZAPs in the file &amp;lt;code&amp;gt;LOCAL ZAP A1&amp;lt;/code&amp;gt;, specify the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;ROCKZAP LOCAL ( BACKOUT UPPER&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BACKOUT===&lt;br /&gt;
The &amp;lt;var&amp;gt;BACKOUT&amp;lt;/var&amp;gt; option removes a ZAP without requiring any modification to&lt;br /&gt;
the ZAP input statements.&lt;br /&gt;
&amp;lt;var&amp;gt;BACKOUT&amp;lt;/var&amp;gt; reverses the effect of a ZAP by&lt;br /&gt;
replacing the original &amp;lt;code&amp;gt;Verify&amp;lt;/code&amp;gt; data in the module.&lt;br /&gt;
&lt;br /&gt;
If the ZAPs were applied with IMASPZAP, CMS ZAP, or with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; using the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; might not be able to perform a backout because all the original &amp;lt;code&amp;gt;Verify&amp;lt;/code&amp;gt; data might not be present.&lt;br /&gt;
&lt;br /&gt;
===EXTRACT filetype===&lt;br /&gt;
The &amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; option lets you extract individual object files from&lt;br /&gt;
a CMS text library.&lt;br /&gt;
&amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; can only be used when the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is also&lt;br /&gt;
specified.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; requires a parameter that specifies the file type&lt;br /&gt;
of the object files it creates. One object file is created for each&lt;br /&gt;
member of the text library. The text library member name is used as the CMS file name.&lt;br /&gt;
&lt;br /&gt;
===MODULE===&lt;br /&gt;
The &amp;lt;var&amp;gt;MODULE=&amp;lt;i&amp;gt;modname&amp;lt;/i&amp;gt;&amp;lt;/var&amp;gt; option allows the module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement to be overridden with a single load-module name. This means that you can use the same &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt; jobstream to apply the same zaps to different load modules in the designated load library (SYSLIB) without making changes to any of the &amp;lt;var&amp;gt;[[#NAME|NAME]]&amp;lt;/var&amp;gt; control statements.  &lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;PARM=&#039;MODULE=ONLINE&#039;&amp;lt;/code&amp;gt; applies the zaps to the module named &amp;lt;code&amp;gt;ONLINE&amp;lt;/code&amp;gt; in the designated load library, regardless of the load-module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.  Then, using the same job stream, &amp;lt;code&amp;gt;PARM=&#039;MODULE=ONLINTST&#039;&amp;lt;/code&amp;gt; applies the same zaps to the module named &amp;lt;code&amp;gt;ONLINTST&amp;lt;/code&amp;gt;, again, regardless of the load-module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you are applying zaps to a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; load module, you &amp;lt;i&amp;gt;must&amp;lt;/i&amp;gt; specify a value for &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; option was introduced in version 1.6 of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===REPORT=== &lt;br /&gt;
Under the &amp;lt;var&amp;gt;REPORT&amp;lt;/var&amp;gt; option, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; runs normally but does not update any load modules. This is useful if you have a production load module you do not want to modify, but you do want to know whether or not a particular set of ZAPs are applied.&lt;br /&gt;
&lt;br /&gt;
===TXTLIB txtlib=== &lt;br /&gt;
The &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is valid under CMS only.&lt;br /&gt;
&amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; specifies that the&lt;br /&gt;
ZAPs should be applied to a CMS text library instead of a load module.&lt;br /&gt;
 &lt;br /&gt;
You must provide the name of the text library following the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt;&lt;br /&gt;
parameter.&lt;br /&gt;
The first parameter of the name statement (the module name)&lt;br /&gt;
is ignored when using the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option.&lt;br /&gt;
Only the CSECT name is used for text libraries.&lt;br /&gt;
No load modules are inspected or modified when the&lt;br /&gt;
&amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is specified.&lt;br /&gt;
&lt;br /&gt;
===UPPER=== &lt;br /&gt;
The &amp;lt;var&amp;gt;UPPER&amp;lt;/var&amp;gt; option forces all &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; output to upper case.&lt;br /&gt;
&lt;br /&gt;
===MISSING=== &lt;br /&gt;
The &amp;lt;var&amp;gt;MISSING&amp;lt;/var&amp;gt; option suppresses errors resulting from a NAME statement that references a CSECT not present in the load module.&lt;br /&gt;
&amp;lt;var&amp;gt;MISSING&amp;lt;/var&amp;gt; is the default.&lt;br /&gt;
&lt;br /&gt;
===NOMISSING=== &lt;br /&gt;
The &amp;lt;var&amp;gt;NOMISSING&amp;lt;/var&amp;gt; option flags errors resulting from a NAME statement that references a CSECT not present in the load module. A missing CSECT results in a return code of 4.&lt;br /&gt;
&lt;br /&gt;
==RockZap control statements== &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; control statements appear in columns 1 to 72 in fixed length,&lt;br /&gt;
80 byte records.&lt;br /&gt;
Statements that begin with an asterisk are treated as&lt;br /&gt;
comments and are ignored, except for the two special inline parameter statements&lt;br /&gt;
&amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt;.&lt;br /&gt;
Control statements can begin in any column,&lt;br /&gt;
but line continuation is not allowed.&lt;br /&gt;
&lt;br /&gt;
===VER===&lt;br /&gt;
The &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement identifies a range of bytes to be matched with the&lt;br /&gt;
load module contents.&lt;br /&gt;
&amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statements must follow a &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
A &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement must be present for each range of bytes that will be&lt;br /&gt;
replaced in the load module.&lt;br /&gt;
This is to ensure that the ZAP can be backed out later if necessary.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;VER &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset verify-values comments&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal displacement from the start of the CSECT specified in the previous &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement, or from the start of the load module if no CSECT was specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;verify-values&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pairs of hexadecimal characters optionally separated by commas. The values are the expected contents of the load module at the specified offset. Uppercase or lowercase hexadecimal data are acceptable.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;comments&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Any characters after the first blank after the last &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;verify-values&amp;lt;/var&amp;gt; character are ignored by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The following are all valid &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statements:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;VER 00 010203,040506   &amp;lt;i&amp;gt;Verify bytes at offset 0.&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
VER 01ca 47f0,c0e9&lt;br /&gt;
 &lt;br /&gt;
VER 23EC D20310004000,90ECD000,07FC&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===REP=== &lt;br /&gt;
The &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement identifies a range of bytes to replace the current&lt;br /&gt;
contents of a load module.&lt;br /&gt;
The &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement must be preceded by &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt;&lt;br /&gt;
statements that cover the entire range of bytes that will be replaced.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;REP &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset replace-value comments&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal displacement from the start of the CSECT in the previous &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;replace-value&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pairs of hexadecimal characters optionally separated by commas. The values will replace the contents of the load module at the specified offset. Uppercase or lowercase hexadecimal data are acceptable.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;comments&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Any characters after the first blank after the last &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;replace-value&amp;lt;/var&amp;gt; character are ignored by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The following are all valid &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statements:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;REP 00 FFFFFF,FFFFFF   &amp;lt;i&amp;gt;Replace bytes at offset 0.&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
REP 01ca 47f0,c0e8&lt;br /&gt;
 &lt;br /&gt;
REP 23EC D203101C4000,90ECD008,07FE&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NAME===&lt;br /&gt;
The &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement identifies a load module, and optionally a CSECT, that defines the context for the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statements that follow.&lt;br /&gt;
&amp;lt;var&amp;gt;NAMEX&amp;lt;/var&amp;gt; is a synonym for &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; that allows compatibility with the Fujitsu&lt;br /&gt;
OSIV ZAP utility.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NAME &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/span&amp;gt;]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;module&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the load module. Under CMS the filetype must be &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt;. Under z/OS this is the name of a PDS member in the load library.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;csect&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the control section in the load module. A &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value is optional. If the CSECT name is missing, subsequent verify and replace displacements are calculated from offset 0 in the load module.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can use the &amp;lt;var&amp;gt;[[#MODULE|MODULE]]&amp;lt;/var&amp;gt; parameter to override the module name in &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DUMP or DUMPT=== &lt;br /&gt;
The &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt; statement prints all or part of the contents of a load&lt;br /&gt;
module or CMS text library to SYSPRINT.&lt;br /&gt;
Specifying &amp;lt;var&amp;gt;DUMPT&amp;lt;/var&amp;gt; has the same effect as &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
The format of the &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;DUMPT&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;DUMP[T] &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;name&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;length&amp;lt;/span&amp;gt;]]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the load module or text library. Under CMS, specify the filename (only) of a file whose filetype must be &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt;. Under z/OS, specify the name of a PDS member in the load library.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;csect&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the control section. A &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value is optional. If the CSECT clause is missing, the entire load module or text library contents are dumped.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal starting offset within the CSECT. This is optional, and it can only be specified when a &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; name is specified. Use the &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/var&amp;gt; parameter when you want to dump only a part of a CSECT. If the offset is omitted, it defaults to 0.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;length&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The number of bytes (in hexadecimal) of the CSECT to dump. This is an optional parameter, and it can only be specified if a &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value and starting &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/var&amp;gt; value are specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===* !VERIFY===&lt;br /&gt;
The special statement &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; (and &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt;) lets you control whether individual ZAPs are verified before being applied.&lt;br /&gt;
 &lt;br /&gt;
The main purpose of these statements is to override whether the current portion of the zap requires verify data. This can be useful when a single ZAP in an input stream containing many ZAPs has no verify data.&lt;br /&gt;
 &lt;br /&gt;
The asterisk and space are necessary so that other ZAP utilities treat&lt;br /&gt;
the statements as comments.&lt;br /&gt;
 &lt;br /&gt;
Use &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; anywhere within the ZAP input stream.&lt;br /&gt;
ZAPs following the &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; statement are verified (the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; data must match the module contents) before the ZAP is applied.&lt;br /&gt;
 &lt;br /&gt;
Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is new in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6, you might have &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; JCL or&lt;br /&gt;
EXECs that use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option to accomplish this purpose, but at&lt;br /&gt;
a dangerous job step level.&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt; &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;It is strongly recommended&amp;lt;/i&amp;gt; that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option, but do use&lt;br /&gt;
the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement instead, and only when needed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===* !NOVERIFY===&lt;br /&gt;
The special inline statement&lt;br /&gt;
&amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; (and &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt;) lets you control&lt;br /&gt;
whether individual ZAPs are verified before being applied.&lt;br /&gt;
The main purpose of these statements is to override whether the current&lt;br /&gt;
portion of the zap requires verify data.&lt;br /&gt;
This can be useful when a single ZAP in an input stream containing many ZAPs has no verify&lt;br /&gt;
data or the verify data is known to be incorrect.&lt;br /&gt;
 &lt;br /&gt;
Use &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; anywhere within the ZAP input stream.&lt;br /&gt;
ZAPs following the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement are not verified (the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; data may be missing or not match the module contents) before the ZAP is applied.&lt;br /&gt;
 &lt;br /&gt;
Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is new in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6, you might have &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; JCL or&lt;br /&gt;
EXECs that use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option to accomplish this purpose, but at&lt;br /&gt;
a dangerous job step level.&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;It is strongly recommended&amp;lt;/i&amp;gt; that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option, but do use the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement instead, and only when needed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using RockZap under z/OS==&lt;br /&gt;
Job Control requirements for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; are the same as for IMASPZAP. Most &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; storage is allocated above the 16 megabyte line, so the default region size should be sufficient.&lt;br /&gt;
&lt;br /&gt;
===RockZap DD statements===&lt;br /&gt;
Required statements:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SYSLIB points to the load library PDS (Partitioned Data&lt;br /&gt;
Set) containing the load module you want to ZAP. The load library cannot be a PDSE (Partition Data Set Extended) dataset.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;SYSIN contains the ZAP control statements and must&lt;br /&gt;
have the DCB attributes of &amp;lt;code&amp;gt;RECFM=F&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RECFM=FB&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;LRECL=80&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;SYSPRINT is the report data set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RockZap sample JCL===&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ROCKZAP  JOB  CLASS=A,MSGCLASS=A&lt;br /&gt;
//ZAP      EXEC PGM=ROCKZAP,PARM=&#039;RockZap parms&#039;&lt;br /&gt;
//STEPLIB  DD   DSN=ROCKZAP.V106.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIB   DD   DSN=loadlib,DISP=SHR&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSIN    DD   *&lt;br /&gt;
zap control statements&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using RockZap under CMS==&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt; command is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;ROCKZAP &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;fn&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;ft&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;fm&amp;lt;/span&amp;gt;]] ( &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;options&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is invoked as a CMS command.&lt;br /&gt;
Simply enter &amp;lt;code&amp;gt;ROCKZAP&amp;lt;/code&amp;gt; followed by the&lt;br /&gt;
name of the input file.&lt;br /&gt;
The default filetype is &amp;lt;code&amp;gt;ZAP&amp;lt;/code&amp;gt;, and the&lt;br /&gt;
default filemode is &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
Options are supplied in any order following the left parenthesis.&lt;br /&gt;
See [[#options|RockZap options]] for a list of options.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; writes the report and any modified load modules to the disk&lt;br /&gt;
accessed as the &amp;quot;A&amp;quot; disk.&lt;br /&gt;
Make sure that the &amp;quot;A&amp;quot; disk is accessed in Read/Write mode.&lt;br /&gt;
&lt;br /&gt;
===Using RockZap with CMS text libraries===&lt;br /&gt;
When &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; processes a text library, the resulting text library or object files usually contain fewer records than the original.&lt;br /&gt;
No information is lost and the&lt;br /&gt;
resulting text library or object file is logically the same as the original.&lt;br /&gt;
Text records in the object file are always written with the maximum amount of object code&lt;br /&gt;
per record. Often, fewer records are required than are typically written by the&lt;br /&gt;
compiler or assembler that originally generated the object.&lt;br /&gt;
&lt;br /&gt;
This object file &amp;quot;normalization&amp;quot; is similar to how a linkage editor processes an object&lt;br /&gt;
file.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; performs this normalization so that ZAPs can be applied more efficiently.&lt;br /&gt;
&lt;br /&gt;
==RockZap return codes==&lt;br /&gt;
&amp;lt;table class=&amp;quot;thJustBold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;0&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ZAPs were processed successfully. Any modified load modules are written back to disk.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;4&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ZAPs were processed successfully, but one or more warning messages were produced. This usually indicates a CSECT was missing from one or more of the load modules. Check the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; report for the name of the module and CSECT. If any load modules were modified, they are written back to disk.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;8&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;One or more errors occurred. Check the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; report for details.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;12&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; was unable to open the input file. Make sure the filename is correct and that the file or PDS member is present.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;40&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; could not open the report file (SYSPRINT). For z/OS, make sure a DD statement for SYSPRINT is present. For CMS, the internal FILEDEF for SYSPRINT may have failed. Make sure the &amp;quot;A&amp;quot; disk is accessed in read/write mode.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deprecated options== &lt;br /&gt;
The following program options are no longer necessary.&lt;br /&gt;
It is recommended&lt;br /&gt;
that you not use them, and that if you discover them in old JCL or EXECs,&lt;br /&gt;
you correct them to use the newer recommended approaches.&lt;br /&gt;
&lt;br /&gt;
===NOVERIFY=== &lt;br /&gt;
The &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option lets you apply ZAPs that have no verify data.&lt;br /&gt;
Use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option with caution.&lt;br /&gt;
Once a ZAP is applied using &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt;,&lt;br /&gt;
the original contents of the load module are lost.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement can provide the functionality needed for applying a &amp;lt;b&amp;gt;portion&amp;lt;/b&amp;gt; of a zap without verify data, it is strongly recommended that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option, which might extend to other portions of the zap with incorrect verify data.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VERIFY=== &lt;br /&gt;
The &amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; option ensures that all replace data has been successfully&lt;br /&gt;
verified before updating the load module.&lt;br /&gt;
&amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; is a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; default, and it need not be specified.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Since it is recommended that you do not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option, you might want to avoid the &amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; option as well, thus eliminating any tendency to control requirement of verify data at the job step level.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:RKTools]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=RockZap&amp;diff=118445</id>
		<title>RockZap</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=RockZap&amp;diff=118445"/>
		<updated>2022-02-18T20:07:07Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* UPPER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is a load module maintenance facility, similar to z/OS IMASPZAP&lt;br /&gt;
or the CMS ZAP command. Prior to version 7.5 of Model 204, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; was named &amp;lt;code&amp;gt;SirZap&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; modifies load modules (or for CMS, both&lt;br /&gt;
load modules and text libraries) based on&lt;br /&gt;
information from control statements supplied by the user.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is not&lt;br /&gt;
a plug compatible replacement for the IBM ZAP utilities, but it provides&lt;br /&gt;
functional and performance enhancements for load module maintenance.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is distributed as part of a software maintenance agreement&lt;br /&gt;
between Rocket Software Inc. and its customers.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is provided for&lt;br /&gt;
the purpose of applying maintenance to Rocket Model 204 products, but&lt;br /&gt;
you need not limit use of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; to those products.&lt;br /&gt;
&lt;br /&gt;
===Versions===&lt;br /&gt;
This wiki page&lt;br /&gt;
assumes that a site is running &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6 or later.&lt;br /&gt;
Any documented feature or facility that requires a later version&lt;br /&gt;
of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; will be clearly marked to indicate this.&lt;br /&gt;
If a feature or parameter is not&lt;br /&gt;
indicated as requiring any specific version of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;, it can&lt;br /&gt;
be assumed that it is available in all versions covered by this&lt;br /&gt;
document; that is, versions 1.6 and later of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Messages===&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; messages are documented in [[:Category:RockZap messages]].&lt;br /&gt;
&lt;br /&gt;
===Downloading===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Using your [[Rocket M204 user ID]] and password, log in to the [https://model204.rocketsoftware.com/maint/objlist Model 204 object file download page].&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Click the &amp;lt;b&amp;gt;Download object file&amp;lt;/b&amp;gt; link to the right of the RockZap object file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==RockZap features==&lt;br /&gt;
RockZap provides the following features:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; can save significant amounts of elapsed time and CPU for long&lt;br /&gt;
ZAP input streams.&lt;br /&gt;
This is because &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; applies all ZAPs in the input&lt;br /&gt;
stream before writing a module back to disk.&lt;br /&gt;
(IMASPZAP and CMS ZAP both&lt;br /&gt;
write parts of the load module back to disk each time a new &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt;&lt;br /&gt;
statement is encountered, reducing performance significantly.)&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; detects and reports ZAPs that are already applied.&lt;br /&gt;
Using&lt;br /&gt;
IMASPZAP or CMS ZAP, the user must inspect long CSECT dumps produced by&lt;br /&gt;
the ZAP utility in order to determine if the ZAP is already applied, or&lt;br /&gt;
simply in error.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; allows the module name on all &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements to be overridden using the &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; option.&lt;br /&gt;
This provides the ability to have the same set of &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt;s and &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt;s applied to different load modules without making global changes to the &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements.  &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; can &amp;quot;back out&amp;quot; or remove ZAPs without requiring&lt;br /&gt;
modification to the ZAP control statements.&lt;br /&gt;
By using the BACKOUT&lt;br /&gt;
option, ZAPs can be removed from the load module and replaced by the&lt;br /&gt;
original Verify data.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; limits error reporting to the specific statements in error, and it&lt;br /&gt;
reports only the information necessary to diagnose and correct the&lt;br /&gt;
error.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; only writes modified load modules.&lt;br /&gt;
If the ZAPs are already&lt;br /&gt;
completely applied, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not write the load module back to disk.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; enforces stricter rules on ZAP input statements.&lt;br /&gt;
Verify statements are required for all replaced bytes.&lt;br /&gt;
This ensures that the&lt;br /&gt;
load module contents are known before they are modified, and that a ZAP&lt;br /&gt;
can be removed or &amp;quot;backed out&amp;quot; if necessary.&lt;br /&gt;
You can override this feature,&lt;br /&gt;
however, using the &amp;lt;var&amp;gt;[[#* !NOVERIFY|* !NOVERIFY]]&amp;lt;/var&amp;gt; statement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; 1.7 and later support z/OS datasets with the LARGE attribute.&amp;lt;/li&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Differences between RockZap and IMASPZAP==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; requires that every byte in the load module that is replaced&lt;br /&gt;
is also verified, unless the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; only modifies direct access load libraries.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not&lt;br /&gt;
modify PDSEs or any other types of direct access data sets.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following SPZAP statements are not supported but are ignored&lt;br /&gt;
when encountered in the input stream: SETSSI, IDRDATA, and CHECKSUM.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following IMASPZAP statments are not supported and will cause&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; to terminate when they are encountered:&lt;br /&gt;
CONSOLE, ABSDUMP, ABSDUMPT, and RECORD.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Differences between RockZap and CMS ZAP==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; requires that every byte in the load module that is replaced&lt;br /&gt;
is also verified, unless the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not support CMS LOADLIBs.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following ZAP statements are not supported but are ignored&lt;br /&gt;
when encountered in the input stream: COMMENT and LOG.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CMS installation==&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is distributed as a single load module in VMFPLC2 format.&lt;br /&gt;
A set of object decks is also included in case linkedit is required.&lt;br /&gt;
(This might be necessary for some older CMS versions).&lt;br /&gt;
 &lt;br /&gt;
[[#downloading|Obtain]] and [[Web help download object files#How should the RockZap object file be linked?|link]] the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; object file.&lt;br /&gt;
 &lt;br /&gt;
The &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; load module is linked &amp;lt;code&amp;gt;AMODE=31&amp;lt;/code&amp;gt;.&lt;br /&gt;
If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; must be relinked&lt;br /&gt;
on your system, use the following commands:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;LOAD ROCKZAP (RESET ROCKZAP RMODE 24 AMODE 31&lt;br /&gt;
GENMOD ROCKZAP (FROM APPL&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can omit the &amp;lt;var&amp;gt;RMODE&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;AMODE&amp;lt;/var&amp;gt; parameters if you are running in a non-XA environment.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==IBM z/OS installation== &lt;br /&gt;
[[#downloading|Obtain]] and [[Web help download object files#How should the RockZap object file be linked?|link]] the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; object file.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;ROCKZAP&amp;lt;/code&amp;gt; can be copied to SYS1.LINKLIB or SYS1.LPALIB, and it is reentrant.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div id=&amp;quot;options&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==RockZap options==&lt;br /&gt;
z/OS users supply &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; options in the &amp;lt;code&amp;gt;PARM&amp;lt;/code&amp;gt; parameter of the EXEC job control statement.&lt;br /&gt;
&lt;br /&gt;
For example, to force uppercase output and to&lt;br /&gt;
backout ZAPs, use the following EXEC statement:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ROCKZAP EXEC PGM=ROCKZAP,PARM=&#039;UPPER,BACKOUT&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
CMS users specify options following a left parenthesis on the &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt;&lt;br /&gt;
command line.&lt;br /&gt;
&lt;br /&gt;
For example, to force uppercase output and to backout the&lt;br /&gt;
ZAPs in the file &amp;lt;code&amp;gt;LOCAL ZAP A1&amp;lt;/code&amp;gt;, specify the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;ROCKZAP LOCAL ( BACKOUT UPPER&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BACKOUT===&lt;br /&gt;
The &amp;lt;var&amp;gt;BACKOUT&amp;lt;/var&amp;gt; option removes a ZAP without requiring any modification to&lt;br /&gt;
the ZAP input statements.&lt;br /&gt;
&amp;lt;var&amp;gt;BACKOUT&amp;lt;/var&amp;gt; reverses the effect of a ZAP by&lt;br /&gt;
replacing the original &amp;lt;code&amp;gt;Verify&amp;lt;/code&amp;gt; data in the module.&lt;br /&gt;
&lt;br /&gt;
If the ZAPs were applied with IMASPZAP, CMS ZAP, or with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; using the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; might not be able to perform a backout because all the original &amp;lt;code&amp;gt;Verify&amp;lt;/code&amp;gt; data might not be present.&lt;br /&gt;
&lt;br /&gt;
===EXTRACT filetype===&lt;br /&gt;
The &amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; option lets you extract individual object files from&lt;br /&gt;
a CMS text library.&lt;br /&gt;
&amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; can only be used when the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is also&lt;br /&gt;
specified.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; requires a parameter that specifies the file type&lt;br /&gt;
of the object files it creates. One object file is created for each&lt;br /&gt;
member of the text library. The text library member name is used as the CMS file name.&lt;br /&gt;
&lt;br /&gt;
===MODULE===&lt;br /&gt;
The &amp;lt;var&amp;gt;MODULE=&amp;lt;i&amp;gt;modname&amp;lt;/i&amp;gt;&amp;lt;/var&amp;gt; option allows the module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement to be overridden with a single load-module name. This means that you can use the same &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt; jobstream to apply the same zaps to different load modules in the designated load library (SYSLIB) without making changes to any of the &amp;lt;var&amp;gt;[[#NAME|NAME]]&amp;lt;/var&amp;gt; control statements.  &lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;PARM=&#039;MODULE=ONLINE&#039;&amp;lt;/code&amp;gt; applies the zaps to the module named &amp;lt;code&amp;gt;ONLINE&amp;lt;/code&amp;gt; in the designated load library, regardless of the load-module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.  Then, using the same job stream, &amp;lt;code&amp;gt;PARM=&#039;MODULE=ONLINTST&#039;&amp;lt;/code&amp;gt; applies the same zaps to the module named &amp;lt;code&amp;gt;ONLINTST&amp;lt;/code&amp;gt;, again, regardless of the load-module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you are applying zaps to a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; load module, you &amp;lt;i&amp;gt;must&amp;lt;/i&amp;gt; specify a value for &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; option was introduced in version 1.6 of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===REPORT=== &lt;br /&gt;
Under the &amp;lt;var&amp;gt;REPORT&amp;lt;/var&amp;gt; option, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; runs normally but does not update any load modules. This is useful if you have a production load module you do not want to modify, but you do want to know whether or not a particular set of ZAPs are applied.&lt;br /&gt;
&lt;br /&gt;
===TXTLIB txtlib=== &lt;br /&gt;
The &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is valid under CMS only.&lt;br /&gt;
&amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; specifies that the&lt;br /&gt;
ZAPs should be applied to a CMS text library instead of a load module.&lt;br /&gt;
 &lt;br /&gt;
You must provide the name of the text library following the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt;&lt;br /&gt;
parameter.&lt;br /&gt;
The first parameter of the name statement (the module name)&lt;br /&gt;
is ignored when using the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option.&lt;br /&gt;
Only the CSECT name is used for text libraries.&lt;br /&gt;
No load modules are inspected or modified when the&lt;br /&gt;
&amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is specified.&lt;br /&gt;
&lt;br /&gt;
===UPPER=== &lt;br /&gt;
The &amp;lt;var&amp;gt;UPPER&amp;lt;/var&amp;gt; option forces all &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; output to&lt;br /&gt;
&lt;br /&gt;
===MISSING=== &lt;br /&gt;
The &amp;lt;var&amp;gt;MISSING&amp;lt;/var&amp;gt; option suppresses errors resulting from a NAME statement that references a CSECT not present in the load module.&lt;br /&gt;
&amp;lt;var&amp;gt;MISSING&amp;lt;/var&amp;gt; is the default.&lt;br /&gt;
&lt;br /&gt;
===NOMISSING=== &lt;br /&gt;
The &amp;lt;var&amp;gt;NOMISSING&amp;lt;/var&amp;gt; option flags errors resulting from a NAME statement that references a CSECT not present in the load module. A missing CSECT results in a return code of 4.&lt;br /&gt;
&lt;br /&gt;
==RockZap control statements== &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; control statements appear in columns 1 to 72 in fixed length,&lt;br /&gt;
80 byte records.&lt;br /&gt;
Statements that begin with an asterisk are treated as&lt;br /&gt;
comments and are ignored, except for the two special inline parameter statements&lt;br /&gt;
&amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt;.&lt;br /&gt;
Control statements can begin in any column,&lt;br /&gt;
but line continuation is not allowed.&lt;br /&gt;
&lt;br /&gt;
===VER===&lt;br /&gt;
The &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement identifies a range of bytes to be matched with the&lt;br /&gt;
load module contents.&lt;br /&gt;
&amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statements must follow a &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
A &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement must be present for each range of bytes that will be&lt;br /&gt;
replaced in the load module.&lt;br /&gt;
This is to ensure that the ZAP can be backed out later if necessary.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;VER &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset verify-values comments&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal displacement from the start of the CSECT specified in the previous &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement, or from the start of the load module if no CSECT was specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;verify-values&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pairs of hexadecimal characters optionally separated by commas. The values are the expected contents of the load module at the specified offset. Uppercase or lowercase hexadecimal data are acceptable.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;comments&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Any characters after the first blank after the last &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;verify-values&amp;lt;/var&amp;gt; character are ignored by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The following are all valid &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statements:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;VER 00 010203,040506   &amp;lt;i&amp;gt;Verify bytes at offset 0.&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
VER 01ca 47f0,c0e9&lt;br /&gt;
 &lt;br /&gt;
VER 23EC D20310004000,90ECD000,07FC&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===REP=== &lt;br /&gt;
The &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement identifies a range of bytes to replace the current&lt;br /&gt;
contents of a load module.&lt;br /&gt;
The &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement must be preceded by &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt;&lt;br /&gt;
statements that cover the entire range of bytes that will be replaced.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;REP &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset replace-value comments&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal displacement from the start of the CSECT in the previous &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;replace-value&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pairs of hexadecimal characters optionally separated by commas. The values will replace the contents of the load module at the specified offset. Uppercase or lowercase hexadecimal data are acceptable.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;comments&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Any characters after the first blank after the last &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;replace-value&amp;lt;/var&amp;gt; character are ignored by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The following are all valid &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statements:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;REP 00 FFFFFF,FFFFFF   &amp;lt;i&amp;gt;Replace bytes at offset 0.&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
REP 01ca 47f0,c0e8&lt;br /&gt;
 &lt;br /&gt;
REP 23EC D203101C4000,90ECD008,07FE&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NAME===&lt;br /&gt;
The &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement identifies a load module, and optionally a CSECT, that defines the context for the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statements that follow.&lt;br /&gt;
&amp;lt;var&amp;gt;NAMEX&amp;lt;/var&amp;gt; is a synonym for &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; that allows compatibility with the Fujitsu&lt;br /&gt;
OSIV ZAP utility.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NAME &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/span&amp;gt;]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;module&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the load module. Under CMS the filetype must be &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt;. Under z/OS this is the name of a PDS member in the load library.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;csect&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the control section in the load module. A &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value is optional. If the CSECT name is missing, subsequent verify and replace displacements are calculated from offset 0 in the load module.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can use the &amp;lt;var&amp;gt;[[#MODULE|MODULE]]&amp;lt;/var&amp;gt; parameter to override the module name in &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DUMP or DUMPT=== &lt;br /&gt;
The &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt; statement prints all or part of the contents of a load&lt;br /&gt;
module or CMS text library to SYSPRINT.&lt;br /&gt;
Specifying &amp;lt;var&amp;gt;DUMPT&amp;lt;/var&amp;gt; has the same effect as &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
The format of the &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;DUMPT&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;DUMP[T] &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;name&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;length&amp;lt;/span&amp;gt;]]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the load module or text library. Under CMS, specify the filename (only) of a file whose filetype must be &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt;. Under z/OS, specify the name of a PDS member in the load library.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;csect&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the control section. A &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value is optional. If the CSECT clause is missing, the entire load module or text library contents are dumped.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal starting offset within the CSECT. This is optional, and it can only be specified when a &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; name is specified. Use the &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/var&amp;gt; parameter when you want to dump only a part of a CSECT. If the offset is omitted, it defaults to 0.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;length&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The number of bytes (in hexadecimal) of the CSECT to dump. This is an optional parameter, and it can only be specified if a &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value and starting &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/var&amp;gt; value are specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===* !VERIFY===&lt;br /&gt;
The special statement &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; (and &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt;) lets you control whether individual ZAPs are verified before being applied.&lt;br /&gt;
 &lt;br /&gt;
The main purpose of these statements is to override whether the current portion of the zap requires verify data. This can be useful when a single ZAP in an input stream containing many ZAPs has no verify data.&lt;br /&gt;
 &lt;br /&gt;
The asterisk and space are necessary so that other ZAP utilities treat&lt;br /&gt;
the statements as comments.&lt;br /&gt;
 &lt;br /&gt;
Use &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; anywhere within the ZAP input stream.&lt;br /&gt;
ZAPs following the &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; statement are verified (the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; data must match the module contents) before the ZAP is applied.&lt;br /&gt;
 &lt;br /&gt;
Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is new in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6, you might have &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; JCL or&lt;br /&gt;
EXECs that use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option to accomplish this purpose, but at&lt;br /&gt;
a dangerous job step level.&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt; &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;It is strongly recommended&amp;lt;/i&amp;gt; that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option, but do use&lt;br /&gt;
the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement instead, and only when needed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===* !NOVERIFY===&lt;br /&gt;
The special inline statement&lt;br /&gt;
&amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; (and &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt;) lets you control&lt;br /&gt;
whether individual ZAPs are verified before being applied.&lt;br /&gt;
The main purpose of these statements is to override whether the current&lt;br /&gt;
portion of the zap requires verify data.&lt;br /&gt;
This can be useful when a single ZAP in an input stream containing many ZAPs has no verify&lt;br /&gt;
data or the verify data is known to be incorrect.&lt;br /&gt;
 &lt;br /&gt;
Use &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; anywhere within the ZAP input stream.&lt;br /&gt;
ZAPs following the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement are not verified (the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; data may be missing or not match the module contents) before the ZAP is applied.&lt;br /&gt;
 &lt;br /&gt;
Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is new in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6, you might have &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; JCL or&lt;br /&gt;
EXECs that use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option to accomplish this purpose, but at&lt;br /&gt;
a dangerous job step level.&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;It is strongly recommended&amp;lt;/i&amp;gt; that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option, but do use the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement instead, and only when needed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using RockZap under z/OS==&lt;br /&gt;
Job Control requirements for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; are the same as for IMASPZAP. Most &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; storage is allocated above the 16 megabyte line, so the default region size should be sufficient.&lt;br /&gt;
&lt;br /&gt;
===RockZap DD statements===&lt;br /&gt;
Required statements:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SYSLIB points to the load library PDS (Partitioned Data&lt;br /&gt;
Set) containing the load module you want to ZAP. The load library cannot be a PDSE (Partition Data Set Extended) dataset.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;SYSIN contains the ZAP control statements and must&lt;br /&gt;
have the DCB attributes of &amp;lt;code&amp;gt;RECFM=F&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RECFM=FB&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;LRECL=80&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;SYSPRINT is the report data set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RockZap sample JCL===&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ROCKZAP  JOB  CLASS=A,MSGCLASS=A&lt;br /&gt;
//ZAP      EXEC PGM=ROCKZAP,PARM=&#039;RockZap parms&#039;&lt;br /&gt;
//STEPLIB  DD   DSN=ROCKZAP.V106.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIB   DD   DSN=loadlib,DISP=SHR&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSIN    DD   *&lt;br /&gt;
zap control statements&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using RockZap under CMS==&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt; command is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;ROCKZAP &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;fn&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;ft&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;fm&amp;lt;/span&amp;gt;]] ( &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;options&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is invoked as a CMS command.&lt;br /&gt;
Simply enter &amp;lt;code&amp;gt;ROCKZAP&amp;lt;/code&amp;gt; followed by the&lt;br /&gt;
name of the input file.&lt;br /&gt;
The default filetype is &amp;lt;code&amp;gt;ZAP&amp;lt;/code&amp;gt;, and the&lt;br /&gt;
default filemode is &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
Options are supplied in any order following the left parenthesis.&lt;br /&gt;
See [[#options|RockZap options]] for a list of options.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; writes the report and any modified load modules to the disk&lt;br /&gt;
accessed as the &amp;quot;A&amp;quot; disk.&lt;br /&gt;
Make sure that the &amp;quot;A&amp;quot; disk is accessed in Read/Write mode.&lt;br /&gt;
&lt;br /&gt;
===Using RockZap with CMS text libraries===&lt;br /&gt;
When &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; processes a text library, the resulting text library or object files usually contain fewer records than the original.&lt;br /&gt;
No information is lost and the&lt;br /&gt;
resulting text library or object file is logically the same as the original.&lt;br /&gt;
Text records in the object file are always written with the maximum amount of object code&lt;br /&gt;
per record. Often, fewer records are required than are typically written by the&lt;br /&gt;
compiler or assembler that originally generated the object.&lt;br /&gt;
&lt;br /&gt;
This object file &amp;quot;normalization&amp;quot; is similar to how a linkage editor processes an object&lt;br /&gt;
file.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; performs this normalization so that ZAPs can be applied more efficiently.&lt;br /&gt;
&lt;br /&gt;
==RockZap return codes==&lt;br /&gt;
&amp;lt;table class=&amp;quot;thJustBold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;0&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ZAPs were processed successfully. Any modified load modules are written back to disk.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;4&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ZAPs were processed successfully, but one or more warning messages were produced. This usually indicates a CSECT was missing from one or more of the load modules. Check the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; report for the name of the module and CSECT. If any load modules were modified, they are written back to disk.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;8&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;One or more errors occurred. Check the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; report for details.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;12&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; was unable to open the input file. Make sure the filename is correct and that the file or PDS member is present.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;40&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; could not open the report file (SYSPRINT). For z/OS, make sure a DD statement for SYSPRINT is present. For CMS, the internal FILEDEF for SYSPRINT may have failed. Make sure the &amp;quot;A&amp;quot; disk is accessed in read/write mode.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deprecated options== &lt;br /&gt;
The following program options are no longer necessary.&lt;br /&gt;
It is recommended&lt;br /&gt;
that you not use them, and that if you discover them in old JCL or EXECs,&lt;br /&gt;
you correct them to use the newer recommended approaches.&lt;br /&gt;
&lt;br /&gt;
===NOVERIFY=== &lt;br /&gt;
The &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option lets you apply ZAPs that have no verify data.&lt;br /&gt;
Use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option with caution.&lt;br /&gt;
Once a ZAP is applied using &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt;,&lt;br /&gt;
the original contents of the load module are lost.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement can provide the functionality needed for applying a &amp;lt;b&amp;gt;portion&amp;lt;/b&amp;gt; of a zap without verify data, it is strongly recommended that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option, which might extend to other portions of the zap with incorrect verify data.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VERIFY=== &lt;br /&gt;
The &amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; option ensures that all replace data has been successfully&lt;br /&gt;
verified before updating the load module.&lt;br /&gt;
&amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; is a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; default, and it need not be specified.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Since it is recommended that you do not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option, you might want to avoid the &amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; option as well, thus eliminating any tendency to control requirement of verify data at the job step level.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:RKTools]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=RockZap&amp;diff=118444</id>
		<title>RockZap</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=RockZap&amp;diff=118444"/>
		<updated>2022-02-18T20:06:24Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* RockZap options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is a load module maintenance facility, similar to z/OS IMASPZAP&lt;br /&gt;
or the CMS ZAP command. Prior to version 7.5 of Model 204, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; was named &amp;lt;code&amp;gt;SirZap&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; modifies load modules (or for CMS, both&lt;br /&gt;
load modules and text libraries) based on&lt;br /&gt;
information from control statements supplied by the user.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is not&lt;br /&gt;
a plug compatible replacement for the IBM ZAP utilities, but it provides&lt;br /&gt;
functional and performance enhancements for load module maintenance.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is distributed as part of a software maintenance agreement&lt;br /&gt;
between Rocket Software Inc. and its customers.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is provided for&lt;br /&gt;
the purpose of applying maintenance to Rocket Model 204 products, but&lt;br /&gt;
you need not limit use of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; to those products.&lt;br /&gt;
&lt;br /&gt;
===Versions===&lt;br /&gt;
This wiki page&lt;br /&gt;
assumes that a site is running &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6 or later.&lt;br /&gt;
Any documented feature or facility that requires a later version&lt;br /&gt;
of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; will be clearly marked to indicate this.&lt;br /&gt;
If a feature or parameter is not&lt;br /&gt;
indicated as requiring any specific version of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;, it can&lt;br /&gt;
be assumed that it is available in all versions covered by this&lt;br /&gt;
document; that is, versions 1.6 and later of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Messages===&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; messages are documented in [[:Category:RockZap messages]].&lt;br /&gt;
&lt;br /&gt;
===Downloading===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Using your [[Rocket M204 user ID]] and password, log in to the [https://model204.rocketsoftware.com/maint/objlist Model 204 object file download page].&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Click the &amp;lt;b&amp;gt;Download object file&amp;lt;/b&amp;gt; link to the right of the RockZap object file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==RockZap features==&lt;br /&gt;
RockZap provides the following features:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; can save significant amounts of elapsed time and CPU for long&lt;br /&gt;
ZAP input streams.&lt;br /&gt;
This is because &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; applies all ZAPs in the input&lt;br /&gt;
stream before writing a module back to disk.&lt;br /&gt;
(IMASPZAP and CMS ZAP both&lt;br /&gt;
write parts of the load module back to disk each time a new &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt;&lt;br /&gt;
statement is encountered, reducing performance significantly.)&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; detects and reports ZAPs that are already applied.&lt;br /&gt;
Using&lt;br /&gt;
IMASPZAP or CMS ZAP, the user must inspect long CSECT dumps produced by&lt;br /&gt;
the ZAP utility in order to determine if the ZAP is already applied, or&lt;br /&gt;
simply in error.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; allows the module name on all &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements to be overridden using the &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; option.&lt;br /&gt;
This provides the ability to have the same set of &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt;s and &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt;s applied to different load modules without making global changes to the &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements.  &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; can &amp;quot;back out&amp;quot; or remove ZAPs without requiring&lt;br /&gt;
modification to the ZAP control statements.&lt;br /&gt;
By using the BACKOUT&lt;br /&gt;
option, ZAPs can be removed from the load module and replaced by the&lt;br /&gt;
original Verify data.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; limits error reporting to the specific statements in error, and it&lt;br /&gt;
reports only the information necessary to diagnose and correct the&lt;br /&gt;
error.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; only writes modified load modules.&lt;br /&gt;
If the ZAPs are already&lt;br /&gt;
completely applied, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not write the load module back to disk.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; enforces stricter rules on ZAP input statements.&lt;br /&gt;
Verify statements are required for all replaced bytes.&lt;br /&gt;
This ensures that the&lt;br /&gt;
load module contents are known before they are modified, and that a ZAP&lt;br /&gt;
can be removed or &amp;quot;backed out&amp;quot; if necessary.&lt;br /&gt;
You can override this feature,&lt;br /&gt;
however, using the &amp;lt;var&amp;gt;[[#* !NOVERIFY|* !NOVERIFY]]&amp;lt;/var&amp;gt; statement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; 1.7 and later support z/OS datasets with the LARGE attribute.&amp;lt;/li&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Differences between RockZap and IMASPZAP==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; requires that every byte in the load module that is replaced&lt;br /&gt;
is also verified, unless the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; only modifies direct access load libraries.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not&lt;br /&gt;
modify PDSEs or any other types of direct access data sets.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following SPZAP statements are not supported but are ignored&lt;br /&gt;
when encountered in the input stream: SETSSI, IDRDATA, and CHECKSUM.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following IMASPZAP statments are not supported and will cause&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; to terminate when they are encountered:&lt;br /&gt;
CONSOLE, ABSDUMP, ABSDUMPT, and RECORD.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Differences between RockZap and CMS ZAP==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; requires that every byte in the load module that is replaced&lt;br /&gt;
is also verified, unless the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not support CMS LOADLIBs.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following ZAP statements are not supported but are ignored&lt;br /&gt;
when encountered in the input stream: COMMENT and LOG.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CMS installation==&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is distributed as a single load module in VMFPLC2 format.&lt;br /&gt;
A set of object decks is also included in case linkedit is required.&lt;br /&gt;
(This might be necessary for some older CMS versions).&lt;br /&gt;
 &lt;br /&gt;
[[#downloading|Obtain]] and [[Web help download object files#How should the RockZap object file be linked?|link]] the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; object file.&lt;br /&gt;
 &lt;br /&gt;
The &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; load module is linked &amp;lt;code&amp;gt;AMODE=31&amp;lt;/code&amp;gt;.&lt;br /&gt;
If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; must be relinked&lt;br /&gt;
on your system, use the following commands:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;LOAD ROCKZAP (RESET ROCKZAP RMODE 24 AMODE 31&lt;br /&gt;
GENMOD ROCKZAP (FROM APPL&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can omit the &amp;lt;var&amp;gt;RMODE&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;AMODE&amp;lt;/var&amp;gt; parameters if you are running in a non-XA environment.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==IBM z/OS installation== &lt;br /&gt;
[[#downloading|Obtain]] and [[Web help download object files#How should the RockZap object file be linked?|link]] the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; object file.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;ROCKZAP&amp;lt;/code&amp;gt; can be copied to SYS1.LINKLIB or SYS1.LPALIB, and it is reentrant.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div id=&amp;quot;options&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==RockZap options==&lt;br /&gt;
z/OS users supply &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; options in the &amp;lt;code&amp;gt;PARM&amp;lt;/code&amp;gt; parameter of the EXEC job control statement.&lt;br /&gt;
&lt;br /&gt;
For example, to force uppercase output and to&lt;br /&gt;
backout ZAPs, use the following EXEC statement:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ROCKZAP EXEC PGM=ROCKZAP,PARM=&#039;UPPER,BACKOUT&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
CMS users specify options following a left parenthesis on the &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt;&lt;br /&gt;
command line.&lt;br /&gt;
&lt;br /&gt;
For example, to force uppercase output and to backout the&lt;br /&gt;
ZAPs in the file &amp;lt;code&amp;gt;LOCAL ZAP A1&amp;lt;/code&amp;gt;, specify the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;ROCKZAP LOCAL ( BACKOUT UPPER&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BACKOUT===&lt;br /&gt;
The &amp;lt;var&amp;gt;BACKOUT&amp;lt;/var&amp;gt; option removes a ZAP without requiring any modification to&lt;br /&gt;
the ZAP input statements.&lt;br /&gt;
&amp;lt;var&amp;gt;BACKOUT&amp;lt;/var&amp;gt; reverses the effect of a ZAP by&lt;br /&gt;
replacing the original &amp;lt;code&amp;gt;Verify&amp;lt;/code&amp;gt; data in the module.&lt;br /&gt;
&lt;br /&gt;
If the ZAPs were applied with IMASPZAP, CMS ZAP, or with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; using the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; might not be able to perform a backout because all the original &amp;lt;code&amp;gt;Verify&amp;lt;/code&amp;gt; data might not be present.&lt;br /&gt;
&lt;br /&gt;
===EXTRACT filetype===&lt;br /&gt;
The &amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; option lets you extract individual object files from&lt;br /&gt;
a CMS text library.&lt;br /&gt;
&amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; can only be used when the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is also&lt;br /&gt;
specified.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; requires a parameter that specifies the file type&lt;br /&gt;
of the object files it creates. One object file is created for each&lt;br /&gt;
member of the text library. The text library member name is used as the CMS file name.&lt;br /&gt;
&lt;br /&gt;
===MODULE===&lt;br /&gt;
The &amp;lt;var&amp;gt;MODULE=&amp;lt;i&amp;gt;modname&amp;lt;/i&amp;gt;&amp;lt;/var&amp;gt; option allows the module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement to be overridden with a single load-module name. This means that you can use the same &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt; jobstream to apply the same zaps to different load modules in the designated load library (SYSLIB) without making changes to any of the &amp;lt;var&amp;gt;[[#NAME|NAME]]&amp;lt;/var&amp;gt; control statements.  &lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;PARM=&#039;MODULE=ONLINE&#039;&amp;lt;/code&amp;gt; applies the zaps to the module named &amp;lt;code&amp;gt;ONLINE&amp;lt;/code&amp;gt; in the designated load library, regardless of the load-module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.  Then, using the same job stream, &amp;lt;code&amp;gt;PARM=&#039;MODULE=ONLINTST&#039;&amp;lt;/code&amp;gt; applies the same zaps to the module named &amp;lt;code&amp;gt;ONLINTST&amp;lt;/code&amp;gt;, again, regardless of the load-module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you are applying zaps to a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; load module, you &amp;lt;i&amp;gt;must&amp;lt;/i&amp;gt; specify a value for &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; option was introduced in version 1.6 of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===REPORT=== &lt;br /&gt;
Under the &amp;lt;var&amp;gt;REPORT&amp;lt;/var&amp;gt; option, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; runs normally but does not update any load modules. This is useful if you have a production load module you do not want to modify, but you do want to know whether or not a particular set of ZAPs are applied.&lt;br /&gt;
&lt;br /&gt;
===TXTLIB txtlib=== &lt;br /&gt;
The &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is valid under CMS only.&lt;br /&gt;
&amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; specifies that the&lt;br /&gt;
ZAPs should be applied to a CMS text library instead of a load module.&lt;br /&gt;
 &lt;br /&gt;
You must provide the name of the text library following the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt;&lt;br /&gt;
parameter.&lt;br /&gt;
The first parameter of the name statement (the module name)&lt;br /&gt;
is ignored when using the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option.&lt;br /&gt;
Only the CSECT name is used for text libraries.&lt;br /&gt;
No load modules are inspected or modified when the&lt;br /&gt;
&amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is specified.&lt;br /&gt;
&lt;br /&gt;
===UPPER=== &lt;br /&gt;
The &amp;lt;var&amp;gt;UPPER&amp;lt;/var&amp;gt; option forces all &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; output to uppercase.&lt;br /&gt;
This is usually unnecessary, except on certain Japanese terminals and&lt;br /&gt;
when sending output to uppercase-only printers.&lt;br /&gt;
&amp;lt;var&amp;gt;UPPER&amp;lt;/var&amp;gt; is the default setting for Hitachi and Fujitsu systems.&lt;br /&gt;
&lt;br /&gt;
===MISSING=== &lt;br /&gt;
The &amp;lt;var&amp;gt;MISSING&amp;lt;/var&amp;gt; option suppresses errors resulting from a NAME statement that references a CSECT not present in the load module.&lt;br /&gt;
&amp;lt;var&amp;gt;MISSING&amp;lt;/var&amp;gt; is the default.&lt;br /&gt;
&lt;br /&gt;
===NOMISSING=== &lt;br /&gt;
The &amp;lt;var&amp;gt;NOMISSING&amp;lt;/var&amp;gt; option flags errors resulting from a NAME statement that references a CSECT not present in the load module. A missing CSECT results in a return code of 4.&lt;br /&gt;
&lt;br /&gt;
==RockZap control statements== &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; control statements appear in columns 1 to 72 in fixed length,&lt;br /&gt;
80 byte records.&lt;br /&gt;
Statements that begin with an asterisk are treated as&lt;br /&gt;
comments and are ignored, except for the two special inline parameter statements&lt;br /&gt;
&amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt;.&lt;br /&gt;
Control statements can begin in any column,&lt;br /&gt;
but line continuation is not allowed.&lt;br /&gt;
&lt;br /&gt;
===VER===&lt;br /&gt;
The &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement identifies a range of bytes to be matched with the&lt;br /&gt;
load module contents.&lt;br /&gt;
&amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statements must follow a &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
A &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement must be present for each range of bytes that will be&lt;br /&gt;
replaced in the load module.&lt;br /&gt;
This is to ensure that the ZAP can be backed out later if necessary.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;VER &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset verify-values comments&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal displacement from the start of the CSECT specified in the previous &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement, or from the start of the load module if no CSECT was specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;verify-values&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pairs of hexadecimal characters optionally separated by commas. The values are the expected contents of the load module at the specified offset. Uppercase or lowercase hexadecimal data are acceptable.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;comments&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Any characters after the first blank after the last &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;verify-values&amp;lt;/var&amp;gt; character are ignored by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The following are all valid &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statements:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;VER 00 010203,040506   &amp;lt;i&amp;gt;Verify bytes at offset 0.&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
VER 01ca 47f0,c0e9&lt;br /&gt;
 &lt;br /&gt;
VER 23EC D20310004000,90ECD000,07FC&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===REP=== &lt;br /&gt;
The &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement identifies a range of bytes to replace the current&lt;br /&gt;
contents of a load module.&lt;br /&gt;
The &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement must be preceded by &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt;&lt;br /&gt;
statements that cover the entire range of bytes that will be replaced.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;REP &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset replace-value comments&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal displacement from the start of the CSECT in the previous &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;replace-value&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pairs of hexadecimal characters optionally separated by commas. The values will replace the contents of the load module at the specified offset. Uppercase or lowercase hexadecimal data are acceptable.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;comments&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Any characters after the first blank after the last &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;replace-value&amp;lt;/var&amp;gt; character are ignored by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The following are all valid &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statements:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;REP 00 FFFFFF,FFFFFF   &amp;lt;i&amp;gt;Replace bytes at offset 0.&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
REP 01ca 47f0,c0e8&lt;br /&gt;
 &lt;br /&gt;
REP 23EC D203101C4000,90ECD008,07FE&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NAME===&lt;br /&gt;
The &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement identifies a load module, and optionally a CSECT, that defines the context for the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statements that follow.&lt;br /&gt;
&amp;lt;var&amp;gt;NAMEX&amp;lt;/var&amp;gt; is a synonym for &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; that allows compatibility with the Fujitsu&lt;br /&gt;
OSIV ZAP utility.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NAME &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/span&amp;gt;]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;module&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the load module. Under CMS the filetype must be &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt;. Under z/OS this is the name of a PDS member in the load library.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;csect&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the control section in the load module. A &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value is optional. If the CSECT name is missing, subsequent verify and replace displacements are calculated from offset 0 in the load module.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can use the &amp;lt;var&amp;gt;[[#MODULE|MODULE]]&amp;lt;/var&amp;gt; parameter to override the module name in &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DUMP or DUMPT=== &lt;br /&gt;
The &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt; statement prints all or part of the contents of a load&lt;br /&gt;
module or CMS text library to SYSPRINT.&lt;br /&gt;
Specifying &amp;lt;var&amp;gt;DUMPT&amp;lt;/var&amp;gt; has the same effect as &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
The format of the &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;DUMPT&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;DUMP[T] &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;name&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;length&amp;lt;/span&amp;gt;]]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the load module or text library. Under CMS, specify the filename (only) of a file whose filetype must be &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt;. Under z/OS, specify the name of a PDS member in the load library.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;csect&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the control section. A &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value is optional. If the CSECT clause is missing, the entire load module or text library contents are dumped.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal starting offset within the CSECT. This is optional, and it can only be specified when a &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; name is specified. Use the &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/var&amp;gt; parameter when you want to dump only a part of a CSECT. If the offset is omitted, it defaults to 0.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;length&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The number of bytes (in hexadecimal) of the CSECT to dump. This is an optional parameter, and it can only be specified if a &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value and starting &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/var&amp;gt; value are specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===* !VERIFY===&lt;br /&gt;
The special statement &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; (and &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt;) lets you control whether individual ZAPs are verified before being applied.&lt;br /&gt;
 &lt;br /&gt;
The main purpose of these statements is to override whether the current portion of the zap requires verify data. This can be useful when a single ZAP in an input stream containing many ZAPs has no verify data.&lt;br /&gt;
 &lt;br /&gt;
The asterisk and space are necessary so that other ZAP utilities treat&lt;br /&gt;
the statements as comments.&lt;br /&gt;
 &lt;br /&gt;
Use &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; anywhere within the ZAP input stream.&lt;br /&gt;
ZAPs following the &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; statement are verified (the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; data must match the module contents) before the ZAP is applied.&lt;br /&gt;
 &lt;br /&gt;
Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is new in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6, you might have &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; JCL or&lt;br /&gt;
EXECs that use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option to accomplish this purpose, but at&lt;br /&gt;
a dangerous job step level.&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt; &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;It is strongly recommended&amp;lt;/i&amp;gt; that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option, but do use&lt;br /&gt;
the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement instead, and only when needed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===* !NOVERIFY===&lt;br /&gt;
The special inline statement&lt;br /&gt;
&amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; (and &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt;) lets you control&lt;br /&gt;
whether individual ZAPs are verified before being applied.&lt;br /&gt;
The main purpose of these statements is to override whether the current&lt;br /&gt;
portion of the zap requires verify data.&lt;br /&gt;
This can be useful when a single ZAP in an input stream containing many ZAPs has no verify&lt;br /&gt;
data or the verify data is known to be incorrect.&lt;br /&gt;
 &lt;br /&gt;
Use &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; anywhere within the ZAP input stream.&lt;br /&gt;
ZAPs following the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement are not verified (the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; data may be missing or not match the module contents) before the ZAP is applied.&lt;br /&gt;
 &lt;br /&gt;
Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is new in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6, you might have &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; JCL or&lt;br /&gt;
EXECs that use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option to accomplish this purpose, but at&lt;br /&gt;
a dangerous job step level.&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;It is strongly recommended&amp;lt;/i&amp;gt; that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option, but do use the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement instead, and only when needed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using RockZap under z/OS==&lt;br /&gt;
Job Control requirements for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; are the same as for IMASPZAP. Most &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; storage is allocated above the 16 megabyte line, so the default region size should be sufficient.&lt;br /&gt;
&lt;br /&gt;
===RockZap DD statements===&lt;br /&gt;
Required statements:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SYSLIB points to the load library PDS (Partitioned Data&lt;br /&gt;
Set) containing the load module you want to ZAP. The load library cannot be a PDSE (Partition Data Set Extended) dataset.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;SYSIN contains the ZAP control statements and must&lt;br /&gt;
have the DCB attributes of &amp;lt;code&amp;gt;RECFM=F&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RECFM=FB&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;LRECL=80&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;SYSPRINT is the report data set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RockZap sample JCL===&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ROCKZAP  JOB  CLASS=A,MSGCLASS=A&lt;br /&gt;
//ZAP      EXEC PGM=ROCKZAP,PARM=&#039;RockZap parms&#039;&lt;br /&gt;
//STEPLIB  DD   DSN=ROCKZAP.V106.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIB   DD   DSN=loadlib,DISP=SHR&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSIN    DD   *&lt;br /&gt;
zap control statements&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using RockZap under CMS==&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt; command is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;ROCKZAP &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;fn&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;ft&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;fm&amp;lt;/span&amp;gt;]] ( &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;options&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is invoked as a CMS command.&lt;br /&gt;
Simply enter &amp;lt;code&amp;gt;ROCKZAP&amp;lt;/code&amp;gt; followed by the&lt;br /&gt;
name of the input file.&lt;br /&gt;
The default filetype is &amp;lt;code&amp;gt;ZAP&amp;lt;/code&amp;gt;, and the&lt;br /&gt;
default filemode is &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
Options are supplied in any order following the left parenthesis.&lt;br /&gt;
See [[#options|RockZap options]] for a list of options.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; writes the report and any modified load modules to the disk&lt;br /&gt;
accessed as the &amp;quot;A&amp;quot; disk.&lt;br /&gt;
Make sure that the &amp;quot;A&amp;quot; disk is accessed in Read/Write mode.&lt;br /&gt;
&lt;br /&gt;
===Using RockZap with CMS text libraries===&lt;br /&gt;
When &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; processes a text library, the resulting text library or object files usually contain fewer records than the original.&lt;br /&gt;
No information is lost and the&lt;br /&gt;
resulting text library or object file is logically the same as the original.&lt;br /&gt;
Text records in the object file are always written with the maximum amount of object code&lt;br /&gt;
per record. Often, fewer records are required than are typically written by the&lt;br /&gt;
compiler or assembler that originally generated the object.&lt;br /&gt;
&lt;br /&gt;
This object file &amp;quot;normalization&amp;quot; is similar to how a linkage editor processes an object&lt;br /&gt;
file.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; performs this normalization so that ZAPs can be applied more efficiently.&lt;br /&gt;
&lt;br /&gt;
==RockZap return codes==&lt;br /&gt;
&amp;lt;table class=&amp;quot;thJustBold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;0&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ZAPs were processed successfully. Any modified load modules are written back to disk.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;4&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ZAPs were processed successfully, but one or more warning messages were produced. This usually indicates a CSECT was missing from one or more of the load modules. Check the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; report for the name of the module and CSECT. If any load modules were modified, they are written back to disk.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;8&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;One or more errors occurred. Check the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; report for details.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;12&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; was unable to open the input file. Make sure the filename is correct and that the file or PDS member is present.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;40&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; could not open the report file (SYSPRINT). For z/OS, make sure a DD statement for SYSPRINT is present. For CMS, the internal FILEDEF for SYSPRINT may have failed. Make sure the &amp;quot;A&amp;quot; disk is accessed in read/write mode.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deprecated options== &lt;br /&gt;
The following program options are no longer necessary.&lt;br /&gt;
It is recommended&lt;br /&gt;
that you not use them, and that if you discover them in old JCL or EXECs,&lt;br /&gt;
you correct them to use the newer recommended approaches.&lt;br /&gt;
&lt;br /&gt;
===NOVERIFY=== &lt;br /&gt;
The &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option lets you apply ZAPs that have no verify data.&lt;br /&gt;
Use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option with caution.&lt;br /&gt;
Once a ZAP is applied using &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt;,&lt;br /&gt;
the original contents of the load module are lost.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement can provide the functionality needed for applying a &amp;lt;b&amp;gt;portion&amp;lt;/b&amp;gt; of a zap without verify data, it is strongly recommended that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option, which might extend to other portions of the zap with incorrect verify data.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VERIFY=== &lt;br /&gt;
The &amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; option ensures that all replace data has been successfully&lt;br /&gt;
verified before updating the load module.&lt;br /&gt;
&amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; is a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; default, and it need not be specified.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Since it is recommended that you do not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option, you might want to avoid the &amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; option as well, thus eliminating any tendency to control requirement of verify data at the job step level.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:RKTools]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=ZAP0049_Fixed_applied:_(N-N)&amp;diff=118443</id>
		<title>ZAP0049 Fixed applied: (N-N)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=ZAP0049_Fixed_applied:_(N-N)&amp;diff=118443"/>
		<updated>2022-02-18T15:59:09Z</updated>

		<summary type="html">&lt;p&gt;Tom: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=ZAP0049_Fixes_applied:_(N-N)&amp;diff=118442</id>
		<title>ZAP0049 Fixes applied: (N-N)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=ZAP0049_Fixes_applied:_(N-N)&amp;diff=118442"/>
		<updated>2022-02-18T15:57:33Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;An informational message showing the numbers or ranges of fixes applied to the ROCKZAP load module itself. This messages appears only in ROCKZAP version 1.07 and later.   Ca...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An informational message showing the numbers or ranges of fixes applied to the ROCKZAP load module itself. This messages appears only in ROCKZAP version 1.07 and later. &lt;br /&gt;
&lt;br /&gt;
[[Category:RockZap messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=ZAP0048_Maximum_31-bit_memory_used:_(N)K_bytes&amp;diff=118441</id>
		<title>ZAP0048 Maximum 31-bit memory used: (N)K bytes</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=ZAP0048_Maximum_31-bit_memory_used:_(N)K_bytes&amp;diff=118441"/>
		<updated>2022-02-18T15:56:39Z</updated>

		<summary type="html">&lt;p&gt;Tom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An informational message indicating the total amount of 31-bit memory required by ROCKZAP. This message appears in ROCKZAP version 1.07 and later.&lt;br /&gt;
&lt;br /&gt;
[[Category:RockZap messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=ZAP0047_Maximum_24-bit_memory_used:_(N)K_bytes&amp;diff=118440</id>
		<title>ZAP0047 Maximum 24-bit memory used: (N)K bytes</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=ZAP0047_Maximum_24-bit_memory_used:_(N)K_bytes&amp;diff=118440"/>
		<updated>2022-02-18T15:55:58Z</updated>

		<summary type="html">&lt;p&gt;Tom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An informational message indicating the total amount of 24-bit memory required by ROCKZAP. This message appears in ROCKZAP version 1.07 and later.&lt;br /&gt;
&lt;br /&gt;
[[Category:RockZap messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=ZAP0049_Fixed_applied:_(N-N)&amp;diff=118439</id>
		<title>ZAP0049 Fixed applied: (N-N)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=ZAP0049_Fixed_applied:_(N-N)&amp;diff=118439"/>
		<updated>2022-02-18T15:55:20Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;An informational message showing the numbers or ranges of fixes applied to the ROCKZAP load module itself. This messages appears only in ROCKZAP version 1.07 and later.   Ca...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An informational message showing the numbers or ranges of fixes applied to the ROCKZAP load module itself. This messages appears only in ROCKZAP version 1.07 and later. &lt;br /&gt;
&lt;br /&gt;
[[Category:RockZap messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=ZAP0048_Maximum_31-bit_memory_used:_(N)K_bytes&amp;diff=118438</id>
		<title>ZAP0048 Maximum 31-bit memory used: (N)K bytes</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=ZAP0048_Maximum_31-bit_memory_used:_(N)K_bytes&amp;diff=118438"/>
		<updated>2022-02-18T15:52:47Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;An informational message indicating the total amount of 31-bit memory required by ROCKZAP.  Category:RockZap messages&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An informational message indicating the total amount of 31-bit memory required by ROCKZAP.&lt;br /&gt;
&lt;br /&gt;
[[Category:RockZap messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=ZAP0047_Maximum_24-bit_memory_used:_(N)K_bytes&amp;diff=118437</id>
		<title>ZAP0047 Maximum 24-bit memory used: (N)K bytes</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=ZAP0047_Maximum_24-bit_memory_used:_(N)K_bytes&amp;diff=118437"/>
		<updated>2022-02-18T15:50:26Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;An informational message indicating the total amount of 24-bit memory required by ROCKZAP.  Category:RockZap messages&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An informational message indicating the total amount of 24-bit memory required by ROCKZAP.&lt;br /&gt;
&lt;br /&gt;
[[Category:RockZap messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=ZAP0046_ZAPs_in_statements_(N-N)_skipped&amp;diff=118436</id>
		<title>ZAP0046 ZAPs in statements (N-N) skipped</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=ZAP0046_ZAPs_in_statements_(N-N)_skipped&amp;diff=118436"/>
		<updated>2022-02-18T15:46:33Z</updated>

		<summary type="html">&lt;p&gt;Tom: Created page with &amp;quot;An informational message indicating that the ZAPs in the specified range were not applied to the load module because the CSECT specified in the NAME statement was not found in...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An informational message indicating that the ZAPs in the specified range were not applied to the load module because the CSECT specified in the NAME statement was not found in the module.&lt;br /&gt;
&lt;br /&gt;
[[Category:RockZap messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Category:SirAud_messages&amp;diff=118435</id>
		<title>Category:SirAud messages</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Category:SirAud_messages&amp;diff=118435"/>
		<updated>2022-02-18T15:36:26Z</updated>

		<summary type="html">&lt;p&gt;Tom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note that the &#039;&#039;&#039;AUD&#039;&#039;&#039;&#039;&#039;nnn&#039;&#039; form of messages are used only for versions 1.06 and earlier of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt;; starting with version 7.8 of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; (the first version after 1.06), any messages issued by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirAud&amp;lt;/var&amp;gt; appear as &#039;&#039;&#039;MSIR.&#039;&#039;&#039;&amp;lt;i&amp;gt;wxyz&amp;lt;/i&amp;gt; messages.&lt;br /&gt;
&lt;br /&gt;
==PDF of category pages==&lt;br /&gt;
You can &amp;lt;b&amp;gt;&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} use this link]&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt; to create a PDF file that contains all the pages in this category. If this category contains a &amp;quot;Subcategories&amp;quot; section, the PDF will also contain a linked list of the pages that belong to each subcategory listed in the &amp;quot;Subcategories&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; The resulting PDF is not optimized for online use. All blue links except for those in the table of contents (TOC) take you outside of the PDF (typically to http://m204wiki.rocketsoftware.com), so you must rely on the PDF bookmarks and TOC for online navigation. Hovering your mouse over a link will reveal its destination. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Sirius messages| SirAud messages]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=RockZap&amp;diff=118434</id>
		<title>RockZap</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=RockZap&amp;diff=118434"/>
		<updated>2022-02-17T22:21:06Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* RockZap features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is a load module maintenance facility, similar to z/OS IMASPZAP&lt;br /&gt;
or the CMS ZAP command. Prior to version 7.5 of Model 204, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; was named &amp;lt;code&amp;gt;SirZap&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; modifies load modules (or for CMS, both&lt;br /&gt;
load modules and text libraries) based on&lt;br /&gt;
information from control statements supplied by the user.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is not&lt;br /&gt;
a plug compatible replacement for the IBM ZAP utilities, but it provides&lt;br /&gt;
functional and performance enhancements for load module maintenance.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is distributed as part of a software maintenance agreement&lt;br /&gt;
between Rocket Software Inc. and its customers.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is provided for&lt;br /&gt;
the purpose of applying maintenance to Rocket Model 204 products, but&lt;br /&gt;
you need not limit use of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; to those products.&lt;br /&gt;
&lt;br /&gt;
===Versions===&lt;br /&gt;
This wiki page&lt;br /&gt;
assumes that a site is running &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6 or later.&lt;br /&gt;
Any documented feature or facility that requires a later version&lt;br /&gt;
of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; will be clearly marked to indicate this.&lt;br /&gt;
If a feature or parameter is not&lt;br /&gt;
indicated as requiring any specific version of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;, it can&lt;br /&gt;
be assumed that it is available in all versions covered by this&lt;br /&gt;
document; that is, versions 1.6 and later of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Messages===&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; messages are documented in [[:Category:RockZap messages]].&lt;br /&gt;
&lt;br /&gt;
===Downloading===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Using your [[Rocket M204 user ID]] and password, log in to the [https://model204.rocketsoftware.com/maint/objlist Model 204 object file download page].&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Click the &amp;lt;b&amp;gt;Download object file&amp;lt;/b&amp;gt; link to the right of the RockZap object file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==RockZap features==&lt;br /&gt;
RockZap provides the following features:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; can save significant amounts of elapsed time and CPU for long&lt;br /&gt;
ZAP input streams.&lt;br /&gt;
This is because &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; applies all ZAPs in the input&lt;br /&gt;
stream before writing a module back to disk.&lt;br /&gt;
(IMASPZAP and CMS ZAP both&lt;br /&gt;
write parts of the load module back to disk each time a new &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt;&lt;br /&gt;
statement is encountered, reducing performance significantly.)&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; detects and reports ZAPs that are already applied.&lt;br /&gt;
Using&lt;br /&gt;
IMASPZAP or CMS ZAP, the user must inspect long CSECT dumps produced by&lt;br /&gt;
the ZAP utility in order to determine if the ZAP is already applied, or&lt;br /&gt;
simply in error.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; allows the module name on all &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements to be overridden using the &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; option.&lt;br /&gt;
This provides the ability to have the same set of &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt;s and &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt;s applied to different load modules without making global changes to the &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements.  &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; can &amp;quot;back out&amp;quot; or remove ZAPs without requiring&lt;br /&gt;
modification to the ZAP control statements.&lt;br /&gt;
By using the BACKOUT&lt;br /&gt;
option, ZAPs can be removed from the load module and replaced by the&lt;br /&gt;
original Verify data.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; limits error reporting to the specific statements in error, and it&lt;br /&gt;
reports only the information necessary to diagnose and correct the&lt;br /&gt;
error.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; only writes modified load modules.&lt;br /&gt;
If the ZAPs are already&lt;br /&gt;
completely applied, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not write the load module back to disk.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; enforces stricter rules on ZAP input statements.&lt;br /&gt;
Verify statements are required for all replaced bytes.&lt;br /&gt;
This ensures that the&lt;br /&gt;
load module contents are known before they are modified, and that a ZAP&lt;br /&gt;
can be removed or &amp;quot;backed out&amp;quot; if necessary.&lt;br /&gt;
You can override this feature,&lt;br /&gt;
however, using the &amp;lt;var&amp;gt;[[#* !NOVERIFY|* !NOVERIFY]]&amp;lt;/var&amp;gt; statement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; 1.7 and later support z/OS datasets with the LARGE attribute.&amp;lt;/li&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Differences between RockZap and IMASPZAP==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; requires that every byte in the load module that is replaced&lt;br /&gt;
is also verified, unless the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; only modifies direct access load libraries.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not&lt;br /&gt;
modify PDSEs or any other types of direct access data sets.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following SPZAP statements are not supported but are ignored&lt;br /&gt;
when encountered in the input stream: SETSSI, IDRDATA, and CHECKSUM.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following IMASPZAP statments are not supported and will cause&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; to terminate when they are encountered:&lt;br /&gt;
CONSOLE, ABSDUMP, ABSDUMPT, and RECORD.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Differences between RockZap and CMS ZAP==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; requires that every byte in the load module that is replaced&lt;br /&gt;
is also verified, unless the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not support CMS LOADLIBs.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following ZAP statements are not supported but are ignored&lt;br /&gt;
when encountered in the input stream: COMMENT and LOG.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CMS installation==&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is distributed as a single load module in VMFPLC2 format.&lt;br /&gt;
A set of object decks is also included in case linkedit is required.&lt;br /&gt;
(This might be necessary for some older CMS versions).&lt;br /&gt;
 &lt;br /&gt;
[[#downloading|Obtain]] and [[Web help download object files#How should the RockZap object file be linked?|link]] the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; object file.&lt;br /&gt;
 &lt;br /&gt;
The &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; load module is linked &amp;lt;code&amp;gt;AMODE=31&amp;lt;/code&amp;gt;.&lt;br /&gt;
If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; must be relinked&lt;br /&gt;
on your system, use the following commands:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;LOAD ROCKZAP (RESET ROCKZAP RMODE 24 AMODE 31&lt;br /&gt;
GENMOD ROCKZAP (FROM APPL&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can omit the &amp;lt;var&amp;gt;RMODE&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;AMODE&amp;lt;/var&amp;gt; parameters if you are running in a non-XA environment.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==IBM z/OS installation== &lt;br /&gt;
[[#downloading|Obtain]] and [[Web help download object files#How should the RockZap object file be linked?|link]] the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; object file.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;ROCKZAP&amp;lt;/code&amp;gt; can be copied to SYS1.LINKLIB or SYS1.LPALIB, and it is reentrant.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div id=&amp;quot;options&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==RockZap options==&lt;br /&gt;
z/OS users supply &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; options in the &amp;lt;code&amp;gt;PARM&amp;lt;/code&amp;gt; parameter of the EXEC job control statement.&lt;br /&gt;
&lt;br /&gt;
For example, to force uppercase output and to&lt;br /&gt;
backout ZAPs, use the following EXEC statement:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ROCKZAP EXEC PGM=ROCKZAP,PARM=&#039;UPPER,BACKOUT&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
CMS users specify options following a left parenthesis on the &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt;&lt;br /&gt;
command line.&lt;br /&gt;
&lt;br /&gt;
For example, to force uppercase output and to backout the&lt;br /&gt;
ZAPs in the file &amp;lt;code&amp;gt;LOCAL ZAP A1&amp;lt;/code&amp;gt;, specify the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;ROCKZAP LOCAL ( BACKOUT UPPER&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BACKOUT===&lt;br /&gt;
The &amp;lt;var&amp;gt;BACKOUT&amp;lt;/var&amp;gt; option removes a ZAP without requiring any modification to&lt;br /&gt;
the ZAP input statements.&lt;br /&gt;
&amp;lt;var&amp;gt;BACKOUT&amp;lt;/var&amp;gt; reverses the effect of a ZAP by&lt;br /&gt;
replacing the original &amp;lt;code&amp;gt;Verify&amp;lt;/code&amp;gt; data in the module.&lt;br /&gt;
&lt;br /&gt;
If the ZAPs were applied with IMASPZAP, CMS ZAP, or with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; using the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; might not be able to perform a backout because all the original &amp;lt;code&amp;gt;Verify&amp;lt;/code&amp;gt; data might not be present.&lt;br /&gt;
&lt;br /&gt;
===EXTRACT filetype===&lt;br /&gt;
The &amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; option lets you extract individual object files from&lt;br /&gt;
a CMS text library.&lt;br /&gt;
&amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; can only be used when the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is also&lt;br /&gt;
specified.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; requires a parameter that specifies the file type&lt;br /&gt;
of the object files it creates. One object file is created for each&lt;br /&gt;
member of the text library. The text library member name is used as the CMS file name.&lt;br /&gt;
&lt;br /&gt;
===MODULE===&lt;br /&gt;
The &amp;lt;var&amp;gt;MODULE=&amp;lt;i&amp;gt;modname&amp;lt;/i&amp;gt;&amp;lt;/var&amp;gt; option allows the module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement to be overridden with a single load-module name. This means that you can use the same &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt; jobstream to apply the same zaps to different load modules in the designated load library (SYSLIB) without making changes to any of the &amp;lt;var&amp;gt;[[#NAME|NAME]]&amp;lt;/var&amp;gt; control statements.  &lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;PARM=&#039;MODULE=ONLINE&#039;&amp;lt;/code&amp;gt; applies the zaps to the module named &amp;lt;code&amp;gt;ONLINE&amp;lt;/code&amp;gt; in the designated load library, regardless of the load-module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.  Then, using the same job stream, &amp;lt;code&amp;gt;PARM=&#039;MODULE=ONLINTST&#039;&amp;lt;/code&amp;gt; applies the same zaps to the module named &amp;lt;code&amp;gt;ONLINTST&amp;lt;/code&amp;gt;, again, regardless of the load-module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you are applying zaps to a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; load module, you &amp;lt;i&amp;gt;must&amp;lt;/i&amp;gt; specify a value for &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; option was introduced in version 1.6 of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===REPORT=== &lt;br /&gt;
Under the &amp;lt;var&amp;gt;REPORT&amp;lt;/var&amp;gt; option, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; runs normally but does not update any load modules. This is useful if you have a production load module you do not want to modify, but you do want to know whether or not a particular set of ZAPs are applied.&lt;br /&gt;
&lt;br /&gt;
===TXTLIB txtlib=== &lt;br /&gt;
The &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is valid under CMS only.&lt;br /&gt;
&amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; specifies that the&lt;br /&gt;
ZAPs should be applied to a CMS text library instead of a load module.&lt;br /&gt;
 &lt;br /&gt;
You must provide the name of the text library following the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt;&lt;br /&gt;
parameter.&lt;br /&gt;
The first parameter of the name statement (the module name)&lt;br /&gt;
is ignored when using the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option.&lt;br /&gt;
Only the CSECT name is used for text libraries.&lt;br /&gt;
No load modules are inspected or modified when the&lt;br /&gt;
&amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is specified.&lt;br /&gt;
&lt;br /&gt;
===UPPER=== &lt;br /&gt;
The &amp;lt;var&amp;gt;UPPER&amp;lt;/var&amp;gt; option forces all &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; output to uppercase.&lt;br /&gt;
This is usually unnecessary, except on certain Japanese terminals and&lt;br /&gt;
when sending output to uppercase-only printers.&lt;br /&gt;
&amp;lt;var&amp;gt;UPPER&amp;lt;/var&amp;gt; is the default setting for Hitachi and Fujitsu systems.&lt;br /&gt;
&lt;br /&gt;
==RockZap control statements== &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; control statements appear in columns 1 to 72 in fixed length,&lt;br /&gt;
80 byte records.&lt;br /&gt;
Statements that begin with an asterisk are treated as&lt;br /&gt;
comments and are ignored, except for the two special inline parameter statements&lt;br /&gt;
&amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt;.&lt;br /&gt;
Control statements can begin in any column,&lt;br /&gt;
but line continuation is not allowed.&lt;br /&gt;
&lt;br /&gt;
===VER===&lt;br /&gt;
The &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement identifies a range of bytes to be matched with the&lt;br /&gt;
load module contents.&lt;br /&gt;
&amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statements must follow a &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
A &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement must be present for each range of bytes that will be&lt;br /&gt;
replaced in the load module.&lt;br /&gt;
This is to ensure that the ZAP can be backed out later if necessary.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;VER &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset verify-values comments&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal displacement from the start of the CSECT specified in the previous &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement, or from the start of the load module if no CSECT was specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;verify-values&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pairs of hexadecimal characters optionally separated by commas. The values are the expected contents of the load module at the specified offset. Uppercase or lowercase hexadecimal data are acceptable.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;comments&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Any characters after the first blank after the last &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;verify-values&amp;lt;/var&amp;gt; character are ignored by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The following are all valid &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statements:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;VER 00 010203,040506   &amp;lt;i&amp;gt;Verify bytes at offset 0.&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
VER 01ca 47f0,c0e9&lt;br /&gt;
 &lt;br /&gt;
VER 23EC D20310004000,90ECD000,07FC&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===REP=== &lt;br /&gt;
The &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement identifies a range of bytes to replace the current&lt;br /&gt;
contents of a load module.&lt;br /&gt;
The &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement must be preceded by &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt;&lt;br /&gt;
statements that cover the entire range of bytes that will be replaced.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;REP &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset replace-value comments&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal displacement from the start of the CSECT in the previous &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;replace-value&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pairs of hexadecimal characters optionally separated by commas. The values will replace the contents of the load module at the specified offset. Uppercase or lowercase hexadecimal data are acceptable.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;comments&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Any characters after the first blank after the last &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;replace-value&amp;lt;/var&amp;gt; character are ignored by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The following are all valid &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statements:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;REP 00 FFFFFF,FFFFFF   &amp;lt;i&amp;gt;Replace bytes at offset 0.&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
REP 01ca 47f0,c0e8&lt;br /&gt;
 &lt;br /&gt;
REP 23EC D203101C4000,90ECD008,07FE&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NAME===&lt;br /&gt;
The &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement identifies a load module, and optionally a CSECT, that defines the context for the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statements that follow.&lt;br /&gt;
&amp;lt;var&amp;gt;NAMEX&amp;lt;/var&amp;gt; is a synonym for &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; that allows compatibility with the Fujitsu&lt;br /&gt;
OSIV ZAP utility.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NAME &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/span&amp;gt;]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;module&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the load module. Under CMS the filetype must be &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt;. Under z/OS this is the name of a PDS member in the load library.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;csect&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the control section in the load module. A &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value is optional. If the CSECT name is missing, subsequent verify and replace displacements are calculated from offset 0 in the load module.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can use the &amp;lt;var&amp;gt;[[#MODULE|MODULE]]&amp;lt;/var&amp;gt; parameter to override the module name in &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DUMP or DUMPT=== &lt;br /&gt;
The &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt; statement prints all or part of the contents of a load&lt;br /&gt;
module or CMS text library to SYSPRINT.&lt;br /&gt;
Specifying &amp;lt;var&amp;gt;DUMPT&amp;lt;/var&amp;gt; has the same effect as &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
The format of the &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;DUMPT&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;DUMP[T] &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;name&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;length&amp;lt;/span&amp;gt;]]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the load module or text library. Under CMS, specify the filename (only) of a file whose filetype must be &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt;. Under z/OS, specify the name of a PDS member in the load library.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;csect&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the control section. A &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value is optional. If the CSECT clause is missing, the entire load module or text library contents are dumped.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal starting offset within the CSECT. This is optional, and it can only be specified when a &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; name is specified. Use the &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/var&amp;gt; parameter when you want to dump only a part of a CSECT. If the offset is omitted, it defaults to 0.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;length&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The number of bytes (in hexadecimal) of the CSECT to dump. This is an optional parameter, and it can only be specified if a &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value and starting &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/var&amp;gt; value are specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===* !VERIFY===&lt;br /&gt;
The special statement &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; (and &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt;) lets you control whether individual ZAPs are verified before being applied.&lt;br /&gt;
 &lt;br /&gt;
The main purpose of these statements is to override whether the current portion of the zap requires verify data. This can be useful when a single ZAP in an input stream containing many ZAPs has no verify data.&lt;br /&gt;
 &lt;br /&gt;
The asterisk and space are necessary so that other ZAP utilities treat&lt;br /&gt;
the statements as comments.&lt;br /&gt;
 &lt;br /&gt;
Use &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; anywhere within the ZAP input stream.&lt;br /&gt;
ZAPs following the &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; statement are verified (the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; data must match the module contents) before the ZAP is applied.&lt;br /&gt;
 &lt;br /&gt;
Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is new in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6, you might have &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; JCL or&lt;br /&gt;
EXECs that use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option to accomplish this purpose, but at&lt;br /&gt;
a dangerous job step level.&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt; &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;It is strongly recommended&amp;lt;/i&amp;gt; that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option, but do use&lt;br /&gt;
the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement instead, and only when needed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===* !NOVERIFY===&lt;br /&gt;
The special inline statement&lt;br /&gt;
&amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; (and &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt;) lets you control&lt;br /&gt;
whether individual ZAPs are verified before being applied.&lt;br /&gt;
The main purpose of these statements is to override whether the current&lt;br /&gt;
portion of the zap requires verify data.&lt;br /&gt;
This can be useful when a single ZAP in an input stream containing many ZAPs has no verify&lt;br /&gt;
data or the verify data is known to be incorrect.&lt;br /&gt;
 &lt;br /&gt;
Use &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; anywhere within the ZAP input stream.&lt;br /&gt;
ZAPs following the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement are not verified (the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; data may be missing or not match the module contents) before the ZAP is applied.&lt;br /&gt;
 &lt;br /&gt;
Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is new in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6, you might have &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; JCL or&lt;br /&gt;
EXECs that use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option to accomplish this purpose, but at&lt;br /&gt;
a dangerous job step level.&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;It is strongly recommended&amp;lt;/i&amp;gt; that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option, but do use the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement instead, and only when needed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using RockZap under z/OS==&lt;br /&gt;
Job Control requirements for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; are the same as for IMASPZAP. Most &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; storage is allocated above the 16 megabyte line, so the default region size should be sufficient.&lt;br /&gt;
&lt;br /&gt;
===RockZap DD statements===&lt;br /&gt;
Required statements:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SYSLIB points to the load library PDS (Partitioned Data&lt;br /&gt;
Set) containing the load module you want to ZAP. The load library cannot be a PDSE (Partition Data Set Extended) dataset.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;SYSIN contains the ZAP control statements and must&lt;br /&gt;
have the DCB attributes of &amp;lt;code&amp;gt;RECFM=F&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RECFM=FB&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;LRECL=80&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;SYSPRINT is the report data set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RockZap sample JCL===&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ROCKZAP  JOB  CLASS=A,MSGCLASS=A&lt;br /&gt;
//ZAP      EXEC PGM=ROCKZAP,PARM=&#039;RockZap parms&#039;&lt;br /&gt;
//STEPLIB  DD   DSN=ROCKZAP.V106.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIB   DD   DSN=loadlib,DISP=SHR&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSIN    DD   *&lt;br /&gt;
zap control statements&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using RockZap under CMS==&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt; command is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;ROCKZAP &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;fn&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;ft&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;fm&amp;lt;/span&amp;gt;]] ( &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;options&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is invoked as a CMS command.&lt;br /&gt;
Simply enter &amp;lt;code&amp;gt;ROCKZAP&amp;lt;/code&amp;gt; followed by the&lt;br /&gt;
name of the input file.&lt;br /&gt;
The default filetype is &amp;lt;code&amp;gt;ZAP&amp;lt;/code&amp;gt;, and the&lt;br /&gt;
default filemode is &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
Options are supplied in any order following the left parenthesis.&lt;br /&gt;
See [[#options|RockZap options]] for a list of options.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; writes the report and any modified load modules to the disk&lt;br /&gt;
accessed as the &amp;quot;A&amp;quot; disk.&lt;br /&gt;
Make sure that the &amp;quot;A&amp;quot; disk is accessed in Read/Write mode.&lt;br /&gt;
&lt;br /&gt;
===Using RockZap with CMS text libraries===&lt;br /&gt;
When &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; processes a text library, the resulting text library or object files usually contain fewer records than the original.&lt;br /&gt;
No information is lost and the&lt;br /&gt;
resulting text library or object file is logically the same as the original.&lt;br /&gt;
Text records in the object file are always written with the maximum amount of object code&lt;br /&gt;
per record. Often, fewer records are required than are typically written by the&lt;br /&gt;
compiler or assembler that originally generated the object.&lt;br /&gt;
&lt;br /&gt;
This object file &amp;quot;normalization&amp;quot; is similar to how a linkage editor processes an object&lt;br /&gt;
file.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; performs this normalization so that ZAPs can be applied more efficiently.&lt;br /&gt;
&lt;br /&gt;
==RockZap return codes==&lt;br /&gt;
&amp;lt;table class=&amp;quot;thJustBold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;0&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ZAPs were processed successfully. Any modified load modules are written back to disk.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;4&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ZAPs were processed successfully, but one or more warning messages were produced. This usually indicates a CSECT was missing from one or more of the load modules. Check the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; report for the name of the module and CSECT. If any load modules were modified, they are written back to disk.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;8&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;One or more errors occurred. Check the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; report for details.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;12&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; was unable to open the input file. Make sure the filename is correct and that the file or PDS member is present.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;40&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; could not open the report file (SYSPRINT). For z/OS, make sure a DD statement for SYSPRINT is present. For CMS, the internal FILEDEF for SYSPRINT may have failed. Make sure the &amp;quot;A&amp;quot; disk is accessed in read/write mode.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deprecated options== &lt;br /&gt;
The following program options are no longer necessary.&lt;br /&gt;
It is recommended&lt;br /&gt;
that you not use them, and that if you discover them in old JCL or EXECs,&lt;br /&gt;
you correct them to use the newer recommended approaches.&lt;br /&gt;
&lt;br /&gt;
===NOVERIFY=== &lt;br /&gt;
The &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option lets you apply ZAPs that have no verify data.&lt;br /&gt;
Use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option with caution.&lt;br /&gt;
Once a ZAP is applied using &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt;,&lt;br /&gt;
the original contents of the load module are lost.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement can provide the functionality needed for applying a &amp;lt;b&amp;gt;portion&amp;lt;/b&amp;gt; of a zap without verify data, it is strongly recommended that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option, which might extend to other portions of the zap with incorrect verify data.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VERIFY=== &lt;br /&gt;
The &amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; option ensures that all replace data has been successfully&lt;br /&gt;
verified before updating the load module.&lt;br /&gt;
&amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; is a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; default, and it need not be specified.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Since it is recommended that you do not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option, you might want to avoid the &amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; option as well, thus eliminating any tendency to control requirement of verify data at the job step level.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:RKTools]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=RockZap&amp;diff=118433</id>
		<title>RockZap</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=RockZap&amp;diff=118433"/>
		<updated>2022-02-17T22:20:34Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* RockZap features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is a load module maintenance facility, similar to z/OS IMASPZAP&lt;br /&gt;
or the CMS ZAP command. Prior to version 7.5 of Model 204, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; was named &amp;lt;code&amp;gt;SirZap&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; modifies load modules (or for CMS, both&lt;br /&gt;
load modules and text libraries) based on&lt;br /&gt;
information from control statements supplied by the user.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is not&lt;br /&gt;
a plug compatible replacement for the IBM ZAP utilities, but it provides&lt;br /&gt;
functional and performance enhancements for load module maintenance.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is distributed as part of a software maintenance agreement&lt;br /&gt;
between Rocket Software Inc. and its customers.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is provided for&lt;br /&gt;
the purpose of applying maintenance to Rocket Model 204 products, but&lt;br /&gt;
you need not limit use of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; to those products.&lt;br /&gt;
&lt;br /&gt;
===Versions===&lt;br /&gt;
This wiki page&lt;br /&gt;
assumes that a site is running &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6 or later.&lt;br /&gt;
Any documented feature or facility that requires a later version&lt;br /&gt;
of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; will be clearly marked to indicate this.&lt;br /&gt;
If a feature or parameter is not&lt;br /&gt;
indicated as requiring any specific version of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;, it can&lt;br /&gt;
be assumed that it is available in all versions covered by this&lt;br /&gt;
document; that is, versions 1.6 and later of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Messages===&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; messages are documented in [[:Category:RockZap messages]].&lt;br /&gt;
&lt;br /&gt;
===Downloading===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Using your [[Rocket M204 user ID]] and password, log in to the [https://model204.rocketsoftware.com/maint/objlist Model 204 object file download page].&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Click the &amp;lt;b&amp;gt;Download object file&amp;lt;/b&amp;gt; link to the right of the RockZap object file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==RockZap features==&lt;br /&gt;
RockZap provides the following features:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; can save significant amounts of elapsed time and CPU for long&lt;br /&gt;
ZAP input streams.&lt;br /&gt;
This is because &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; applies all ZAPs in the input&lt;br /&gt;
stream before writing a module back to disk.&lt;br /&gt;
(IMASPZAP and CMS ZAP both&lt;br /&gt;
write parts of the load module back to disk each time a new &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt;&lt;br /&gt;
statement is encountered, reducing performance significantly.)&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; detects and reports ZAPs that are already applied.&lt;br /&gt;
Using&lt;br /&gt;
IMASPZAP or CMS ZAP, the user must inspect long CSECT dumps produced by&lt;br /&gt;
the ZAP utility in order to determine if the ZAP is already applied, or&lt;br /&gt;
simply in error.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; allows the module name on all &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements to be overridden using the &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; option.&lt;br /&gt;
This provides the ability to have the same set of &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt;s and &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt;s applied to different load modules without making global changes to the &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements.  &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; can &amp;quot;back out&amp;quot; or remove ZAPs without requiring&lt;br /&gt;
modification to the ZAP control statements.&lt;br /&gt;
By using the BACKOUT&lt;br /&gt;
option, ZAPs can be removed from the load module and replaced by the&lt;br /&gt;
original Verify data.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; limits error reporting to the specific statements in error, and it&lt;br /&gt;
reports only the information necessary to diagnose and correct the&lt;br /&gt;
error.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; only writes modified load modules.&lt;br /&gt;
If the ZAPs are already&lt;br /&gt;
completely applied, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not write the load module back to disk.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; enforces stricter rules on ZAP input statements.&lt;br /&gt;
Verify statements are required for all replaced bytes.&lt;br /&gt;
This ensures that the&lt;br /&gt;
load module contents are known before they are modified, and that a ZAP&lt;br /&gt;
can be removed or &amp;quot;backed out&amp;quot; if necessary.&lt;br /&gt;
You can override this feature,&lt;br /&gt;
however, using the &amp;lt;var&amp;gt;[[#* !NOVERIFY|* !NOVERIFY]]&amp;lt;/var&amp;gt; statement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; 1.7 and later support LARGE z/OS datasets.&amp;lt;/li&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Differences between RockZap and IMASPZAP==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; requires that every byte in the load module that is replaced&lt;br /&gt;
is also verified, unless the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; only modifies direct access load libraries.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not&lt;br /&gt;
modify PDSEs or any other types of direct access data sets.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following SPZAP statements are not supported but are ignored&lt;br /&gt;
when encountered in the input stream: SETSSI, IDRDATA, and CHECKSUM.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following IMASPZAP statments are not supported and will cause&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; to terminate when they are encountered:&lt;br /&gt;
CONSOLE, ABSDUMP, ABSDUMPT, and RECORD.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Differences between RockZap and CMS ZAP==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; requires that every byte in the load module that is replaced&lt;br /&gt;
is also verified, unless the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not support CMS LOADLIBs.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following ZAP statements are not supported but are ignored&lt;br /&gt;
when encountered in the input stream: COMMENT and LOG.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CMS installation==&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is distributed as a single load module in VMFPLC2 format.&lt;br /&gt;
A set of object decks is also included in case linkedit is required.&lt;br /&gt;
(This might be necessary for some older CMS versions).&lt;br /&gt;
 &lt;br /&gt;
[[#downloading|Obtain]] and [[Web help download object files#How should the RockZap object file be linked?|link]] the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; object file.&lt;br /&gt;
 &lt;br /&gt;
The &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; load module is linked &amp;lt;code&amp;gt;AMODE=31&amp;lt;/code&amp;gt;.&lt;br /&gt;
If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; must be relinked&lt;br /&gt;
on your system, use the following commands:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;LOAD ROCKZAP (RESET ROCKZAP RMODE 24 AMODE 31&lt;br /&gt;
GENMOD ROCKZAP (FROM APPL&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can omit the &amp;lt;var&amp;gt;RMODE&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;AMODE&amp;lt;/var&amp;gt; parameters if you are running in a non-XA environment.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==IBM z/OS installation== &lt;br /&gt;
[[#downloading|Obtain]] and [[Web help download object files#How should the RockZap object file be linked?|link]] the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; object file.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;ROCKZAP&amp;lt;/code&amp;gt; can be copied to SYS1.LINKLIB or SYS1.LPALIB, and it is reentrant.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div id=&amp;quot;options&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==RockZap options==&lt;br /&gt;
z/OS users supply &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; options in the &amp;lt;code&amp;gt;PARM&amp;lt;/code&amp;gt; parameter of the EXEC job control statement.&lt;br /&gt;
&lt;br /&gt;
For example, to force uppercase output and to&lt;br /&gt;
backout ZAPs, use the following EXEC statement:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ROCKZAP EXEC PGM=ROCKZAP,PARM=&#039;UPPER,BACKOUT&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
CMS users specify options following a left parenthesis on the &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt;&lt;br /&gt;
command line.&lt;br /&gt;
&lt;br /&gt;
For example, to force uppercase output and to backout the&lt;br /&gt;
ZAPs in the file &amp;lt;code&amp;gt;LOCAL ZAP A1&amp;lt;/code&amp;gt;, specify the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;ROCKZAP LOCAL ( BACKOUT UPPER&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BACKOUT===&lt;br /&gt;
The &amp;lt;var&amp;gt;BACKOUT&amp;lt;/var&amp;gt; option removes a ZAP without requiring any modification to&lt;br /&gt;
the ZAP input statements.&lt;br /&gt;
&amp;lt;var&amp;gt;BACKOUT&amp;lt;/var&amp;gt; reverses the effect of a ZAP by&lt;br /&gt;
replacing the original &amp;lt;code&amp;gt;Verify&amp;lt;/code&amp;gt; data in the module.&lt;br /&gt;
&lt;br /&gt;
If the ZAPs were applied with IMASPZAP, CMS ZAP, or with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; using the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; might not be able to perform a backout because all the original &amp;lt;code&amp;gt;Verify&amp;lt;/code&amp;gt; data might not be present.&lt;br /&gt;
&lt;br /&gt;
===EXTRACT filetype===&lt;br /&gt;
The &amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; option lets you extract individual object files from&lt;br /&gt;
a CMS text library.&lt;br /&gt;
&amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; can only be used when the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is also&lt;br /&gt;
specified.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; requires a parameter that specifies the file type&lt;br /&gt;
of the object files it creates. One object file is created for each&lt;br /&gt;
member of the text library. The text library member name is used as the CMS file name.&lt;br /&gt;
&lt;br /&gt;
===MODULE===&lt;br /&gt;
The &amp;lt;var&amp;gt;MODULE=&amp;lt;i&amp;gt;modname&amp;lt;/i&amp;gt;&amp;lt;/var&amp;gt; option allows the module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement to be overridden with a single load-module name. This means that you can use the same &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt; jobstream to apply the same zaps to different load modules in the designated load library (SYSLIB) without making changes to any of the &amp;lt;var&amp;gt;[[#NAME|NAME]]&amp;lt;/var&amp;gt; control statements.  &lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;PARM=&#039;MODULE=ONLINE&#039;&amp;lt;/code&amp;gt; applies the zaps to the module named &amp;lt;code&amp;gt;ONLINE&amp;lt;/code&amp;gt; in the designated load library, regardless of the load-module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.  Then, using the same job stream, &amp;lt;code&amp;gt;PARM=&#039;MODULE=ONLINTST&#039;&amp;lt;/code&amp;gt; applies the same zaps to the module named &amp;lt;code&amp;gt;ONLINTST&amp;lt;/code&amp;gt;, again, regardless of the load-module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you are applying zaps to a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; load module, you &amp;lt;i&amp;gt;must&amp;lt;/i&amp;gt; specify a value for &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; option was introduced in version 1.6 of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===REPORT=== &lt;br /&gt;
Under the &amp;lt;var&amp;gt;REPORT&amp;lt;/var&amp;gt; option, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; runs normally but does not update any load modules. This is useful if you have a production load module you do not want to modify, but you do want to know whether or not a particular set of ZAPs are applied.&lt;br /&gt;
&lt;br /&gt;
===TXTLIB txtlib=== &lt;br /&gt;
The &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is valid under CMS only.&lt;br /&gt;
&amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; specifies that the&lt;br /&gt;
ZAPs should be applied to a CMS text library instead of a load module.&lt;br /&gt;
 &lt;br /&gt;
You must provide the name of the text library following the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt;&lt;br /&gt;
parameter.&lt;br /&gt;
The first parameter of the name statement (the module name)&lt;br /&gt;
is ignored when using the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option.&lt;br /&gt;
Only the CSECT name is used for text libraries.&lt;br /&gt;
No load modules are inspected or modified when the&lt;br /&gt;
&amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is specified.&lt;br /&gt;
&lt;br /&gt;
===UPPER=== &lt;br /&gt;
The &amp;lt;var&amp;gt;UPPER&amp;lt;/var&amp;gt; option forces all &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; output to uppercase.&lt;br /&gt;
This is usually unnecessary, except on certain Japanese terminals and&lt;br /&gt;
when sending output to uppercase-only printers.&lt;br /&gt;
&amp;lt;var&amp;gt;UPPER&amp;lt;/var&amp;gt; is the default setting for Hitachi and Fujitsu systems.&lt;br /&gt;
&lt;br /&gt;
==RockZap control statements== &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; control statements appear in columns 1 to 72 in fixed length,&lt;br /&gt;
80 byte records.&lt;br /&gt;
Statements that begin with an asterisk are treated as&lt;br /&gt;
comments and are ignored, except for the two special inline parameter statements&lt;br /&gt;
&amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt;.&lt;br /&gt;
Control statements can begin in any column,&lt;br /&gt;
but line continuation is not allowed.&lt;br /&gt;
&lt;br /&gt;
===VER===&lt;br /&gt;
The &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement identifies a range of bytes to be matched with the&lt;br /&gt;
load module contents.&lt;br /&gt;
&amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statements must follow a &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
A &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement must be present for each range of bytes that will be&lt;br /&gt;
replaced in the load module.&lt;br /&gt;
This is to ensure that the ZAP can be backed out later if necessary.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;VER &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset verify-values comments&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal displacement from the start of the CSECT specified in the previous &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement, or from the start of the load module if no CSECT was specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;verify-values&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pairs of hexadecimal characters optionally separated by commas. The values are the expected contents of the load module at the specified offset. Uppercase or lowercase hexadecimal data are acceptable.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;comments&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Any characters after the first blank after the last &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;verify-values&amp;lt;/var&amp;gt; character are ignored by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The following are all valid &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statements:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;VER 00 010203,040506   &amp;lt;i&amp;gt;Verify bytes at offset 0.&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
VER 01ca 47f0,c0e9&lt;br /&gt;
 &lt;br /&gt;
VER 23EC D20310004000,90ECD000,07FC&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===REP=== &lt;br /&gt;
The &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement identifies a range of bytes to replace the current&lt;br /&gt;
contents of a load module.&lt;br /&gt;
The &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement must be preceded by &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt;&lt;br /&gt;
statements that cover the entire range of bytes that will be replaced.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;REP &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset replace-value comments&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal displacement from the start of the CSECT in the previous &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;replace-value&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pairs of hexadecimal characters optionally separated by commas. The values will replace the contents of the load module at the specified offset. Uppercase or lowercase hexadecimal data are acceptable.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;comments&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Any characters after the first blank after the last &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;replace-value&amp;lt;/var&amp;gt; character are ignored by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The following are all valid &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statements:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;REP 00 FFFFFF,FFFFFF   &amp;lt;i&amp;gt;Replace bytes at offset 0.&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
REP 01ca 47f0,c0e8&lt;br /&gt;
 &lt;br /&gt;
REP 23EC D203101C4000,90ECD008,07FE&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NAME===&lt;br /&gt;
The &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement identifies a load module, and optionally a CSECT, that defines the context for the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statements that follow.&lt;br /&gt;
&amp;lt;var&amp;gt;NAMEX&amp;lt;/var&amp;gt; is a synonym for &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; that allows compatibility with the Fujitsu&lt;br /&gt;
OSIV ZAP utility.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NAME &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/span&amp;gt;]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;module&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the load module. Under CMS the filetype must be &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt;. Under z/OS this is the name of a PDS member in the load library.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;csect&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the control section in the load module. A &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value is optional. If the CSECT name is missing, subsequent verify and replace displacements are calculated from offset 0 in the load module.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can use the &amp;lt;var&amp;gt;[[#MODULE|MODULE]]&amp;lt;/var&amp;gt; parameter to override the module name in &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DUMP or DUMPT=== &lt;br /&gt;
The &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt; statement prints all or part of the contents of a load&lt;br /&gt;
module or CMS text library to SYSPRINT.&lt;br /&gt;
Specifying &amp;lt;var&amp;gt;DUMPT&amp;lt;/var&amp;gt; has the same effect as &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
The format of the &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;DUMPT&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;DUMP[T] &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;name&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;length&amp;lt;/span&amp;gt;]]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the load module or text library. Under CMS, specify the filename (only) of a file whose filetype must be &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt;. Under z/OS, specify the name of a PDS member in the load library.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;csect&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the control section. A &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value is optional. If the CSECT clause is missing, the entire load module or text library contents are dumped.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal starting offset within the CSECT. This is optional, and it can only be specified when a &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; name is specified. Use the &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/var&amp;gt; parameter when you want to dump only a part of a CSECT. If the offset is omitted, it defaults to 0.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;length&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The number of bytes (in hexadecimal) of the CSECT to dump. This is an optional parameter, and it can only be specified if a &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value and starting &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/var&amp;gt; value are specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===* !VERIFY===&lt;br /&gt;
The special statement &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; (and &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt;) lets you control whether individual ZAPs are verified before being applied.&lt;br /&gt;
 &lt;br /&gt;
The main purpose of these statements is to override whether the current portion of the zap requires verify data. This can be useful when a single ZAP in an input stream containing many ZAPs has no verify data.&lt;br /&gt;
 &lt;br /&gt;
The asterisk and space are necessary so that other ZAP utilities treat&lt;br /&gt;
the statements as comments.&lt;br /&gt;
 &lt;br /&gt;
Use &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; anywhere within the ZAP input stream.&lt;br /&gt;
ZAPs following the &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; statement are verified (the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; data must match the module contents) before the ZAP is applied.&lt;br /&gt;
 &lt;br /&gt;
Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is new in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6, you might have &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; JCL or&lt;br /&gt;
EXECs that use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option to accomplish this purpose, but at&lt;br /&gt;
a dangerous job step level.&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt; &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;It is strongly recommended&amp;lt;/i&amp;gt; that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option, but do use&lt;br /&gt;
the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement instead, and only when needed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===* !NOVERIFY===&lt;br /&gt;
The special inline statement&lt;br /&gt;
&amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; (and &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt;) lets you control&lt;br /&gt;
whether individual ZAPs are verified before being applied.&lt;br /&gt;
The main purpose of these statements is to override whether the current&lt;br /&gt;
portion of the zap requires verify data.&lt;br /&gt;
This can be useful when a single ZAP in an input stream containing many ZAPs has no verify&lt;br /&gt;
data or the verify data is known to be incorrect.&lt;br /&gt;
 &lt;br /&gt;
Use &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; anywhere within the ZAP input stream.&lt;br /&gt;
ZAPs following the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement are not verified (the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; data may be missing or not match the module contents) before the ZAP is applied.&lt;br /&gt;
 &lt;br /&gt;
Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is new in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6, you might have &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; JCL or&lt;br /&gt;
EXECs that use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option to accomplish this purpose, but at&lt;br /&gt;
a dangerous job step level.&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;It is strongly recommended&amp;lt;/i&amp;gt; that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option, but do use the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement instead, and only when needed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using RockZap under z/OS==&lt;br /&gt;
Job Control requirements for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; are the same as for IMASPZAP. Most &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; storage is allocated above the 16 megabyte line, so the default region size should be sufficient.&lt;br /&gt;
&lt;br /&gt;
===RockZap DD statements===&lt;br /&gt;
Required statements:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SYSLIB points to the load library PDS (Partitioned Data&lt;br /&gt;
Set) containing the load module you want to ZAP. The load library cannot be a PDSE (Partition Data Set Extended) dataset.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;SYSIN contains the ZAP control statements and must&lt;br /&gt;
have the DCB attributes of &amp;lt;code&amp;gt;RECFM=F&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RECFM=FB&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;LRECL=80&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;SYSPRINT is the report data set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RockZap sample JCL===&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ROCKZAP  JOB  CLASS=A,MSGCLASS=A&lt;br /&gt;
//ZAP      EXEC PGM=ROCKZAP,PARM=&#039;RockZap parms&#039;&lt;br /&gt;
//STEPLIB  DD   DSN=ROCKZAP.V106.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIB   DD   DSN=loadlib,DISP=SHR&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSIN    DD   *&lt;br /&gt;
zap control statements&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using RockZap under CMS==&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt; command is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;ROCKZAP &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;fn&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;ft&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;fm&amp;lt;/span&amp;gt;]] ( &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;options&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is invoked as a CMS command.&lt;br /&gt;
Simply enter &amp;lt;code&amp;gt;ROCKZAP&amp;lt;/code&amp;gt; followed by the&lt;br /&gt;
name of the input file.&lt;br /&gt;
The default filetype is &amp;lt;code&amp;gt;ZAP&amp;lt;/code&amp;gt;, and the&lt;br /&gt;
default filemode is &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
Options are supplied in any order following the left parenthesis.&lt;br /&gt;
See [[#options|RockZap options]] for a list of options.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; writes the report and any modified load modules to the disk&lt;br /&gt;
accessed as the &amp;quot;A&amp;quot; disk.&lt;br /&gt;
Make sure that the &amp;quot;A&amp;quot; disk is accessed in Read/Write mode.&lt;br /&gt;
&lt;br /&gt;
===Using RockZap with CMS text libraries===&lt;br /&gt;
When &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; processes a text library, the resulting text library or object files usually contain fewer records than the original.&lt;br /&gt;
No information is lost and the&lt;br /&gt;
resulting text library or object file is logically the same as the original.&lt;br /&gt;
Text records in the object file are always written with the maximum amount of object code&lt;br /&gt;
per record. Often, fewer records are required than are typically written by the&lt;br /&gt;
compiler or assembler that originally generated the object.&lt;br /&gt;
&lt;br /&gt;
This object file &amp;quot;normalization&amp;quot; is similar to how a linkage editor processes an object&lt;br /&gt;
file.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; performs this normalization so that ZAPs can be applied more efficiently.&lt;br /&gt;
&lt;br /&gt;
==RockZap return codes==&lt;br /&gt;
&amp;lt;table class=&amp;quot;thJustBold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;0&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ZAPs were processed successfully. Any modified load modules are written back to disk.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;4&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ZAPs were processed successfully, but one or more warning messages were produced. This usually indicates a CSECT was missing from one or more of the load modules. Check the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; report for the name of the module and CSECT. If any load modules were modified, they are written back to disk.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;8&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;One or more errors occurred. Check the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; report for details.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;12&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; was unable to open the input file. Make sure the filename is correct and that the file or PDS member is present.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;40&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; could not open the report file (SYSPRINT). For z/OS, make sure a DD statement for SYSPRINT is present. For CMS, the internal FILEDEF for SYSPRINT may have failed. Make sure the &amp;quot;A&amp;quot; disk is accessed in read/write mode.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deprecated options== &lt;br /&gt;
The following program options are no longer necessary.&lt;br /&gt;
It is recommended&lt;br /&gt;
that you not use them, and that if you discover them in old JCL or EXECs,&lt;br /&gt;
you correct them to use the newer recommended approaches.&lt;br /&gt;
&lt;br /&gt;
===NOVERIFY=== &lt;br /&gt;
The &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option lets you apply ZAPs that have no verify data.&lt;br /&gt;
Use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option with caution.&lt;br /&gt;
Once a ZAP is applied using &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt;,&lt;br /&gt;
the original contents of the load module are lost.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement can provide the functionality needed for applying a &amp;lt;b&amp;gt;portion&amp;lt;/b&amp;gt; of a zap without verify data, it is strongly recommended that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option, which might extend to other portions of the zap with incorrect verify data.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VERIFY=== &lt;br /&gt;
The &amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; option ensures that all replace data has been successfully&lt;br /&gt;
verified before updating the load module.&lt;br /&gt;
&amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; is a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; default, and it need not be specified.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Since it is recommended that you do not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option, you might want to avoid the &amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; option as well, thus eliminating any tendency to control requirement of verify data at the job step level.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:RKTools]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=RockZap&amp;diff=118432</id>
		<title>RockZap</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=RockZap&amp;diff=118432"/>
		<updated>2022-02-17T22:16:34Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* Differences between RockZap and IMASPZAP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is a load module maintenance facility, similar to z/OS IMASPZAP&lt;br /&gt;
or the CMS ZAP command. Prior to version 7.5 of Model 204, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; was named &amp;lt;code&amp;gt;SirZap&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; modifies load modules (or for CMS, both&lt;br /&gt;
load modules and text libraries) based on&lt;br /&gt;
information from control statements supplied by the user.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is not&lt;br /&gt;
a plug compatible replacement for the IBM ZAP utilities, but it provides&lt;br /&gt;
functional and performance enhancements for load module maintenance.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is distributed as part of a software maintenance agreement&lt;br /&gt;
between Rocket Software Inc. and its customers.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is provided for&lt;br /&gt;
the purpose of applying maintenance to Rocket Model 204 products, but&lt;br /&gt;
you need not limit use of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; to those products.&lt;br /&gt;
&lt;br /&gt;
===Versions===&lt;br /&gt;
This wiki page&lt;br /&gt;
assumes that a site is running &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6 or later.&lt;br /&gt;
Any documented feature or facility that requires a later version&lt;br /&gt;
of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; will be clearly marked to indicate this.&lt;br /&gt;
If a feature or parameter is not&lt;br /&gt;
indicated as requiring any specific version of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;, it can&lt;br /&gt;
be assumed that it is available in all versions covered by this&lt;br /&gt;
document; that is, versions 1.6 and later of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Messages===&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; messages are documented in [[:Category:RockZap messages]].&lt;br /&gt;
&lt;br /&gt;
===Downloading===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Using your [[Rocket M204 user ID]] and password, log in to the [https://model204.rocketsoftware.com/maint/objlist Model 204 object file download page].&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Click the &amp;lt;b&amp;gt;Download object file&amp;lt;/b&amp;gt; link to the right of the RockZap object file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==RockZap features==&lt;br /&gt;
RockZap provides the following features:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; can save significant amounts of elapsed time and CPU for long&lt;br /&gt;
ZAP input streams.&lt;br /&gt;
This is because &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; applies all ZAPs in the input&lt;br /&gt;
stream before writing a module back to disk.&lt;br /&gt;
(IMASPZAP and CMS ZAP both&lt;br /&gt;
write parts of the load module back to disk each time a new &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt;&lt;br /&gt;
statement is encountered, reducing performance significantly.)&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; detects and reports ZAPs that are already applied.&lt;br /&gt;
Using&lt;br /&gt;
IMASPZAP or CMS ZAP, the user must inspect long CSECT dumps produced by&lt;br /&gt;
the ZAP utility in order to determine if the ZAP is already applied, or&lt;br /&gt;
simply in error.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; allows the module name on all &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements to be overridden using the &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; option.&lt;br /&gt;
This provides the ability to have the same set of &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt;s and &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt;s applied to different load modules without making global changes to the &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements.  &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; can &amp;quot;back out&amp;quot; or remove ZAPs without requiring&lt;br /&gt;
modification to the ZAP control statements.&lt;br /&gt;
By using the BACKOUT&lt;br /&gt;
option, ZAPs can be removed from the load module and replaced by the&lt;br /&gt;
original Verify data.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; limits error reporting to the specific statements in error, and it&lt;br /&gt;
reports only the information necessary to diagnose and correct the&lt;br /&gt;
error.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; only writes modified load modules.&lt;br /&gt;
If the ZAPs are already&lt;br /&gt;
completely applied, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not write the load module back to disk.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; enforces stricter rules on ZAP input statements.&lt;br /&gt;
Verify statements are required for all replaced bytes.&lt;br /&gt;
This ensures that the&lt;br /&gt;
load module contents are known before they are modified, and that a ZAP&lt;br /&gt;
can be removed or &amp;quot;backed out&amp;quot; if necessary.&lt;br /&gt;
You can override this feature,&lt;br /&gt;
however, using the &amp;lt;var&amp;gt;[[#* !NOVERIFY|* !NOVERIFY]]&amp;lt;/var&amp;gt; statement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Differences between RockZap and IMASPZAP==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; requires that every byte in the load module that is replaced&lt;br /&gt;
is also verified, unless the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; only modifies direct access load libraries.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not&lt;br /&gt;
modify PDSEs or any other types of direct access data sets.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following SPZAP statements are not supported but are ignored&lt;br /&gt;
when encountered in the input stream: SETSSI, IDRDATA, and CHECKSUM.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following IMASPZAP statments are not supported and will cause&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; to terminate when they are encountered:&lt;br /&gt;
CONSOLE, ABSDUMP, ABSDUMPT, and RECORD.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Differences between RockZap and CMS ZAP==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; requires that every byte in the load module that is replaced&lt;br /&gt;
is also verified, unless the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; does not support CMS LOADLIBs.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following ZAP statements are not supported but are ignored&lt;br /&gt;
when encountered in the input stream: COMMENT and LOG.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CMS installation==&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is distributed as a single load module in VMFPLC2 format.&lt;br /&gt;
A set of object decks is also included in case linkedit is required.&lt;br /&gt;
(This might be necessary for some older CMS versions).&lt;br /&gt;
 &lt;br /&gt;
[[#downloading|Obtain]] and [[Web help download object files#How should the RockZap object file be linked?|link]] the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; object file.&lt;br /&gt;
 &lt;br /&gt;
The &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; load module is linked &amp;lt;code&amp;gt;AMODE=31&amp;lt;/code&amp;gt;.&lt;br /&gt;
If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; must be relinked&lt;br /&gt;
on your system, use the following commands:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;LOAD ROCKZAP (RESET ROCKZAP RMODE 24 AMODE 31&lt;br /&gt;
GENMOD ROCKZAP (FROM APPL&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can omit the &amp;lt;var&amp;gt;RMODE&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;AMODE&amp;lt;/var&amp;gt; parameters if you are running in a non-XA environment.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==IBM z/OS installation== &lt;br /&gt;
[[#downloading|Obtain]] and [[Web help download object files#How should the RockZap object file be linked?|link]] the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; object file.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;ROCKZAP&amp;lt;/code&amp;gt; can be copied to SYS1.LINKLIB or SYS1.LPALIB, and it is reentrant.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div id=&amp;quot;options&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==RockZap options==&lt;br /&gt;
z/OS users supply &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; options in the &amp;lt;code&amp;gt;PARM&amp;lt;/code&amp;gt; parameter of the EXEC job control statement.&lt;br /&gt;
&lt;br /&gt;
For example, to force uppercase output and to&lt;br /&gt;
backout ZAPs, use the following EXEC statement:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ROCKZAP EXEC PGM=ROCKZAP,PARM=&#039;UPPER,BACKOUT&#039;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
CMS users specify options following a left parenthesis on the &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt;&lt;br /&gt;
command line.&lt;br /&gt;
&lt;br /&gt;
For example, to force uppercase output and to backout the&lt;br /&gt;
ZAPs in the file &amp;lt;code&amp;gt;LOCAL ZAP A1&amp;lt;/code&amp;gt;, specify the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;ROCKZAP LOCAL ( BACKOUT UPPER&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BACKOUT===&lt;br /&gt;
The &amp;lt;var&amp;gt;BACKOUT&amp;lt;/var&amp;gt; option removes a ZAP without requiring any modification to&lt;br /&gt;
the ZAP input statements.&lt;br /&gt;
&amp;lt;var&amp;gt;BACKOUT&amp;lt;/var&amp;gt; reverses the effect of a ZAP by&lt;br /&gt;
replacing the original &amp;lt;code&amp;gt;Verify&amp;lt;/code&amp;gt; data in the module.&lt;br /&gt;
&lt;br /&gt;
If the ZAPs were applied with IMASPZAP, CMS ZAP, or with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; using the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; might not be able to perform a backout because all the original &amp;lt;code&amp;gt;Verify&amp;lt;/code&amp;gt; data might not be present.&lt;br /&gt;
&lt;br /&gt;
===EXTRACT filetype===&lt;br /&gt;
The &amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; option lets you extract individual object files from&lt;br /&gt;
a CMS text library.&lt;br /&gt;
&amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; can only be used when the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is also&lt;br /&gt;
specified.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var&amp;gt;EXTRACT&amp;lt;/var&amp;gt; requires a parameter that specifies the file type&lt;br /&gt;
of the object files it creates. One object file is created for each&lt;br /&gt;
member of the text library. The text library member name is used as the CMS file name.&lt;br /&gt;
&lt;br /&gt;
===MODULE===&lt;br /&gt;
The &amp;lt;var&amp;gt;MODULE=&amp;lt;i&amp;gt;modname&amp;lt;/i&amp;gt;&amp;lt;/var&amp;gt; option allows the module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement to be overridden with a single load-module name. This means that you can use the same &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt; jobstream to apply the same zaps to different load modules in the designated load library (SYSLIB) without making changes to any of the &amp;lt;var&amp;gt;[[#NAME|NAME]]&amp;lt;/var&amp;gt; control statements.  &lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;PARM=&#039;MODULE=ONLINE&#039;&amp;lt;/code&amp;gt; applies the zaps to the module named &amp;lt;code&amp;gt;ONLINE&amp;lt;/code&amp;gt; in the designated load library, regardless of the load-module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.  Then, using the same job stream, &amp;lt;code&amp;gt;PARM=&#039;MODULE=ONLINTST&#039;&amp;lt;/code&amp;gt; applies the same zaps to the module named &amp;lt;code&amp;gt;ONLINTST&amp;lt;/code&amp;gt;, again, regardless of the load-module name on each &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you are applying zaps to a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; load module, you &amp;lt;i&amp;gt;must&amp;lt;/i&amp;gt; specify a value for &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; option was introduced in version 1.6 of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===REPORT=== &lt;br /&gt;
Under the &amp;lt;var&amp;gt;REPORT&amp;lt;/var&amp;gt; option, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; runs normally but does not update any load modules. This is useful if you have a production load module you do not want to modify, but you do want to know whether or not a particular set of ZAPs are applied.&lt;br /&gt;
&lt;br /&gt;
===TXTLIB txtlib=== &lt;br /&gt;
The &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is valid under CMS only.&lt;br /&gt;
&amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; specifies that the&lt;br /&gt;
ZAPs should be applied to a CMS text library instead of a load module.&lt;br /&gt;
 &lt;br /&gt;
You must provide the name of the text library following the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt;&lt;br /&gt;
parameter.&lt;br /&gt;
The first parameter of the name statement (the module name)&lt;br /&gt;
is ignored when using the &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option.&lt;br /&gt;
Only the CSECT name is used for text libraries.&lt;br /&gt;
No load modules are inspected or modified when the&lt;br /&gt;
&amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt; option is specified.&lt;br /&gt;
&lt;br /&gt;
===UPPER=== &lt;br /&gt;
The &amp;lt;var&amp;gt;UPPER&amp;lt;/var&amp;gt; option forces all &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; output to uppercase.&lt;br /&gt;
This is usually unnecessary, except on certain Japanese terminals and&lt;br /&gt;
when sending output to uppercase-only printers.&lt;br /&gt;
&amp;lt;var&amp;gt;UPPER&amp;lt;/var&amp;gt; is the default setting for Hitachi and Fujitsu systems.&lt;br /&gt;
&lt;br /&gt;
==RockZap control statements== &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; control statements appear in columns 1 to 72 in fixed length,&lt;br /&gt;
80 byte records.&lt;br /&gt;
Statements that begin with an asterisk are treated as&lt;br /&gt;
comments and are ignored, except for the two special inline parameter statements&lt;br /&gt;
&amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt;.&lt;br /&gt;
Control statements can begin in any column,&lt;br /&gt;
but line continuation is not allowed.&lt;br /&gt;
&lt;br /&gt;
===VER===&lt;br /&gt;
The &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement identifies a range of bytes to be matched with the&lt;br /&gt;
load module contents.&lt;br /&gt;
&amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statements must follow a &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
A &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement must be present for each range of bytes that will be&lt;br /&gt;
replaced in the load module.&lt;br /&gt;
This is to ensure that the ZAP can be backed out later if necessary.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;VER &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset verify-values comments&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal displacement from the start of the CSECT specified in the previous &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement, or from the start of the load module if no CSECT was specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;verify-values&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pairs of hexadecimal characters optionally separated by commas. The values are the expected contents of the load module at the specified offset. Uppercase or lowercase hexadecimal data are acceptable.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;comments&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Any characters after the first blank after the last &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;verify-values&amp;lt;/var&amp;gt; character are ignored by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The following are all valid &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; statements:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;VER 00 010203,040506   &amp;lt;i&amp;gt;Verify bytes at offset 0.&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
VER 01ca 47f0,c0e9&lt;br /&gt;
 &lt;br /&gt;
VER 23EC D20310004000,90ECD000,07FC&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===REP=== &lt;br /&gt;
The &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement identifies a range of bytes to replace the current&lt;br /&gt;
contents of a load module.&lt;br /&gt;
The &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement must be preceded by &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt;&lt;br /&gt;
statements that cover the entire range of bytes that will be replaced.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;REP &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset replace-value comments&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal displacement from the start of the CSECT in the previous &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap&amp;gt;replace-value&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Pairs of hexadecimal characters optionally separated by commas. The values will replace the contents of the load module at the specified offset. Uppercase or lowercase hexadecimal data are acceptable.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;comments&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Any characters after the first blank after the last &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;replace-value&amp;lt;/var&amp;gt; character are ignored by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The following are all valid &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statements:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;REP 00 FFFFFF,FFFFFF   &amp;lt;i&amp;gt;Replace bytes at offset 0.&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
REP 01ca 47f0,c0e8&lt;br /&gt;
 &lt;br /&gt;
REP 23EC D203101C4000,90ECD008,07FE&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NAME===&lt;br /&gt;
The &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement identifies a load module, and optionally a CSECT, that defines the context for the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;REP&amp;lt;/var&amp;gt; statements that follow.&lt;br /&gt;
&amp;lt;var&amp;gt;NAMEX&amp;lt;/var&amp;gt; is a synonym for &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; that allows compatibility with the Fujitsu&lt;br /&gt;
OSIV ZAP utility.&lt;br /&gt;
&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;NAME &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/span&amp;gt;]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;module&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the load module. Under CMS the filetype must be &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt;. Under z/OS this is the name of a PDS member in the load library.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;csect&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the control section in the load module. A &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value is optional. If the CSECT name is missing, subsequent verify and replace displacements are calculated from offset 0 in the load module.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You can use the &amp;lt;var&amp;gt;[[#MODULE|MODULE]]&amp;lt;/var&amp;gt; parameter to override the module name in &amp;lt;var&amp;gt;NAME&amp;lt;/var&amp;gt; statements. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DUMP or DUMPT=== &lt;br /&gt;
The &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt; statement prints all or part of the contents of a load&lt;br /&gt;
module or CMS text library to SYSPRINT.&lt;br /&gt;
Specifying &amp;lt;var&amp;gt;DUMPT&amp;lt;/var&amp;gt; has the same effect as &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
The format of the &amp;lt;var&amp;gt;DUMP&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;DUMPT&amp;lt;/var&amp;gt; statement is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;DUMP[T] &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;name&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;length&amp;lt;/span&amp;gt;]]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the load module or text library. Under CMS, specify the filename (only) of a file whose filetype must be &amp;lt;var&amp;gt;MODULE&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;TXTLIB&amp;lt;/var&amp;gt;. Under z/OS, specify the name of a PDS member in the load library.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;csect&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The name of the control section. A &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value is optional. If the CSECT clause is missing, the entire load module or text library contents are dumped.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;offset&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The hexadecimal starting offset within the CSECT. This is optional, and it can only be specified when a &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; name is specified. Use the &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/var&amp;gt; parameter when you want to dump only a part of a CSECT. If the offset is omitted, it defaults to 0.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;length&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The number of bytes (in hexadecimal) of the CSECT to dump. This is an optional parameter, and it can only be specified if a &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;csect&amp;lt;/var&amp;gt; value and starting &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;offset&amp;lt;/var&amp;gt; value are specified.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===* !VERIFY===&lt;br /&gt;
The special statement &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; (and &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt;) lets you control whether individual ZAPs are verified before being applied.&lt;br /&gt;
 &lt;br /&gt;
The main purpose of these statements is to override whether the current portion of the zap requires verify data. This can be useful when a single ZAP in an input stream containing many ZAPs has no verify data.&lt;br /&gt;
 &lt;br /&gt;
The asterisk and space are necessary so that other ZAP utilities treat&lt;br /&gt;
the statements as comments.&lt;br /&gt;
 &lt;br /&gt;
Use &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; anywhere within the ZAP input stream.&lt;br /&gt;
ZAPs following the &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt; statement are verified (the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; data must match the module contents) before the ZAP is applied.&lt;br /&gt;
 &lt;br /&gt;
Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is new in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6, you might have &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; JCL or&lt;br /&gt;
EXECs that use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option to accomplish this purpose, but at&lt;br /&gt;
a dangerous job step level.&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt; &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;It is strongly recommended&amp;lt;/i&amp;gt; that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option, but do use&lt;br /&gt;
the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement instead, and only when needed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===* !NOVERIFY===&lt;br /&gt;
The special inline statement&lt;br /&gt;
&amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; (and &amp;lt;var&amp;gt;* !VERIFY&amp;lt;/var&amp;gt;) lets you control&lt;br /&gt;
whether individual ZAPs are verified before being applied.&lt;br /&gt;
The main purpose of these statements is to override whether the current&lt;br /&gt;
portion of the zap requires verify data.&lt;br /&gt;
This can be useful when a single ZAP in an input stream containing many ZAPs has no verify&lt;br /&gt;
data or the verify data is known to be incorrect.&lt;br /&gt;
 &lt;br /&gt;
Use &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; anywhere within the ZAP input stream.&lt;br /&gt;
ZAPs following the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement are not verified (the &amp;lt;var&amp;gt;VER&amp;lt;/var&amp;gt; data may be missing or not match the module contents) before the ZAP is applied.&lt;br /&gt;
 &lt;br /&gt;
Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement is new in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; version 1.6, you might have &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; JCL or&lt;br /&gt;
EXECs that use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option to accomplish this purpose, but at&lt;br /&gt;
a dangerous job step level.&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;It is strongly recommended&amp;lt;/i&amp;gt; that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; program option, but do use the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement instead, and only when needed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using RockZap under z/OS==&lt;br /&gt;
Job Control requirements for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; are the same as for IMASPZAP. Most &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; storage is allocated above the 16 megabyte line, so the default region size should be sufficient.&lt;br /&gt;
&lt;br /&gt;
===RockZap DD statements===&lt;br /&gt;
Required statements:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SYSLIB points to the load library PDS (Partitioned Data&lt;br /&gt;
Set) containing the load module you want to ZAP. The load library cannot be a PDSE (Partition Data Set Extended) dataset.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;SYSIN contains the ZAP control statements and must&lt;br /&gt;
have the DCB attributes of &amp;lt;code&amp;gt;RECFM=F&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RECFM=FB&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;LRECL=80&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;SYSPRINT is the report data set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RockZap sample JCL===&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ROCKZAP  JOB  CLASS=A,MSGCLASS=A&lt;br /&gt;
//ZAP      EXEC PGM=ROCKZAP,PARM=&#039;RockZap parms&#039;&lt;br /&gt;
//STEPLIB  DD   DSN=ROCKZAP.V106.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIB   DD   DSN=loadlib,DISP=SHR&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSIN    DD   *&lt;br /&gt;
zap control statements&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using RockZap under CMS==&lt;br /&gt;
The format of the &amp;lt;var&amp;gt;ROCKZAP&amp;lt;/var&amp;gt; command is:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;ROCKZAP &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;fn&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;ft&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;fm&amp;lt;/span&amp;gt;]] ( &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;options&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; is invoked as a CMS command.&lt;br /&gt;
Simply enter &amp;lt;code&amp;gt;ROCKZAP&amp;lt;/code&amp;gt; followed by the&lt;br /&gt;
name of the input file.&lt;br /&gt;
The default filetype is &amp;lt;code&amp;gt;ZAP&amp;lt;/code&amp;gt;, and the&lt;br /&gt;
default filemode is &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
Options are supplied in any order following the left parenthesis.&lt;br /&gt;
See [[#options|RockZap options]] for a list of options.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; writes the report and any modified load modules to the disk&lt;br /&gt;
accessed as the &amp;quot;A&amp;quot; disk.&lt;br /&gt;
Make sure that the &amp;quot;A&amp;quot; disk is accessed in Read/Write mode.&lt;br /&gt;
&lt;br /&gt;
===Using RockZap with CMS text libraries===&lt;br /&gt;
When &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; processes a text library, the resulting text library or object files usually contain fewer records than the original.&lt;br /&gt;
No information is lost and the&lt;br /&gt;
resulting text library or object file is logically the same as the original.&lt;br /&gt;
Text records in the object file are always written with the maximum amount of object code&lt;br /&gt;
per record. Often, fewer records are required than are typically written by the&lt;br /&gt;
compiler or assembler that originally generated the object.&lt;br /&gt;
&lt;br /&gt;
This object file &amp;quot;normalization&amp;quot; is similar to how a linkage editor processes an object&lt;br /&gt;
file.&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; performs this normalization so that ZAPs can be applied more efficiently.&lt;br /&gt;
&lt;br /&gt;
==RockZap return codes==&lt;br /&gt;
&amp;lt;table class=&amp;quot;thJustBold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;0&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ZAPs were processed successfully. Any modified load modules are written back to disk.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;4&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ZAPs were processed successfully, but one or more warning messages were produced. This usually indicates a CSECT was missing from one or more of the load modules. Check the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; report for the name of the module and CSECT. If any load modules were modified, they are written back to disk.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;8&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;One or more errors occurred. Check the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; report for details.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;12&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; was unable to open the input file. Make sure the filename is correct and that the file or PDS member is present.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;40&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; could not open the report file (SYSPRINT). For z/OS, make sure a DD statement for SYSPRINT is present. For CMS, the internal FILEDEF for SYSPRINT may have failed. Make sure the &amp;quot;A&amp;quot; disk is accessed in read/write mode.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deprecated options== &lt;br /&gt;
The following program options are no longer necessary.&lt;br /&gt;
It is recommended&lt;br /&gt;
that you not use them, and that if you discover them in old JCL or EXECs,&lt;br /&gt;
you correct them to use the newer recommended approaches.&lt;br /&gt;
&lt;br /&gt;
===NOVERIFY=== &lt;br /&gt;
The &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option lets you apply ZAPs that have no verify data.&lt;br /&gt;
Use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option with caution.&lt;br /&gt;
Once a ZAP is applied using &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt;,&lt;br /&gt;
the original contents of the load module are lost.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Since the &amp;lt;var&amp;gt;* !NOVERIFY&amp;lt;/var&amp;gt; statement can provide the functionality needed for applying a &amp;lt;b&amp;gt;portion&amp;lt;/b&amp;gt; of a zap without verify data, it is strongly recommended that you not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option, which might extend to other portions of the zap with incorrect verify data.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===VERIFY=== &lt;br /&gt;
The &amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; option ensures that all replace data has been successfully&lt;br /&gt;
verified before updating the load module.&lt;br /&gt;
&amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; is a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;RockZap&amp;lt;/var&amp;gt; default, and it need not be specified.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Since it is recommended that you do not use the &amp;lt;var&amp;gt;NOVERIFY&amp;lt;/var&amp;gt; option, you might want to avoid the &amp;lt;var&amp;gt;VERIFY&amp;lt;/var&amp;gt; option as well, thus eliminating any tendency to control requirement of verify data at the job step level.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:RKTools]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=EDIT_command&amp;diff=118396</id>
		<title>EDIT command</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=EDIT_command&amp;diff=118396"/>
		<updated>2022-01-26T22:31:40Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* Editor commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&lt;br /&gt;
&amp;lt;dd&amp;gt;Any user&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&lt;br /&gt;
&amp;lt;dd&amp;gt;Invokes the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; full-screen editor or line editor&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;&amp;lt;b&amp;gt;E&amp;lt;/b&amp;gt;DIT&lt;br /&gt;
 [({TERMINAL [SCREEN | LINE] | SCREEN [TERMINAL] | LINE [TERMINAL]})] &lt;br /&gt;
 [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;procnumber1&amp;lt;/span&amp;gt; [,&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;procnumber2&amp;lt;/span&amp;gt; | ,&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;procname1&amp;lt;/span&amp;gt;]&lt;br /&gt;
 | [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;procname1&amp;lt;/span&amp;gt; [,&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;procname2&amp;lt;/span&amp;gt; | ,&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;procnumber1&amp;lt;/span&amp;gt;]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;table&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;procnumber1&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The number of an existing procedure. One of these:&lt;br /&gt;
&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;A temporary procedure (a negative number or zero).&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;A permanent procedure. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
If neither &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;procnumber1&amp;lt;/var&amp;gt; nor &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;procname1&amp;lt;/var&amp;gt; is specified, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; creates a temporary procedure (0).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;procnumber2&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The number of a new temporary procedure (a negative number or zero). &lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;procname1&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;If specified after &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;procnumber1&amp;lt;/var&amp;gt;, the name under which the procedure is saved after editing. See [[#Procedure names|Procedure names]], below, for naming rules. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If specified immediately after &amp;lt;code&amp;gt;EDIT&amp;lt;/code&amp;gt;, this is the name of an existing temporary or permanent procedure to be used as input for the current editing session.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;procname2&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;procname2&amp;lt;/var&amp;gt; is the name of a new procedure (1 to 255 characters). See [[#Procedure names|Procedure names]], below for naming rules. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Syntax notes===&lt;br /&gt;
You invoke the Full Screen Editor by entering: &lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;EDIT (SCREEN) &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;name&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
where &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;name&amp;lt;/var&amp;gt; identifies the procedure to be edited. If this is entered from a line-at-a-time terminal, however, an error message is issued stating that a full-screen terminal is required. You invoke the Line Editor by entering:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;EDIT (LINE) &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt; &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If neither &amp;lt;var&amp;gt;SCREEN&amp;lt;/var&amp;gt; nor &amp;lt;var&amp;gt;LINE&amp;lt;/var&amp;gt; is specified, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; invokes the appropriate Editor for your terminal type.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Procedure names===&lt;br /&gt;
The name of a new procedure may contain any letters, numbers, or symbols except:&lt;br /&gt;
&amp;lt;table&amp;gt;  &lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;&amp;lt;p&amp;gt;Character name &amp;lt;/p&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;th&amp;gt;&amp;lt;p&amp;gt;Keyboard display&amp;lt;/p&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;Carriage return&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;Comma &amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;( , ) &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;Equal sign &amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;( = )&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;Semicolon &amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;( ; )&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;Single quote &amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;( &#039; )&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;Space&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
In addition: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In version 7.6 and earlier, the procedure name cannot begin with a zero or a minus sign.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;As of version 7.7:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Most of the above characters are permitted if &amp;lt;var&amp;gt;CUSTOM=42&amp;lt;/var&amp;gt; is turned on. Names containing special characters must be enclosed in single quotes for all procedure commands. See [[CUSTOM parameter#Using CUSTOM=(42)|Using CUSTOM=(42)]] for details.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The procedure name can begin with a zero. And the procedure name &amp;quot;0123&amp;quot; is different from the procedure name &amp;quot;00123&amp;quot;. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
However, names with only zeroes are treated as temporary procedure 0, so &amp;lt;code&amp;gt;E 000&amp;lt;/code&amp;gt; is identical to &amp;lt;code&amp;gt;E 0&amp;lt;/code&amp;gt;. &amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Alphanumeric procedure names can begin with a minus sign character (&amp;lt;tt&amp;gt;-&amp;lt;/tt&amp;gt;), which is interpreted as a hyphen. For example, &amp;lt;code&amp;gt;-1myproc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;-myproc&amp;lt;/code&amp;gt; are valid procedure names.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Numeric procedure names that begin with a minus sign are treated as temporary procedures, and leading zeroes after the minus sign are ignored if they are followed by a non-zero digit (&amp;lt;code&amp;gt;E -1&amp;lt;/code&amp;gt; is identical to &amp;lt;code&amp;gt;E -001&amp;lt;/code&amp;gt;). &amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
While procedure names up to 255 characters are technically valid, very long names will create challenges in maintaining the procedures due to the procedure name needing to fit on the same line as commands that reference the procedure. Rocket recommends keeping procedure names shorter than 210 characters. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; [[SirLib]] users &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; keep procedure names shorter than 229, and even then, SirPro will not be able to display procedure names longer than the supported screen width.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;EDIT&lt;br /&gt;
EDIT (SCREEN) PROC1&lt;br /&gt;
EDIT XUPDTE&lt;br /&gt;
EDIT -1   &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Usage notes==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;EDIT&amp;lt;/var&amp;gt; command invokes either the Full Screen Editor or the Line Editor. &amp;lt;var&amp;gt;EDIT&amp;lt;/var&amp;gt; can optionally specify the name or number of an existing procedure to be edited, and can specify a new name or number for the edited procedure. Specifying 0 or a negative number edits a temporary procedure. If no name or number is supplied, temporary procedure 0 is assumed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;You can invoke either of the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; Editors from within a procedure and have the Editor go directly to your terminal for input. Entering the following command directs an editing session to your terminal:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;EDIT (TERMINAL) &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;procname&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; selects either the Full Screen Editor or the Line Editor for the user running the procedure. The Editor reads input from the terminal until you end the session with an &amp;lt;var&amp;gt;END&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;GO&amp;lt;/var&amp;gt;, or &amp;lt;var&amp;gt;QUIT&amp;lt;/var&amp;gt; command. If &amp;lt;var&amp;gt;END&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;QUIT&amp;lt;/var&amp;gt; is entered, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; reads the next line of input from the procedure containing the &amp;lt;var&amp;gt;EDIT&amp;lt;/var&amp;gt; command. If &amp;lt;var&amp;gt;GO&amp;lt;/var&amp;gt; is entered, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; reads the next line of input from the edited procedure, as if the &amp;lt;var&amp;gt;EDIT&amp;lt;/var&amp;gt; command were followed by an &amp;lt;var&amp;gt;INCLUDE&amp;lt;/var&amp;gt; command.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;TERMINAL&amp;lt;/var&amp;gt; option can be combined with the &amp;lt;var&amp;gt;SCREEN&amp;lt;/var&amp;gt; or the &amp;lt;var&amp;gt;LINE&amp;lt;/var&amp;gt; option. If an &amp;lt;var&amp;gt;EDIT (SCREEN)&amp;lt;/var&amp;gt; command is issued from within a procedure, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; displays a message that the &amp;lt;var&amp;gt;SCREEN&amp;lt;/var&amp;gt; option requires the &amp;lt;var&amp;gt;TERMINAL&amp;lt;/var&amp;gt; option. If an &amp;lt;var&amp;gt;EDIT&amp;lt;/var&amp;gt; command without the &amp;lt;var&amp;gt;TERMINAL&amp;lt;/var&amp;gt; option is issued within a procedure, the line editor is invoked. It reads editor commands from the invoking procedure. Including the &amp;lt;var&amp;gt;TERMINAL&amp;lt;/var&amp;gt; option in an &amp;lt;var&amp;gt;EDIT&amp;lt;/var&amp;gt; command issued from the terminal has no effect on the operation of the &amp;lt;var&amp;gt;EDIT&amp;lt;/var&amp;gt; command.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;When it processes &amp;lt;var&amp;gt;EDIT&amp;lt;/var&amp;gt; against a permanent procedure, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; ends any update unit in progress and begins a non-backoutable update unit. For more information about &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; update units, see [[File integrity and recovery]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Editor commands==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following tables summarize the available full-screen editor and line editor commands. In all commands that refer to procedure name (procname), a procedure number can be specified to refer to a temporary procedure. For more information, see the [[:Category: Model 204 editor|Model 204 editor]] topics.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt; Full Screen Editor commands &amp;lt;/caption&amp;gt;   &lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;Command&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;th&amp;gt;Action&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[+] n&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Scrolls forward n lines in a procedure.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;-n&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Scrolls backward n lines in a procedure.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;=&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Repeats the command most recently executed.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[SET] ARBCHAR [OFF]&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Sets an arbitrary (wild) character for search string.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;BACKWARD&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Scrolls backward n screens in a procedure.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;BOTTOM&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Scrolls to last line of a procedure.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;CLEAR&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Clears the prefix area, aborts pending prefix commands, and cancels any specified targets.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[IN filename] END [procname]&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Exits from the Editor and saves the edited procedure.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;{SET] FILL {NULL | BLANK}&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Sets a fill character.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;FORWARD&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Scrolls forward n screens in a procedure.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[IN filename] GET procname&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Inserts a saved procedure in the procedure being edited.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[IN filename] GO [procname]&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Exits from the Full Screen Editor, saves the edited procedure, and includes the procedure.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[SET] LINEND {OFF | char}&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Sets the line-end character.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[-] LOCATE /string  [[IN] RANGE]&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Locates the specified string in a procedure&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[SET] PREFIX {RIGHT | LEFT}&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Controls the position of the prefix area on the screen.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;QUIT [QUIT] &amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Exits from the Editor; does not save the edited procedure.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[SET] REPEAT {OFF | char}&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Sets the repeat character for search strings.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;REPLACE /string1/string2/ [n |*] [VERIFY] [[IN] RANGE]&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Locates and replaces the specified string in a procedure.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[IN filename] SAVE &amp;lt;/p&amp;gt;&amp;lt;p&amp;gt; [procname] [[IN] RANGE] &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Saves the edited procedure. &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[SET] SCALE {OFF | ON}&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Controls the display of the column scale on the screen.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;TOP&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Scrolls to the first line of a procedure. &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The table below lists the Line Editor commands. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;Line Editor commands&amp;lt;/caption&amp;gt;   &lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&amp;lt;th&amp;gt;&amp;lt;p&amp;gt;Command&amp;lt;/p&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;th&amp;gt;&amp;lt;p&amp;gt;Action&amp;lt;/p&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[n] (commands)&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Repeats a series of commands n times.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[n] C&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Moves the pointer n characters right or left in the procedure.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[n] D&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Deletes n characters in the procedure.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[procname] END&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Exits from the Line Editor and saves the edited procedure.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[procname] GO&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Exits from the Line Editor, saves the edited procedure, and includes the procedure.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[procname] I&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Combines procedures.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;I/string/&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Inserts a string before the current pointer.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[n] J&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Initializes the pointer at the first character in a procedure or moves it forward or backward n lines.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[n] [H] K&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Deletes n lines from the procedure.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[n] L&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Moves pointer n lines forward or backward in the procedure.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th nowrap&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[n] R/string1/string2/&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Replaces a specified string in the procedure.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[n] S/string/&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Searches for an occurrence of a specified string in the procedure.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;[n] [H] T&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Displays a portion of the procedure being edited.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;Xline&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Replaces a line in the procedure.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;Yline&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Inserts a line before the line at which the pointer is positioned.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&amp;lt;var&amp;gt;&amp;lt;p&amp;gt;Z&amp;lt;/p&amp;gt;&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Positions the pointer after the last character in the procedure. &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;   &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: User commands]]&lt;br /&gt;
[[Category:Commands]]&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=WebSocket_(Socket_function)&amp;diff=117727</id>
		<title>WebSocket (Socket function)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=WebSocket_(Socket_function)&amp;diff=117727"/>
		<updated>2019-12-10T19:35:26Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* Usage notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Socket:WebSocket subtitle}}&lt;br /&gt;
&lt;br /&gt;
This page is [[under construction]].&lt;br /&gt;
==Syntax==&lt;br /&gt;
{{Template:Socket:WebSocket syntax}}&lt;br /&gt;
===Syntax terms===&lt;br /&gt;
&amp;lt;table class=&amp;quot;syntaxTable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;%Socket&amp;lt;/th&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;Socket&amp;lt;/var&amp;gt; object&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;var&amp;gt;[%(Socket):]&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The optional class name in parentheses denotes a [[Notation conventions for methods#Constructors|virtual constructor]]. See [[#Usage notes|&amp;quot;Usage notes&amp;quot;]], below, for more information about invoking a virtual constructor.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Usage notes==&lt;br /&gt;
The HTTP protocol has been indispensible in creating the Internet as it exists today. It&#039;s still the core protocol for Web browsers and many other applications, whether on PCs, servers, laptops, or mobile devices. It has been extended over the years to accommodate demands for streaming video and sound, transfer of data files, and many other uses.&lt;br /&gt;
&lt;br /&gt;
Yet HTTP still falls short in providing for efficient general purpose data transfer.&lt;br /&gt;
&lt;br /&gt;
First, it is a half-duplex protocol, meaning that one side of the communication is always waiting for the other to reply. Second, the HTTP headers add considerable overhead to each interaction, wasting valuable bandwidth. Finally, each HTTP request requires its own TCP connection, which is generally closed after the server replies. This adds the overhead of connection establishment to every individual request. A typical web page requires several distinct http requests, each of which require separate TCP connections and its own set of http headers.&lt;br /&gt;
&lt;br /&gt;
The Web Socket protocol was created to address these shortcomings. It is designed to allow full-duplex communication. Efficient framing of payload data uses minimal overhead. The protocol is end-user extensible. Most importantly, it can be deployed completely within an existing http/https framework. No firewall rule changes are required, and optional data masking avoids potential issues with caching proxies.&lt;br /&gt;
&lt;br /&gt;
Web Sockets are supported in Janus Web Server as of Model 204 7.8.&lt;br /&gt;
&lt;br /&gt;
The Janus Web implementation of Web Sockets requires some preparation before you can write your applications.&lt;br /&gt;
&lt;br /&gt;
A Janus Web port is enabled for Web Socket communication with the WEBSOCKET parameter. &lt;br /&gt;
Likewise, an individual Janus Web rule can either allow or disallow Web Socket connections with the WEBSOCKET and NOWEBSOCKET parameters, respectively.&lt;br /&gt;
&lt;br /&gt;
An http request for a Web Socket connection looks very similar to a normal http GET request. A special &amp;quot;upgrade&amp;quot; header in a request differentiates a Web Socket upgrade from all others. The upgrade request along with other unique headers advertise a request to negotiate a switch from HTTP to the Web Socket protocol.&lt;br /&gt;
&lt;br /&gt;
When this negotiation completes successfully on a Janus Web Server thread, the connection immediately and irreversibly transitions to a Janus WebSocket connection.&lt;br /&gt;
&lt;br /&gt;
The WebSocket method initiates acceptance of an upgrade of a Janus Web thread to a WebSocket thread. Once the WebSocket method returns, SendWebSocket, ReceiveWebSocket and Close are the only valid socket methods. No Janus Web $functions or methods are allowed and will result in request cancellation. &lt;br /&gt;
&lt;br /&gt;
The Janus Web port must be enabled for Web Socket upgrades with the WEBSOCKET parameter. The WEBSOCKET option can be specified on either the port definition or the JANUS WEB rule for the URL. &lt;br /&gt;
&lt;br /&gt;
Any other usage will result in request cancellation.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
The following example sends a text message to the WebSocket client.&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;...&lt;br /&gt;
                                                           &lt;br /&gt;
%sock = WebSocket                                                              &lt;br /&gt;
if %sock is null then                                                          &lt;br /&gt;
   audittext Socket closed, status is {$STATUSD}                               &lt;br /&gt;
   stop                                                                        &lt;br /&gt;
end if   &lt;br /&gt;
                                                                      &lt;br /&gt;
%op = %sock:ReceiveWebSocket(%wsi)                                             &lt;br /&gt;
if %op eq 1 then                                                               &lt;br /&gt;
   setText %wso  = Received your text message of {%wsi:length} bytes.          &lt;br /&gt;
   %sock:SendWebSocket(%wso, %op, true)                                        &lt;br /&gt;
end if                                                                         &lt;br /&gt;
                                                                               &lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Template:Socket:WebSocket footer}}&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=WebSocket_(Socket_function)&amp;diff=117726</id>
		<title>WebSocket (Socket function)</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=WebSocket_(Socket_function)&amp;diff=117726"/>
		<updated>2019-12-10T18:25:05Z</updated>

		<summary type="html">&lt;p&gt;Tom: /* Syntax terms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Socket:WebSocket subtitle}}&lt;br /&gt;
&lt;br /&gt;
This page is [[under construction]].&lt;br /&gt;
==Syntax==&lt;br /&gt;
{{Template:Socket:WebSocket syntax}}&lt;br /&gt;
===Syntax terms===&lt;br /&gt;
&amp;lt;table class=&amp;quot;syntaxTable&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;%Socket&amp;lt;/th&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var&amp;gt;Socket&amp;lt;/var&amp;gt; object&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th nowrap=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;var&amp;gt;[%(Socket):]&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The optional class name in parentheses denotes a [[Notation conventions for methods#Constructors|virtual constructor]]. See [[#Usage notes|&amp;quot;Usage notes&amp;quot;]], below, for more information about invoking a virtual constructor.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Usage notes==&lt;br /&gt;
The HTTP protocol has been indispensible in creating the Internet as it exists today. It&#039;s still the core protocol for Web browsers and many other applications, whether on PCs, servers, laptops, or mobile devices. It has been extended over the years to accommodate demands for streaming video and sound, transfer of data files, and many other uses.&lt;br /&gt;
&lt;br /&gt;
Yet HTTP still falls short in providing for efficient general purpose data transfer.&lt;br /&gt;
&lt;br /&gt;
First, it is a half-duplex protocol, meaning that one side of the communication is always waiting for the other to reply. Second, the HTTP headers add considerable overhead to each interaction, wasting valuable bandwidth. Finally, each HTTP request requires its own TCP connection, which is generally closed after the server replies. This adds the overhead of connection establishment to every individual request. A typical web page requires several distinct http requests, each of which require separate TCP connections and its own set of http headers.&lt;br /&gt;
&lt;br /&gt;
The Web Socket protocol was created to address these shortcomings. It is designed to allow full-duplex communication. Efficient framing of payload data uses minimal overhead. The protocol is end-user extensible. Most importantly, it can be deployed completely within an existing http/https framework. No firewall rule changes are required, and optional data masking avoids potential issues with caching proxies.&lt;br /&gt;
&lt;br /&gt;
Web Sockets are supported in Janus Web Server as of Model 204 7.8.&lt;br /&gt;
&lt;br /&gt;
The Janus Web implementation of Web Sockets requires some preparation before you can write your applications.&lt;br /&gt;
&lt;br /&gt;
A Janus Web port is enabled for Web Socket communication with the WEBSOCKET parameter. &lt;br /&gt;
Likewise, an individual Janus Web rule can either allow or disallow Web Socket connections with the WEBSOCKET and NOWEBSOCKET parameters, respectively.&lt;br /&gt;
&lt;br /&gt;
An http request for a Web Socket connection looks very similar to a normal http GET request. A special &amp;quot;upgrade&amp;quot; header in a request differentiates a Web Socket upgrade from all others. The upgrade request along with other unique headers advertise a request to negotiate a switch from HTTP to the Web Socket protocol.&lt;br /&gt;
&lt;br /&gt;
When this negotiation completes successfully on a Janus Web Server thread, the connection immediately and irreversibly transitions to a Janus WebSocket connection.&lt;br /&gt;
&lt;br /&gt;
From this point until the connection is closed, no Web method or $function calls are allowed. The server program must first call the WebSocket method to complete the transition to a Web Socket thread and thereafter may only call the Socket methods SendWebSocket, ReceiveWebSocket, and Close.&lt;br /&gt;
&lt;br /&gt;
The WebSocket method will initiate acceptance of an upgrade of a Janus Web thread to a WebSocket thread. Once the WebSocket method returns, SendWebSocket, ReceiveWebSocket and Close are the only valid socket methods. No Janus Web $functions or methods are allowed and will result in request cancellation. &lt;br /&gt;
&lt;br /&gt;
The Janus Web port must be enabled for Web Socket upgrades with the WEBSOCKET parameter. The WEBSOCKET option can be specified on either the port definition or the JANUS WEB rule for the URL. &lt;br /&gt;
&lt;br /&gt;
Any other usage will result in request cancellation.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
The following example sends a text message to the WebSocket client.&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;...&lt;br /&gt;
                                                           &lt;br /&gt;
%sock = WebSocket                                                              &lt;br /&gt;
if %sock is null then                                                          &lt;br /&gt;
   audittext Socket closed, status is {$STATUSD}                               &lt;br /&gt;
   stop                                                                        &lt;br /&gt;
end if   &lt;br /&gt;
                                                                      &lt;br /&gt;
%op = %sock:ReceiveWebSocket(%wsi)                                             &lt;br /&gt;
if %op eq 1 then                                                               &lt;br /&gt;
   setText %wso  = Received your text message of {%wsi:length} bytes.          &lt;br /&gt;
   %sock:SendWebSocket(%wso, %op, true)                                        &lt;br /&gt;
end if                                                                         &lt;br /&gt;
                                                                               &lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Template:Socket:WebSocket footer}}&lt;/div&gt;</summary>
		<author><name>Tom</name></author>
	</entry>
</feed>