<?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=Gary</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=Gary"/>
	<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Special:Contributions/Gary"/>
	<updated>2026-04-22T21:24:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=External_Call_Facility&amp;diff=120802</id>
		<title>External Call Facility</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=External_Call_Facility&amp;diff=120802"/>
		<updated>2026-01-31T21:31:33Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* ECF return codes and $function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The External Call Facility (ECF) is a method for programs written in [[SOUL]] to invoke external, non-&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; modules, such as non-IFAM COBOL modules. Data can be passed between &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; and external modules. External modules can open non-&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; data sets, read or write to them, and close them. In addition, multiple modules can be called multiple times in a single run. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
ECF is available only under z/OS.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==Working with ECF==&lt;br /&gt;
 &lt;br /&gt;
===Loading an external module===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Each external module that is called using ECF is dynamically loaded once into memory from a nominated load library or from //STEPLIB. If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; is APF authorized, then any nominated load library identified for use by ECF must also be APF authorized. Otherwise, the &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement will fail with:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;COMPLETION CODE=S306 REASON CODE=000C.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The load is done by an authorized user executing the &amp;lt;var&amp;gt;[[#load|External Load]]&amp;lt;/var&amp;gt; statement; for example, by User 0 during startup. The load is issued from a dedicated ECF subtask that is used exclusively for module loads and deletes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
After an external module is loaded, a call-name of up to 48 characters is associated with it. An association is set up by an authorized user executing the &amp;lt;var&amp;gt;[[#name|External Name]]&amp;lt;/var&amp;gt; statement; typically by User 0 during startup. More than one call name can be associated with the same load module name.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Callers of the external module always refer to the call (logical) name rather than the load module (physical) name. Thus, if a load module name or location changes, only the setup statements need to be changed; no application code changes are required.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Calling an external module===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
A previously loaded external module is called by a user executing the &amp;lt;var&amp;gt;[[#call|External Call]]&amp;lt;/var&amp;gt; statement. This invokes a separate ECF subtask to run the external module, and causes the user to enter a swappable, bumpable wait state. When the external module completes, control returns to the user. There are no restrictions on the length of time the external module can run.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Data is passed between &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; and an external module via a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; [[Images|image]]. A copy of the image is made when the module is called, so that the caller need not remain in the server while the external module runs. The external module can modify the copy of the image. The modified image is returned to the caller, unless the &amp;lt;var&amp;gt;[[#module|External Module]]&amp;lt;/var&amp;gt; statement specified &amp;lt;code&amp;gt;PARMTYPE=INPUT&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Avoiding data corruption and incorrect results===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
External modules must not access any data set that &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; or any other external module has already opened. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Attention:&amp;lt;/b&amp;gt; Failure to observe this could result in data corruption or abends, either in the external module or Model&amp;amp;nbsp;204.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
External modules invoked using ECF run under separate z/OS subtasks in the same address space as the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; Online that invoked the module. This means that external modules run in parallel with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; (and each other), even if you do not use MP/204 (multiprocessor).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Most errors that can occur in the external module are isolated from &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt;. However, it is still possible for programming errors in external modules to corrupt or overwrite storage belonging to &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt;. &amp;lt;i&amp;gt;A programming error in your external module could result in data corruption, abends, or incorrect results in the external module or in Model&amp;amp;nbsp;204.&amp;lt;/i&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stopping an external load module===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Authorized users can stop an external module in the following ways; by executing:&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;[[#stop|External Stop]]&amp;lt;/var&amp;gt; statement, usage of a load module can be disabled by an authorized user. It can be enabled again by the &amp;lt;var&amp;gt;[[#start|External Start]]&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&amp;gt;[[#delete|External Delete]]&amp;lt;/var&amp;gt; statement, a load module can be removed from storage by an authorized user. An &amp;lt;var&amp;gt;External Delete&amp;lt;/var&amp;gt; statement must not be used for Language Environment (LE) modules, because z/OS does not support the use of DELETE of Language Environment main programs and an abend can result.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ECF statistics and messages===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
See the table in [[Using system statistics#Statistics with descriptions|Statistics with descriptions]] for the System-final, user-logout, user-since-last, SMF-logout, and SMF-since-last statistics that relate to ECF.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===BUMP command enhanced with the FORCE option for ECF users===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Simply bumping a user that is executing an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement does not interrupt the external module. The external module is allowed to complete &amp;amp;mdash; however long that takes &amp;amp;mdash;and then the bump takes effect.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
To interrupt an external module, you must issue a &amp;lt;var&amp;gt;[[BUMP command|BUMP]]&amp;lt;/var&amp;gt; command with the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option. Or, you can continue to use the &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement with the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option is specified on a &amp;lt;var&amp;gt;BUMP&amp;lt;/var&amp;gt; command, then the users who are running an external module are interrupted. The &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option may be combined with any other &amp;lt;var&amp;gt;BUMP&amp;lt;/var&amp;gt; options. When you specify the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option, it must be the first option on the command.&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;BUMP FORCE ALL&lt;br /&gt;
 &lt;br /&gt;
BUMP FORCE SUBSYS MYAPSY&lt;br /&gt;
 &lt;br /&gt;
BUMP FORCE MODULE MYPGM&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For users who are not running an external module, the presence or absence of the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option is irrelevant. Adding the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option affects only users who are running an external module. The &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option does not interrupt users that are in an unbumpable wait.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;extStmt&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;ECF SOUL statements==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
You must check &amp;lt;var&amp;gt;[[$Status]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[$StatusD]]&amp;lt;/var&amp;gt; return codes after each ECF statement.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===&amp;lt;b id=&amp;quot;call&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Call statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Calls an external module that was previously loaded using an &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement, using a call name that was previously specified in an &amp;lt;var&amp;gt;External Name&amp;lt;/var&amp;gt; statement.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
Any user&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Call &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;call-name&amp;lt;/span&amp;gt; [WITH &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;image-1&amp;lt;/span&amp;gt; [,&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;image-2&amp;lt;/span&amp;gt;,...&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;image-60&amp;lt;/span&amp;gt;]] &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;call-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Logical name, either a literal or %variable, of the external module to invoke.&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;th&amp;gt;&amp;lt;var&amp;gt;WITH clause&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The optional &amp;lt;var&amp;gt;WITH&amp;lt;/var&amp;gt; clause specifies the images to pass as a parameter area between the SOUL program and the external module. If no parameter area is required, you can omit the &amp;lt;var&amp;gt;WITH&amp;lt;/var&amp;gt; clause.&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;th nowrap&amp;gt;image-1,...image-60&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name(s) of a previously defined image(s) to pass to the external module.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can specify from one to sixty images separated by commas.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;A return code of zero does not mean that the external module performed as it was designed; it simply means that the module was successfully invoked and completed without an abend. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Without a parameter area, the external module cannot directly pass any data back to a SOUL program other than via its return code. It can, of course, indirectly pass data back: for example, by updating a sequential data set that the SOUL program can then inspect.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If Model&amp;amp;nbsp;204 is using an external authorizer such as ACF2, RACF, or Top/Secret: The default external-authorizer profile under which a job invoked by a privileged ECF statement runs is changed in version 7.7 of Model&amp;amp;nbsp;204. Instead of such a job running under the &amp;lt;i&amp;gt;job&#039;s&amp;lt;/i&amp;gt; external-authorizer profile (as it did prior to 7.7), the job runs by default in 7.7 under the &amp;lt;i&amp;gt;user&#039;s&amp;lt;/i&amp;gt; external-authorizer profile. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The default behavior can be changed by turning on the system parameter &amp;lt;var&amp;gt;[[ECPRIV parameter|ECPRIV]]&amp;lt;/var&amp;gt; 4 bit. &amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;delete&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Delete statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Removes a previously loaded external module from storage.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Delete &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-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;/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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or a %variable that is the module name of a previously loaded external module.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Do &amp;lt;i&amp;gt;not&amp;lt;/i&amp;gt; use the &amp;lt;var&amp;gt;External Delete&amp;lt;/var&amp;gt; statement for Language Environment modules.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;load&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Load statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Loads an external module into storage. The module, previously defined by an &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement, is loaded and is then available to all users.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Load &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-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;/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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or a %variable that is the name of the external module, a PDS member name.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;module&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Module statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Defines an external module for later loading. &amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Module &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt; [DDNAME=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;ddname&amp;lt;/span&amp;gt;]&lt;br /&gt;
         [PARMTYPE=INPUT | OUTPUT]&lt;br /&gt;
         [PARMSIZE=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;value&amp;lt;/span&amp;gt;]&lt;br /&gt;
         [PARMMODE=[24 | 31]]&lt;br /&gt;
         [REENTRANT | AFFINITY]&lt;br /&gt;
         [IDCAMS]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or %variable that is the name of the external module, a PDS member name. Required.&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;th&amp;gt;ddname &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or %variable that is the DDNAME of the PDS where the load module is located. If omitted, the standard search order or //STEPLIB is used. Optional.&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; is APF authorized, then this data set must also be APF authorized.&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;&lt;br /&gt;
&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;PARMTYPE&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The parameter (image) type passed to the external module on an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement. Optional. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;INPUT&amp;lt;/var&amp;gt; means that any changes made by the external module to the parameter are discarded. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;OUTPUT&amp;lt;/var&amp;gt;, the default, means that any changes are retained.&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;th&amp;gt;&amp;lt;var&amp;gt;PARMSIZE&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or %variable that is the required size of the parameter (image) passed to the external module on all &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statements. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If the actual parameter size does not match the required size, the &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement fails. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If &amp;lt;var&amp;gt;PARMSIZE&amp;lt;/var&amp;gt; is not specified, the parameter size is not checked. &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;&lt;br /&gt;
&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;PARMMODE&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Where storage to hold the copy of the parameter area is allocated. Optional.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;24 means allocate in 24-bit, below-the-line storage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;31, the default, means allocate in 31-bit, above the line storage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Do &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; specify &amp;lt;code&amp;gt;PARMMODE=24&amp;lt;/code&amp;gt; unless the module has a specific requirement for this setting.&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;th&amp;gt;&amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module that can be used by more than one user at a time. This optional argument takes effect only if the module was link-edited with the REENTRANT attribute.&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;th&amp;gt;&amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module always runs on the same subtask. Conversely, that subtask runs only that module.&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;th&amp;gt;&amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The module is the [https://en.wikipedia.org/wiki/IBM_mainframe_utility_programs#IDCAMS IBM IDCAMS utility]. Specifying this option causes the IDCAMS module to be invoked in such a way that, rather than reading data from the &amp;lt;var&amp;gt;SYSIN&amp;lt;/var&amp;gt; DD and sending output to the &amp;lt;var&amp;gt;SYSPRINT&amp;lt;/var&amp;gt; DD, data is read from and written to the user buffer (sometimes known as the Universal Buffer).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; option is available as of Model 204 7.7. For an example, see [[#IDCAMS example|IDCAMS example]], below.&lt;br /&gt;
&lt;br /&gt;
Specifying this option for a module other than IDCAMS is likely to result in abends in the module when called.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use an &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement to define a module using either:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;New name and attributes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Existing name. Attributes associated with an existing name are replaced by new attributes.&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;Subtask affinity, which is specified by the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; keyword, is required in some situations. For example, when an external module opens a data set on one call, but does not close it till a subsequent call. Subtask affinity is required because z/OS requires that you open and close a data set from the same subtask. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; keyword is incompatible with the &amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; keyword. A compilation error is generated, if both are specified for the same module. You specify one or the other or neither, but not both.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;name&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Name statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Use the &amp;lt;var&amp;gt;External Name&amp;lt;/var&amp;gt; statement to:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Associate a logical call name with the name of a module that was previously defined by issuing an &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Remove a previously set up association. A module can have multiple call names.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Name &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;call-name&amp;lt;/span&amp;gt; FOR &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
External Name &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;call-name&amp;lt;/span&amp;gt; REMOVE&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;call-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Logical name to associate with an external module. Up to 48 characters.&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name of a previously loaded external module.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;start&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Start statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Enables further calls to an ECF module.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Start &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name of a previously loaded external module.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Initially a module is in the START state. You need not issue an &amp;lt;var&amp;gt;External Start&amp;lt;/var&amp;gt; statement unless you want to reverse a prior &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;stop&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Stop statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Stops further calls to an ECF module. Currently executing calls either complete or, if the FORCE option is used, abend.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Stop &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt; [FORCE]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name of a previously loaded external module.&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;th&amp;gt;&amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Users currently executing the specified module are bumped.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;The following table describes how an &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement is evaluated.&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;When &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement is issued &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;&lt;br /&gt;
Then&amp;lt;/th&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&amp;gt;If no users are executing the module &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module is immediately marked stopped. &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&amp;gt;If one or more users are executing the module &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module is marked draining until the last user finishes executing the module, then it is marked stopped. &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&amp;gt;If &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; was specified &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Current users of the module are bumped.&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&amp;gt;If &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; was not specified &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Current users of the module are allowed to complete. &amp;lt;/td&amp;gt;&lt;br /&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 all cases, subsequent attempts by any user to call the module with an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement result in a &amp;lt;var&amp;gt;$Status&amp;lt;/var&amp;gt; of 8. &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; Rocket Software does not recommend using the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option, as &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; cannot ensure that the external module is terminated cleanly.&amp;lt;/p&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ECF return codes and $function==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
All &amp;lt;var&amp;gt;EXTERNAL&amp;lt;/var&amp;gt; statements set &amp;lt;var&amp;gt;$Status&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;$StatusD&amp;lt;/var&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;ECF return codes&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;$Status&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;$StatusD&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Meaning&amp;lt;/th&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 align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF function completed without error&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 align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF inactive&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 align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;User not authorized for ECF function, refer to ECPRIV parameter&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Unable to obtain ACEE for setting ECF subtask security profile&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 align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid module name&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid call name&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid DDNAME&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Image inactive&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid PARMSIZE&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 align=&amp;quot;right&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Call name not defined&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 align=&amp;quot;right&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module not defined&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 align=&amp;quot;right&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module not loaded&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 align=&amp;quot;right&amp;quot;&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module unavailable (draining or stopped)&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 align=&amp;quot;right&amp;quot;&amp;gt;10&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module not deleted&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 align=&amp;quot;right&amp;quot;&amp;gt;20&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;System busy; timed out&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module unavailable&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;No subtask available&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 align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Load or delete failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;DDNAME not present&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;DDNAME open failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;DDNAME close failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Load or delete failed; see the &amp;lt;var&amp;gt;[[$EcfStat]]&amp;lt;/var&amp;gt; function.&lt;br /&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Internal ECF abend; see the &amp;lt;var&amp;gt;$EcfStat&amp;lt;/var&amp;gt; function page.&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Internal ECF ABEND; load or delete subtask terminated by the operating system.&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 align=&amp;quot;right&amp;quot;&amp;gt;40&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module gave nonzero return code; see the &amp;lt;var&amp;gt;$EcfStat&amp;lt;/var&amp;gt; function page.&lt;br /&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module abend; see the &amp;lt;var&amp;gt;$EcfStat&amp;lt;/var&amp;gt; function page.&lt;br /&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Insufficient memory available to allocate a buffer for the parameter area&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Actual parameter size is not equal to &amp;lt;var&amp;gt;PARMSIZE&amp;lt;/var&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;When the parameter area, as updated by the external module, was being copied back to the original image(s), ECF detected that the size of one of the images had been changed. This status can occur only if an image contains a variable array whose size is changed by the external module.&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF subtask terminated by the operating system&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 align=&amp;quot;right&amp;quot;&amp;gt;50&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF internal table full&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF ECMODS table full; increase &amp;lt;var&amp;gt;ECMODS&amp;lt;/var&amp;gt; User 0 parameter&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF ECNAMES table full; increase &amp;lt;var&amp;gt;ECNAMES&amp;lt;/var&amp;gt; User 0 parameter&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===$EcfStat function===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The &amp;lt;var&amp;gt;[[$EcfStat]]&amp;lt;/var&amp;gt; function returns the detailed completion code from the previous &amp;lt;var&amp;gt;EXTERNAL&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ECF User 0 parameters==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following User 0 parameters are used by ECF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
A system manager can reset only the &amp;lt;var&amp;gt;ECWAIT&amp;lt;/var&amp;gt; parameter; the other ECF parameters cannot be reset.&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;&lt;br /&gt;
&amp;lt;th&amp;gt;User 0 parameter &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Returns...&amp;lt;/th&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&amp;gt;&amp;lt;var&amp;gt;[[ECISUBS parameter|ECISUBS]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Subtasks for running external modules initially attached&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&amp;gt;&amp;lt;var&amp;gt;[[ECMODS parameter|ECMODS]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;External modules to load&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&amp;gt;&amp;lt;var&amp;gt;[[ECMSUBS parameter|ECMSUBS]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Number of ECF subtasks for running modules&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&amp;gt;&amp;lt;var&amp;gt;[[ECNAMES parameter|ECNAMES]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Number of external call names&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&amp;gt;&amp;lt;var&amp;gt;[[ECPRIV parameter|ECPRIV]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF privileges&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&amp;gt;&amp;lt;var&amp;gt;[[ECPSIZE parameter|ECPSIZE]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Size of largest image used by ECF&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&amp;gt;&amp;lt;var&amp;gt;[[ECWAIT parameter|ECWAIT]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF wait time&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&amp;gt;&amp;lt;var&amp;gt;[[ECWAIT parameter|ECMAXCPU]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Maximum CPU time in seconds allowed for an external call of an ECF module, else 0 for no limit. If limit is exceeded, the ECF module a user 099 ABEND is reflected to the ECF task. This support added by 79Z087.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Subtask and load module management==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Some z/OS overhead accrues in loading an external module into storage and attaching a z/OS subtask under which it runs. ECF avoids incurring this cost for every &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement by managing the load modules and subtasks as described in the following sections.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Subtasks assignment===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
At system startup, the following subtasks are started:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;One subtask for loading and deleting modules&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;One or more subtasks, specified by the &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; parameter, for executing external modules&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
When a user issues an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement, an unused ECF subtask is selected on which to run the external module, up to the limit of &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt;. Users unable to get a subtask enter a wait of up to &amp;lt;var&amp;gt;ECWAIT&amp;lt;/var&amp;gt; milliseconds for a subtask to become available. When an in-use ECF subtask becomes available, because the module that was running under it ends, it is assigned to a user waiting for a subtask. If a user&#039;s wait time expires before a subtask is available, a no-subtask-available failure is returned.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Subtask affinity===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Normally, when an external module is called via the &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement, ECF selects any free subtask on which to execute the module. Although this is appropriate for most external modules, some modules might need to always be executed on the same subtask. This is known as subtask affinity. Subtask affinity for a module is specified by the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option on the &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement. The &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option is incompatible with the &amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; option.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option is not specified, the module does not have subtask affinity. This is the default. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option is specified, the module has subtask affinity. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
When the first &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; of the module is executed, a dedicated subtask for the module is attached. A two-way association between the module and the subtask is established. That module will run on only that subtask, not on any other subtask. That subtask is used to run only that module, not any other module.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If a module has subtask affinity, and the dedicated subtask for that module is abnormally terminated for any reason, the previous dedicated subtask is detached, and a new dedicated subtask for the module is attached. A subtask could be abnormally terminated if the module it was running has an abend, or the user running the module is bumped. Therefore, specifying &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; does not guarantee that the same subtask is always used for that module for the duration of a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; Online.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If you use modules with subtask affinity, ensure that &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt; are appropriately set. In particular, &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt; must be greater than or equal to the number of modules with subtask affinity.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; parameter specifies the number of subtasks attached during system initialization. These subtasks are never used for modules with subtask affinity; the first &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; of a module with subtask affinity always results in a new subtask being attached (subject to &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt;). &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt; parameter specifies the maximum number of ECF subtasks used to run modules. The number of subtasks used for modules with subtask affinity plus the number of subtasks used for modules without subtask affinity will be a maximum of &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Load modules===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
An external module is usually loaded into storage just once. The exception is when an &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement, possibly preceded by an &amp;lt;var&amp;gt;External Delete&amp;lt;/var&amp;gt; statement, is used to reload a previously-loaded module.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Normally, one &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; user at a time is allowed to issue an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement for the module. Other users who attempt to call the module while it is in use, enter a wait-state of up to &amp;lt;var&amp;gt;ECWAIT&amp;lt;/var&amp;gt; milliseconds for the module to become available. When a module is freed, because the current execution of it ends, it is assigned to one of the users waiting for it. If a user&#039;s wait time expires before the module is assigned, a module-in-use failure is returned. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If a load module was link-edited with the REENTRANT (also written, RENT) attribute, and if the &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement that defined the module characteristics specified the &amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; option, then multiple &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; users are allowed to simultaneously issue an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement for the module &amp;amp;mdash; subject to subtask availability.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Fulfillment order===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
An &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement can invoke an external module only if both an ECF subtask is free, and for a serially reusable module, if the module is not in use by another user. The check that the module is not in use by another user is done before the allocation of a subtask so that the most restrictive condition is checked first.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==Restrictions and cautions==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following restrictions and cautions apply to the use of ECF:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ECF loads an external module only once, when the &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement is issued. Thereafter, every user who issues an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement for that module uses the same copy of the module. Therefore, you must write your module to initialize itself properly on every call.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ECF passes the copy of the parameter area to the external module using standard z/OS linkage conventions. Your external module must support these conventions to receive the parameters.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ECF does not provide any special initialization of the environment when you issue an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement; it merely branches to the in-memory copy of the module. Therefore, your module must perform any required initialization and termination of its run-time environment. In particular, this means that an external module, written in any language, should be written as a main routine and not a subroutine.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;Only one copy of a load module can be in memory at a time. This is a z/OS restriction.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;Externally called modules must be &amp;lt;code&amp;gt;AMODE(31)&amp;lt;/code&amp;gt; and either &amp;lt;code&amp;gt;RMODE(ANY)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RMODE(31)&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;Externally called modules must not attempt to retain any context information from one call to another. You must write the modules so that each call executes independently of any other. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;For efficiency purposes, ECF does not use z/OS to maintain the usage counts or status information for load modules. Control is passed by direct branch rather than use of the z/OS ATTACH, LINK, or XCTL macros. Therefore, one external module must not attempt to load or attach another external module, or attempt to reference code or data in another external module.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;The definition of the parameter area in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; &amp;amp;mdash; the image definition &amp;amp;mdash; must agree with the definition of the parameter area in the external module (in a COBOL program, the LINKAGE SECTION). If they do not agree, it is possible for the module to modify the wrong storage. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
To prevent this, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; checks that the external module put its results in only the assigned area &amp;amp;mdash; not somewhere else. &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; checks the area immediately past the end of the assigned area. If the unassigned area was used, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; displays the following message and restarts the user:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.2563: MODULE=&amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt; RETURNED MORE THAN &amp;lt;i&amp;gt;length&amp;lt;/i&amp;gt; BYTES&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;
==Tracking ECF==&lt;br /&gt;
 &lt;br /&gt;
===Wait types for ECF===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
See the table of codes in the [[ONLINE_monitoring#Wait_type_values| listing of wait types]] that includes the External Call Facility, wait types 43 through 46.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ECF statistics===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following statistics help you track the External Call Facility. See [[Using system statistics#Statistics with descriptions|Statistics with descriptions]] for the position in the system-final, user-logout, user-since-last, SMF-logout, and/or SMF-since-last journal record layout as they apply. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ECCALL&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCNCT&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCTOUT&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCWAITM&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCWAITS&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECDELETE&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECLOAD&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECMODMAX&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECNAMMAX&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECTSKMAX&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECTWAITM&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECTWAITS&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Statistics include only &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statements that actually called a module &amp;amp;mdash; even if the module subsequently abended. ECF statistics do not include &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statements with parameter errors or those that timed out trying to get a module or subtask.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==ECF examples==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This section illustrates, in various languages, how to write, compile, link and invoke an external module that adds two numbers together and returns the sum. For clarity, the sample code omits error handling, other standard elements, and some JCL elements.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===COBOL sample 1===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the Language Environment enabled compiler, IBM COBOL FOR z/OS AND z/VM.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;COBOL program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//COBSAMP EXEC PGM=IGYCRCTL,PARM=(NOSEQ,RENT)&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(COBSAMP),DISP=SHR&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
IDENTIFICATION DIVISION.&lt;br /&gt;
PROGRAM-ID. COBSAMP.&lt;br /&gt;
DATA DIVISION.&lt;br /&gt;
LINKAGE SECTION.&lt;br /&gt;
01  M204-PARMS.&lt;br /&gt;
    03  NUMBER-ONE              PIC S9(7) COMP-3.&lt;br /&gt;
    03  NUMBER-TWO              PIC S9(9) BINARY.&lt;br /&gt;
    03  NUMBER-SUM              PIC S9(9) BINARY.&lt;br /&gt;
PROCEDURE DIVISION USING M204-PARMS.&lt;br /&gt;
    COMPUTE NUMBER-SUM EQUAL NUMBER-ONE + NUMBER-TWO&lt;br /&gt;
    MOVE ZERO TO RETURN-CODE&lt;br /&gt;
    GOBACK.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Language Environment options&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ASMUOPT EXEC PGM=ASMA90,PARM=&#039;NOXREF&#039;&lt;br /&gt;
//SYSLIB   DD  DSN=SYS1.MACLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=CEE.SCEEMAC,DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(CEEUOPT),DISP=SHR&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
CEEUOPT  CSECT&lt;br /&gt;
CEEUOPT  AMODE ANY&lt;br /&gt;
CEEUOPT  RMODE ANY&lt;br /&gt;
         PRINT ON,NOGEN&lt;br /&gt;
         CEEXOPT&lt;br /&gt;
               ABTERMENC=(ABEND),&lt;br /&gt;
               RTEREUS=(ON)&lt;br /&gt;
         END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Linkedit&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//LINK    EXEC PGM=IEWL,PARM=&#039;LIST,MAP&#039;&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIB   DD  DSN=CEE.SCEELKED,DISP=SHR&lt;br /&gt;
//OBJLIB   DD  DSN=YOUR.OBJLIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//SYSLIN   DD  *&lt;br /&gt;
 INCLUDE OBJLIB(CEEUOPT)&lt;br /&gt;
 INCLUDE OBJLIB(COBSAMP)&lt;br /&gt;
 NAME COBSAMP(R)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ONLINE  EXEC PGM=ONLINE&lt;br /&gt;
//STEPLIB  DD  DSN=M204.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=CEE.SCEERUN,DISP=SHR&lt;br /&gt;
 &lt;br /&gt;
BEGIN&lt;br /&gt;
IMAGE PARMS&lt;br /&gt;
   NUMBER.ONE.PACKED IS PACKED LEN 4&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4&lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE COBSAMP&lt;br /&gt;
EXTERNAL LOAD COBSAMP&lt;br /&gt;
EXTERNAL NAME MOD_COBSAMP FOR COBSAMP&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS&lt;br /&gt;
%PARMS:NUMBER.ONE.PACKED = 1&lt;br /&gt;
%PARMS:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_COBSAMP WITH PARMS&lt;br /&gt;
PRINT %PARMS:NUMBER.ONE.PACKED WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Comments&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;COBOL &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Corresponds to SOUL&amp;lt;/th&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PIC S9(7) COMP-3&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PACKED LEN 4&lt;br /&gt;
&amp;lt;/p&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PIC S9(9) BINARY&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;BINARY LEN 4&lt;br /&gt;
&amp;lt;/p&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;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Language Environment option &amp;lt;code&amp;gt;ABTERMENC=(ABEND)&amp;lt;/code&amp;gt; must be specified.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Specify the Language Environment option &amp;lt;code&amp;gt;RTEREUS=(ON)&amp;lt;/code&amp;gt; and code &amp;lt;var&amp;gt;GOBACK&amp;lt;/var&amp;gt; instead of &amp;lt;var&amp;gt;STOP RUN&amp;lt;/var&amp;gt;, as illustrated, to make the runtime environment reusable and to improve performance.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Setting Language Environment options is described in IBM Manual SC28-1939 &amp;lt;var class=&amp;quot;book&amp;quot;&amp;gt;Language Environment for z/OS &amp;amp;amp; z/VM Programing Guide&amp;lt;/var&amp;gt;. In the code in the &amp;quot;Calling from SOUL&amp;quot; section in the example above, Language Environment options are set by linking CEEUOPT with the COBOL module. Other methods are also available; check with your site&#039;s Language Environment administrator to determine the appropriate method to use.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===COBOL sample 2===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example illustrates the use of multiple images using the Language Environment enabled compiler, IBM COBOL FOR z/OS AND z/VM. &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; Ordinarily, multiple images are only used if the parameters to be passed cannot fit into a single image. Images are limited in size to 32767 bytes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;COBOL program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;IDENTIFICATION DIVISION.&lt;br /&gt;
PROGRAM-ID. COBSAM2.&lt;br /&gt;
DATA DIVISION.&lt;br /&gt;
LINKAGE SECTION.&lt;br /&gt;
01  M204-PARMS1.&lt;br /&gt;
    03  NUMBER-ONE              PIC S9(7) COMP-3.&lt;br /&gt;
01  M204-PARMS2.&lt;br /&gt;
    03  NUMBER-TWO              PIC S9(9) BINARY.&lt;br /&gt;
01  M204-PARMS3.&lt;br /&gt;
    03  NUMBER-SUM              PIC S9(9) BINARY.&lt;br /&gt;
PROCEDURE DIVISION USING M204-PARMS1, M204-PARMS2, M204-PARMS3.&lt;br /&gt;
    COMPUTE NUMBER-SUM EQUAL NUMBER-ONE + NUMBER-TWO&lt;br /&gt;
    MOVE ZERO TO RETURN-CODE&lt;br /&gt;
    GOBACK.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;BEGIN&lt;br /&gt;
IMAGE PARMS1&lt;br /&gt;
   NUMBER.ONE.PACKED IS PACKED LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
IMAGE PARMS2&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
IMAGE PARMS3&lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE COBSAM2&lt;br /&gt;
EXTERNAL LOAD COBSAM2&lt;br /&gt;
EXTERNAL NAME MOD_COBSAM2  FOR COBSAM2&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS1&lt;br /&gt;
PREPARE IMAGE PARMS2&lt;br /&gt;
PREPARE IMAGE PARMS3&lt;br /&gt;
%PARMS1:NUMBER.ONE.PACKED = 1&lt;br /&gt;
%PARMS2:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_COBSAM2 WITH PARMS1, PARMS2, PARMS3&lt;br /&gt;
PRINT %PARMS1:NUMBER.ONE.PACKED WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS2:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS3:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===SAS/C sample===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the SAS/C compiler, not the IBM C compiler.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;SAS/C program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//C       EXEC PGM=LC370B&lt;br /&gt;
//STEPLIB  DD  DSN=SASC.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIB   DD  DSN=SASC.MACLIBC,DISP=SHR&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(SASCSAMP),DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
typedef struct PARMAREA {&lt;br /&gt;
    int A;&lt;br /&gt;
    int B;&lt;br /&gt;
    int C;&lt;br /&gt;
    } parmarea;&lt;br /&gt;
 &lt;br /&gt;
int main(int argc, char **argv) {&lt;br /&gt;
    parmarea *pptr;&lt;br /&gt;
    if (argc != 2) {&lt;br /&gt;
       /* the parameter list was not in OS format */&lt;br /&gt;
       return 1000;&lt;br /&gt;
       }&lt;br /&gt;
    pptr = (parmarea *) argv[1];&lt;br /&gt;
    pptr-&amp;gt;C = pptr-&amp;gt;A + pptr-&amp;gt;B;&lt;br /&gt;
    return 0;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Linkedit&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//LC      EXEC PGM=IEWL,PARM=&#039;AMODE(31),RMODE(ANY)&#039;&lt;br /&gt;
//SYSLIB   DD  DSN=SASC.STDLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=SASC.BASELIB,DISP=SHR&lt;br /&gt;
//OBJLIB   DD  DSN=YOUR.OBJLIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIN DD *&lt;br /&gt;
  INCLUDE  OBJLIB(SASCSAMP)&lt;br /&gt;
  ENTRY    $MAINC&lt;br /&gt;
  NAME     SASCSAMP(R)&lt;br /&gt;
//*&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ONLINE  EXEC PGM=ONLINE&lt;br /&gt;
//STEPLIB  DD  DSN=M204.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
 &lt;br /&gt;
BEGIN&lt;br /&gt;
IMAGE PARMS&lt;br /&gt;
   NUMBER.ONE.BINARY IS BINARY LEN 4&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4 &lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE SASCSAMP&lt;br /&gt;
EXTERNAL LOAD SASCSAMP&lt;br /&gt;
EXTERNAL NAME MOD_SASCSAMP FOR SASCSAMP&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS&lt;br /&gt;
%PARMS:NUMBER.ONE.BINARY = 1&lt;br /&gt;
%PARMS:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_SASCSAMP WITH PARMS&lt;br /&gt;
PRINT %PARMS:NUMBER.ONE.BINARY WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Comments&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;SAS/C &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Corresponds to SOUL&amp;lt;/th&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;int&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;BINARY LEN 4&lt;br /&gt;
&amp;lt;/p&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;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The SAS/C program must be coded as a main program, not a subroutine.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;To enable SAS/C to accept parameters in standard OS format, the entry point must be defined as &amp;lt;code&amp;gt;$MAINC&amp;lt;/code&amp;gt; and the parameters handled as illustrated. This technique is described in the &amp;lt;var class=&amp;quot;book&amp;quot;&amp;gt;SAS/C Compiler and Library User&#039;s Guide&amp;lt;/var&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Assembler sample===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the non-Language Environment assembler.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Assembler program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ASMSAMP EXEC PGM=ASMA90&lt;br /&gt;
//SYSLIB   DD  DSN=SYS1.MACLIB,DISP=SHR&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(ASMSAMP),DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
ASMSAMP  CSECT&lt;br /&gt;
 &lt;br /&gt;
ASMSAMP  AMODE 31&lt;br /&gt;
ASMSAMP  RMODE ANY&lt;br /&gt;
         USING *,15&lt;br /&gt;
         L     1,0(1)     GET ADDRESS OF IMAGE COPY&lt;br /&gt;
         XC    WORKAREA,WORKAREA     CLEAR WORK AREA&lt;br /&gt;
         MVC   WORKAREA+4(4),0(1)    GET FIRST NUMBER  (PACKED)&lt;br /&gt;
         CVB   0,WORKAREA            GET FIRST NUMBER  (BINARY)&lt;br /&gt;
         A     0,4(1)                ADD SECOND NUMBER (BINARY)&lt;br /&gt;
         ST    0,8(1)                STORE SUM         (BINARY)&lt;br /&gt;
         XR    15,15                 ZERO RETURN CODE&lt;br /&gt;
         BR    14                    RETURN&lt;br /&gt;
         DS    0D&lt;br /&gt;
WORKAREA DS    PL8                   WORKING STORAGE&lt;br /&gt;
         END   ASMSAMP&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Linkedit&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//LASM    EXEC PGM=IEWL&lt;br /&gt;
//OBJLIB   DD  DSN=YOUR.OBJLIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIN   DD  *&lt;br /&gt;
 INCLUDE OBJLIB(ASMSAMP)&lt;br /&gt;
 NAME ASMSAMP(R)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ONLINE  EXEC PGM=ONLINE&lt;br /&gt;
//STEPLIB  DD  DSN=M204.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
 &lt;br /&gt;
BEGIN&lt;br /&gt;
IMAGE PARMS&lt;br /&gt;
   NUMBER.ONE.PACKED IS PACKED LEN 4&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4&lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE ASMSAMP&lt;br /&gt;
EXTERNAL LOAD ASMSAMP&lt;br /&gt;
EXTERNAL NAME MOD_ASMSAMP FOR ASMSAMP&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS&lt;br /&gt;
%PARMS:NUMBER.ONE.PACKED = 1&lt;br /&gt;
%PARMS:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_ASMSAMP WITH PARMS&lt;br /&gt;
CALL CHECK.STATUS&lt;br /&gt;
PRINT %PARMS:NUMBER.ONE.PACKED WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Comments&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Assembler &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Corresponds to SOUL&amp;lt;/th&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;DS PL4&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PACKED LEN 4&lt;br /&gt;
&amp;lt;/p&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;DS F&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;BINARY LEN 4&lt;br /&gt;
&amp;lt;/p&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;
 &lt;br /&gt;
&amp;lt;span id=&amp;quot;idcams&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
===IDCAMS example===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; option (available as of Model&amp;amp;nbsp;204 7.7) on the ECF &amp;lt;var&amp;gt;Module&amp;lt;/var&amp;gt; statement to have IDCAMS input and output go from/to the user buffer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Module definition====&lt;br /&gt;
The following &amp;lt;var&amp;gt;External&amp;lt;/var&amp;gt; statements make IDCAMS available:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;b&lt;br /&gt;
external module idcams idcams&lt;br /&gt;
external load idcams&lt;br /&gt;
external name idcams for idcams&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; is invoked by &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt;, the user&#039;s [[Universal Buffer]] must contain the input lines to be passed to &amp;lt;code&amp;gt;SYSIN&amp;lt;/code&amp;gt;, separated by EBCDIC linefeed characters (X&#039;25&#039;). The output lines from &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; are appended to the Universal Buffer, also separated by new lines. &lt;br /&gt;
 &lt;br /&gt;
Before calling &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt;, the Universal Buffer must be allocated to a length sufficient to hold all of the input lines and all of the expected output lines. If the buffer is too small, output is truncated. While it is possible to calculate the optimum Universal Buffer length on each invocation, it is better to do the following to minimize storage fragmentation:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the same value for all invocations.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Use a multiple of 8K. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Return codes====&lt;br /&gt;
The &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; interface can return one of the following 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;20&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Universal Buffer was overflowed, output truncated.&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;24&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Minimum outspace (2,000 bytes) not available in Universal Buffer.&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;28&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;No input data in Universal Buffer.&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;i&amp;gt;Else&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The return code is from the IDCAMS program.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;                                          &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SOUL code====&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;b      &lt;br /&gt;
 %idcams.in    is longstring &lt;br /&gt;
 %idcams.out   is longstring &lt;br /&gt;
 %lines.in     is object stringlist &lt;br /&gt;
 %lines.out    is object stringlist &lt;br /&gt;
&lt;br /&gt;
 %hlq          is string len 8 &lt;br /&gt;
 %options      is string len 32&lt;br /&gt;
 %input.len    is float  &lt;br /&gt;
 %rc           is float &lt;br /&gt;
&lt;br /&gt;
 %hlq = &#039;DRAKE&#039;    &lt;br /&gt;
 %options = &#039;VOLUMES&#039;         &lt;br /&gt;
 &lt;br /&gt;
 * Prepare IDCAMS input lines in stringlist. Note that that the &lt;br /&gt;
 * TEXT TO statement supports expressions allowing %variables and &lt;br /&gt;
 * functions to be used as the trivial example shows. &lt;br /&gt;
 %lines.in = new &lt;br /&gt;
 Text nocont To %lines.in &lt;br /&gt;
  {} LISTCAT - &lt;br /&gt;
    LEVEL({%hlq}) - &lt;br /&gt;
    {%options}&lt;br /&gt;
 End Text &lt;br /&gt;
&lt;br /&gt;
 * Note: the null expression {} in front of LISTCAT is to force &lt;br /&gt;
 * indentation, since IDCAMS commands cannnot begin in column 1. &lt;br /&gt;
&lt;br /&gt;
 * Convert the stringlist to a longstring with EBCDIC new line &lt;br /&gt;
 * delimiters at the end of each line. This is needed to use the &lt;br /&gt;
 * Model 204 Universal Buffer feature, which only understands &lt;br /&gt;
 * byte strings.        &lt;br /&gt;
 %idcams.in = %lines.in:CreateLines        &lt;br /&gt;
&lt;br /&gt;
 * Force Universal Buffer allocation of sufficient size &lt;br /&gt;
 modify buffer size=65536 nopreserve clear       &lt;br /&gt;
&lt;br /&gt;
 * Prime Universal Buffer with input for IDCAMS, save its length &lt;br /&gt;
 %input.len = $Lstr_Set_UserBuffer(%idcams.in)   &lt;br /&gt;
&lt;br /&gt;
 * Call the IDCAMS wrapper, appending output to Universal Buffer &lt;br /&gt;
 external call idcams &lt;br /&gt;
 Printtext $status={$STATUS}, $STATUSD={$STATUSD}, $ECFSTAT={$ECFSTAT} &lt;br /&gt;
 %rc = +$substr($ecfstat,4,5)         &lt;br /&gt;
 Printtext In simpler terms, the IDCAMS return code was {%rc}. &lt;br /&gt;
&lt;br /&gt;
 * Retrieve output data from Universal Buffer (too bad there isn&#039;t &lt;br /&gt;
 * a starting offset parameter) and parse lines to stringLlist. &lt;br /&gt;
 %idcams.out = $lstr_substr($lstr_Get_UserBuffer,%input.len+1)  &lt;br /&gt;
 %lines.out = new &lt;br /&gt;
 %lines.out:ParseLines(%idcams.out) &lt;br /&gt;
      &lt;br /&gt;
 Printtext IDCAMS passed the following {%lines.in:count} lines: &lt;br /&gt;
 %lines.in:print &lt;br /&gt;
      &lt;br /&gt;
 Printtext Which produced {%lines.out:count} lines of output: &lt;br /&gt;
 %lines.out:print &lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:System management]]&lt;br /&gt;
[[Category:System-level capabilities of Model 204]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=External_Call_Facility&amp;diff=120801</id>
		<title>External Call Facility</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=External_Call_Facility&amp;diff=120801"/>
		<updated>2026-01-31T21:13:42Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* ECF return codes and $function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The External Call Facility (ECF) is a method for programs written in [[SOUL]] to invoke external, non-&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; modules, such as non-IFAM COBOL modules. Data can be passed between &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; and external modules. External modules can open non-&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; data sets, read or write to them, and close them. In addition, multiple modules can be called multiple times in a single run. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
ECF is available only under z/OS.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==Working with ECF==&lt;br /&gt;
 &lt;br /&gt;
===Loading an external module===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Each external module that is called using ECF is dynamically loaded once into memory from a nominated load library or from //STEPLIB. If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; is APF authorized, then any nominated load library identified for use by ECF must also be APF authorized. Otherwise, the &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement will fail with:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;COMPLETION CODE=S306 REASON CODE=000C.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The load is done by an authorized user executing the &amp;lt;var&amp;gt;[[#load|External Load]]&amp;lt;/var&amp;gt; statement; for example, by User 0 during startup. The load is issued from a dedicated ECF subtask that is used exclusively for module loads and deletes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
After an external module is loaded, a call-name of up to 48 characters is associated with it. An association is set up by an authorized user executing the &amp;lt;var&amp;gt;[[#name|External Name]]&amp;lt;/var&amp;gt; statement; typically by User 0 during startup. More than one call name can be associated with the same load module name.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Callers of the external module always refer to the call (logical) name rather than the load module (physical) name. Thus, if a load module name or location changes, only the setup statements need to be changed; no application code changes are required.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Calling an external module===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
A previously loaded external module is called by a user executing the &amp;lt;var&amp;gt;[[#call|External Call]]&amp;lt;/var&amp;gt; statement. This invokes a separate ECF subtask to run the external module, and causes the user to enter a swappable, bumpable wait state. When the external module completes, control returns to the user. There are no restrictions on the length of time the external module can run.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Data is passed between &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; and an external module via a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; [[Images|image]]. A copy of the image is made when the module is called, so that the caller need not remain in the server while the external module runs. The external module can modify the copy of the image. The modified image is returned to the caller, unless the &amp;lt;var&amp;gt;[[#module|External Module]]&amp;lt;/var&amp;gt; statement specified &amp;lt;code&amp;gt;PARMTYPE=INPUT&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Avoiding data corruption and incorrect results===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
External modules must not access any data set that &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; or any other external module has already opened. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Attention:&amp;lt;/b&amp;gt; Failure to observe this could result in data corruption or abends, either in the external module or Model&amp;amp;nbsp;204.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
External modules invoked using ECF run under separate z/OS subtasks in the same address space as the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; Online that invoked the module. This means that external modules run in parallel with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; (and each other), even if you do not use MP/204 (multiprocessor).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Most errors that can occur in the external module are isolated from &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt;. However, it is still possible for programming errors in external modules to corrupt or overwrite storage belonging to &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt;. &amp;lt;i&amp;gt;A programming error in your external module could result in data corruption, abends, or incorrect results in the external module or in Model&amp;amp;nbsp;204.&amp;lt;/i&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stopping an external load module===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Authorized users can stop an external module in the following ways; by executing:&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;[[#stop|External Stop]]&amp;lt;/var&amp;gt; statement, usage of a load module can be disabled by an authorized user. It can be enabled again by the &amp;lt;var&amp;gt;[[#start|External Start]]&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&amp;gt;[[#delete|External Delete]]&amp;lt;/var&amp;gt; statement, a load module can be removed from storage by an authorized user. An &amp;lt;var&amp;gt;External Delete&amp;lt;/var&amp;gt; statement must not be used for Language Environment (LE) modules, because z/OS does not support the use of DELETE of Language Environment main programs and an abend can result.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ECF statistics and messages===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
See the table in [[Using system statistics#Statistics with descriptions|Statistics with descriptions]] for the System-final, user-logout, user-since-last, SMF-logout, and SMF-since-last statistics that relate to ECF.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===BUMP command enhanced with the FORCE option for ECF users===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Simply bumping a user that is executing an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement does not interrupt the external module. The external module is allowed to complete &amp;amp;mdash; however long that takes &amp;amp;mdash;and then the bump takes effect.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
To interrupt an external module, you must issue a &amp;lt;var&amp;gt;[[BUMP command|BUMP]]&amp;lt;/var&amp;gt; command with the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option. Or, you can continue to use the &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement with the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option is specified on a &amp;lt;var&amp;gt;BUMP&amp;lt;/var&amp;gt; command, then the users who are running an external module are interrupted. The &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option may be combined with any other &amp;lt;var&amp;gt;BUMP&amp;lt;/var&amp;gt; options. When you specify the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option, it must be the first option on the command.&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;BUMP FORCE ALL&lt;br /&gt;
 &lt;br /&gt;
BUMP FORCE SUBSYS MYAPSY&lt;br /&gt;
 &lt;br /&gt;
BUMP FORCE MODULE MYPGM&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For users who are not running an external module, the presence or absence of the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option is irrelevant. Adding the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option affects only users who are running an external module. The &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option does not interrupt users that are in an unbumpable wait.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;extStmt&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;ECF SOUL statements==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
You must check &amp;lt;var&amp;gt;[[$Status]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[$StatusD]]&amp;lt;/var&amp;gt; return codes after each ECF statement.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===&amp;lt;b id=&amp;quot;call&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Call statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Calls an external module that was previously loaded using an &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement, using a call name that was previously specified in an &amp;lt;var&amp;gt;External Name&amp;lt;/var&amp;gt; statement.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
Any user&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Call &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;call-name&amp;lt;/span&amp;gt; [WITH &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;image-1&amp;lt;/span&amp;gt; [,&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;image-2&amp;lt;/span&amp;gt;,...&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;image-60&amp;lt;/span&amp;gt;]] &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;call-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Logical name, either a literal or %variable, of the external module to invoke.&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;th&amp;gt;&amp;lt;var&amp;gt;WITH clause&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The optional &amp;lt;var&amp;gt;WITH&amp;lt;/var&amp;gt; clause specifies the images to pass as a parameter area between the SOUL program and the external module. If no parameter area is required, you can omit the &amp;lt;var&amp;gt;WITH&amp;lt;/var&amp;gt; clause.&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;th nowrap&amp;gt;image-1,...image-60&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name(s) of a previously defined image(s) to pass to the external module.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can specify from one to sixty images separated by commas.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;A return code of zero does not mean that the external module performed as it was designed; it simply means that the module was successfully invoked and completed without an abend. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Without a parameter area, the external module cannot directly pass any data back to a SOUL program other than via its return code. It can, of course, indirectly pass data back: for example, by updating a sequential data set that the SOUL program can then inspect.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If Model&amp;amp;nbsp;204 is using an external authorizer such as ACF2, RACF, or Top/Secret: The default external-authorizer profile under which a job invoked by a privileged ECF statement runs is changed in version 7.7 of Model&amp;amp;nbsp;204. Instead of such a job running under the &amp;lt;i&amp;gt;job&#039;s&amp;lt;/i&amp;gt; external-authorizer profile (as it did prior to 7.7), the job runs by default in 7.7 under the &amp;lt;i&amp;gt;user&#039;s&amp;lt;/i&amp;gt; external-authorizer profile. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The default behavior can be changed by turning on the system parameter &amp;lt;var&amp;gt;[[ECPRIV parameter|ECPRIV]]&amp;lt;/var&amp;gt; 4 bit. &amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;delete&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Delete statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Removes a previously loaded external module from storage.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Delete &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-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;/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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or a %variable that is the module name of a previously loaded external module.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Do &amp;lt;i&amp;gt;not&amp;lt;/i&amp;gt; use the &amp;lt;var&amp;gt;External Delete&amp;lt;/var&amp;gt; statement for Language Environment modules.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;load&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Load statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Loads an external module into storage. The module, previously defined by an &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement, is loaded and is then available to all users.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Load &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-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;/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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or a %variable that is the name of the external module, a PDS member name.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;module&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Module statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Defines an external module for later loading. &amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Module &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt; [DDNAME=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;ddname&amp;lt;/span&amp;gt;]&lt;br /&gt;
         [PARMTYPE=INPUT | OUTPUT]&lt;br /&gt;
         [PARMSIZE=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;value&amp;lt;/span&amp;gt;]&lt;br /&gt;
         [PARMMODE=[24 | 31]]&lt;br /&gt;
         [REENTRANT | AFFINITY]&lt;br /&gt;
         [IDCAMS]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or %variable that is the name of the external module, a PDS member name. Required.&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;th&amp;gt;ddname &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or %variable that is the DDNAME of the PDS where the load module is located. If omitted, the standard search order or //STEPLIB is used. Optional.&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; is APF authorized, then this data set must also be APF authorized.&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;&lt;br /&gt;
&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;PARMTYPE&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The parameter (image) type passed to the external module on an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement. Optional. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;INPUT&amp;lt;/var&amp;gt; means that any changes made by the external module to the parameter are discarded. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;OUTPUT&amp;lt;/var&amp;gt;, the default, means that any changes are retained.&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;th&amp;gt;&amp;lt;var&amp;gt;PARMSIZE&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or %variable that is the required size of the parameter (image) passed to the external module on all &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statements. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If the actual parameter size does not match the required size, the &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement fails. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If &amp;lt;var&amp;gt;PARMSIZE&amp;lt;/var&amp;gt; is not specified, the parameter size is not checked. &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;&lt;br /&gt;
&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;PARMMODE&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Where storage to hold the copy of the parameter area is allocated. Optional.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;24 means allocate in 24-bit, below-the-line storage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;31, the default, means allocate in 31-bit, above the line storage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Do &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; specify &amp;lt;code&amp;gt;PARMMODE=24&amp;lt;/code&amp;gt; unless the module has a specific requirement for this setting.&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;th&amp;gt;&amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module that can be used by more than one user at a time. This optional argument takes effect only if the module was link-edited with the REENTRANT attribute.&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;th&amp;gt;&amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module always runs on the same subtask. Conversely, that subtask runs only that module.&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;th&amp;gt;&amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The module is the [https://en.wikipedia.org/wiki/IBM_mainframe_utility_programs#IDCAMS IBM IDCAMS utility]. Specifying this option causes the IDCAMS module to be invoked in such a way that, rather than reading data from the &amp;lt;var&amp;gt;SYSIN&amp;lt;/var&amp;gt; DD and sending output to the &amp;lt;var&amp;gt;SYSPRINT&amp;lt;/var&amp;gt; DD, data is read from and written to the user buffer (sometimes known as the Universal Buffer).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; option is available as of Model 204 7.7. For an example, see [[#IDCAMS example|IDCAMS example]], below.&lt;br /&gt;
&lt;br /&gt;
Specifying this option for a module other than IDCAMS is likely to result in abends in the module when called.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use an &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement to define a module using either:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;New name and attributes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Existing name. Attributes associated with an existing name are replaced by new attributes.&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;Subtask affinity, which is specified by the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; keyword, is required in some situations. For example, when an external module opens a data set on one call, but does not close it till a subsequent call. Subtask affinity is required because z/OS requires that you open and close a data set from the same subtask. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; keyword is incompatible with the &amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; keyword. A compilation error is generated, if both are specified for the same module. You specify one or the other or neither, but not both.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;name&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Name statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Use the &amp;lt;var&amp;gt;External Name&amp;lt;/var&amp;gt; statement to:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Associate a logical call name with the name of a module that was previously defined by issuing an &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Remove a previously set up association. A module can have multiple call names.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Name &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;call-name&amp;lt;/span&amp;gt; FOR &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
External Name &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;call-name&amp;lt;/span&amp;gt; REMOVE&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;call-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Logical name to associate with an external module. Up to 48 characters.&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name of a previously loaded external module.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;start&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Start statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Enables further calls to an ECF module.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Start &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name of a previously loaded external module.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Initially a module is in the START state. You need not issue an &amp;lt;var&amp;gt;External Start&amp;lt;/var&amp;gt; statement unless you want to reverse a prior &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;stop&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Stop statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Stops further calls to an ECF module. Currently executing calls either complete or, if the FORCE option is used, abend.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Stop &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt; [FORCE]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name of a previously loaded external module.&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;th&amp;gt;&amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Users currently executing the specified module are bumped.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;The following table describes how an &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement is evaluated.&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;When &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement is issued &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;&lt;br /&gt;
Then&amp;lt;/th&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&amp;gt;If no users are executing the module &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module is immediately marked stopped. &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&amp;gt;If one or more users are executing the module &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module is marked draining until the last user finishes executing the module, then it is marked stopped. &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&amp;gt;If &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; was specified &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Current users of the module are bumped.&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&amp;gt;If &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; was not specified &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Current users of the module are allowed to complete. &amp;lt;/td&amp;gt;&lt;br /&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 all cases, subsequent attempts by any user to call the module with an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement result in a &amp;lt;var&amp;gt;$Status&amp;lt;/var&amp;gt; of 8. &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; Rocket Software does not recommend using the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option, as &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; cannot ensure that the external module is terminated cleanly.&amp;lt;/p&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ECF return codes and $function==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
All &amp;lt;var&amp;gt;EXTERNAL&amp;lt;/var&amp;gt; statements set &amp;lt;var&amp;gt;$Status&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;$StatusD&amp;lt;/var&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;ECF return codes&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;$Status&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;$StatusD&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Meaning&amp;lt;/th&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 align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF function completed without error&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 align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF inactive&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 align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;User not authorized for ECF function, see ECPRIV parameter&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Unable to obtain ACEE for setting ECF subtask security profile&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 align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid module name&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid call name&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid DDNAME&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Image inactive&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid PARMSIZE&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 align=&amp;quot;right&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Call name not defined&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 align=&amp;quot;right&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module not defined&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 align=&amp;quot;right&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module not loaded&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 align=&amp;quot;right&amp;quot;&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module unavailable (draining or stopped)&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 align=&amp;quot;right&amp;quot;&amp;gt;10&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module not deleted&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 align=&amp;quot;right&amp;quot;&amp;gt;20&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;System busy; timed out&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module unavailable&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;No subtask available&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 align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Load or delete failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;DDNAME not present&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;DDNAME open failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;DDNAME close failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Load or delete failed; see the &amp;lt;var&amp;gt;[[$EcfStat]]&amp;lt;/var&amp;gt; function.&lt;br /&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Internal ECF abend; see the &amp;lt;var&amp;gt;$EcfStat&amp;lt;/var&amp;gt; function page.&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Internal ECF ABEND; load or delete subtask terminated by the operating system.&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 align=&amp;quot;right&amp;quot;&amp;gt;40&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module gave nonzero return code; see the &amp;lt;var&amp;gt;$EcfStat&amp;lt;/var&amp;gt; function page.&lt;br /&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module abend; see the &amp;lt;var&amp;gt;$EcfStat&amp;lt;/var&amp;gt; function page.&lt;br /&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Insufficient memory available to allocate a buffer for the parameter area&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Actual parameter size is not equal to &amp;lt;var&amp;gt;PARMSIZE&amp;lt;/var&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;When the parameter area, as updated by the external module, was being copied back to the original image(s), ECF detected that the size of one of the images had been changed. This status can occur only if an image contains a variable array whose size is changed by the external module.&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF subtask terminated by the operating system&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 align=&amp;quot;right&amp;quot;&amp;gt;50&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF internal table full&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF ECMODS table full; increase &amp;lt;var&amp;gt;ECMODS&amp;lt;/var&amp;gt; User 0 parameter&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF ECNAMES table full; increase &amp;lt;var&amp;gt;ECNAMES&amp;lt;/var&amp;gt; User 0 parameter&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===$EcfStat function===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The &amp;lt;var&amp;gt;[[$EcfStat]]&amp;lt;/var&amp;gt; function returns the detailed completion code from the previous &amp;lt;var&amp;gt;EXTERNAL&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ECF User 0 parameters==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following User 0 parameters are used by ECF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
A system manager can reset only the &amp;lt;var&amp;gt;ECWAIT&amp;lt;/var&amp;gt; parameter; the other ECF parameters cannot be reset.&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;&lt;br /&gt;
&amp;lt;th&amp;gt;User 0 parameter &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Returns...&amp;lt;/th&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&amp;gt;&amp;lt;var&amp;gt;[[ECISUBS parameter|ECISUBS]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Subtasks for running external modules initially attached&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&amp;gt;&amp;lt;var&amp;gt;[[ECMODS parameter|ECMODS]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;External modules to load&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&amp;gt;&amp;lt;var&amp;gt;[[ECMSUBS parameter|ECMSUBS]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Number of ECF subtasks for running modules&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&amp;gt;&amp;lt;var&amp;gt;[[ECNAMES parameter|ECNAMES]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Number of external call names&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&amp;gt;&amp;lt;var&amp;gt;[[ECPRIV parameter|ECPRIV]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF privileges&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&amp;gt;&amp;lt;var&amp;gt;[[ECPSIZE parameter|ECPSIZE]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Size of largest image used by ECF&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&amp;gt;&amp;lt;var&amp;gt;[[ECWAIT parameter|ECWAIT]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF wait time&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&amp;gt;&amp;lt;var&amp;gt;[[ECWAIT parameter|ECMAXCPU]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Maximum CPU time in seconds allowed for an external call of an ECF module, else 0 for no limit. If limit is exceeded, the ECF module a user 099 ABEND is reflected to the ECF task. This support added by 79Z087.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Subtask and load module management==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Some z/OS overhead accrues in loading an external module into storage and attaching a z/OS subtask under which it runs. ECF avoids incurring this cost for every &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement by managing the load modules and subtasks as described in the following sections.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Subtasks assignment===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
At system startup, the following subtasks are started:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;One subtask for loading and deleting modules&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;One or more subtasks, specified by the &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; parameter, for executing external modules&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
When a user issues an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement, an unused ECF subtask is selected on which to run the external module, up to the limit of &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt;. Users unable to get a subtask enter a wait of up to &amp;lt;var&amp;gt;ECWAIT&amp;lt;/var&amp;gt; milliseconds for a subtask to become available. When an in-use ECF subtask becomes available, because the module that was running under it ends, it is assigned to a user waiting for a subtask. If a user&#039;s wait time expires before a subtask is available, a no-subtask-available failure is returned.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Subtask affinity===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Normally, when an external module is called via the &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement, ECF selects any free subtask on which to execute the module. Although this is appropriate for most external modules, some modules might need to always be executed on the same subtask. This is known as subtask affinity. Subtask affinity for a module is specified by the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option on the &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement. The &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option is incompatible with the &amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; option.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option is not specified, the module does not have subtask affinity. This is the default. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option is specified, the module has subtask affinity. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
When the first &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; of the module is executed, a dedicated subtask for the module is attached. A two-way association between the module and the subtask is established. That module will run on only that subtask, not on any other subtask. That subtask is used to run only that module, not any other module.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If a module has subtask affinity, and the dedicated subtask for that module is abnormally terminated for any reason, the previous dedicated subtask is detached, and a new dedicated subtask for the module is attached. A subtask could be abnormally terminated if the module it was running has an abend, or the user running the module is bumped. Therefore, specifying &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; does not guarantee that the same subtask is always used for that module for the duration of a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; Online.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If you use modules with subtask affinity, ensure that &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt; are appropriately set. In particular, &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt; must be greater than or equal to the number of modules with subtask affinity.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; parameter specifies the number of subtasks attached during system initialization. These subtasks are never used for modules with subtask affinity; the first &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; of a module with subtask affinity always results in a new subtask being attached (subject to &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt;). &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt; parameter specifies the maximum number of ECF subtasks used to run modules. The number of subtasks used for modules with subtask affinity plus the number of subtasks used for modules without subtask affinity will be a maximum of &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Load modules===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
An external module is usually loaded into storage just once. The exception is when an &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement, possibly preceded by an &amp;lt;var&amp;gt;External Delete&amp;lt;/var&amp;gt; statement, is used to reload a previously-loaded module.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Normally, one &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; user at a time is allowed to issue an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement for the module. Other users who attempt to call the module while it is in use, enter a wait-state of up to &amp;lt;var&amp;gt;ECWAIT&amp;lt;/var&amp;gt; milliseconds for the module to become available. When a module is freed, because the current execution of it ends, it is assigned to one of the users waiting for it. If a user&#039;s wait time expires before the module is assigned, a module-in-use failure is returned. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If a load module was link-edited with the REENTRANT (also written, RENT) attribute, and if the &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement that defined the module characteristics specified the &amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; option, then multiple &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; users are allowed to simultaneously issue an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement for the module &amp;amp;mdash; subject to subtask availability.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Fulfillment order===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
An &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement can invoke an external module only if both an ECF subtask is free, and for a serially reusable module, if the module is not in use by another user. The check that the module is not in use by another user is done before the allocation of a subtask so that the most restrictive condition is checked first.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==Restrictions and cautions==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following restrictions and cautions apply to the use of ECF:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ECF loads an external module only once, when the &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement is issued. Thereafter, every user who issues an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement for that module uses the same copy of the module. Therefore, you must write your module to initialize itself properly on every call.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ECF passes the copy of the parameter area to the external module using standard z/OS linkage conventions. Your external module must support these conventions to receive the parameters.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ECF does not provide any special initialization of the environment when you issue an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement; it merely branches to the in-memory copy of the module. Therefore, your module must perform any required initialization and termination of its run-time environment. In particular, this means that an external module, written in any language, should be written as a main routine and not a subroutine.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;Only one copy of a load module can be in memory at a time. This is a z/OS restriction.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;Externally called modules must be &amp;lt;code&amp;gt;AMODE(31)&amp;lt;/code&amp;gt; and either &amp;lt;code&amp;gt;RMODE(ANY)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RMODE(31)&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;Externally called modules must not attempt to retain any context information from one call to another. You must write the modules so that each call executes independently of any other. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;For efficiency purposes, ECF does not use z/OS to maintain the usage counts or status information for load modules. Control is passed by direct branch rather than use of the z/OS ATTACH, LINK, or XCTL macros. Therefore, one external module must not attempt to load or attach another external module, or attempt to reference code or data in another external module.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;The definition of the parameter area in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; &amp;amp;mdash; the image definition &amp;amp;mdash; must agree with the definition of the parameter area in the external module (in a COBOL program, the LINKAGE SECTION). If they do not agree, it is possible for the module to modify the wrong storage. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
To prevent this, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; checks that the external module put its results in only the assigned area &amp;amp;mdash; not somewhere else. &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; checks the area immediately past the end of the assigned area. If the unassigned area was used, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; displays the following message and restarts the user:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.2563: MODULE=&amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt; RETURNED MORE THAN &amp;lt;i&amp;gt;length&amp;lt;/i&amp;gt; BYTES&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;
==Tracking ECF==&lt;br /&gt;
 &lt;br /&gt;
===Wait types for ECF===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
See the table of codes in the [[ONLINE_monitoring#Wait_type_values| listing of wait types]] that includes the External Call Facility, wait types 43 through 46.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ECF statistics===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following statistics help you track the External Call Facility. See [[Using system statistics#Statistics with descriptions|Statistics with descriptions]] for the position in the system-final, user-logout, user-since-last, SMF-logout, and/or SMF-since-last journal record layout as they apply. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ECCALL&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCNCT&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCTOUT&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCWAITM&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCWAITS&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECDELETE&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECLOAD&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECMODMAX&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECNAMMAX&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECTSKMAX&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECTWAITM&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECTWAITS&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Statistics include only &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statements that actually called a module &amp;amp;mdash; even if the module subsequently abended. ECF statistics do not include &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statements with parameter errors or those that timed out trying to get a module or subtask.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==ECF examples==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This section illustrates, in various languages, how to write, compile, link and invoke an external module that adds two numbers together and returns the sum. For clarity, the sample code omits error handling, other standard elements, and some JCL elements.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===COBOL sample 1===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the Language Environment enabled compiler, IBM COBOL FOR z/OS AND z/VM.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;COBOL program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//COBSAMP EXEC PGM=IGYCRCTL,PARM=(NOSEQ,RENT)&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(COBSAMP),DISP=SHR&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
IDENTIFICATION DIVISION.&lt;br /&gt;
PROGRAM-ID. COBSAMP.&lt;br /&gt;
DATA DIVISION.&lt;br /&gt;
LINKAGE SECTION.&lt;br /&gt;
01  M204-PARMS.&lt;br /&gt;
    03  NUMBER-ONE              PIC S9(7) COMP-3.&lt;br /&gt;
    03  NUMBER-TWO              PIC S9(9) BINARY.&lt;br /&gt;
    03  NUMBER-SUM              PIC S9(9) BINARY.&lt;br /&gt;
PROCEDURE DIVISION USING M204-PARMS.&lt;br /&gt;
    COMPUTE NUMBER-SUM EQUAL NUMBER-ONE + NUMBER-TWO&lt;br /&gt;
    MOVE ZERO TO RETURN-CODE&lt;br /&gt;
    GOBACK.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Language Environment options&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ASMUOPT EXEC PGM=ASMA90,PARM=&#039;NOXREF&#039;&lt;br /&gt;
//SYSLIB   DD  DSN=SYS1.MACLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=CEE.SCEEMAC,DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(CEEUOPT),DISP=SHR&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
CEEUOPT  CSECT&lt;br /&gt;
CEEUOPT  AMODE ANY&lt;br /&gt;
CEEUOPT  RMODE ANY&lt;br /&gt;
         PRINT ON,NOGEN&lt;br /&gt;
         CEEXOPT&lt;br /&gt;
               ABTERMENC=(ABEND),&lt;br /&gt;
               RTEREUS=(ON)&lt;br /&gt;
         END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Linkedit&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//LINK    EXEC PGM=IEWL,PARM=&#039;LIST,MAP&#039;&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIB   DD  DSN=CEE.SCEELKED,DISP=SHR&lt;br /&gt;
//OBJLIB   DD  DSN=YOUR.OBJLIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//SYSLIN   DD  *&lt;br /&gt;
 INCLUDE OBJLIB(CEEUOPT)&lt;br /&gt;
 INCLUDE OBJLIB(COBSAMP)&lt;br /&gt;
 NAME COBSAMP(R)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ONLINE  EXEC PGM=ONLINE&lt;br /&gt;
//STEPLIB  DD  DSN=M204.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=CEE.SCEERUN,DISP=SHR&lt;br /&gt;
 &lt;br /&gt;
BEGIN&lt;br /&gt;
IMAGE PARMS&lt;br /&gt;
   NUMBER.ONE.PACKED IS PACKED LEN 4&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4&lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE COBSAMP&lt;br /&gt;
EXTERNAL LOAD COBSAMP&lt;br /&gt;
EXTERNAL NAME MOD_COBSAMP FOR COBSAMP&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS&lt;br /&gt;
%PARMS:NUMBER.ONE.PACKED = 1&lt;br /&gt;
%PARMS:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_COBSAMP WITH PARMS&lt;br /&gt;
PRINT %PARMS:NUMBER.ONE.PACKED WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Comments&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;COBOL &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Corresponds to SOUL&amp;lt;/th&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PIC S9(7) COMP-3&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PACKED LEN 4&lt;br /&gt;
&amp;lt;/p&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PIC S9(9) BINARY&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;BINARY LEN 4&lt;br /&gt;
&amp;lt;/p&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;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Language Environment option &amp;lt;code&amp;gt;ABTERMENC=(ABEND)&amp;lt;/code&amp;gt; must be specified.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Specify the Language Environment option &amp;lt;code&amp;gt;RTEREUS=(ON)&amp;lt;/code&amp;gt; and code &amp;lt;var&amp;gt;GOBACK&amp;lt;/var&amp;gt; instead of &amp;lt;var&amp;gt;STOP RUN&amp;lt;/var&amp;gt;, as illustrated, to make the runtime environment reusable and to improve performance.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Setting Language Environment options is described in IBM Manual SC28-1939 &amp;lt;var class=&amp;quot;book&amp;quot;&amp;gt;Language Environment for z/OS &amp;amp;amp; z/VM Programing Guide&amp;lt;/var&amp;gt;. In the code in the &amp;quot;Calling from SOUL&amp;quot; section in the example above, Language Environment options are set by linking CEEUOPT with the COBOL module. Other methods are also available; check with your site&#039;s Language Environment administrator to determine the appropriate method to use.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===COBOL sample 2===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example illustrates the use of multiple images using the Language Environment enabled compiler, IBM COBOL FOR z/OS AND z/VM. &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; Ordinarily, multiple images are only used if the parameters to be passed cannot fit into a single image. Images are limited in size to 32767 bytes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;COBOL program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;IDENTIFICATION DIVISION.&lt;br /&gt;
PROGRAM-ID. COBSAM2.&lt;br /&gt;
DATA DIVISION.&lt;br /&gt;
LINKAGE SECTION.&lt;br /&gt;
01  M204-PARMS1.&lt;br /&gt;
    03  NUMBER-ONE              PIC S9(7) COMP-3.&lt;br /&gt;
01  M204-PARMS2.&lt;br /&gt;
    03  NUMBER-TWO              PIC S9(9) BINARY.&lt;br /&gt;
01  M204-PARMS3.&lt;br /&gt;
    03  NUMBER-SUM              PIC S9(9) BINARY.&lt;br /&gt;
PROCEDURE DIVISION USING M204-PARMS1, M204-PARMS2, M204-PARMS3.&lt;br /&gt;
    COMPUTE NUMBER-SUM EQUAL NUMBER-ONE + NUMBER-TWO&lt;br /&gt;
    MOVE ZERO TO RETURN-CODE&lt;br /&gt;
    GOBACK.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;BEGIN&lt;br /&gt;
IMAGE PARMS1&lt;br /&gt;
   NUMBER.ONE.PACKED IS PACKED LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
IMAGE PARMS2&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
IMAGE PARMS3&lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE COBSAM2&lt;br /&gt;
EXTERNAL LOAD COBSAM2&lt;br /&gt;
EXTERNAL NAME MOD_COBSAM2  FOR COBSAM2&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS1&lt;br /&gt;
PREPARE IMAGE PARMS2&lt;br /&gt;
PREPARE IMAGE PARMS3&lt;br /&gt;
%PARMS1:NUMBER.ONE.PACKED = 1&lt;br /&gt;
%PARMS2:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_COBSAM2 WITH PARMS1, PARMS2, PARMS3&lt;br /&gt;
PRINT %PARMS1:NUMBER.ONE.PACKED WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS2:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS3:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===SAS/C sample===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the SAS/C compiler, not the IBM C compiler.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;SAS/C program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//C       EXEC PGM=LC370B&lt;br /&gt;
//STEPLIB  DD  DSN=SASC.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIB   DD  DSN=SASC.MACLIBC,DISP=SHR&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(SASCSAMP),DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
typedef struct PARMAREA {&lt;br /&gt;
    int A;&lt;br /&gt;
    int B;&lt;br /&gt;
    int C;&lt;br /&gt;
    } parmarea;&lt;br /&gt;
 &lt;br /&gt;
int main(int argc, char **argv) {&lt;br /&gt;
    parmarea *pptr;&lt;br /&gt;
    if (argc != 2) {&lt;br /&gt;
       /* the parameter list was not in OS format */&lt;br /&gt;
       return 1000;&lt;br /&gt;
       }&lt;br /&gt;
    pptr = (parmarea *) argv[1];&lt;br /&gt;
    pptr-&amp;gt;C = pptr-&amp;gt;A + pptr-&amp;gt;B;&lt;br /&gt;
    return 0;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Linkedit&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//LC      EXEC PGM=IEWL,PARM=&#039;AMODE(31),RMODE(ANY)&#039;&lt;br /&gt;
//SYSLIB   DD  DSN=SASC.STDLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=SASC.BASELIB,DISP=SHR&lt;br /&gt;
//OBJLIB   DD  DSN=YOUR.OBJLIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIN DD *&lt;br /&gt;
  INCLUDE  OBJLIB(SASCSAMP)&lt;br /&gt;
  ENTRY    $MAINC&lt;br /&gt;
  NAME     SASCSAMP(R)&lt;br /&gt;
//*&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ONLINE  EXEC PGM=ONLINE&lt;br /&gt;
//STEPLIB  DD  DSN=M204.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
 &lt;br /&gt;
BEGIN&lt;br /&gt;
IMAGE PARMS&lt;br /&gt;
   NUMBER.ONE.BINARY IS BINARY LEN 4&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4 &lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE SASCSAMP&lt;br /&gt;
EXTERNAL LOAD SASCSAMP&lt;br /&gt;
EXTERNAL NAME MOD_SASCSAMP FOR SASCSAMP&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS&lt;br /&gt;
%PARMS:NUMBER.ONE.BINARY = 1&lt;br /&gt;
%PARMS:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_SASCSAMP WITH PARMS&lt;br /&gt;
PRINT %PARMS:NUMBER.ONE.BINARY WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Comments&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;SAS/C &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Corresponds to SOUL&amp;lt;/th&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;int&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;BINARY LEN 4&lt;br /&gt;
&amp;lt;/p&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;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The SAS/C program must be coded as a main program, not a subroutine.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;To enable SAS/C to accept parameters in standard OS format, the entry point must be defined as &amp;lt;code&amp;gt;$MAINC&amp;lt;/code&amp;gt; and the parameters handled as illustrated. This technique is described in the &amp;lt;var class=&amp;quot;book&amp;quot;&amp;gt;SAS/C Compiler and Library User&#039;s Guide&amp;lt;/var&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Assembler sample===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the non-Language Environment assembler.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Assembler program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ASMSAMP EXEC PGM=ASMA90&lt;br /&gt;
//SYSLIB   DD  DSN=SYS1.MACLIB,DISP=SHR&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(ASMSAMP),DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
ASMSAMP  CSECT&lt;br /&gt;
 &lt;br /&gt;
ASMSAMP  AMODE 31&lt;br /&gt;
ASMSAMP  RMODE ANY&lt;br /&gt;
         USING *,15&lt;br /&gt;
         L     1,0(1)     GET ADDRESS OF IMAGE COPY&lt;br /&gt;
         XC    WORKAREA,WORKAREA     CLEAR WORK AREA&lt;br /&gt;
         MVC   WORKAREA+4(4),0(1)    GET FIRST NUMBER  (PACKED)&lt;br /&gt;
         CVB   0,WORKAREA            GET FIRST NUMBER  (BINARY)&lt;br /&gt;
         A     0,4(1)                ADD SECOND NUMBER (BINARY)&lt;br /&gt;
         ST    0,8(1)                STORE SUM         (BINARY)&lt;br /&gt;
         XR    15,15                 ZERO RETURN CODE&lt;br /&gt;
         BR    14                    RETURN&lt;br /&gt;
         DS    0D&lt;br /&gt;
WORKAREA DS    PL8                   WORKING STORAGE&lt;br /&gt;
         END   ASMSAMP&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Linkedit&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//LASM    EXEC PGM=IEWL&lt;br /&gt;
//OBJLIB   DD  DSN=YOUR.OBJLIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIN   DD  *&lt;br /&gt;
 INCLUDE OBJLIB(ASMSAMP)&lt;br /&gt;
 NAME ASMSAMP(R)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ONLINE  EXEC PGM=ONLINE&lt;br /&gt;
//STEPLIB  DD  DSN=M204.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
 &lt;br /&gt;
BEGIN&lt;br /&gt;
IMAGE PARMS&lt;br /&gt;
   NUMBER.ONE.PACKED IS PACKED LEN 4&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4&lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE ASMSAMP&lt;br /&gt;
EXTERNAL LOAD ASMSAMP&lt;br /&gt;
EXTERNAL NAME MOD_ASMSAMP FOR ASMSAMP&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS&lt;br /&gt;
%PARMS:NUMBER.ONE.PACKED = 1&lt;br /&gt;
%PARMS:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_ASMSAMP WITH PARMS&lt;br /&gt;
CALL CHECK.STATUS&lt;br /&gt;
PRINT %PARMS:NUMBER.ONE.PACKED WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Comments&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Assembler &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Corresponds to SOUL&amp;lt;/th&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;DS PL4&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PACKED LEN 4&lt;br /&gt;
&amp;lt;/p&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;DS F&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;BINARY LEN 4&lt;br /&gt;
&amp;lt;/p&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;
 &lt;br /&gt;
&amp;lt;span id=&amp;quot;idcams&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
===IDCAMS example===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; option (available as of Model&amp;amp;nbsp;204 7.7) on the ECF &amp;lt;var&amp;gt;Module&amp;lt;/var&amp;gt; statement to have IDCAMS input and output go from/to the user buffer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Module definition====&lt;br /&gt;
The following &amp;lt;var&amp;gt;External&amp;lt;/var&amp;gt; statements make IDCAMS available:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;b&lt;br /&gt;
external module idcams idcams&lt;br /&gt;
external load idcams&lt;br /&gt;
external name idcams for idcams&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; is invoked by &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt;, the user&#039;s [[Universal Buffer]] must contain the input lines to be passed to &amp;lt;code&amp;gt;SYSIN&amp;lt;/code&amp;gt;, separated by EBCDIC linefeed characters (X&#039;25&#039;). The output lines from &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; are appended to the Universal Buffer, also separated by new lines. &lt;br /&gt;
 &lt;br /&gt;
Before calling &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt;, the Universal Buffer must be allocated to a length sufficient to hold all of the input lines and all of the expected output lines. If the buffer is too small, output is truncated. While it is possible to calculate the optimum Universal Buffer length on each invocation, it is better to do the following to minimize storage fragmentation:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the same value for all invocations.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Use a multiple of 8K. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Return codes====&lt;br /&gt;
The &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; interface can return one of the following 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;20&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Universal Buffer was overflowed, output truncated.&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;24&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Minimum outspace (2,000 bytes) not available in Universal Buffer.&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;28&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;No input data in Universal Buffer.&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;i&amp;gt;Else&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The return code is from the IDCAMS program.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;                                          &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SOUL code====&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;b      &lt;br /&gt;
 %idcams.in    is longstring &lt;br /&gt;
 %idcams.out   is longstring &lt;br /&gt;
 %lines.in     is object stringlist &lt;br /&gt;
 %lines.out    is object stringlist &lt;br /&gt;
&lt;br /&gt;
 %hlq          is string len 8 &lt;br /&gt;
 %options      is string len 32&lt;br /&gt;
 %input.len    is float  &lt;br /&gt;
 %rc           is float &lt;br /&gt;
&lt;br /&gt;
 %hlq = &#039;DRAKE&#039;    &lt;br /&gt;
 %options = &#039;VOLUMES&#039;         &lt;br /&gt;
 &lt;br /&gt;
 * Prepare IDCAMS input lines in stringlist. Note that that the &lt;br /&gt;
 * TEXT TO statement supports expressions allowing %variables and &lt;br /&gt;
 * functions to be used as the trivial example shows. &lt;br /&gt;
 %lines.in = new &lt;br /&gt;
 Text nocont To %lines.in &lt;br /&gt;
  {} LISTCAT - &lt;br /&gt;
    LEVEL({%hlq}) - &lt;br /&gt;
    {%options}&lt;br /&gt;
 End Text &lt;br /&gt;
&lt;br /&gt;
 * Note: the null expression {} in front of LISTCAT is to force &lt;br /&gt;
 * indentation, since IDCAMS commands cannnot begin in column 1. &lt;br /&gt;
&lt;br /&gt;
 * Convert the stringlist to a longstring with EBCDIC new line &lt;br /&gt;
 * delimiters at the end of each line. This is needed to use the &lt;br /&gt;
 * Model 204 Universal Buffer feature, which only understands &lt;br /&gt;
 * byte strings.        &lt;br /&gt;
 %idcams.in = %lines.in:CreateLines        &lt;br /&gt;
&lt;br /&gt;
 * Force Universal Buffer allocation of sufficient size &lt;br /&gt;
 modify buffer size=65536 nopreserve clear       &lt;br /&gt;
&lt;br /&gt;
 * Prime Universal Buffer with input for IDCAMS, save its length &lt;br /&gt;
 %input.len = $Lstr_Set_UserBuffer(%idcams.in)   &lt;br /&gt;
&lt;br /&gt;
 * Call the IDCAMS wrapper, appending output to Universal Buffer &lt;br /&gt;
 external call idcams &lt;br /&gt;
 Printtext $status={$STATUS}, $STATUSD={$STATUSD}, $ECFSTAT={$ECFSTAT} &lt;br /&gt;
 %rc = +$substr($ecfstat,4,5)         &lt;br /&gt;
 Printtext In simpler terms, the IDCAMS return code was {%rc}. &lt;br /&gt;
&lt;br /&gt;
 * Retrieve output data from Universal Buffer (too bad there isn&#039;t &lt;br /&gt;
 * a starting offset parameter) and parse lines to stringLlist. &lt;br /&gt;
 %idcams.out = $lstr_substr($lstr_Get_UserBuffer,%input.len+1)  &lt;br /&gt;
 %lines.out = new &lt;br /&gt;
 %lines.out:ParseLines(%idcams.out) &lt;br /&gt;
      &lt;br /&gt;
 Printtext IDCAMS passed the following {%lines.in:count} lines: &lt;br /&gt;
 %lines.in:print &lt;br /&gt;
      &lt;br /&gt;
 Printtext Which produced {%lines.out:count} lines of output: &lt;br /&gt;
 %lines.out:print &lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:System management]]&lt;br /&gt;
[[Category:System-level capabilities of Model 204]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=External_Call_Facility&amp;diff=120800</id>
		<title>External Call Facility</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=External_Call_Facility&amp;diff=120800"/>
		<updated>2026-01-31T21:12:59Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* ECF return codes and $function */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The External Call Facility (ECF) is a method for programs written in [[SOUL]] to invoke external, non-&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; modules, such as non-IFAM COBOL modules. Data can be passed between &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; and external modules. External modules can open non-&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; data sets, read or write to them, and close them. In addition, multiple modules can be called multiple times in a single run. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
ECF is available only under z/OS.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==Working with ECF==&lt;br /&gt;
 &lt;br /&gt;
===Loading an external module===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Each external module that is called using ECF is dynamically loaded once into memory from a nominated load library or from //STEPLIB. If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; is APF authorized, then any nominated load library identified for use by ECF must also be APF authorized. Otherwise, the &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement will fail with:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;COMPLETION CODE=S306 REASON CODE=000C.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The load is done by an authorized user executing the &amp;lt;var&amp;gt;[[#load|External Load]]&amp;lt;/var&amp;gt; statement; for example, by User 0 during startup. The load is issued from a dedicated ECF subtask that is used exclusively for module loads and deletes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
After an external module is loaded, a call-name of up to 48 characters is associated with it. An association is set up by an authorized user executing the &amp;lt;var&amp;gt;[[#name|External Name]]&amp;lt;/var&amp;gt; statement; typically by User 0 during startup. More than one call name can be associated with the same load module name.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Callers of the external module always refer to the call (logical) name rather than the load module (physical) name. Thus, if a load module name or location changes, only the setup statements need to be changed; no application code changes are required.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Calling an external module===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
A previously loaded external module is called by a user executing the &amp;lt;var&amp;gt;[[#call|External Call]]&amp;lt;/var&amp;gt; statement. This invokes a separate ECF subtask to run the external module, and causes the user to enter a swappable, bumpable wait state. When the external module completes, control returns to the user. There are no restrictions on the length of time the external module can run.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Data is passed between &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; and an external module via a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; [[Images|image]]. A copy of the image is made when the module is called, so that the caller need not remain in the server while the external module runs. The external module can modify the copy of the image. The modified image is returned to the caller, unless the &amp;lt;var&amp;gt;[[#module|External Module]]&amp;lt;/var&amp;gt; statement specified &amp;lt;code&amp;gt;PARMTYPE=INPUT&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Avoiding data corruption and incorrect results===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
External modules must not access any data set that &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; or any other external module has already opened. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Attention:&amp;lt;/b&amp;gt; Failure to observe this could result in data corruption or abends, either in the external module or Model&amp;amp;nbsp;204.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
External modules invoked using ECF run under separate z/OS subtasks in the same address space as the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; Online that invoked the module. This means that external modules run in parallel with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; (and each other), even if you do not use MP/204 (multiprocessor).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Most errors that can occur in the external module are isolated from &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt;. However, it is still possible for programming errors in external modules to corrupt or overwrite storage belonging to &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt;. &amp;lt;i&amp;gt;A programming error in your external module could result in data corruption, abends, or incorrect results in the external module or in Model&amp;amp;nbsp;204.&amp;lt;/i&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stopping an external load module===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Authorized users can stop an external module in the following ways; by executing:&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;[[#stop|External Stop]]&amp;lt;/var&amp;gt; statement, usage of a load module can be disabled by an authorized user. It can be enabled again by the &amp;lt;var&amp;gt;[[#start|External Start]]&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&amp;gt;[[#delete|External Delete]]&amp;lt;/var&amp;gt; statement, a load module can be removed from storage by an authorized user. An &amp;lt;var&amp;gt;External Delete&amp;lt;/var&amp;gt; statement must not be used for Language Environment (LE) modules, because z/OS does not support the use of DELETE of Language Environment main programs and an abend can result.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ECF statistics and messages===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
See the table in [[Using system statistics#Statistics with descriptions|Statistics with descriptions]] for the System-final, user-logout, user-since-last, SMF-logout, and SMF-since-last statistics that relate to ECF.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===BUMP command enhanced with the FORCE option for ECF users===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Simply bumping a user that is executing an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement does not interrupt the external module. The external module is allowed to complete &amp;amp;mdash; however long that takes &amp;amp;mdash;and then the bump takes effect.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
To interrupt an external module, you must issue a &amp;lt;var&amp;gt;[[BUMP command|BUMP]]&amp;lt;/var&amp;gt; command with the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option. Or, you can continue to use the &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement with the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option is specified on a &amp;lt;var&amp;gt;BUMP&amp;lt;/var&amp;gt; command, then the users who are running an external module are interrupted. The &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option may be combined with any other &amp;lt;var&amp;gt;BUMP&amp;lt;/var&amp;gt; options. When you specify the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option, it must be the first option on the command.&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;BUMP FORCE ALL&lt;br /&gt;
 &lt;br /&gt;
BUMP FORCE SUBSYS MYAPSY&lt;br /&gt;
 &lt;br /&gt;
BUMP FORCE MODULE MYPGM&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For users who are not running an external module, the presence or absence of the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option is irrelevant. Adding the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option affects only users who are running an external module. The &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option does not interrupt users that are in an unbumpable wait.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;extStmt&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;ECF SOUL statements==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
You must check &amp;lt;var&amp;gt;[[$Status]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[$StatusD]]&amp;lt;/var&amp;gt; return codes after each ECF statement.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===&amp;lt;b id=&amp;quot;call&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Call statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Calls an external module that was previously loaded using an &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement, using a call name that was previously specified in an &amp;lt;var&amp;gt;External Name&amp;lt;/var&amp;gt; statement.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
Any user&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Call &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;call-name&amp;lt;/span&amp;gt; [WITH &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;image-1&amp;lt;/span&amp;gt; [,&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;image-2&amp;lt;/span&amp;gt;,...&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;image-60&amp;lt;/span&amp;gt;]] &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;call-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Logical name, either a literal or %variable, of the external module to invoke.&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;th&amp;gt;&amp;lt;var&amp;gt;WITH clause&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The optional &amp;lt;var&amp;gt;WITH&amp;lt;/var&amp;gt; clause specifies the images to pass as a parameter area between the SOUL program and the external module. If no parameter area is required, you can omit the &amp;lt;var&amp;gt;WITH&amp;lt;/var&amp;gt; clause.&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;th nowrap&amp;gt;image-1,...image-60&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name(s) of a previously defined image(s) to pass to the external module.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can specify from one to sixty images separated by commas.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;A return code of zero does not mean that the external module performed as it was designed; it simply means that the module was successfully invoked and completed without an abend. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Without a parameter area, the external module cannot directly pass any data back to a SOUL program other than via its return code. It can, of course, indirectly pass data back: for example, by updating a sequential data set that the SOUL program can then inspect.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If Model&amp;amp;nbsp;204 is using an external authorizer such as ACF2, RACF, or Top/Secret: The default external-authorizer profile under which a job invoked by a privileged ECF statement runs is changed in version 7.7 of Model&amp;amp;nbsp;204. Instead of such a job running under the &amp;lt;i&amp;gt;job&#039;s&amp;lt;/i&amp;gt; external-authorizer profile (as it did prior to 7.7), the job runs by default in 7.7 under the &amp;lt;i&amp;gt;user&#039;s&amp;lt;/i&amp;gt; external-authorizer profile. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The default behavior can be changed by turning on the system parameter &amp;lt;var&amp;gt;[[ECPRIV parameter|ECPRIV]]&amp;lt;/var&amp;gt; 4 bit. &amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;delete&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Delete statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Removes a previously loaded external module from storage.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Delete &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-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;/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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or a %variable that is the module name of a previously loaded external module.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Do &amp;lt;i&amp;gt;not&amp;lt;/i&amp;gt; use the &amp;lt;var&amp;gt;External Delete&amp;lt;/var&amp;gt; statement for Language Environment modules.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;load&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Load statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Loads an external module into storage. The module, previously defined by an &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement, is loaded and is then available to all users.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Load &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-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;/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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or a %variable that is the name of the external module, a PDS member name.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;module&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Module statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Defines an external module for later loading. &amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Module &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt; [DDNAME=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;ddname&amp;lt;/span&amp;gt;]&lt;br /&gt;
         [PARMTYPE=INPUT | OUTPUT]&lt;br /&gt;
         [PARMSIZE=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;value&amp;lt;/span&amp;gt;]&lt;br /&gt;
         [PARMMODE=[24 | 31]]&lt;br /&gt;
         [REENTRANT | AFFINITY]&lt;br /&gt;
         [IDCAMS]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or %variable that is the name of the external module, a PDS member name. Required.&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;th&amp;gt;ddname &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or %variable that is the DDNAME of the PDS where the load module is located. If omitted, the standard search order or //STEPLIB is used. Optional.&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; is APF authorized, then this data set must also be APF authorized.&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;&lt;br /&gt;
&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;PARMTYPE&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The parameter (image) type passed to the external module on an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement. Optional. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;INPUT&amp;lt;/var&amp;gt; means that any changes made by the external module to the parameter are discarded. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;OUTPUT&amp;lt;/var&amp;gt;, the default, means that any changes are retained.&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;th&amp;gt;&amp;lt;var&amp;gt;PARMSIZE&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or %variable that is the required size of the parameter (image) passed to the external module on all &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statements. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If the actual parameter size does not match the required size, the &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement fails. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If &amp;lt;var&amp;gt;PARMSIZE&amp;lt;/var&amp;gt; is not specified, the parameter size is not checked. &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;&lt;br /&gt;
&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;PARMMODE&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Where storage to hold the copy of the parameter area is allocated. Optional.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;24 means allocate in 24-bit, below-the-line storage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;31, the default, means allocate in 31-bit, above the line storage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Do &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; specify &amp;lt;code&amp;gt;PARMMODE=24&amp;lt;/code&amp;gt; unless the module has a specific requirement for this setting.&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;th&amp;gt;&amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module that can be used by more than one user at a time. This optional argument takes effect only if the module was link-edited with the REENTRANT attribute.&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;th&amp;gt;&amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module always runs on the same subtask. Conversely, that subtask runs only that module.&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;th&amp;gt;&amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The module is the [https://en.wikipedia.org/wiki/IBM_mainframe_utility_programs#IDCAMS IBM IDCAMS utility]. Specifying this option causes the IDCAMS module to be invoked in such a way that, rather than reading data from the &amp;lt;var&amp;gt;SYSIN&amp;lt;/var&amp;gt; DD and sending output to the &amp;lt;var&amp;gt;SYSPRINT&amp;lt;/var&amp;gt; DD, data is read from and written to the user buffer (sometimes known as the Universal Buffer).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; option is available as of Model 204 7.7. For an example, see [[#IDCAMS example|IDCAMS example]], below.&lt;br /&gt;
&lt;br /&gt;
Specifying this option for a module other than IDCAMS is likely to result in abends in the module when called.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use an &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement to define a module using either:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;New name and attributes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Existing name. Attributes associated with an existing name are replaced by new attributes.&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;Subtask affinity, which is specified by the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; keyword, is required in some situations. For example, when an external module opens a data set on one call, but does not close it till a subsequent call. Subtask affinity is required because z/OS requires that you open and close a data set from the same subtask. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; keyword is incompatible with the &amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; keyword. A compilation error is generated, if both are specified for the same module. You specify one or the other or neither, but not both.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;name&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Name statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Use the &amp;lt;var&amp;gt;External Name&amp;lt;/var&amp;gt; statement to:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Associate a logical call name with the name of a module that was previously defined by issuing an &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Remove a previously set up association. A module can have multiple call names.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Name &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;call-name&amp;lt;/span&amp;gt; FOR &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
External Name &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;call-name&amp;lt;/span&amp;gt; REMOVE&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;call-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Logical name to associate with an external module. Up to 48 characters.&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name of a previously loaded external module.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;start&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Start statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Enables further calls to an ECF module.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Start &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name of a previously loaded external module.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Initially a module is in the START state. You need not issue an &amp;lt;var&amp;gt;External Start&amp;lt;/var&amp;gt; statement unless you want to reverse a prior &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;stop&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Stop statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Stops further calls to an ECF module. Currently executing calls either complete or, if the FORCE option is used, abend.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Stop &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt; [FORCE]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name of a previously loaded external module.&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;th&amp;gt;&amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Users currently executing the specified module are bumped.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;The following table describes how an &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement is evaluated.&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;When &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement is issued &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;&lt;br /&gt;
Then&amp;lt;/th&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&amp;gt;If no users are executing the module &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module is immediately marked stopped. &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&amp;gt;If one or more users are executing the module &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module is marked draining until the last user finishes executing the module, then it is marked stopped. &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&amp;gt;If &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; was specified &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Current users of the module are bumped.&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&amp;gt;If &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; was not specified &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Current users of the module are allowed to complete. &amp;lt;/td&amp;gt;&lt;br /&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 all cases, subsequent attempts by any user to call the module with an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement result in a &amp;lt;var&amp;gt;$Status&amp;lt;/var&amp;gt; of 8. &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; Rocket Software does not recommend using the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option, as &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; cannot ensure that the external module is terminated cleanly.&amp;lt;/p&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ECF return codes and $function==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
All &amp;lt;var&amp;gt;EXTERNAL&amp;lt;/var&amp;gt; statements set &amp;lt;var&amp;gt;$Status&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;$StatusD&amp;lt;/var&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;ECF return codes&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;$Status&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;$StatusD&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Meaning&amp;lt;/th&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 align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF function completed without error&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 align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF inactive&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 align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;User not authorized for ECF function, see ECPRIV&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Unable to obtain ACEE for setting ECF subtask security profile&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 align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid module name&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid call name&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid DDNAME&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Image inactive&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid PARMSIZE&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 align=&amp;quot;right&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Call name not defined&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 align=&amp;quot;right&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module not defined&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 align=&amp;quot;right&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module not loaded&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 align=&amp;quot;right&amp;quot;&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module unavailable (draining or stopped)&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 align=&amp;quot;right&amp;quot;&amp;gt;10&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module not deleted&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 align=&amp;quot;right&amp;quot;&amp;gt;20&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;System busy; timed out&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module unavailable&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;No subtask available&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 align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Load or delete failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;DDNAME not present&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;DDNAME open failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;DDNAME close failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Load or delete failed; see the &amp;lt;var&amp;gt;[[$EcfStat]]&amp;lt;/var&amp;gt; function.&lt;br /&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Internal ECF abend; see the &amp;lt;var&amp;gt;$EcfStat&amp;lt;/var&amp;gt; function page.&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Internal ECF ABEND; load or delete subtask terminated by the operating system.&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 align=&amp;quot;right&amp;quot;&amp;gt;40&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module gave nonzero return code; see the &amp;lt;var&amp;gt;$EcfStat&amp;lt;/var&amp;gt; function page.&lt;br /&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module abend; see the &amp;lt;var&amp;gt;$EcfStat&amp;lt;/var&amp;gt; function page.&lt;br /&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Insufficient memory available to allocate a buffer for the parameter area&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Actual parameter size is not equal to &amp;lt;var&amp;gt;PARMSIZE&amp;lt;/var&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;When the parameter area, as updated by the external module, was being copied back to the original image(s), ECF detected that the size of one of the images had been changed. This status can occur only if an image contains a variable array whose size is changed by the external module.&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF subtask terminated by the operating system&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 align=&amp;quot;right&amp;quot;&amp;gt;50&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF internal table full&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF ECMODS table full; increase &amp;lt;var&amp;gt;ECMODS&amp;lt;/var&amp;gt; User 0 parameter&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF ECNAMES table full; increase &amp;lt;var&amp;gt;ECNAMES&amp;lt;/var&amp;gt; User 0 parameter&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===$EcfStat function===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The &amp;lt;var&amp;gt;[[$EcfStat]]&amp;lt;/var&amp;gt; function returns the detailed completion code from the previous &amp;lt;var&amp;gt;EXTERNAL&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ECF User 0 parameters==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following User 0 parameters are used by ECF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
A system manager can reset only the &amp;lt;var&amp;gt;ECWAIT&amp;lt;/var&amp;gt; parameter; the other ECF parameters cannot be reset.&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;&lt;br /&gt;
&amp;lt;th&amp;gt;User 0 parameter &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Returns...&amp;lt;/th&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&amp;gt;&amp;lt;var&amp;gt;[[ECISUBS parameter|ECISUBS]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Subtasks for running external modules initially attached&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&amp;gt;&amp;lt;var&amp;gt;[[ECMODS parameter|ECMODS]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;External modules to load&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&amp;gt;&amp;lt;var&amp;gt;[[ECMSUBS parameter|ECMSUBS]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Number of ECF subtasks for running modules&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&amp;gt;&amp;lt;var&amp;gt;[[ECNAMES parameter|ECNAMES]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Number of external call names&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&amp;gt;&amp;lt;var&amp;gt;[[ECPRIV parameter|ECPRIV]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF privileges&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&amp;gt;&amp;lt;var&amp;gt;[[ECPSIZE parameter|ECPSIZE]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Size of largest image used by ECF&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&amp;gt;&amp;lt;var&amp;gt;[[ECWAIT parameter|ECWAIT]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF wait time&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&amp;gt;&amp;lt;var&amp;gt;[[ECWAIT parameter|ECMAXCPU]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Maximum CPU time in seconds allowed for an external call of an ECF module, else 0 for no limit. If limit is exceeded, the ECF module a user 099 ABEND is reflected to the ECF task. This support added by 79Z087.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Subtask and load module management==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Some z/OS overhead accrues in loading an external module into storage and attaching a z/OS subtask under which it runs. ECF avoids incurring this cost for every &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement by managing the load modules and subtasks as described in the following sections.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Subtasks assignment===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
At system startup, the following subtasks are started:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;One subtask for loading and deleting modules&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;One or more subtasks, specified by the &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; parameter, for executing external modules&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
When a user issues an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement, an unused ECF subtask is selected on which to run the external module, up to the limit of &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt;. Users unable to get a subtask enter a wait of up to &amp;lt;var&amp;gt;ECWAIT&amp;lt;/var&amp;gt; milliseconds for a subtask to become available. When an in-use ECF subtask becomes available, because the module that was running under it ends, it is assigned to a user waiting for a subtask. If a user&#039;s wait time expires before a subtask is available, a no-subtask-available failure is returned.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Subtask affinity===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Normally, when an external module is called via the &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement, ECF selects any free subtask on which to execute the module. Although this is appropriate for most external modules, some modules might need to always be executed on the same subtask. This is known as subtask affinity. Subtask affinity for a module is specified by the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option on the &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement. The &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option is incompatible with the &amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; option.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option is not specified, the module does not have subtask affinity. This is the default. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option is specified, the module has subtask affinity. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
When the first &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; of the module is executed, a dedicated subtask for the module is attached. A two-way association between the module and the subtask is established. That module will run on only that subtask, not on any other subtask. That subtask is used to run only that module, not any other module.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If a module has subtask affinity, and the dedicated subtask for that module is abnormally terminated for any reason, the previous dedicated subtask is detached, and a new dedicated subtask for the module is attached. A subtask could be abnormally terminated if the module it was running has an abend, or the user running the module is bumped. Therefore, specifying &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; does not guarantee that the same subtask is always used for that module for the duration of a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; Online.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If you use modules with subtask affinity, ensure that &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt; are appropriately set. In particular, &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt; must be greater than or equal to the number of modules with subtask affinity.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; parameter specifies the number of subtasks attached during system initialization. These subtasks are never used for modules with subtask affinity; the first &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; of a module with subtask affinity always results in a new subtask being attached (subject to &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt;). &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt; parameter specifies the maximum number of ECF subtasks used to run modules. The number of subtasks used for modules with subtask affinity plus the number of subtasks used for modules without subtask affinity will be a maximum of &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Load modules===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
An external module is usually loaded into storage just once. The exception is when an &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement, possibly preceded by an &amp;lt;var&amp;gt;External Delete&amp;lt;/var&amp;gt; statement, is used to reload a previously-loaded module.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Normally, one &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; user at a time is allowed to issue an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement for the module. Other users who attempt to call the module while it is in use, enter a wait-state of up to &amp;lt;var&amp;gt;ECWAIT&amp;lt;/var&amp;gt; milliseconds for the module to become available. When a module is freed, because the current execution of it ends, it is assigned to one of the users waiting for it. If a user&#039;s wait time expires before the module is assigned, a module-in-use failure is returned. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If a load module was link-edited with the REENTRANT (also written, RENT) attribute, and if the &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement that defined the module characteristics specified the &amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; option, then multiple &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; users are allowed to simultaneously issue an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement for the module &amp;amp;mdash; subject to subtask availability.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Fulfillment order===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
An &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement can invoke an external module only if both an ECF subtask is free, and for a serially reusable module, if the module is not in use by another user. The check that the module is not in use by another user is done before the allocation of a subtask so that the most restrictive condition is checked first.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==Restrictions and cautions==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following restrictions and cautions apply to the use of ECF:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ECF loads an external module only once, when the &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement is issued. Thereafter, every user who issues an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement for that module uses the same copy of the module. Therefore, you must write your module to initialize itself properly on every call.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ECF passes the copy of the parameter area to the external module using standard z/OS linkage conventions. Your external module must support these conventions to receive the parameters.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ECF does not provide any special initialization of the environment when you issue an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement; it merely branches to the in-memory copy of the module. Therefore, your module must perform any required initialization and termination of its run-time environment. In particular, this means that an external module, written in any language, should be written as a main routine and not a subroutine.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;Only one copy of a load module can be in memory at a time. This is a z/OS restriction.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;Externally called modules must be &amp;lt;code&amp;gt;AMODE(31)&amp;lt;/code&amp;gt; and either &amp;lt;code&amp;gt;RMODE(ANY)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RMODE(31)&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;Externally called modules must not attempt to retain any context information from one call to another. You must write the modules so that each call executes independently of any other. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;For efficiency purposes, ECF does not use z/OS to maintain the usage counts or status information for load modules. Control is passed by direct branch rather than use of the z/OS ATTACH, LINK, or XCTL macros. Therefore, one external module must not attempt to load or attach another external module, or attempt to reference code or data in another external module.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;The definition of the parameter area in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; &amp;amp;mdash; the image definition &amp;amp;mdash; must agree with the definition of the parameter area in the external module (in a COBOL program, the LINKAGE SECTION). If they do not agree, it is possible for the module to modify the wrong storage. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
To prevent this, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; checks that the external module put its results in only the assigned area &amp;amp;mdash; not somewhere else. &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; checks the area immediately past the end of the assigned area. If the unassigned area was used, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; displays the following message and restarts the user:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.2563: MODULE=&amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt; RETURNED MORE THAN &amp;lt;i&amp;gt;length&amp;lt;/i&amp;gt; BYTES&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;
==Tracking ECF==&lt;br /&gt;
 &lt;br /&gt;
===Wait types for ECF===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
See the table of codes in the [[ONLINE_monitoring#Wait_type_values| listing of wait types]] that includes the External Call Facility, wait types 43 through 46.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ECF statistics===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following statistics help you track the External Call Facility. See [[Using system statistics#Statistics with descriptions|Statistics with descriptions]] for the position in the system-final, user-logout, user-since-last, SMF-logout, and/or SMF-since-last journal record layout as they apply. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ECCALL&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCNCT&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCTOUT&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCWAITM&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCWAITS&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECDELETE&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECLOAD&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECMODMAX&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECNAMMAX&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECTSKMAX&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECTWAITM&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECTWAITS&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Statistics include only &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statements that actually called a module &amp;amp;mdash; even if the module subsequently abended. ECF statistics do not include &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statements with parameter errors or those that timed out trying to get a module or subtask.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==ECF examples==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This section illustrates, in various languages, how to write, compile, link and invoke an external module that adds two numbers together and returns the sum. For clarity, the sample code omits error handling, other standard elements, and some JCL elements.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===COBOL sample 1===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the Language Environment enabled compiler, IBM COBOL FOR z/OS AND z/VM.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;COBOL program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//COBSAMP EXEC PGM=IGYCRCTL,PARM=(NOSEQ,RENT)&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(COBSAMP),DISP=SHR&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
IDENTIFICATION DIVISION.&lt;br /&gt;
PROGRAM-ID. COBSAMP.&lt;br /&gt;
DATA DIVISION.&lt;br /&gt;
LINKAGE SECTION.&lt;br /&gt;
01  M204-PARMS.&lt;br /&gt;
    03  NUMBER-ONE              PIC S9(7) COMP-3.&lt;br /&gt;
    03  NUMBER-TWO              PIC S9(9) BINARY.&lt;br /&gt;
    03  NUMBER-SUM              PIC S9(9) BINARY.&lt;br /&gt;
PROCEDURE DIVISION USING M204-PARMS.&lt;br /&gt;
    COMPUTE NUMBER-SUM EQUAL NUMBER-ONE + NUMBER-TWO&lt;br /&gt;
    MOVE ZERO TO RETURN-CODE&lt;br /&gt;
    GOBACK.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Language Environment options&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ASMUOPT EXEC PGM=ASMA90,PARM=&#039;NOXREF&#039;&lt;br /&gt;
//SYSLIB   DD  DSN=SYS1.MACLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=CEE.SCEEMAC,DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(CEEUOPT),DISP=SHR&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
CEEUOPT  CSECT&lt;br /&gt;
CEEUOPT  AMODE ANY&lt;br /&gt;
CEEUOPT  RMODE ANY&lt;br /&gt;
         PRINT ON,NOGEN&lt;br /&gt;
         CEEXOPT&lt;br /&gt;
               ABTERMENC=(ABEND),&lt;br /&gt;
               RTEREUS=(ON)&lt;br /&gt;
         END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Linkedit&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//LINK    EXEC PGM=IEWL,PARM=&#039;LIST,MAP&#039;&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIB   DD  DSN=CEE.SCEELKED,DISP=SHR&lt;br /&gt;
//OBJLIB   DD  DSN=YOUR.OBJLIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//SYSLIN   DD  *&lt;br /&gt;
 INCLUDE OBJLIB(CEEUOPT)&lt;br /&gt;
 INCLUDE OBJLIB(COBSAMP)&lt;br /&gt;
 NAME COBSAMP(R)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ONLINE  EXEC PGM=ONLINE&lt;br /&gt;
//STEPLIB  DD  DSN=M204.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=CEE.SCEERUN,DISP=SHR&lt;br /&gt;
 &lt;br /&gt;
BEGIN&lt;br /&gt;
IMAGE PARMS&lt;br /&gt;
   NUMBER.ONE.PACKED IS PACKED LEN 4&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4&lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE COBSAMP&lt;br /&gt;
EXTERNAL LOAD COBSAMP&lt;br /&gt;
EXTERNAL NAME MOD_COBSAMP FOR COBSAMP&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS&lt;br /&gt;
%PARMS:NUMBER.ONE.PACKED = 1&lt;br /&gt;
%PARMS:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_COBSAMP WITH PARMS&lt;br /&gt;
PRINT %PARMS:NUMBER.ONE.PACKED WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Comments&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;COBOL &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Corresponds to SOUL&amp;lt;/th&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PIC S9(7) COMP-3&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PACKED LEN 4&lt;br /&gt;
&amp;lt;/p&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PIC S9(9) BINARY&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;BINARY LEN 4&lt;br /&gt;
&amp;lt;/p&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;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Language Environment option &amp;lt;code&amp;gt;ABTERMENC=(ABEND)&amp;lt;/code&amp;gt; must be specified.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Specify the Language Environment option &amp;lt;code&amp;gt;RTEREUS=(ON)&amp;lt;/code&amp;gt; and code &amp;lt;var&amp;gt;GOBACK&amp;lt;/var&amp;gt; instead of &amp;lt;var&amp;gt;STOP RUN&amp;lt;/var&amp;gt;, as illustrated, to make the runtime environment reusable and to improve performance.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Setting Language Environment options is described in IBM Manual SC28-1939 &amp;lt;var class=&amp;quot;book&amp;quot;&amp;gt;Language Environment for z/OS &amp;amp;amp; z/VM Programing Guide&amp;lt;/var&amp;gt;. In the code in the &amp;quot;Calling from SOUL&amp;quot; section in the example above, Language Environment options are set by linking CEEUOPT with the COBOL module. Other methods are also available; check with your site&#039;s Language Environment administrator to determine the appropriate method to use.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===COBOL sample 2===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example illustrates the use of multiple images using the Language Environment enabled compiler, IBM COBOL FOR z/OS AND z/VM. &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; Ordinarily, multiple images are only used if the parameters to be passed cannot fit into a single image. Images are limited in size to 32767 bytes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;COBOL program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;IDENTIFICATION DIVISION.&lt;br /&gt;
PROGRAM-ID. COBSAM2.&lt;br /&gt;
DATA DIVISION.&lt;br /&gt;
LINKAGE SECTION.&lt;br /&gt;
01  M204-PARMS1.&lt;br /&gt;
    03  NUMBER-ONE              PIC S9(7) COMP-3.&lt;br /&gt;
01  M204-PARMS2.&lt;br /&gt;
    03  NUMBER-TWO              PIC S9(9) BINARY.&lt;br /&gt;
01  M204-PARMS3.&lt;br /&gt;
    03  NUMBER-SUM              PIC S9(9) BINARY.&lt;br /&gt;
PROCEDURE DIVISION USING M204-PARMS1, M204-PARMS2, M204-PARMS3.&lt;br /&gt;
    COMPUTE NUMBER-SUM EQUAL NUMBER-ONE + NUMBER-TWO&lt;br /&gt;
    MOVE ZERO TO RETURN-CODE&lt;br /&gt;
    GOBACK.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;BEGIN&lt;br /&gt;
IMAGE PARMS1&lt;br /&gt;
   NUMBER.ONE.PACKED IS PACKED LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
IMAGE PARMS2&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
IMAGE PARMS3&lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE COBSAM2&lt;br /&gt;
EXTERNAL LOAD COBSAM2&lt;br /&gt;
EXTERNAL NAME MOD_COBSAM2  FOR COBSAM2&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS1&lt;br /&gt;
PREPARE IMAGE PARMS2&lt;br /&gt;
PREPARE IMAGE PARMS3&lt;br /&gt;
%PARMS1:NUMBER.ONE.PACKED = 1&lt;br /&gt;
%PARMS2:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_COBSAM2 WITH PARMS1, PARMS2, PARMS3&lt;br /&gt;
PRINT %PARMS1:NUMBER.ONE.PACKED WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS2:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS3:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===SAS/C sample===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the SAS/C compiler, not the IBM C compiler.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;SAS/C program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//C       EXEC PGM=LC370B&lt;br /&gt;
//STEPLIB  DD  DSN=SASC.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIB   DD  DSN=SASC.MACLIBC,DISP=SHR&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(SASCSAMP),DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
typedef struct PARMAREA {&lt;br /&gt;
    int A;&lt;br /&gt;
    int B;&lt;br /&gt;
    int C;&lt;br /&gt;
    } parmarea;&lt;br /&gt;
 &lt;br /&gt;
int main(int argc, char **argv) {&lt;br /&gt;
    parmarea *pptr;&lt;br /&gt;
    if (argc != 2) {&lt;br /&gt;
       /* the parameter list was not in OS format */&lt;br /&gt;
       return 1000;&lt;br /&gt;
       }&lt;br /&gt;
    pptr = (parmarea *) argv[1];&lt;br /&gt;
    pptr-&amp;gt;C = pptr-&amp;gt;A + pptr-&amp;gt;B;&lt;br /&gt;
    return 0;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Linkedit&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//LC      EXEC PGM=IEWL,PARM=&#039;AMODE(31),RMODE(ANY)&#039;&lt;br /&gt;
//SYSLIB   DD  DSN=SASC.STDLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=SASC.BASELIB,DISP=SHR&lt;br /&gt;
//OBJLIB   DD  DSN=YOUR.OBJLIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIN DD *&lt;br /&gt;
  INCLUDE  OBJLIB(SASCSAMP)&lt;br /&gt;
  ENTRY    $MAINC&lt;br /&gt;
  NAME     SASCSAMP(R)&lt;br /&gt;
//*&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ONLINE  EXEC PGM=ONLINE&lt;br /&gt;
//STEPLIB  DD  DSN=M204.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
 &lt;br /&gt;
BEGIN&lt;br /&gt;
IMAGE PARMS&lt;br /&gt;
   NUMBER.ONE.BINARY IS BINARY LEN 4&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4 &lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE SASCSAMP&lt;br /&gt;
EXTERNAL LOAD SASCSAMP&lt;br /&gt;
EXTERNAL NAME MOD_SASCSAMP FOR SASCSAMP&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS&lt;br /&gt;
%PARMS:NUMBER.ONE.BINARY = 1&lt;br /&gt;
%PARMS:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_SASCSAMP WITH PARMS&lt;br /&gt;
PRINT %PARMS:NUMBER.ONE.BINARY WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Comments&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;SAS/C &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Corresponds to SOUL&amp;lt;/th&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;int&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;BINARY LEN 4&lt;br /&gt;
&amp;lt;/p&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;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The SAS/C program must be coded as a main program, not a subroutine.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;To enable SAS/C to accept parameters in standard OS format, the entry point must be defined as &amp;lt;code&amp;gt;$MAINC&amp;lt;/code&amp;gt; and the parameters handled as illustrated. This technique is described in the &amp;lt;var class=&amp;quot;book&amp;quot;&amp;gt;SAS/C Compiler and Library User&#039;s Guide&amp;lt;/var&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Assembler sample===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the non-Language Environment assembler.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Assembler program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ASMSAMP EXEC PGM=ASMA90&lt;br /&gt;
//SYSLIB   DD  DSN=SYS1.MACLIB,DISP=SHR&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(ASMSAMP),DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
ASMSAMP  CSECT&lt;br /&gt;
 &lt;br /&gt;
ASMSAMP  AMODE 31&lt;br /&gt;
ASMSAMP  RMODE ANY&lt;br /&gt;
         USING *,15&lt;br /&gt;
         L     1,0(1)     GET ADDRESS OF IMAGE COPY&lt;br /&gt;
         XC    WORKAREA,WORKAREA     CLEAR WORK AREA&lt;br /&gt;
         MVC   WORKAREA+4(4),0(1)    GET FIRST NUMBER  (PACKED)&lt;br /&gt;
         CVB   0,WORKAREA            GET FIRST NUMBER  (BINARY)&lt;br /&gt;
         A     0,4(1)                ADD SECOND NUMBER (BINARY)&lt;br /&gt;
         ST    0,8(1)                STORE SUM         (BINARY)&lt;br /&gt;
         XR    15,15                 ZERO RETURN CODE&lt;br /&gt;
         BR    14                    RETURN&lt;br /&gt;
         DS    0D&lt;br /&gt;
WORKAREA DS    PL8                   WORKING STORAGE&lt;br /&gt;
         END   ASMSAMP&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Linkedit&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//LASM    EXEC PGM=IEWL&lt;br /&gt;
//OBJLIB   DD  DSN=YOUR.OBJLIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIN   DD  *&lt;br /&gt;
 INCLUDE OBJLIB(ASMSAMP)&lt;br /&gt;
 NAME ASMSAMP(R)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ONLINE  EXEC PGM=ONLINE&lt;br /&gt;
//STEPLIB  DD  DSN=M204.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
 &lt;br /&gt;
BEGIN&lt;br /&gt;
IMAGE PARMS&lt;br /&gt;
   NUMBER.ONE.PACKED IS PACKED LEN 4&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4&lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE ASMSAMP&lt;br /&gt;
EXTERNAL LOAD ASMSAMP&lt;br /&gt;
EXTERNAL NAME MOD_ASMSAMP FOR ASMSAMP&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS&lt;br /&gt;
%PARMS:NUMBER.ONE.PACKED = 1&lt;br /&gt;
%PARMS:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_ASMSAMP WITH PARMS&lt;br /&gt;
CALL CHECK.STATUS&lt;br /&gt;
PRINT %PARMS:NUMBER.ONE.PACKED WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Comments&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Assembler &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Corresponds to SOUL&amp;lt;/th&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;DS PL4&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PACKED LEN 4&lt;br /&gt;
&amp;lt;/p&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;DS F&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;BINARY LEN 4&lt;br /&gt;
&amp;lt;/p&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;
 &lt;br /&gt;
&amp;lt;span id=&amp;quot;idcams&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
===IDCAMS example===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; option (available as of Model&amp;amp;nbsp;204 7.7) on the ECF &amp;lt;var&amp;gt;Module&amp;lt;/var&amp;gt; statement to have IDCAMS input and output go from/to the user buffer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Module definition====&lt;br /&gt;
The following &amp;lt;var&amp;gt;External&amp;lt;/var&amp;gt; statements make IDCAMS available:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;b&lt;br /&gt;
external module idcams idcams&lt;br /&gt;
external load idcams&lt;br /&gt;
external name idcams for idcams&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; is invoked by &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt;, the user&#039;s [[Universal Buffer]] must contain the input lines to be passed to &amp;lt;code&amp;gt;SYSIN&amp;lt;/code&amp;gt;, separated by EBCDIC linefeed characters (X&#039;25&#039;). The output lines from &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; are appended to the Universal Buffer, also separated by new lines. &lt;br /&gt;
 &lt;br /&gt;
Before calling &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt;, the Universal Buffer must be allocated to a length sufficient to hold all of the input lines and all of the expected output lines. If the buffer is too small, output is truncated. While it is possible to calculate the optimum Universal Buffer length on each invocation, it is better to do the following to minimize storage fragmentation:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the same value for all invocations.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Use a multiple of 8K. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Return codes====&lt;br /&gt;
The &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; interface can return one of the following 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;20&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Universal Buffer was overflowed, output truncated.&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;24&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Minimum outspace (2,000 bytes) not available in Universal Buffer.&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;28&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;No input data in Universal Buffer.&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;i&amp;gt;Else&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The return code is from the IDCAMS program.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;                                          &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SOUL code====&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;b      &lt;br /&gt;
 %idcams.in    is longstring &lt;br /&gt;
 %idcams.out   is longstring &lt;br /&gt;
 %lines.in     is object stringlist &lt;br /&gt;
 %lines.out    is object stringlist &lt;br /&gt;
&lt;br /&gt;
 %hlq          is string len 8 &lt;br /&gt;
 %options      is string len 32&lt;br /&gt;
 %input.len    is float  &lt;br /&gt;
 %rc           is float &lt;br /&gt;
&lt;br /&gt;
 %hlq = &#039;DRAKE&#039;    &lt;br /&gt;
 %options = &#039;VOLUMES&#039;         &lt;br /&gt;
 &lt;br /&gt;
 * Prepare IDCAMS input lines in stringlist. Note that that the &lt;br /&gt;
 * TEXT TO statement supports expressions allowing %variables and &lt;br /&gt;
 * functions to be used as the trivial example shows. &lt;br /&gt;
 %lines.in = new &lt;br /&gt;
 Text nocont To %lines.in &lt;br /&gt;
  {} LISTCAT - &lt;br /&gt;
    LEVEL({%hlq}) - &lt;br /&gt;
    {%options}&lt;br /&gt;
 End Text &lt;br /&gt;
&lt;br /&gt;
 * Note: the null expression {} in front of LISTCAT is to force &lt;br /&gt;
 * indentation, since IDCAMS commands cannnot begin in column 1. &lt;br /&gt;
&lt;br /&gt;
 * Convert the stringlist to a longstring with EBCDIC new line &lt;br /&gt;
 * delimiters at the end of each line. This is needed to use the &lt;br /&gt;
 * Model 204 Universal Buffer feature, which only understands &lt;br /&gt;
 * byte strings.        &lt;br /&gt;
 %idcams.in = %lines.in:CreateLines        &lt;br /&gt;
&lt;br /&gt;
 * Force Universal Buffer allocation of sufficient size &lt;br /&gt;
 modify buffer size=65536 nopreserve clear       &lt;br /&gt;
&lt;br /&gt;
 * Prime Universal Buffer with input for IDCAMS, save its length &lt;br /&gt;
 %input.len = $Lstr_Set_UserBuffer(%idcams.in)   &lt;br /&gt;
&lt;br /&gt;
 * Call the IDCAMS wrapper, appending output to Universal Buffer &lt;br /&gt;
 external call idcams &lt;br /&gt;
 Printtext $status={$STATUS}, $STATUSD={$STATUSD}, $ECFSTAT={$ECFSTAT} &lt;br /&gt;
 %rc = +$substr($ecfstat,4,5)         &lt;br /&gt;
 Printtext In simpler terms, the IDCAMS return code was {%rc}. &lt;br /&gt;
&lt;br /&gt;
 * Retrieve output data from Universal Buffer (too bad there isn&#039;t &lt;br /&gt;
 * a starting offset parameter) and parse lines to stringLlist. &lt;br /&gt;
 %idcams.out = $lstr_substr($lstr_Get_UserBuffer,%input.len+1)  &lt;br /&gt;
 %lines.out = new &lt;br /&gt;
 %lines.out:ParseLines(%idcams.out) &lt;br /&gt;
      &lt;br /&gt;
 Printtext IDCAMS passed the following {%lines.in:count} lines: &lt;br /&gt;
 %lines.in:print &lt;br /&gt;
      &lt;br /&gt;
 Printtext Which produced {%lines.out:count} lines of output: &lt;br /&gt;
 %lines.out:print &lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:System management]]&lt;br /&gt;
[[Category:System-level capabilities of Model 204]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=External_Call_Facility&amp;diff=120799</id>
		<title>External Call Facility</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=External_Call_Facility&amp;diff=120799"/>
		<updated>2025-12-28T15:19:14Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* ECF User 0 parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The External Call Facility (ECF) is a method for programs written in [[SOUL]] to invoke external, non-&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; modules, such as non-IFAM COBOL modules. Data can be passed between &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; and external modules. External modules can open non-&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; data sets, read or write to them, and close them. In addition, multiple modules can be called multiple times in a single run. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
ECF is available only under z/OS.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==Working with ECF==&lt;br /&gt;
 &lt;br /&gt;
===Loading an external module===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Each external module that is called using ECF is dynamically loaded once into memory from a nominated load library or from //STEPLIB. If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; is APF authorized, then any nominated load library identified for use by ECF must also be APF authorized. Otherwise, the &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement will fail with:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;COMPLETION CODE=S306 REASON CODE=000C.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The load is done by an authorized user executing the &amp;lt;var&amp;gt;[[#load|External Load]]&amp;lt;/var&amp;gt; statement; for example, by User 0 during startup. The load is issued from a dedicated ECF subtask that is used exclusively for module loads and deletes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
After an external module is loaded, a call-name of up to 48 characters is associated with it. An association is set up by an authorized user executing the &amp;lt;var&amp;gt;[[#name|External Name]]&amp;lt;/var&amp;gt; statement; typically by User 0 during startup. More than one call name can be associated with the same load module name.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Callers of the external module always refer to the call (logical) name rather than the load module (physical) name. Thus, if a load module name or location changes, only the setup statements need to be changed; no application code changes are required.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Calling an external module===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
A previously loaded external module is called by a user executing the &amp;lt;var&amp;gt;[[#call|External Call]]&amp;lt;/var&amp;gt; statement. This invokes a separate ECF subtask to run the external module, and causes the user to enter a swappable, bumpable wait state. When the external module completes, control returns to the user. There are no restrictions on the length of time the external module can run.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Data is passed between &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; and an external module via a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; [[Images|image]]. A copy of the image is made when the module is called, so that the caller need not remain in the server while the external module runs. The external module can modify the copy of the image. The modified image is returned to the caller, unless the &amp;lt;var&amp;gt;[[#module|External Module]]&amp;lt;/var&amp;gt; statement specified &amp;lt;code&amp;gt;PARMTYPE=INPUT&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Avoiding data corruption and incorrect results===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
External modules must not access any data set that &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; or any other external module has already opened. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;warn&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Attention:&amp;lt;/b&amp;gt; Failure to observe this could result in data corruption or abends, either in the external module or Model&amp;amp;nbsp;204.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
External modules invoked using ECF run under separate z/OS subtasks in the same address space as the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; Online that invoked the module. This means that external modules run in parallel with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; (and each other), even if you do not use MP/204 (multiprocessor).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Most errors that can occur in the external module are isolated from &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt;. However, it is still possible for programming errors in external modules to corrupt or overwrite storage belonging to &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt;. &amp;lt;i&amp;gt;A programming error in your external module could result in data corruption, abends, or incorrect results in the external module or in Model&amp;amp;nbsp;204.&amp;lt;/i&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stopping an external load module===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Authorized users can stop an external module in the following ways; by executing:&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;[[#stop|External Stop]]&amp;lt;/var&amp;gt; statement, usage of a load module can be disabled by an authorized user. It can be enabled again by the &amp;lt;var&amp;gt;[[#start|External Start]]&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&amp;gt;[[#delete|External Delete]]&amp;lt;/var&amp;gt; statement, a load module can be removed from storage by an authorized user. An &amp;lt;var&amp;gt;External Delete&amp;lt;/var&amp;gt; statement must not be used for Language Environment (LE) modules, because z/OS does not support the use of DELETE of Language Environment main programs and an abend can result.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ECF statistics and messages===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
See the table in [[Using system statistics#Statistics with descriptions|Statistics with descriptions]] for the System-final, user-logout, user-since-last, SMF-logout, and SMF-since-last statistics that relate to ECF.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===BUMP command enhanced with the FORCE option for ECF users===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Simply bumping a user that is executing an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement does not interrupt the external module. The external module is allowed to complete &amp;amp;mdash; however long that takes &amp;amp;mdash;and then the bump takes effect.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
To interrupt an external module, you must issue a &amp;lt;var&amp;gt;[[BUMP command|BUMP]]&amp;lt;/var&amp;gt; command with the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option. Or, you can continue to use the &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement with the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option is specified on a &amp;lt;var&amp;gt;BUMP&amp;lt;/var&amp;gt; command, then the users who are running an external module are interrupted. The &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option may be combined with any other &amp;lt;var&amp;gt;BUMP&amp;lt;/var&amp;gt; options. When you specify the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option, it must be the first option on the command.&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;BUMP FORCE ALL&lt;br /&gt;
 &lt;br /&gt;
BUMP FORCE SUBSYS MYAPSY&lt;br /&gt;
 &lt;br /&gt;
BUMP FORCE MODULE MYPGM&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For users who are not running an external module, the presence or absence of the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option is irrelevant. Adding the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option affects only users who are running an external module. The &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option does not interrupt users that are in an unbumpable wait.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;b id=&amp;quot;extStmt&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;ECF SOUL statements==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
You must check &amp;lt;var&amp;gt;[[$Status]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[$StatusD]]&amp;lt;/var&amp;gt; return codes after each ECF statement.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===&amp;lt;b id=&amp;quot;call&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Call statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Calls an external module that was previously loaded using an &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement, using a call name that was previously specified in an &amp;lt;var&amp;gt;External Name&amp;lt;/var&amp;gt; statement.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
Any user&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Call &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;call-name&amp;lt;/span&amp;gt; [WITH &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;image-1&amp;lt;/span&amp;gt; [,&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;image-2&amp;lt;/span&amp;gt;,...&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;image-60&amp;lt;/span&amp;gt;]] &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;call-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Logical name, either a literal or %variable, of the external module to invoke.&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;th&amp;gt;&amp;lt;var&amp;gt;WITH clause&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The optional &amp;lt;var&amp;gt;WITH&amp;lt;/var&amp;gt; clause specifies the images to pass as a parameter area between the SOUL program and the external module. If no parameter area is required, you can omit the &amp;lt;var&amp;gt;WITH&amp;lt;/var&amp;gt; clause.&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;th nowrap&amp;gt;image-1,...image-60&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name(s) of a previously defined image(s) to pass to the external module.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can specify from one to sixty images separated by commas.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;A return code of zero does not mean that the external module performed as it was designed; it simply means that the module was successfully invoked and completed without an abend. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Without a parameter area, the external module cannot directly pass any data back to a SOUL program other than via its return code. It can, of course, indirectly pass data back: for example, by updating a sequential data set that the SOUL program can then inspect.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If Model&amp;amp;nbsp;204 is using an external authorizer such as ACF2, RACF, or Top/Secret: The default external-authorizer profile under which a job invoked by a privileged ECF statement runs is changed in version 7.7 of Model&amp;amp;nbsp;204. Instead of such a job running under the &amp;lt;i&amp;gt;job&#039;s&amp;lt;/i&amp;gt; external-authorizer profile (as it did prior to 7.7), the job runs by default in 7.7 under the &amp;lt;i&amp;gt;user&#039;s&amp;lt;/i&amp;gt; external-authorizer profile. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The default behavior can be changed by turning on the system parameter &amp;lt;var&amp;gt;[[ECPRIV parameter|ECPRIV]]&amp;lt;/var&amp;gt; 4 bit. &amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;delete&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Delete statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Removes a previously loaded external module from storage.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Delete &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-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;/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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or a %variable that is the module name of a previously loaded external module.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Do &amp;lt;i&amp;gt;not&amp;lt;/i&amp;gt; use the &amp;lt;var&amp;gt;External Delete&amp;lt;/var&amp;gt; statement for Language Environment modules.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;load&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Load statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Loads an external module into storage. The module, previously defined by an &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement, is loaded and is then available to all users.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Load &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-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;/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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or a %variable that is the name of the external module, a PDS member name.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;module&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Module statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Defines an external module for later loading. &amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Module &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt; [DDNAME=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;ddname&amp;lt;/span&amp;gt;]&lt;br /&gt;
         [PARMTYPE=INPUT | OUTPUT]&lt;br /&gt;
         [PARMSIZE=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;value&amp;lt;/span&amp;gt;]&lt;br /&gt;
         [PARMMODE=[24 | 31]]&lt;br /&gt;
         [REENTRANT | AFFINITY]&lt;br /&gt;
         [IDCAMS]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or %variable that is the name of the external module, a PDS member name. Required.&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;th&amp;gt;ddname &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or %variable that is the DDNAME of the PDS where the load module is located. If omitted, the standard search order or //STEPLIB is used. Optional.&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; is APF authorized, then this data set must also be APF authorized.&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;&lt;br /&gt;
&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;PARMTYPE&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The parameter (image) type passed to the external module on an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement. Optional. &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;INPUT&amp;lt;/var&amp;gt; means that any changes made by the external module to the parameter are discarded. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;OUTPUT&amp;lt;/var&amp;gt;, the default, means that any changes are retained.&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;th&amp;gt;&amp;lt;var&amp;gt;PARMSIZE&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;A literal or %variable that is the required size of the parameter (image) passed to the external module on all &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statements. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If the actual parameter size does not match the required size, the &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement fails. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If &amp;lt;var&amp;gt;PARMSIZE&amp;lt;/var&amp;gt; is not specified, the parameter size is not checked. &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;&lt;br /&gt;
&amp;lt;th&amp;gt;&amp;lt;var&amp;gt;PARMMODE&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Where storage to hold the copy of the parameter area is allocated. Optional.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;24 means allocate in 24-bit, below-the-line storage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;31, the default, means allocate in 31-bit, above the line storage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Do &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; specify &amp;lt;code&amp;gt;PARMMODE=24&amp;lt;/code&amp;gt; unless the module has a specific requirement for this setting.&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;th&amp;gt;&amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module that can be used by more than one user at a time. This optional argument takes effect only if the module was link-edited with the REENTRANT attribute.&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;th&amp;gt;&amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module always runs on the same subtask. Conversely, that subtask runs only that module.&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;th&amp;gt;&amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The module is the [https://en.wikipedia.org/wiki/IBM_mainframe_utility_programs#IDCAMS IBM IDCAMS utility]. Specifying this option causes the IDCAMS module to be invoked in such a way that, rather than reading data from the &amp;lt;var&amp;gt;SYSIN&amp;lt;/var&amp;gt; DD and sending output to the &amp;lt;var&amp;gt;SYSPRINT&amp;lt;/var&amp;gt; DD, data is read from and written to the user buffer (sometimes known as the Universal Buffer).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; option is available as of Model 204 7.7. For an example, see [[#IDCAMS example|IDCAMS example]], below.&lt;br /&gt;
&lt;br /&gt;
Specifying this option for a module other than IDCAMS is likely to result in abends in the module when called.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can use an &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement to define a module using either:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;New name and attributes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Existing name. Attributes associated with an existing name are replaced by new attributes.&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;Subtask affinity, which is specified by the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; keyword, is required in some situations. For example, when an external module opens a data set on one call, but does not close it till a subsequent call. Subtask affinity is required because z/OS requires that you open and close a data set from the same subtask. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; keyword is incompatible with the &amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; keyword. A compilation error is generated, if both are specified for the same module. You specify one or the other or neither, but not both.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;name&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Name statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Use the &amp;lt;var&amp;gt;External Name&amp;lt;/var&amp;gt; statement to:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Associate a logical call name with the name of a module that was previously defined by issuing an &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Remove a previously set up association. A module can have multiple call names.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Name &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;call-name&amp;lt;/span&amp;gt; FOR &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
External Name &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;call-name&amp;lt;/span&amp;gt; REMOVE&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;call-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Logical name to associate with an external module. Up to 48 characters.&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name of a previously loaded external module.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;start&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Start statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Enables further calls to an ECF module.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Start &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name of a previously loaded external module.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Initially a module is in the START state. You need not issue an &amp;lt;var&amp;gt;External Start&amp;lt;/var&amp;gt; statement unless you want to reverse a prior &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b id=&amp;quot;stop&amp;quot;&amp;gt;&amp;lt;/b&amp;gt;External Stop statement===&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Function&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Stops further calls to an ECF module. Currently executing calls either complete or, if the FORCE option is used, abend.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Privileges&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;System manager or User 0&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Syntax&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;External Stop &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;module-name&amp;lt;/span&amp;gt; [FORCE]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Where:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Argument&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Specifies...&amp;lt;/th&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;th&amp;gt;module-name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Name of a previously loaded external module.&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;th&amp;gt;&amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Users currently executing the specified module are bumped.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;Usage&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;The following table describes how an &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement is evaluated.&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;When &amp;lt;var&amp;gt;External Stop&amp;lt;/var&amp;gt; statement is issued &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;&lt;br /&gt;
Then&amp;lt;/th&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&amp;gt;If no users are executing the module &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module is immediately marked stopped. &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&amp;gt;If one or more users are executing the module &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module is marked draining until the last user finishes executing the module, then it is marked stopped. &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&amp;gt;If &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; was specified &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Current users of the module are bumped.&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&amp;gt;If &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; was not specified &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Current users of the module are allowed to complete. &amp;lt;/td&amp;gt;&lt;br /&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 all cases, subsequent attempts by any user to call the module with an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement result in a &amp;lt;var&amp;gt;$Status&amp;lt;/var&amp;gt; of 8. &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; Rocket Software does not recommend using the &amp;lt;var&amp;gt;FORCE&amp;lt;/var&amp;gt; option, as &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; cannot ensure that the external module is terminated cleanly.&amp;lt;/p&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ECF return codes and $function==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
All &amp;lt;var&amp;gt;EXTERNAL&amp;lt;/var&amp;gt; statements set &amp;lt;var&amp;gt;$Status&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;$StatusD&amp;lt;/var&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;ECF return codes&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;$Status&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;$StatusD&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Meaning&amp;lt;/th&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 align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF function completed without error&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 align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF inactive&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 align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Not authorized&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 align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid module name&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid call name&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid DDNAME&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Image inactive&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Invalid PARMSIZE&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 align=&amp;quot;right&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Call name not defined&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 align=&amp;quot;right&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module not defined&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 align=&amp;quot;right&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module not loaded&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 align=&amp;quot;right&amp;quot;&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module unavailable (draining or stopped)&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 align=&amp;quot;right&amp;quot;&amp;gt;10&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module not deleted&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 align=&amp;quot;right&amp;quot;&amp;gt;20&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;System busy; timed out&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module unavailable&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;No subtask available&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 align=&amp;quot;right&amp;quot;&amp;gt;30&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Load or delete failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;DDNAME not present&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;DDNAME open failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;DDNAME close failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Load or delete failed; see the &amp;lt;var&amp;gt;[[$EcfStat]]&amp;lt;/var&amp;gt; function.&lt;br /&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Internal ECF abend; see the &amp;lt;var&amp;gt;$EcfStat&amp;lt;/var&amp;gt; function page.&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Internal ECF ABEND; load or delete subtask terminated by the operating system.&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 align=&amp;quot;right&amp;quot;&amp;gt;40&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module failed&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module gave nonzero return code; see the &amp;lt;var&amp;gt;$EcfStat&amp;lt;/var&amp;gt; function page.&lt;br /&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Module abend; see the &amp;lt;var&amp;gt;$EcfStat&amp;lt;/var&amp;gt; function page.&lt;br /&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Insufficient memory available to allocate a buffer for the parameter area&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Actual parameter size is not equal to &amp;lt;var&amp;gt;PARMSIZE&amp;lt;/var&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;When the parameter area, as updated by the external module, was being copied back to the original image(s), ECF detected that the size of one of the images had been changed. This status can occur only if an image contains a variable array whose size is changed by the external module.&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF subtask terminated by the operating system&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 align=&amp;quot;right&amp;quot;&amp;gt;50&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF internal table full&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF ECMODS table full; increase &amp;lt;var&amp;gt;ECMODS&amp;lt;/var&amp;gt; User 0 parameter&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&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF ECNAMES table full; increase &amp;lt;var&amp;gt;ECNAMES&amp;lt;/var&amp;gt; User 0 parameter&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===$EcfStat function===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The &amp;lt;var&amp;gt;[[$EcfStat]]&amp;lt;/var&amp;gt; function returns the detailed completion code from the previous &amp;lt;var&amp;gt;EXTERNAL&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ECF User 0 parameters==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following User 0 parameters are used by ECF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
A system manager can reset only the &amp;lt;var&amp;gt;ECWAIT&amp;lt;/var&amp;gt; parameter; the other ECF parameters cannot be reset.&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;&lt;br /&gt;
&amp;lt;th&amp;gt;User 0 parameter &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Returns...&amp;lt;/th&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&amp;gt;&amp;lt;var&amp;gt;[[ECISUBS parameter|ECISUBS]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Subtasks for running external modules initially attached&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&amp;gt;&amp;lt;var&amp;gt;[[ECMODS parameter|ECMODS]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;External modules to load&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&amp;gt;&amp;lt;var&amp;gt;[[ECMSUBS parameter|ECMSUBS]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Number of ECF subtasks for running modules&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&amp;gt;&amp;lt;var&amp;gt;[[ECNAMES parameter|ECNAMES]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Number of external call names&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&amp;gt;&amp;lt;var&amp;gt;[[ECPRIV parameter|ECPRIV]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF privileges&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&amp;gt;&amp;lt;var&amp;gt;[[ECPSIZE parameter|ECPSIZE]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Size of largest image used by ECF&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&amp;gt;&amp;lt;var&amp;gt;[[ECWAIT parameter|ECWAIT]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ECF wait time&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&amp;gt;&amp;lt;var&amp;gt;[[ECWAIT parameter|ECMAXCPU]]&amp;lt;/var&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Maximum CPU time in seconds allowed for an external call of an ECF module, else 0 for no limit. If limit is exceeded, the ECF module a user 099 ABEND is reflected to the ECF task. This support added by 79Z087.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Subtask and load module management==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Some z/OS overhead accrues in loading an external module into storage and attaching a z/OS subtask under which it runs. ECF avoids incurring this cost for every &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement by managing the load modules and subtasks as described in the following sections.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Subtasks assignment===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
At system startup, the following subtasks are started:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;One subtask for loading and deleting modules&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;One or more subtasks, specified by the &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; parameter, for executing external modules&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
When a user issues an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement, an unused ECF subtask is selected on which to run the external module, up to the limit of &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt;. Users unable to get a subtask enter a wait of up to &amp;lt;var&amp;gt;ECWAIT&amp;lt;/var&amp;gt; milliseconds for a subtask to become available. When an in-use ECF subtask becomes available, because the module that was running under it ends, it is assigned to a user waiting for a subtask. If a user&#039;s wait time expires before a subtask is available, a no-subtask-available failure is returned.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Subtask affinity===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Normally, when an external module is called via the &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement, ECF selects any free subtask on which to execute the module. Although this is appropriate for most external modules, some modules might need to always be executed on the same subtask. This is known as subtask affinity. Subtask affinity for a module is specified by the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option on the &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement. The &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option is incompatible with the &amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; option.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option is not specified, the module does not have subtask affinity. This is the default. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If the &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; option is specified, the module has subtask affinity. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
When the first &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; of the module is executed, a dedicated subtask for the module is attached. A two-way association between the module and the subtask is established. That module will run on only that subtask, not on any other subtask. That subtask is used to run only that module, not any other module.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If a module has subtask affinity, and the dedicated subtask for that module is abnormally terminated for any reason, the previous dedicated subtask is detached, and a new dedicated subtask for the module is attached. A subtask could be abnormally terminated if the module it was running has an abend, or the user running the module is bumped. Therefore, specifying &amp;lt;var&amp;gt;AFFINITY&amp;lt;/var&amp;gt; does not guarantee that the same subtask is always used for that module for the duration of a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; Online.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If you use modules with subtask affinity, ensure that &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt; are appropriately set. In particular, &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt; must be greater than or equal to the number of modules with subtask affinity.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;ECISUBS&amp;lt;/var&amp;gt; parameter specifies the number of subtasks attached during system initialization. These subtasks are never used for modules with subtask affinity; the first &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; of a module with subtask affinity always results in a new subtask being attached (subject to &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt;). &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt; parameter specifies the maximum number of ECF subtasks used to run modules. The number of subtasks used for modules with subtask affinity plus the number of subtasks used for modules without subtask affinity will be a maximum of &amp;lt;var&amp;gt;ECMSUBS&amp;lt;/var&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Load modules===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
An external module is usually loaded into storage just once. The exception is when an &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement, possibly preceded by an &amp;lt;var&amp;gt;External Delete&amp;lt;/var&amp;gt; statement, is used to reload a previously-loaded module.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Normally, one &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; user at a time is allowed to issue an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement for the module. Other users who attempt to call the module while it is in use, enter a wait-state of up to &amp;lt;var&amp;gt;ECWAIT&amp;lt;/var&amp;gt; milliseconds for the module to become available. When a module is freed, because the current execution of it ends, it is assigned to one of the users waiting for it. If a user&#039;s wait time expires before the module is assigned, a module-in-use failure is returned. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If a load module was link-edited with the REENTRANT (also written, RENT) attribute, and if the &amp;lt;var&amp;gt;External Module&amp;lt;/var&amp;gt; statement that defined the module characteristics specified the &amp;lt;var&amp;gt;REENTRANT&amp;lt;/var&amp;gt; option, then multiple &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; users are allowed to simultaneously issue an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement for the module &amp;amp;mdash; subject to subtask availability.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Fulfillment order===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
An &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement can invoke an external module only if both an ECF subtask is free, and for a serially reusable module, if the module is not in use by another user. The check that the module is not in use by another user is done before the allocation of a subtask so that the most restrictive condition is checked first.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==Restrictions and cautions==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following restrictions and cautions apply to the use of ECF:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ECF loads an external module only once, when the &amp;lt;var&amp;gt;External Load&amp;lt;/var&amp;gt; statement is issued. Thereafter, every user who issues an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement for that module uses the same copy of the module. Therefore, you must write your module to initialize itself properly on every call.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ECF passes the copy of the parameter area to the external module using standard z/OS linkage conventions. Your external module must support these conventions to receive the parameters.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ECF does not provide any special initialization of the environment when you issue an &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statement; it merely branches to the in-memory copy of the module. Therefore, your module must perform any required initialization and termination of its run-time environment. In particular, this means that an external module, written in any language, should be written as a main routine and not a subroutine.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;Only one copy of a load module can be in memory at a time. This is a z/OS restriction.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;Externally called modules must be &amp;lt;code&amp;gt;AMODE(31)&amp;lt;/code&amp;gt; and either &amp;lt;code&amp;gt;RMODE(ANY)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RMODE(31)&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;Externally called modules must not attempt to retain any context information from one call to another. You must write the modules so that each call executes independently of any other. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;For efficiency purposes, ECF does not use z/OS to maintain the usage counts or status information for load modules. Control is passed by direct branch rather than use of the z/OS ATTACH, LINK, or XCTL macros. Therefore, one external module must not attempt to load or attach another external module, or attempt to reference code or data in another external module.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;The definition of the parameter area in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; &amp;amp;mdash; the image definition &amp;amp;mdash; must agree with the definition of the parameter area in the external module (in a COBOL program, the LINKAGE SECTION). If they do not agree, it is possible for the module to modify the wrong storage. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
To prevent this, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; checks that the external module put its results in only the assigned area &amp;amp;mdash; not somewhere else. &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; checks the area immediately past the end of the assigned area. If the unassigned area was used, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; displays the following message and restarts the user:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.2563: MODULE=&amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt; RETURNED MORE THAN &amp;lt;i&amp;gt;length&amp;lt;/i&amp;gt; BYTES&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;
==Tracking ECF==&lt;br /&gt;
 &lt;br /&gt;
===Wait types for ECF===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
See the table of codes in the [[ONLINE_monitoring#Wait_type_values| listing of wait types]] that includes the External Call Facility, wait types 43 through 46.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ECF statistics===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following statistics help you track the External Call Facility. See [[Using system statistics#Statistics with descriptions|Statistics with descriptions]] for the position in the system-final, user-logout, user-since-last, SMF-logout, and/or SMF-since-last journal record layout as they apply. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ECCALL&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCNCT&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCTOUT&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCWAITM&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECCWAITS&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECDELETE&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECLOAD&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECMODMAX&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECNAMMAX&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECTSKMAX&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECTWAITM&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;ECTWAITS&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Statistics include only &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statements that actually called a module &amp;amp;mdash; even if the module subsequently abended. ECF statistics do not include &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt; statements with parameter errors or those that timed out trying to get a module or subtask.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==ECF examples==&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This section illustrates, in various languages, how to write, compile, link and invoke an external module that adds two numbers together and returns the sum. For clarity, the sample code omits error handling, other standard elements, and some JCL elements.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===COBOL sample 1===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the Language Environment enabled compiler, IBM COBOL FOR z/OS AND z/VM.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;COBOL program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//COBSAMP EXEC PGM=IGYCRCTL,PARM=(NOSEQ,RENT)&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(COBSAMP),DISP=SHR&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
IDENTIFICATION DIVISION.&lt;br /&gt;
PROGRAM-ID. COBSAMP.&lt;br /&gt;
DATA DIVISION.&lt;br /&gt;
LINKAGE SECTION.&lt;br /&gt;
01  M204-PARMS.&lt;br /&gt;
    03  NUMBER-ONE              PIC S9(7) COMP-3.&lt;br /&gt;
    03  NUMBER-TWO              PIC S9(9) BINARY.&lt;br /&gt;
    03  NUMBER-SUM              PIC S9(9) BINARY.&lt;br /&gt;
PROCEDURE DIVISION USING M204-PARMS.&lt;br /&gt;
    COMPUTE NUMBER-SUM EQUAL NUMBER-ONE + NUMBER-TWO&lt;br /&gt;
    MOVE ZERO TO RETURN-CODE&lt;br /&gt;
    GOBACK.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Language Environment options&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ASMUOPT EXEC PGM=ASMA90,PARM=&#039;NOXREF&#039;&lt;br /&gt;
//SYSLIB   DD  DSN=SYS1.MACLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=CEE.SCEEMAC,DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(CEEUOPT),DISP=SHR&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
CEEUOPT  CSECT&lt;br /&gt;
CEEUOPT  AMODE ANY&lt;br /&gt;
CEEUOPT  RMODE ANY&lt;br /&gt;
         PRINT ON,NOGEN&lt;br /&gt;
         CEEXOPT&lt;br /&gt;
               ABTERMENC=(ABEND),&lt;br /&gt;
               RTEREUS=(ON)&lt;br /&gt;
         END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Linkedit&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//LINK    EXEC PGM=IEWL,PARM=&#039;LIST,MAP&#039;&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIB   DD  DSN=CEE.SCEELKED,DISP=SHR&lt;br /&gt;
//OBJLIB   DD  DSN=YOUR.OBJLIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//SYSLIN   DD  *&lt;br /&gt;
 INCLUDE OBJLIB(CEEUOPT)&lt;br /&gt;
 INCLUDE OBJLIB(COBSAMP)&lt;br /&gt;
 NAME COBSAMP(R)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ONLINE  EXEC PGM=ONLINE&lt;br /&gt;
//STEPLIB  DD  DSN=M204.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=CEE.SCEERUN,DISP=SHR&lt;br /&gt;
 &lt;br /&gt;
BEGIN&lt;br /&gt;
IMAGE PARMS&lt;br /&gt;
   NUMBER.ONE.PACKED IS PACKED LEN 4&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4&lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE COBSAMP&lt;br /&gt;
EXTERNAL LOAD COBSAMP&lt;br /&gt;
EXTERNAL NAME MOD_COBSAMP FOR COBSAMP&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS&lt;br /&gt;
%PARMS:NUMBER.ONE.PACKED = 1&lt;br /&gt;
%PARMS:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_COBSAMP WITH PARMS&lt;br /&gt;
PRINT %PARMS:NUMBER.ONE.PACKED WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Comments&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;COBOL &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Corresponds to SOUL&amp;lt;/th&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PIC S9(7) COMP-3&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PACKED LEN 4&lt;br /&gt;
&amp;lt;/p&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PIC S9(9) BINARY&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;BINARY LEN 4&lt;br /&gt;
&amp;lt;/p&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;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Language Environment option &amp;lt;code&amp;gt;ABTERMENC=(ABEND)&amp;lt;/code&amp;gt; must be specified.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Specify the Language Environment option &amp;lt;code&amp;gt;RTEREUS=(ON)&amp;lt;/code&amp;gt; and code &amp;lt;var&amp;gt;GOBACK&amp;lt;/var&amp;gt; instead of &amp;lt;var&amp;gt;STOP RUN&amp;lt;/var&amp;gt;, as illustrated, to make the runtime environment reusable and to improve performance.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Setting Language Environment options is described in IBM Manual SC28-1939 &amp;lt;var class=&amp;quot;book&amp;quot;&amp;gt;Language Environment for z/OS &amp;amp;amp; z/VM Programing Guide&amp;lt;/var&amp;gt;. In the code in the &amp;quot;Calling from SOUL&amp;quot; section in the example above, Language Environment options are set by linking CEEUOPT with the COBOL module. Other methods are also available; check with your site&#039;s Language Environment administrator to determine the appropriate method to use.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===COBOL sample 2===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example illustrates the use of multiple images using the Language Environment enabled compiler, IBM COBOL FOR z/OS AND z/VM. &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; Ordinarily, multiple images are only used if the parameters to be passed cannot fit into a single image. Images are limited in size to 32767 bytes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;COBOL program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;IDENTIFICATION DIVISION.&lt;br /&gt;
PROGRAM-ID. COBSAM2.&lt;br /&gt;
DATA DIVISION.&lt;br /&gt;
LINKAGE SECTION.&lt;br /&gt;
01  M204-PARMS1.&lt;br /&gt;
    03  NUMBER-ONE              PIC S9(7) COMP-3.&lt;br /&gt;
01  M204-PARMS2.&lt;br /&gt;
    03  NUMBER-TWO              PIC S9(9) BINARY.&lt;br /&gt;
01  M204-PARMS3.&lt;br /&gt;
    03  NUMBER-SUM              PIC S9(9) BINARY.&lt;br /&gt;
PROCEDURE DIVISION USING M204-PARMS1, M204-PARMS2, M204-PARMS3.&lt;br /&gt;
    COMPUTE NUMBER-SUM EQUAL NUMBER-ONE + NUMBER-TWO&lt;br /&gt;
    MOVE ZERO TO RETURN-CODE&lt;br /&gt;
    GOBACK.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;BEGIN&lt;br /&gt;
IMAGE PARMS1&lt;br /&gt;
   NUMBER.ONE.PACKED IS PACKED LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
IMAGE PARMS2&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
IMAGE PARMS3&lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE COBSAM2&lt;br /&gt;
EXTERNAL LOAD COBSAM2&lt;br /&gt;
EXTERNAL NAME MOD_COBSAM2  FOR COBSAM2&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS1&lt;br /&gt;
PREPARE IMAGE PARMS2&lt;br /&gt;
PREPARE IMAGE PARMS3&lt;br /&gt;
%PARMS1:NUMBER.ONE.PACKED = 1&lt;br /&gt;
%PARMS2:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_COBSAM2 WITH PARMS1, PARMS2, PARMS3&lt;br /&gt;
PRINT %PARMS1:NUMBER.ONE.PACKED WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS2:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS3:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===SAS/C sample===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the SAS/C compiler, not the IBM C compiler.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;SAS/C program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//C       EXEC PGM=LC370B&lt;br /&gt;
//STEPLIB  DD  DSN=SASC.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIB   DD  DSN=SASC.MACLIBC,DISP=SHR&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(SASCSAMP),DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
typedef struct PARMAREA {&lt;br /&gt;
    int A;&lt;br /&gt;
    int B;&lt;br /&gt;
    int C;&lt;br /&gt;
    } parmarea;&lt;br /&gt;
 &lt;br /&gt;
int main(int argc, char **argv) {&lt;br /&gt;
    parmarea *pptr;&lt;br /&gt;
    if (argc != 2) {&lt;br /&gt;
       /* the parameter list was not in OS format */&lt;br /&gt;
       return 1000;&lt;br /&gt;
       }&lt;br /&gt;
    pptr = (parmarea *) argv[1];&lt;br /&gt;
    pptr-&amp;gt;C = pptr-&amp;gt;A + pptr-&amp;gt;B;&lt;br /&gt;
    return 0;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Linkedit&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//LC      EXEC PGM=IEWL,PARM=&#039;AMODE(31),RMODE(ANY)&#039;&lt;br /&gt;
//SYSLIB   DD  DSN=SASC.STDLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=SASC.BASELIB,DISP=SHR&lt;br /&gt;
//OBJLIB   DD  DSN=YOUR.OBJLIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIN DD *&lt;br /&gt;
  INCLUDE  OBJLIB(SASCSAMP)&lt;br /&gt;
  ENTRY    $MAINC&lt;br /&gt;
  NAME     SASCSAMP(R)&lt;br /&gt;
//*&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ONLINE  EXEC PGM=ONLINE&lt;br /&gt;
//STEPLIB  DD  DSN=M204.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
 &lt;br /&gt;
BEGIN&lt;br /&gt;
IMAGE PARMS&lt;br /&gt;
   NUMBER.ONE.BINARY IS BINARY LEN 4&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4 &lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE SASCSAMP&lt;br /&gt;
EXTERNAL LOAD SASCSAMP&lt;br /&gt;
EXTERNAL NAME MOD_SASCSAMP FOR SASCSAMP&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS&lt;br /&gt;
%PARMS:NUMBER.ONE.BINARY = 1&lt;br /&gt;
%PARMS:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_SASCSAMP WITH PARMS&lt;br /&gt;
PRINT %PARMS:NUMBER.ONE.BINARY WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Comments&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;SAS/C &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Corresponds to SOUL&amp;lt;/th&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;int&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;BINARY LEN 4&lt;br /&gt;
&amp;lt;/p&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;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The SAS/C program must be coded as a main program, not a subroutine.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;To enable SAS/C to accept parameters in standard OS format, the entry point must be defined as &amp;lt;code&amp;gt;$MAINC&amp;lt;/code&amp;gt; and the parameters handled as illustrated. This technique is described in the &amp;lt;var class=&amp;quot;book&amp;quot;&amp;gt;SAS/C Compiler and Library User&#039;s Guide&amp;lt;/var&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Assembler sample===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the non-Language Environment assembler.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Assembler program&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ASMSAMP EXEC PGM=ASMA90&lt;br /&gt;
//SYSLIB   DD  DSN=SYS1.MACLIB,DISP=SHR&lt;br /&gt;
//SYSLIN   DD  DSN=YOUR.OBJLIB(ASMSAMP),DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSIN    DD  *&lt;br /&gt;
ASMSAMP  CSECT&lt;br /&gt;
 &lt;br /&gt;
ASMSAMP  AMODE 31&lt;br /&gt;
ASMSAMP  RMODE ANY&lt;br /&gt;
         USING *,15&lt;br /&gt;
         L     1,0(1)     GET ADDRESS OF IMAGE COPY&lt;br /&gt;
         XC    WORKAREA,WORKAREA     CLEAR WORK AREA&lt;br /&gt;
         MVC   WORKAREA+4(4),0(1)    GET FIRST NUMBER  (PACKED)&lt;br /&gt;
         CVB   0,WORKAREA            GET FIRST NUMBER  (BINARY)&lt;br /&gt;
         A     0,4(1)                ADD SECOND NUMBER (BINARY)&lt;br /&gt;
         ST    0,8(1)                STORE SUM         (BINARY)&lt;br /&gt;
         XR    15,15                 ZERO RETURN CODE&lt;br /&gt;
         BR    14                    RETURN&lt;br /&gt;
         DS    0D&lt;br /&gt;
WORKAREA DS    PL8                   WORKING STORAGE&lt;br /&gt;
         END   ASMSAMP&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Linkedit&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//LASM    EXEC PGM=IEWL&lt;br /&gt;
//OBJLIB   DD  DSN=YOUR.OBJLIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
//SYSPRINT DD  SYSOUT=*&lt;br /&gt;
//SYSLIN   DD  *&lt;br /&gt;
 INCLUDE OBJLIB(ASMSAMP)&lt;br /&gt;
 NAME ASMSAMP(R)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Calling from SOUL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//ONLINE  EXEC PGM=ONLINE&lt;br /&gt;
//STEPLIB  DD  DSN=M204.LOADLIB,DISP=SHR&lt;br /&gt;
//         DD  DSN=YOUR.LOADLIB,DISP=SHR&lt;br /&gt;
 &lt;br /&gt;
BEGIN&lt;br /&gt;
IMAGE PARMS&lt;br /&gt;
   NUMBER.ONE.PACKED IS PACKED LEN 4&lt;br /&gt;
   NUMBER.TWO.BINARY IS BINARY LEN 4&lt;br /&gt;
   NUMBER.SUM.BINARY IS BINARY LEN 4&lt;br /&gt;
END IMAGE&lt;br /&gt;
 &lt;br /&gt;
EXTERNAL MODULE ASMSAMP&lt;br /&gt;
EXTERNAL LOAD ASMSAMP&lt;br /&gt;
EXTERNAL NAME MOD_ASMSAMP FOR ASMSAMP&lt;br /&gt;
 &lt;br /&gt;
PREPARE IMAGE PARMS&lt;br /&gt;
%PARMS:NUMBER.ONE.PACKED = 1&lt;br /&gt;
%PARMS:NUMBER.TWO.BINARY = 2&lt;br /&gt;
EXTERNAL CALL MOD_ASMSAMP WITH PARMS&lt;br /&gt;
CALL CHECK.STATUS&lt;br /&gt;
PRINT %PARMS:NUMBER.ONE.PACKED WITH &#039; + &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.TWO.BINARY WITH &#039; = &#039; WITH -&lt;br /&gt;
      %PARMS:NUMBER.SUM.BINARY&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Comments&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr class=&amp;quot;head&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Assembler &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Corresponds to SOUL&amp;lt;/th&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;DS PL4&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;PACKED LEN 4&lt;br /&gt;
&amp;lt;/p&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&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;DS F&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;codeInTable&amp;quot;&amp;gt;BINARY LEN 4&lt;br /&gt;
&amp;lt;/p&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;
 &lt;br /&gt;
&amp;lt;span id=&amp;quot;idcams&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
===IDCAMS example===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This example uses the &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; option (available as of Model&amp;amp;nbsp;204 7.7) on the ECF &amp;lt;var&amp;gt;Module&amp;lt;/var&amp;gt; statement to have IDCAMS input and output go from/to the user buffer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Module definition====&lt;br /&gt;
The following &amp;lt;var&amp;gt;External&amp;lt;/var&amp;gt; statements make IDCAMS available:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;b&lt;br /&gt;
external module idcams idcams&lt;br /&gt;
external load idcams&lt;br /&gt;
external name idcams for idcams&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; is invoked by &amp;lt;var&amp;gt;External Call&amp;lt;/var&amp;gt;, the user&#039;s [[Universal Buffer]] must contain the input lines to be passed to &amp;lt;code&amp;gt;SYSIN&amp;lt;/code&amp;gt;, separated by EBCDIC linefeed characters (X&#039;25&#039;). The output lines from &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; are appended to the Universal Buffer, also separated by new lines. &lt;br /&gt;
 &lt;br /&gt;
Before calling &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt;, the Universal Buffer must be allocated to a length sufficient to hold all of the input lines and all of the expected output lines. If the buffer is too small, output is truncated. While it is possible to calculate the optimum Universal Buffer length on each invocation, it is better to do the following to minimize storage fragmentation:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the same value for all invocations.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Use a multiple of 8K. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Return codes====&lt;br /&gt;
The &amp;lt;var&amp;gt;IDCAMS&amp;lt;/var&amp;gt; interface can return one of the following 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;20&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Universal Buffer was overflowed, output truncated.&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;24&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Minimum outspace (2,000 bytes) not available in Universal Buffer.&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;28&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;No input data in Universal Buffer.&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;i&amp;gt;Else&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;The return code is from the IDCAMS program.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;                                          &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SOUL code====&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;b      &lt;br /&gt;
 %idcams.in    is longstring &lt;br /&gt;
 %idcams.out   is longstring &lt;br /&gt;
 %lines.in     is object stringlist &lt;br /&gt;
 %lines.out    is object stringlist &lt;br /&gt;
&lt;br /&gt;
 %hlq          is string len 8 &lt;br /&gt;
 %options      is string len 32&lt;br /&gt;
 %input.len    is float  &lt;br /&gt;
 %rc           is float &lt;br /&gt;
&lt;br /&gt;
 %hlq = &#039;DRAKE&#039;    &lt;br /&gt;
 %options = &#039;VOLUMES&#039;         &lt;br /&gt;
 &lt;br /&gt;
 * Prepare IDCAMS input lines in stringlist. Note that that the &lt;br /&gt;
 * TEXT TO statement supports expressions allowing %variables and &lt;br /&gt;
 * functions to be used as the trivial example shows. &lt;br /&gt;
 %lines.in = new &lt;br /&gt;
 Text nocont To %lines.in &lt;br /&gt;
  {} LISTCAT - &lt;br /&gt;
    LEVEL({%hlq}) - &lt;br /&gt;
    {%options}&lt;br /&gt;
 End Text &lt;br /&gt;
&lt;br /&gt;
 * Note: the null expression {} in front of LISTCAT is to force &lt;br /&gt;
 * indentation, since IDCAMS commands cannnot begin in column 1. &lt;br /&gt;
&lt;br /&gt;
 * Convert the stringlist to a longstring with EBCDIC new line &lt;br /&gt;
 * delimiters at the end of each line. This is needed to use the &lt;br /&gt;
 * Model 204 Universal Buffer feature, which only understands &lt;br /&gt;
 * byte strings.        &lt;br /&gt;
 %idcams.in = %lines.in:CreateLines        &lt;br /&gt;
&lt;br /&gt;
 * Force Universal Buffer allocation of sufficient size &lt;br /&gt;
 modify buffer size=65536 nopreserve clear       &lt;br /&gt;
&lt;br /&gt;
 * Prime Universal Buffer with input for IDCAMS, save its length &lt;br /&gt;
 %input.len = $Lstr_Set_UserBuffer(%idcams.in)   &lt;br /&gt;
&lt;br /&gt;
 * Call the IDCAMS wrapper, appending output to Universal Buffer &lt;br /&gt;
 external call idcams &lt;br /&gt;
 Printtext $status={$STATUS}, $STATUSD={$STATUSD}, $ECFSTAT={$ECFSTAT} &lt;br /&gt;
 %rc = +$substr($ecfstat,4,5)         &lt;br /&gt;
 Printtext In simpler terms, the IDCAMS return code was {%rc}. &lt;br /&gt;
&lt;br /&gt;
 * Retrieve output data from Universal Buffer (too bad there isn&#039;t &lt;br /&gt;
 * a starting offset parameter) and parse lines to stringLlist. &lt;br /&gt;
 %idcams.out = $lstr_substr($lstr_Get_UserBuffer,%input.len+1)  &lt;br /&gt;
 %lines.out = new &lt;br /&gt;
 %lines.out:ParseLines(%idcams.out) &lt;br /&gt;
      &lt;br /&gt;
 Printtext IDCAMS passed the following {%lines.in:count} lines: &lt;br /&gt;
 %lines.in:print &lt;br /&gt;
      &lt;br /&gt;
 Printtext Which produced {%lines.out:count} lines of output: &lt;br /&gt;
 %lines.out:print &lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:System management]]&lt;br /&gt;
[[Category:System-level capabilities of Model 204]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=New_and_updated_messages_in_Model_204_version_7.7&amp;diff=84532</id>
		<title>New and updated messages in Model 204 version 7.7</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=New_and_updated_messages_in_Model_204_version_7.7&amp;diff=84532"/>
		<updated>2016-06-08T12:51:57Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* M204.2960: Initialized interface %x %y */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;b&amp;gt;******THIS IS A DRAFT DOCUMENT.******&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Release_notes_for_Model_204_version_7.7_--_DRAFT|Back to 7.7 release notes]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;noautonum&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==M204 messages==&lt;br /&gt;
&lt;br /&gt;
===M204.0064: NDBSERVS cannot be less than NSERVS+2, reset to NSERVS+2===&lt;br /&gt;
If DEBUGOPT=x&#039;02&#039; (server swapping debugging facility) is set, the number of debug servers (NDBSERVS) must be greater than or equal to the number of servers (NSERVS+2).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;System manager response:&amp;lt;/b&amp;gt; Set NDBSERVS to NSERVS+2 or greater.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Return codes:&amp;lt;/b&amp;gt; E 0 4 AUDITAD&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===M204.0478: RACF message display limit reached; not all messages are displayed===&lt;br /&gt;
RACF login messages for the current session have exceeded the number of bytes available for their display. Further messages will not be displayed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Response:&amp;lt;/b&amp;gt; No response is needed. This message is for information only.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Return codes:&amp;lt;/b&amp;gt; I 0 0 AUDITMS&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===M204.1414: ERROR: SORT RECORD &amp;gt; 16MEG===&lt;br /&gt;
As of release 7.7, this error condition results in an error message and not a snap. &lt;br /&gt;
&lt;br /&gt;
The user has exceeded the 16M sort record limit. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;System manager response:&amp;lt;/b&amp;gt; Correct and retry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Return codes:&amp;lt;/b&amp;gt; C 0 4 CANCEL AUDITER&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===M204.1610: Only 4095 images allowed for a single block===&lt;br /&gt;
&amp;lt;I&amp;gt;As of release 7.7, the number of allowed images has been increased to 4095.&amp;lt;/I&amp;gt; &lt;br /&gt;
&lt;br /&gt;
More than 4095 IMAGE statements appear before the first END IMAGE. All of the&lt;br /&gt;
images describe the same block of data. Model 204 allows a maximum of 4095 images&lt;br /&gt;
of a single data block.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Response:&amp;lt;/b&amp;gt; Reduce the number of images of this block to 4095 or less. Note that items can redefine part of an image using the AT clause without creating a separate image definition. If the images describe separate blocks of data, insert END IMAGE&lt;br /&gt;
statements between the images. Retry the request.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Return codes:&amp;lt;/b&amp;gt; C 0 4 ECHO AUDITER&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===M204.2316: TCPIP ERROR: &amp;lt;I&amp;gt;category&amp;lt;/I&amp;gt;, PROCESS=&amp;lt;I&amp;gt;process_name&amp;lt;/I&amp;gt;, REMOTEID=&amp;lt;I&amp;gt;remote_id&amp;lt;/I&amp;gt;, SEITUH=&amp;lt;I&amp;gt;data_header&amp;lt;/I&amp;gt;===&lt;br /&gt;
&amp;lt;I&amp;gt;As of release 7.7, this message no longer issues a snap.&amp;lt;/I&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Unexpected data has been received on this connection requiring the connection to be closed. &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;process_name&amp;lt;/var&amp;gt; identifies the name of the process opened at the time of error. &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;remote_id&amp;lt;/var&amp;gt; identifies the remote Internet address. SEITUH is the data header (for Rocket Software internal use).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Response:&amp;lt;/b&amp;gt; Contact the System Manager.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;System manager response:&amp;lt;/b&amp;gt; Obtain the CCAAUDIT file and contact Technical Support.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Return codes:&amp;lt;/b&amp;gt; C 0 20 AUDITER NOTERM&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===M204.2956: File &amp;lt;i&amp;gt;filename&amp;lt;/i&amp;gt; is in-memory file===&lt;br /&gt;
File &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;filename&amp;lt;/var&amp;gt; is defined as an in-memory file, which has no zHPF capabilities. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Return codes:&amp;lt;/b&amp;gt; I 0 0 AUDITAD&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===M204.2957:  Error &amp;lt;i&amp;gt;errno&amp;lt;/I&amp;gt; opening stream &amp;lt;I&amp;gt;streamname&amp;lt;/I&amp;gt; for Janus Web port &amp;lt;I&amp;gt;portname&amp;lt;/I&amp;gt;===&lt;br /&gt;
This message indicates why the open failed for the TCPLOG stream &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;streamname&amp;lt;/var&amp;gt; for the Janus Web port &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;portname&amp;lt;/var&amp;gt;, where &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;errno&amp;lt;/var&amp;gt; indicates the problem:&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;&lt;br /&gt;
&amp;lt;th&amp;gt;Number&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Meaning&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 1 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Operation failed&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 2 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Stream id is not available&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 3 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Nonexistent stream or unauthorized access&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 4 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Permanent I/O error&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 5 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;End-of-data or record not found&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 6 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Data length greater than buffer length&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 7 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Data validation error&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 8 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Stream not ring or concatenated&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 9 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;All ring members full, cannot switch&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 10 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Offload process failed&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 11 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Terminal attention&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 12 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;File full condition&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 13 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Reread required for OS-concatenation&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 14 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;GCORE problem for arbitration buffers&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 15 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Parallel stream members differ&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;b&amp;gt;Return codes:&amp;lt;/b&amp;gt; I 0 0 AUDITAD NOTERM&lt;br /&gt;
----&lt;br /&gt;
===M204.2958: APSYPAGE is obsolete as of 7.6. Rocket recommends using RESPAGE and/or TEMPPAGE as the alternative===&lt;br /&gt;
As of version 7.7, setting APSYPAGE to non-zero results in an error and prevents the Online from coming up. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;System manager response:&amp;lt;/b&amp;gt; Set APSYPAGE to 0 and use an alternative; see [[APSYPAGE parameter]] for details. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Return codes:&amp;lt;/b&amp;gt; C 0 4 AUDITER&lt;br /&gt;
----&lt;br /&gt;
===M204.2960: Initialized interface (ESM) (version)===&lt;br /&gt;
This message is issued during Model&amp;amp;nbsp;204 startup when a Model&amp;amp;nbsp;204 interface to an External Security Manager (RACF, ACF2, or Top Secret) has been successfully initialized. The message identifies the relevant ESM and its version.&lt;br /&gt;
&lt;br /&gt;
The AUTHCTL VIEW command may be used by a System Manager to get more information about the current security environment.&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=RockZap_User%27s_Guide&amp;diff=71721</id>
		<title>RockZap User&#039;s Guide</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=RockZap_User%27s_Guide&amp;diff=71721"/>
		<updated>2014-09-06T06:32:09Z</updated>

		<summary type="html">&lt;p&gt;Gary: Redirected page to Media:SirzaprNew.pdf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[media:SirzaprNew.pdf]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=RockZap_User%27s_Guide&amp;diff=71720</id>
		<title>RockZap User&#039;s Guide</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=RockZap_User%27s_Guide&amp;diff=71720"/>
		<updated>2014-09-06T06:17:57Z</updated>

		<summary type="html">&lt;p&gt;Gary: Created page with &amp;quot;media:SirzaprNew.pdf&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[media:SirzaprNew.pdf]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_applying_fixes&amp;diff=71719</id>
		<title>Downloading and applying fixes</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_applying_fixes&amp;diff=71719"/>
		<updated>2014-09-06T05:52:27Z</updated>

		<summary type="html">&lt;p&gt;Gary: Created page with &amp;quot;Somebody has to write this page, sorry.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Somebody has to write this page, sorry.&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Web_help_download_fixes&amp;diff=71718</id>
		<title>Web help download fixes</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Web_help_download_fixes&amp;diff=71718"/>
		<updated>2014-09-06T05:16:22Z</updated>

		<summary type="html">&lt;p&gt;Gary: Redirected page to Downloading and applying fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Downloading and applying fixes]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Downloading_macro_libraries&amp;diff=71717</id>
		<title>Downloading macro libraries</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Downloading_macro_libraries&amp;diff=71717"/>
		<updated>2014-09-06T03:46:59Z</updated>

		<summary type="html">&lt;p&gt;Gary: Created page with &amp;quot;==How can the macro libraries be downloaded?==                                                                                        The macro libraries can be downloaded by...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How can the macro libraries be downloaded?==                                                                                       &lt;br /&gt;
The macro libraries can be downloaded by clicking on                                                                                 &lt;br /&gt;
the link for the macro library with the &amp;lt;b&amp;gt;right&amp;lt;/b&amp;gt; mouse                                                                           &lt;br /&gt;
button. This will (on most browsers) bring up a pop-up menu                                                                          &lt;br /&gt;
that will have an option &amp;lt;i&amp;gt;Save Link As&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Save target As&amp;lt;/i&amp;gt;,                                                                 &lt;br /&gt;
&amp;lt;i&amp;gt;Save As&amp;lt;/i&amp;gt; or something similar. Select this option and then                                                                     &lt;br /&gt;
set the appropriate target directory (and name if desired)                                                                           &lt;br /&gt;
for the file. The macro library will then be downloaded to to                                                                        &lt;br /&gt;
the indicated location.                                                                                                              &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
Alternatively, the &amp;lt;b&amp;gt;left&amp;lt;/b&amp;gt; mouse button can be clicked on                                                                        &lt;br /&gt;
the link for an macro library. This will result in the browser                                                                       &lt;br /&gt;
prompting the user whether the file should be saved, where it                                                                        &lt;br /&gt;
should be saved and under what name. Some browsers prompt                                                                            &lt;br /&gt;
for this information before the macro library is actually                                                                            &lt;br /&gt;
downloaded, others prompt for it after. Obviously, those                                                                             &lt;br /&gt;
that prompt after will present a considerable delay before                                                                           &lt;br /&gt;
the prompt. Opera actually prompts as soon as it receives the                                                                        &lt;br /&gt;
file header but continues downloading while waiting for the                                                                          &lt;br /&gt;
user response.                                                                                                                       &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
If the e-mail transfer is selected the macro library will be e-mailed                                                                &lt;br /&gt;
to the indicated e-mail address as an attachment. The attachment should                                                              &lt;br /&gt;
be saved to a local file and then uploaded to the mainframe exactly as                                                               &lt;br /&gt;
if it had been downloaded directly. Receiving the object deck via e-mail                                                             &lt;br /&gt;
allows the library to be sent to a different person/workstation                                                                      &lt;br /&gt;
than the one initiating the request.                                                                                                 &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
==How can the macro libraries be uploaded to the mainframe?==                                                                        &lt;br /&gt;
Once the macro libraries are downloaded to the workstation they must                                                                 &lt;br /&gt;
be uploaded to the MVS, VM or VSE system on the IBM mainframe.                                                                       &lt;br /&gt;
Any file transfer mechanism can be used including FTP and IND$FILE                                                                   &lt;br /&gt;
but regardless of the transfer mechanism some rules must be                                                                          &lt;br /&gt;
observed.                                                                                                                            &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
First, the macro libraries contain binary data and hence &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt;                                                                 &lt;br /&gt;
be transferred as binary.                                                                                                            &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
Second, the format and LRECL of the file must be specified during                                                                    &lt;br /&gt;
the upload. This is because most workstation systems (including                                                                      &lt;br /&gt;
Windows, Mac OS and Unix) do not have a concept of file formats                                                                      &lt;br /&gt;
and LRECL&#039;s. This information would be lost if it were not specified                                                                 &lt;br /&gt;
during the upload. The format of the uploaded file must be &amp;lt;i&amp;gt;F&amp;lt;/i&amp;gt; under                                                            &lt;br /&gt;
VM systems and &amp;lt;i&amp;gt;FB&amp;lt;/i&amp;gt; under MVS and VSE systems. The LRECL must be                                                                &lt;br /&gt;
80 on all systems and under MVS and VSE the blocksize can be any multiple                                                            &lt;br /&gt;
of 80 though 3120 is a common blocksize for object libraries.                                                                        &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
When using FTP, the characteristics (RECFM, LRECL and BLOCKSIZE) of                                                                  &lt;br /&gt;
the uploaded file can be set with the &amp;lt;i&amp;gt;SITE&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;LOCSITE&amp;lt;/i&amp;gt;                                                                 &lt;br /&gt;
FTP commands. The SITE command should be used if the FTP client                                                                      &lt;br /&gt;
is on the workstation and the server is on the mainframe. In this case                                                               &lt;br /&gt;
the SITE command might have to be sent as a &amp;quot;quote&amp;quot; to the mainframe.                                                                &lt;br /&gt;
How this is done, depends on your workstation&#039;s FTP client.                                                                          &lt;br /&gt;
The LOCSITE command should be used if the FTP client is on the                                                                       &lt;br /&gt;
mainframe and the server is on the workstation.                                                                                      &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
Under MVS, you can upload an macro library either as a member of a Partitioned                                                       &lt;br /&gt;
Data Set (PDS) or as an individual sequential file.  A PDS is recommended as                                                         &lt;br /&gt;
a good way to collect all your Sirius macro library uploads in one DSN, using                                                        &lt;br /&gt;
the member name to show the product and version.                                                                                     &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
==What are the Sirius Mods?==                                                                                                        &lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; is a collection of functions and enhancements                                                            &lt;br /&gt;
to the core &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module. These enhancements are either                                                         &lt;br /&gt;
products in and of themselves, or they are prerequisites for products which                                                          &lt;br /&gt;
are written in User Language. A site is authorized to download all of the                                                            &lt;br /&gt;
&amp;lt;i&amp;gt;Sirus&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; if it is licensed for any of the products that                                                                &lt;br /&gt;
require these enhancements. Your authorization zap will then enable the                                                              &lt;br /&gt;
appropriate set of products.                                                                                                         &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
Products that require the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; include:                                                                           &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
* Fast/Backup                                                                                                                        &lt;br /&gt;
* Fast/Reload                                                                                                                        &lt;br /&gt;
* Fast/Unload User Language Interface                                                                                                &lt;br /&gt;
* Janus Network Security                                                                                                             &lt;br /&gt;
* Janus Open Server                                                                                                                  &lt;br /&gt;
* Janus Open Client                                                                                                                  &lt;br /&gt;
* Janus SOAP                                                                                                                         &lt;br /&gt;
* Janus Specialty Data Store                                                                                                         &lt;br /&gt;
* Janus TCP/IP Base                                                                                                                  &lt;br /&gt;
* Janus Web Server                                                                                                                   &lt;br /&gt;
* Japanese Functions                                                                                                                 &lt;br /&gt;
* SirDBA                                                                                                                             &lt;br /&gt;
* SirFact                                                                                                                            &lt;br /&gt;
* SirFile                                                                                                                            &lt;br /&gt;
* Sirius Performance Enhancements                                                                                                    &lt;br /&gt;
* Sirius Performance Enhancements V2                                                                                                 &lt;br /&gt;
* SirLib                                                                                                                             &lt;br /&gt;
* SirMon                                                                                                                             &lt;br /&gt;
* SirPro                                                                                                                             &lt;br /&gt;
* SirSafe                                                                                                                            &lt;br /&gt;
* SirScan                                                                                                                            &lt;br /&gt;
* SirTune                                                                                                                            &lt;br /&gt;
* SirXref                                                                                                                            &lt;br /&gt;
* Sir2000 Field Migration Facility                                                                                                   &lt;br /&gt;
* Sir2000 User Language Tools                                                                                                        &lt;br /&gt;
* Trusted Login Facility                                                                                                             &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
You can determine which of these products your site is authorized for by                                                             &lt;br /&gt;
examining &amp;lt;a href=&amp;quot;https://m204.rocketsoftware.com/dlist&amp;quot;&amp;gt;your customer profile&amp;lt;/a&amp;gt;.                                                 &lt;br /&gt;
After the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; are installed you can verify product authorizations by issuing                                     &lt;br /&gt;
the &amp;lt;b&amp;gt;SIRIUS&amp;lt;/b&amp;gt; command in an Online running a load module that                                                                    &lt;br /&gt;
includes the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.                                                                                                &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
==Where can more documentation be found?==                                                                                           &lt;br /&gt;
The Rocket M204 macro libraries are distributed on an as-is basis, so no more                                                        &lt;br /&gt;
documentation is available.                                                                                                          &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
==Is there any other help available?==                                                                                               &lt;br /&gt;
As always, if you have &amp;lt;b&amp;gt;any&amp;lt;/b&amp;gt; questions about the installation of Rocket M204                                                    &lt;br /&gt;
products, you should not hesitate to call our technical                                                                              &lt;br /&gt;
support number at +1.800.755.4222. You can also e-mail us at                                                                         &lt;br /&gt;
[[mailto:m204support@rocketsoftware.com m204support@rocketsoftware.com]].&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_installing_client_(workstation)_files&amp;diff=71716</id>
		<title>Downloading and installing client (workstation) files</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_installing_client_(workstation)_files&amp;diff=71716"/>
		<updated>2014-09-06T03:32:31Z</updated>

		<summary type="html">&lt;p&gt;Gary: Created page with &amp;quot;==How can the client files be downloaded?==                                                                                           Files for client (workstation) files can...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How can the client files be downloaded?==                                                                                          &lt;br /&gt;
Files for client (workstation) files can be loaded by clicking on the link for a particular file                                     &lt;br /&gt;
with the &amp;lt;b&amp;gt;right&amp;lt;/b&amp;gt; mouse button.                                                                                                  &lt;br /&gt;
This will (on most browsers) bring up a pop-up menu                                                                                  &lt;br /&gt;
that will have an option &amp;lt;i&amp;gt;Save Link As&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Save target As&amp;lt;/i&amp;gt;,                                                                 &lt;br /&gt;
&amp;lt;i&amp;gt;Save As&amp;lt;/i&amp;gt;, or something similar. Select this option, and then                                                                   &lt;br /&gt;
set the appropriate target directory (and name if desired)                                                                           &lt;br /&gt;
for the file. The file will then be downloaded to                                                                                    &lt;br /&gt;
the indicated location.                                                                                                              &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
Alternatively, click the &amp;lt;b&amp;gt;left&amp;lt;/b&amp;gt; mouse button on                                                                                 &lt;br /&gt;
the link for a file. This will result in the browser                                                                                 &lt;br /&gt;
prompting the user whether the file should be saved, where it                                                                        &lt;br /&gt;
should be saved, and under what name. Some browsers prompt                                                                           &lt;br /&gt;
for this information before the file is actually                                                                                     &lt;br /&gt;
downloaded; others prompt for it after. Obviously, those                                                                             &lt;br /&gt;
that prompt after will present a considerable delay before                                                                           &lt;br /&gt;
the prompt. Opera actually prompts as soon as it receives the                                                                        &lt;br /&gt;
file header but continues downloading while waiting for the                                                                          &lt;br /&gt;
user response.                                                                                                                       &lt;br /&gt;
The downloaded files can be 8 megabytes or bigger.                                                                                   &lt;br /&gt;
This means that the actual download can take several minutes,                                                                        &lt;br /&gt;
depending on the size of                                                                                                             &lt;br /&gt;
object file and the speed of the network link to Sirius&#039;s                                                                            &lt;br /&gt;
web server.                                                                                                                          &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
==Where can more documentation be found?==                                                                                           &lt;br /&gt;
All the manuals for Rocket M204 products can be found on the [[Model 204 documentation]] page.                                       &lt;br /&gt;
Of particular interest if you are doing a &amp;lt;i&amp;gt;Sirius Mods&amp;lt;/i&amp;gt; install is the                                                          &lt;br /&gt;
[[media:SiriNew.pdf | Sirius Mods Installation Guide]].                                                                              &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
==Is there any other help available?==                                                                                               &lt;br /&gt;
As always, if you have &amp;lt;b&amp;gt;any&amp;lt;/b&amp;gt; questions about the installation of Rocket M204                                                    &lt;br /&gt;
products, you should not hesitate to call our technical                                                                              &lt;br /&gt;
support number at +1.800.755.4222. You can also e-mail us at                                                                         &lt;br /&gt;
[[mailto:m204support@rocketsoftware.com m204support@rocketsoftware.com]].&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_restoring_SOUL_files&amp;diff=71715</id>
		<title>Downloading and restoring SOUL files</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_restoring_SOUL_files&amp;diff=71715"/>
		<updated>2014-09-06T03:13:58Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* How can the uploaded files be installed on the mainframe? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==What is UL/SPF?==                                                                                                                  &lt;br /&gt;
&amp;lt;i&amp;gt;UL/SPF&amp;lt;/i&amp;gt; is a family of tools that enhance programmer-productivity and                                                          &lt;br /&gt;
enable performance monitoring, sophisticated journal querying and other                                                              &lt;br /&gt;
programmer, DBA and system administrator                                                                                             &lt;br /&gt;
activities inside a Model 204 online.  &amp;lt;i&amp;gt;UL/SPF&amp;lt;/i&amp;gt; is implemented as a                                                             &lt;br /&gt;
set of &amp;lt;i&amp;gt;APSYs&amp;lt;/i&amp;gt;, written in &amp;lt;i&amp;gt;User Language&amp;lt;/i&amp;gt;.  &amp;lt;i&amp;gt;UL/SPF&amp;lt;/i&amp;gt; must                                                            &lt;br /&gt;
be installed in each online where its features are needed.  Installation                                                             &lt;br /&gt;
requires Rocket M204 SOUL code, some files                                                                                           &lt;br /&gt;
that must be allocated locally, and the creation of the necessary APSYs.                                                             &lt;br /&gt;
The source code for all &amp;lt;i&amp;gt;UL/SPF&amp;lt;/i&amp;gt; subsystems is in the &amp;lt;i&amp;gt;SIRIUS&amp;lt;/i&amp;gt; procedure file,                                             &lt;br /&gt;
which must be physically allocated to the online for the installation process.                                                       &lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius Mods&amp;lt;/i&amp;gt; must also be installed in the target online prior to                                                          &lt;br /&gt;
the installation of &amp;lt;i&amp;gt;UL/SPF&amp;lt;/i&amp;gt;.                                                                                                   &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
==How do I get the UL/SPF installation file?==                                                                                       &lt;br /&gt;
SOUL code for the &amp;lt;i&amp;gt;UL/SPF&amp;lt;/i&amp;gt; product is distributed in the form of a dump of the                                                  &lt;br /&gt;
&amp;lt;i&amp;gt;SIRIUS&amp;lt;/i&amp;gt; file from the Rocket M204 support site.                                                                                &lt;br /&gt;
On most browsers a fly-out menu will provide options to                                                                              &lt;br /&gt;
&amp;lt;i&amp;gt;Save Link As...&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;Save Target As...&amp;lt;/i&amp;gt; or something similar.                                                             &lt;br /&gt;
After selecting a target directory, the file will download in &amp;lt;strong&amp;gt;binary&amp;lt;/strong&amp;gt;                                                &lt;br /&gt;
format.                                                                                                                              &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
Alternatively, the &amp;lt;b&amp;gt;left&amp;lt;/b&amp;gt; mouse button can be clicked on                                                                        &lt;br /&gt;
the link for a dump file. This will usually result in the browser                                                                    &lt;br /&gt;
prompting the user whether the file should be saved, where it                                                                        &lt;br /&gt;
should be saved and under what name.                                                                                                 &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
Download times depend on the speed of your connection.                                                                               &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
Aternatively, the dump file can be e-mailed as an attachment by clicking                                                             &lt;br /&gt;
on the &amp;lt;i&amp;gt;e-mail&amp;lt;/i&amp;gt; link above.  The attached &amp;lt;strong&amp;gt;binary&amp;lt;/strong&amp;gt; should                                                        &lt;br /&gt;
be saved to a local file and then uploaded to the mainframe exactly as                                                               &lt;br /&gt;
if it had been downloaded directly.  E-mail delivery can be useful if your                                                           &lt;br /&gt;
firewall disallows web downloads.                                                                                                    &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
==How can the dump file be uploaded to the mainframe?==                                                                              &lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;lt;/i&amp;gt; dump file must then be uploaded to your MVS, VM or                                                                 &lt;br /&gt;
VSE system on your mainframe.                                                                                                        &lt;br /&gt;
Any file transfer mechanism can be used including FTP and IND$FILE,                                                                  &lt;br /&gt;
but regardless of the transfer mechanism some rules must be observed.                                                                &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
First, the dump files contain binary data, and so &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt;                                                                        &lt;br /&gt;
be transferred as binary. That is, no translation from ASCII to                                                                      &lt;br /&gt;
EBCDIC must occur as a result of the upload.                                                                                         &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
Second, the format and LRECL of the file must be specified during                                                                    &lt;br /&gt;
the upload. This is because most workstation systems (including                                                                      &lt;br /&gt;
Windows, Mac OS and Unix) do not have a concept of file formats                                                                      &lt;br /&gt;
and LRECL&#039;s.  The format of the uploaded file must be &amp;lt;i&amp;gt;F&amp;lt;/i&amp;gt; and                                                                   &lt;br /&gt;
the &amp;lt;i&amp;gt;LRECL&amp;lt;/i&amp;gt; must be 6184.  Under MVS and VSE the blocksize must be 6184.                                                        &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
When using FTP, the characteristics (RECFM, LRECL and BLOCKSIZE) of                                                                  &lt;br /&gt;
the uploaded file can be set with the &amp;lt;i&amp;gt;SITE&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;LOCSITE&amp;lt;/i&amp;gt;                                                                 &lt;br /&gt;
FTP commands. The SITE command should be used if the FTP client                                                                      &lt;br /&gt;
is on the workstation and the server is on the mainframe. In this case                                                               &lt;br /&gt;
the SITE command might have to be sent as a &amp;quot;quote&amp;quot; to the mainframe.                                                                &lt;br /&gt;
How this is done, depends on your workstation&#039;s FTP client.                                                                          &lt;br /&gt;
The LOCSITE command should be used if the FTP client is on the                                                                       &lt;br /&gt;
mainframe and the server is on the workstation.                                                                                      &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
==How can the uploaded files be installed on the mainframe?==                                                                        &lt;br /&gt;
Once uploaded to your mainframe, use the standard &amp;lt;i&amp;gt;Model 204&amp;lt;/i&amp;gt; RESTORE                                                           &lt;br /&gt;
command to restore the dump file to a Model 204 file with a DDNAME of SIRIUS.                                                        &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;File Size:&#039;&#039;&#039;&#039;&#039; The &#039;&#039;SIRIUS&#039;&#039; file must be allocated with at least                                                             &lt;br /&gt;
4200 &amp;lt;i&amp;gt;Model 204&amp;lt;/i&amp;gt; pages.                                                                                                         &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
The rest of the installation process for the Sirius Software User                                                                    &lt;br /&gt;
Language products is described in the [[UL/SPF installation guide |              &lt;br /&gt;
UL/SPF Installation and Maintenance Guide]], including ancilliary files that must be allocated.&lt;br /&gt;
&lt;br /&gt;
==Applying Maintenance==                                                                                                             &lt;br /&gt;
The uploaded files will contain all the latest maintenance.                                                                          &lt;br /&gt;
As such, no maintenance need be applied to the uploaded file.                                                                        &lt;br /&gt;
Subsequent fixes can be applied by downloading User Language                                                                         &lt;br /&gt;
fixes, loading them into the SIRFIXES file and applying them                                                                         &lt;br /&gt;
to the appropriate Model 204 file with SIRFIX. Most sites find it easier                                                             &lt;br /&gt;
to return to this page and re-download a new copy of the &amp;lt;strong&amp;gt;SIRIUS&amp;lt;/strong&amp;gt;                                                     &lt;br /&gt;
file, as the downloadable copy always has the latest maintenance applied.&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_restoring_SOUL_files&amp;diff=71714</id>
		<title>Downloading and restoring SOUL files</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_restoring_SOUL_files&amp;diff=71714"/>
		<updated>2014-09-06T03:12:15Z</updated>

		<summary type="html">&lt;p&gt;Gary: Created page with &amp;quot;==What is UL/SPF?==                                                                                                                   &amp;lt;i&amp;gt;UL/SPF&amp;lt;/i&amp;gt; is a family of tools that e...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==What is UL/SPF?==                                                                                                                  &lt;br /&gt;
&amp;lt;i&amp;gt;UL/SPF&amp;lt;/i&amp;gt; is a family of tools that enhance programmer-productivity and                                                          &lt;br /&gt;
enable performance monitoring, sophisticated journal querying and other                                                              &lt;br /&gt;
programmer, DBA and system administrator                                                                                             &lt;br /&gt;
activities inside a Model 204 online.  &amp;lt;i&amp;gt;UL/SPF&amp;lt;/i&amp;gt; is implemented as a                                                             &lt;br /&gt;
set of &amp;lt;i&amp;gt;APSYs&amp;lt;/i&amp;gt;, written in &amp;lt;i&amp;gt;User Language&amp;lt;/i&amp;gt;.  &amp;lt;i&amp;gt;UL/SPF&amp;lt;/i&amp;gt; must                                                            &lt;br /&gt;
be installed in each online where its features are needed.  Installation                                                             &lt;br /&gt;
requires Rocket M204 SOUL code, some files                                                                                           &lt;br /&gt;
that must be allocated locally, and the creation of the necessary APSYs.                                                             &lt;br /&gt;
The source code for all &amp;lt;i&amp;gt;UL/SPF&amp;lt;/i&amp;gt; subsystems is in the &amp;lt;i&amp;gt;SIRIUS&amp;lt;/i&amp;gt; procedure file,                                             &lt;br /&gt;
which must be physically allocated to the online for the installation process.                                                       &lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius Mods&amp;lt;/i&amp;gt; must also be installed in the target online prior to                                                          &lt;br /&gt;
the installation of &amp;lt;i&amp;gt;UL/SPF&amp;lt;/i&amp;gt;.                                                                                                   &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
==How do I get the UL/SPF installation file?==                                                                                       &lt;br /&gt;
SOUL code for the &amp;lt;i&amp;gt;UL/SPF&amp;lt;/i&amp;gt; product is distributed in the form of a dump of the                                                  &lt;br /&gt;
&amp;lt;i&amp;gt;SIRIUS&amp;lt;/i&amp;gt; file from the Rocket M204 support site.                                                                                &lt;br /&gt;
On most browsers a fly-out menu will provide options to                                                                              &lt;br /&gt;
&amp;lt;i&amp;gt;Save Link As...&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;Save Target As...&amp;lt;/i&amp;gt; or something similar.                                                             &lt;br /&gt;
After selecting a target directory, the file will download in &amp;lt;strong&amp;gt;binary&amp;lt;/strong&amp;gt;                                                &lt;br /&gt;
format.                                                                                                                              &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
Alternatively, the &amp;lt;b&amp;gt;left&amp;lt;/b&amp;gt; mouse button can be clicked on                                                                        &lt;br /&gt;
the link for a dump file. This will usually result in the browser                                                                    &lt;br /&gt;
prompting the user whether the file should be saved, where it                                                                        &lt;br /&gt;
should be saved and under what name.                                                                                                 &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
Download times depend on the speed of your connection.                                                                               &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
Aternatively, the dump file can be e-mailed as an attachment by clicking                                                             &lt;br /&gt;
on the &amp;lt;i&amp;gt;e-mail&amp;lt;/i&amp;gt; link above.  The attached &amp;lt;strong&amp;gt;binary&amp;lt;/strong&amp;gt; should                                                        &lt;br /&gt;
be saved to a local file and then uploaded to the mainframe exactly as                                                               &lt;br /&gt;
if it had been downloaded directly.  E-mail delivery can be useful if your                                                           &lt;br /&gt;
firewall disallows web downloads.                                                                                                    &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
==How can the dump file be uploaded to the mainframe?==                                                                              &lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;lt;/i&amp;gt; dump file must then be uploaded to your MVS, VM or                                                                 &lt;br /&gt;
VSE system on your mainframe.                                                                                                        &lt;br /&gt;
Any file transfer mechanism can be used including FTP and IND$FILE,                                                                  &lt;br /&gt;
but regardless of the transfer mechanism some rules must be observed.                                                                &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
First, the dump files contain binary data, and so &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt;                                                                        &lt;br /&gt;
be transferred as binary. That is, no translation from ASCII to                                                                      &lt;br /&gt;
EBCDIC must occur as a result of the upload.                                                                                         &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
Second, the format and LRECL of the file must be specified during                                                                    &lt;br /&gt;
the upload. This is because most workstation systems (including                                                                      &lt;br /&gt;
Windows, Mac OS and Unix) do not have a concept of file formats                                                                      &lt;br /&gt;
and LRECL&#039;s.  The format of the uploaded file must be &amp;lt;i&amp;gt;F&amp;lt;/i&amp;gt; and                                                                   &lt;br /&gt;
the &amp;lt;i&amp;gt;LRECL&amp;lt;/i&amp;gt; must be 6184.  Under MVS and VSE the blocksize must be 6184.                                                        &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
When using FTP, the characteristics (RECFM, LRECL and BLOCKSIZE) of                                                                  &lt;br /&gt;
the uploaded file can be set with the &amp;lt;i&amp;gt;SITE&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;LOCSITE&amp;lt;/i&amp;gt;                                                                 &lt;br /&gt;
FTP commands. The SITE command should be used if the FTP client                                                                      &lt;br /&gt;
is on the workstation and the server is on the mainframe. In this case                                                               &lt;br /&gt;
the SITE command might have to be sent as a &amp;quot;quote&amp;quot; to the mainframe.                                                                &lt;br /&gt;
How this is done, depends on your workstation&#039;s FTP client.                                                                          &lt;br /&gt;
The LOCSITE command should be used if the FTP client is on the                                                                       &lt;br /&gt;
mainframe and the server is on the workstation.                                                                                      &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
==How can the uploaded files be installed on the mainframe?==                                                                        &lt;br /&gt;
Once uploaded to your mainframe, use the standard &amp;lt;i&amp;gt;Model 204&amp;lt;/i&amp;gt; RESTORE                                                           &lt;br /&gt;
command to restore the dump file to a Model 204 file with a DDNAME of SIRIUS.                                                        &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;File Size:&#039;&#039;&#039;&#039;&#039; The &#039;&#039;SIRIUS&#039;&#039; file must be allocated with at least                                                             &lt;br /&gt;
4200 &amp;lt;i&amp;gt;Model 204&amp;lt;/i&amp;gt; pages.                                                                                                         &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
The rest of the installation process for the Sirius Software User                                                                    &lt;br /&gt;
Language products is described in the &amp;lt;a href=&amp;quot;http://m204wiki.rocketsoftware.com/index.php/UL/SPF_installation_guide&amp;quot;&amp;gt;              &lt;br /&gt;
&amp;lt;i&amp;gt;UL/SPF Installation and Maintenance Guide&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;, including ancilliary files that must be allocated.                             &lt;br /&gt;
                                                                                                                                     &lt;br /&gt;
==Applying Maintenance==                                                                                                             &lt;br /&gt;
The uploaded files will contain all the latest maintenance.                                                                          &lt;br /&gt;
As such, no maintenance need be applied to the uploaded file.                                                                        &lt;br /&gt;
Subsequent fixes can be applied by downloading User Language                                                                         &lt;br /&gt;
fixes, loading them into the SIRFIXES file and applying them                                                                         &lt;br /&gt;
to the appropriate Model 204 file with SIRFIX. Most sites find it easier                                                             &lt;br /&gt;
to return to this page and re-download a new copy of the &amp;lt;strong&amp;gt;SIRIUS&amp;lt;/strong&amp;gt;                                                     &lt;br /&gt;
file, as the downloadable copy always has the latest maintenance applied.&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Web_help_download_client_files&amp;diff=71713</id>
		<title>Web help download client files</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Web_help_download_client_files&amp;diff=71713"/>
		<updated>2014-09-06T02:47:42Z</updated>

		<summary type="html">&lt;p&gt;Gary: Redirected page to Downloading and installing client (workstation) files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Downloading and installing client (workstation) files]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Web_help_download_SOUL_files&amp;diff=71712</id>
		<title>Web help download SOUL files</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Web_help_download_SOUL_files&amp;diff=71712"/>
		<updated>2014-09-06T02:04:03Z</updated>

		<summary type="html">&lt;p&gt;Gary: Redirected page to Downloading and restoring SOUL files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Downloading and restoring SOUL files]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Web_help_download_macro_libraries&amp;diff=71711</id>
		<title>Web help download macro libraries</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Web_help_download_macro_libraries&amp;diff=71711"/>
		<updated>2014-09-06T02:03:39Z</updated>

		<summary type="html">&lt;p&gt;Gary: Redirected page to Downloading and restoring macro libraries&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Downloading and restoring macro libraries]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Web_help_download_SOUL_files&amp;diff=71710</id>
		<title>Web help download SOUL files</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Web_help_download_SOUL_files&amp;diff=71710"/>
		<updated>2014-09-06T01:47:32Z</updated>

		<summary type="html">&lt;p&gt;Gary: Redirected page to Downloading and restoring Rocket SOUL files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Downloading and restoring Rocket SOUL files]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Web_help_download_object_files&amp;diff=71709</id>
		<title>Web help download object files</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Web_help_download_object_files&amp;diff=71709"/>
		<updated>2014-09-06T01:35:55Z</updated>

		<summary type="html">&lt;p&gt;Gary: Redirected page to Downloading and installing Rocket M204 products&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Downloading and installing Rocket M204 products]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_installing_Rocket_M204_products&amp;diff=71708</id>
		<title>Downloading and installing Rocket M204 products</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_installing_Rocket_M204_products&amp;diff=71708"/>
		<updated>2014-09-06T01:32:34Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* How can the above object files be downloaded? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How can the object files be downloaded?==&lt;br /&gt;
The object files can be downloaded by clicking on the link for the object file with the &amp;lt;b&amp;gt;right&amp;lt;/b&amp;gt; mouse button.&lt;br /&gt;
This will (on most browsers) bring up a pop-up menu that will have an option &amp;lt;i&amp;gt;Save Link As&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Save target As&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Save As&amp;lt;/i&amp;gt;, or something similar.&lt;br /&gt;
Select this option, and then set the appropriate target directory (and name if desired) for the file.&lt;br /&gt;
The object file will then be downloaded to the indicated location.&lt;br /&gt;
&lt;br /&gt;
Alternatively, click the &amp;lt;b&amp;gt;left&amp;lt;/b&amp;gt; mouse button on the link for an object file. This will result in the browser prompting the user whether the file should be saved, where it should be saved, and under what name.&lt;br /&gt;
Some browsers prompt for this information before the object file is actually downloaded; others prompt for it after.&lt;br /&gt;
Obviously, those that prompt after will present a considerable delay before the prompt.&lt;br /&gt;
Opera actually prompts as soon as it receives the file header but continues downloading while waiting for the user response.&lt;br /&gt;
&lt;br /&gt;
Object files are customized for a particular site, simplifying the installation process.&lt;br /&gt;
Because of this, there may be a noticeable delay in processing a download request.&lt;br /&gt;
In addition, the downloaded object files can range in size from hundreds of kilobytes to perhaps 10 megabytes.&lt;br /&gt;
&lt;br /&gt;
If an e-mail transfer is selected, the object deck will be e-mailed to the indicated e-mail address as an attachment.&lt;br /&gt;
The attachment should be saved to a local file and then uploaded to the mainframe exactly as if it had been downloaded directly.&lt;br /&gt;
Receiving the object deck via e-mail might take a little longer than downloading it directly, but it allows you to schedule a set of object to be sent to a different person in your organization.&lt;br /&gt;
&lt;br /&gt;
==How can the object files be uploaded to the mainframe?==&lt;br /&gt;
Once the object files are downloaded to the workstation they must be uploaded to the z/OS, VM, or VSE system on the IBM mainframe.&lt;br /&gt;
Any file transfer mechanism can be used including FTP and IND$FILE, but regardless of the transfer mechanism some rules must be observed.&lt;br /&gt;
&lt;br /&gt;
First, the object files contain binary data and hence &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be transferred as binary.&lt;br /&gt;
That is, no translation from ASCII to EBCDIC must occur as a result of the upload.&lt;br /&gt;
&lt;br /&gt;
Second, the format and LRECL of the file must be specified during the upload.&lt;br /&gt;
This is because most workstation systems (including Windows, Mac OS and Unix) do not have a concept of file formats and LRECL&#039;s.&lt;br /&gt;
This information would be lost if it were not specified during the upload.&lt;br /&gt;
The format of the uploaded file must be &amp;lt;i&amp;gt;F&amp;lt;/i&amp;gt; under VM systems and &amp;lt;i&amp;gt;FB&amp;lt;/i&amp;gt; under z/OS and VSE systems. The LRECL must be&lt;br /&gt;
80 on all systems and under z/OS and VSE the blocksize can be any multiple of 80 though 3120 is a common blocksize for object libraries.&lt;br /&gt;
&lt;br /&gt;
When using FTP, the characteristics (RECFM, LRECL, and BLOCKSIZE) of the uploaded file can be set with the &amp;lt;i&amp;gt;SITE&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;LOCSITE&amp;lt;/i&amp;gt; FTP commands.&lt;br /&gt;
The SITE command should be used if the FTP client is on the workstation and the server is on the mainframe.&lt;br /&gt;
In this case the SITE command might have to be sent as a &amp;quot;quote&amp;quot; to the mainframe.&lt;br /&gt;
How this is done depends on your workstation&#039;s FTP client.&lt;br /&gt;
The LOCSITE command should be used if the FTP client is on the mainframe and the server is on the workstation.&lt;br /&gt;
&lt;br /&gt;
===Model 204 object library===&lt;br /&gt;
The Model 204 installation process entails creating a library (in z/OS, a Partitioned Data Set, or PDS), which is then used in subsequent steps to link the various Model 204 load modules.&lt;br /&gt;
The file which you have uploaded to the mainframe, typically as a sequential dataset (DSORG=PS in z/OS), is used as the &amp;lt;code&amp;gt;INP=&amp;lt;/code&amp;gt; parameter to the following JCL PROC for a z/OS installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//NEWOBJLB PROC TRK=&#039;320,50&#039;,BLK=6400&lt;br /&gt;
//*&lt;br /&gt;
//* Usage: //BLD EXEC NEWOBJLB,LIB=objectLibDsn,INP=inputStreamDsn&lt;br /&gt;
//*&lt;br /&gt;
//* Important note: The output object library (LIB=) is first deleted&lt;br /&gt;
//*&lt;br /&gt;
//* This proc creates an object library, using the input stream which&lt;br /&gt;
//* was downloaded from the Rocket Model 204 web site.  After the&lt;br /&gt;
//* download, it must be un-zipped, and then FTP&#039;d (BINARY, 80 byte&lt;br /&gt;
//* fixed length records) to a z/OS dataset.&lt;br /&gt;
//*&lt;br /&gt;
//* The FTP&#039;d z/OS dataset is specified by the INP= parameter&lt;br /&gt;
//*&lt;br /&gt;
//* Note: If you thought you might want to, it&#039;s best not to try&lt;br /&gt;
//*       to over-ride SYSIN with a DD *, because the input stream&lt;br /&gt;
//*       contains JCL.&lt;br /&gt;
//*&lt;br /&gt;
//DEL      EXEC PGM=IEFBR14&lt;br /&gt;
//DEL      DD DSN=&amp;amp;LIB,DISP=(MOD,DELETE),UNIT=SYSDA,SPACE=(TRK,1)&lt;br /&gt;
//*&lt;br /&gt;
//BLDOBJLB EXEC PGM=IEBUPDTE,PARM=NEW&lt;br /&gt;
//SYSPRINT DD SYSOUT=A   &amp;lt;&amp;lt; Note: this output will contain on the order&lt;br /&gt;
//*                         of 160K lines or more&lt;br /&gt;
//SYSUT2   DD DISP=(NEW,CATLG),SPACE=(TRK,(&amp;amp;TRK,60),RLSE),&lt;br /&gt;
//            UNIT=SYSDA,DCB=(DSORG=PO,LRECL=80,RECFM=FB,BLKSIZE=&amp;amp;BLK),&lt;br /&gt;
//            DSN=&amp;amp;LIB&lt;br /&gt;
//SYSIN    DD DISP=SHR,DSN=&amp;amp;INP&lt;br /&gt;
//*&lt;br /&gt;
//         PEND&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example, if you downloaded the input stream and then FTP&#039;d it into &amp;lt;code&amp;gt;M204.V75.DOWNLOAD.OBJ&amp;lt;/code&amp;gt;,&lt;br /&gt;
and the object library dataset is to be &amp;lt;code&amp;gt;M204.V75.OBJLIB&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//BLDOBJLB EXEC NEWOBJLB,&lt;br /&gt;
//            INP=M204.V75.DOWNLOAD,&lt;br /&gt;
//            LIB=M204.V75.OBJLIB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The space allocation and block size are PROC parameters, but their defaults will work.&lt;br /&gt;
You can, of course, use any dataset name you want for the object library after &amp;lt;code&amp;gt;INP=&amp;lt;/code&amp;gt; &amp;amp;mdash; note that in our documentation, we refer to the object library as &amp;lt;b&amp;gt;ROKOB204&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Other object files===&lt;br /&gt;
For products other than Model 204, the downloaded file is a single object file.&lt;br /&gt;
Under z/OS, you can upload an object file either as a member of a Partitioned Data Set (PDS) or as an individual sequential file.&lt;br /&gt;
A PDS is recommended as a good way to collect all your Rocket M204 object file uploads in one dataset, using the member name to show the product and version.&lt;br /&gt;
&lt;br /&gt;
==Should maintenance be applied to the uploaded object files?==&lt;br /&gt;
When Rocket M204 products are downloaded, they will contain all of the current maintenance as well as all applicable authorization keys.&lt;br /&gt;
Thus no additional additional installation steps steps are required to install maintenance or authorization keys.&lt;br /&gt;
Subsequent fixes can be applied by downloading ZAPs and applying them, or by downloading a replacement object file and re-linking the appropriate load modules.&lt;br /&gt;
&lt;br /&gt;
==How should the Model 204 load modules be linked under z/OS?==&lt;br /&gt;
The Model 204 object library you created contains object files, JCL, and link-edit control statements so that you can link the Model 204 load modules.&lt;br /&gt;
(This library, of course, has the DSNAME you chose &amp;amp;mdash; but in our documentation, we refer to the object library as &amp;lt;b&amp;gt;ROKOB204&amp;lt;/b&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
One of the members of ROKOB204 is a text file named README, which includes a list of the Model 204 load modules, and, individual instructions for linking them.&lt;br /&gt;
&lt;br /&gt;
For example, to link the ONLINE load module, there is a member named JZLONLN.&lt;br /&gt;
This basic JCL has simple instructions for using it.&lt;br /&gt;
One of the comments in the JCL is a link which you may follow for more [[M204_install#zOS_link_onl|detailed instructions]].&lt;br /&gt;
&lt;br /&gt;
==What are the Sirius Mods?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; is a collection of functions and enhancements to the core &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module.&lt;br /&gt;
These enhancements are either products in and of themselves, or they are prerequisites for products which are written in User Language.&lt;br /&gt;
A site is authorized to download all of the &amp;lt;i&amp;gt;Sirus&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; if it is licensed for any of the products that require these enhancements.&lt;br /&gt;
Your authorization key will then enable the appropriate set of products.&lt;br /&gt;
&lt;br /&gt;
Products that require the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; are:&lt;br /&gt;
&lt;br /&gt;
* Fast/Backup&lt;br /&gt;
* Fast/Reload&lt;br /&gt;
* Fast/Unload User Language Interface&lt;br /&gt;
* Janus Network Security&lt;br /&gt;
* Janus Open Server&lt;br /&gt;
* Janus Open Client&lt;br /&gt;
* Janus SOAP&lt;br /&gt;
* Janus Specialty Data Store&lt;br /&gt;
* Janus TCP/IP Base&lt;br /&gt;
* Janus Web Server&lt;br /&gt;
* Japanese Functions&lt;br /&gt;
* SirDBA&lt;br /&gt;
* SirFact&lt;br /&gt;
* SirFile&lt;br /&gt;
* Sirius Performance Enhancements&lt;br /&gt;
* Sirius Performance Enhancements V2&lt;br /&gt;
* SirLib&lt;br /&gt;
* SirMon&lt;br /&gt;
* SirPro&lt;br /&gt;
* SirSafe&lt;br /&gt;
* SirScan&lt;br /&gt;
* SirTune&lt;br /&gt;
* SirXref&lt;br /&gt;
* Sir2000 Field Migration Facility&lt;br /&gt;
* Sir2000 User Language Tools&lt;br /&gt;
* Trusted Login Facility&lt;br /&gt;
&lt;br /&gt;
You can determine which of these products your site is authorized for by examining &amp;lt;a href=&amp;quot;https://m204.rocketsoftware.com/dlist&amp;quot;&amp;gt;your customer profile&amp;lt;/a&amp;gt;. After the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; are installed, you can verify product authorizations by issuing the &amp;lt;b&amp;gt;SIRIUS&amp;lt;/b&amp;gt; command in an Online running a load module that includes the &amp;lt;i&amp;gt;Sirius&amp;amp;npsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==How should the Sirius Mods object file be linked under z/OS?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object modules from Rocket.&lt;br /&gt;
Under z/OS, an object deck can be re-linked with a load module.&lt;br /&gt;
In theory, this load module can already contain the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
While this is generally OK if linking over the same release of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, it is almost certainly a bad idea otherwise.&lt;br /&gt;
As such, it is a good idea to keep a load module without the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; available for rebuilding a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
The non-&amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; load module should have all Rocket ZAPs applied, or these ZAPs should be applied after the re-link with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
&lt;br /&gt;
Should Rocket provide replacement object files as part of their maintenance, these object files must &amp;lt;b&amp;gt;never&amp;lt;/b&amp;gt; be linked ahead of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
This also means that replacement Rocket object files cannot simply be linked ahead of a load module containing the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; without also linking the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file ahead of the replacement object files from Rocket.&lt;br /&gt;
&lt;br /&gt;
Both of the next two examples assume you uploaded the object file into library SIRIUS.LIB with a member name of SIR80074.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
The following JCL is an example of how you would link the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file with a standard &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module called ONLINE in&lt;br /&gt;
library M204.V7R4.LOADLIB.  The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK    EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;LIST,LET,MAP,SIZE=(2048K,512K),RMODE=ANY,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD SYSOUT=*&lt;br /&gt;
 //M204LOAD DD DSN=M204.V7R4.LOADLIB,DISP=SHR&lt;br /&gt;
 //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(SIR80074)&lt;br /&gt;
  INCLUDE M204LOAD(ONLINE)&lt;br /&gt;
  ENTRY MAINTASK&lt;br /&gt;
  NAME ONLINE(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following JCL is an example of how you would link the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file with a standard &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module called ONLINE in&lt;br /&gt;
library M204.V7R4.LOADLIB, along with replacement object decks for EVNU and SBFM, which were provided with Rocket maintenance and are in library M204.V7R4.FIXOBJ.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;LIST,LET,MAP,SIZE=(2048K,512K),RMODE=ANY,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //M204LOAD DD   DSN=M204.V7R4.LOADLIB,DISP=SHR&lt;br /&gt;
 //M204FIX  DD   DSN=M204.V7R4.FIXOBJ,DISP=SHR&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(SIR80074)&lt;br /&gt;
  INCLUDE M204FIX(EVFM,SBFM)&lt;br /&gt;
  INCLUDE M204LOAD(ONLINE)&lt;br /&gt;
  ENTRY MAINTASK&lt;br /&gt;
  NAME ONLINE(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How should the Sirius Mods object file be linked under CMS?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object modules from Rocket.&lt;br /&gt;
This means, first, that the object file&#039;s filetype must conform to CMS conventions for object files.&lt;br /&gt;
The simplest way to ensure this is to use a filetype of TEXT for the object file under CMS.&lt;br /&gt;
&lt;br /&gt;
To link with the Rocket-supplied M204GEN utility, the &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load list must be modified to include the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
This can be done by simply inserting a line with an &amp;quot;&amp;amp;1 &amp;amp;2&amp;quot; followed by the filename of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file before the name of any other object file in the load list.&lt;br /&gt;
The following is an example of the first few lines of an updated load list, where the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file is called &amp;quot;SIR80074 TEXT&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 * LOAD LIST FOR M204ONLN MODULE&lt;br /&gt;
 * (&amp;amp;START IN MLNK)&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 SIR80074&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 MLNK&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 ACF2CMS&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 ANXV&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 APSY&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 APSZ&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 ARTH&lt;br /&gt;
  . . . . .&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; dynamically adds hooks to the load module, Sirius recommends against using shared segments with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
If this is considered essential, contact Sirius Software technical support for help in building a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; and shared segments.&lt;br /&gt;
&lt;br /&gt;
An exec called LOADCONV is also available to automatically convert the loadlist, it can be &amp;lt;a href=&amp;quot;download/loadconv.rex&amp;quot;&amp;gt;downloaded here&amp;lt;/a&amp;gt;.&lt;br /&gt;
Note that LOADCONV requires that the filename of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file be &amp;quot;SIROBJ&amp;quot; followed by the &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; release to which it&lt;br /&gt;
applies, as in &amp;quot;SIROBJ74&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the M204GEN exec is being used, M204CCA PARMS needs to be edited.&lt;br /&gt;
First, in the M204GEN/DEFAULTS section, the ldrtbls value might need to be increased:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 M204GEN:&lt;br /&gt;
 DEFAULTS:&lt;br /&gt;
   ldrtbls = 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the load module start needs to include the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; so in the ONLINE/ONLN section the line&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    start.mod   = MLNK$&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
needs to be changed to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    start.mod   = SLNK$&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to be able to generate a load module both with and without the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, you could copy the whole ONLINE section in M204CCA PARMS and call it something else, for example, SIRIUS, and change start.mod in that section.&lt;br /&gt;
Then, when you want to generate a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; in it you&#039;d simply type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 M204GEN SIRIUS&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Sirius Mods object file be linked under VSE?===&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object files from Rocket. The example below shows an excerpt of the standard Rocket link JCL for an ONLINE.&lt;br /&gt;
To linkedit the online with the Sirius Mods, you must insert the include statement for the object module immediately after the PHASE statement.&lt;br /&gt;
In this example, the Sirius Mods object is named SIR80074.&lt;br /&gt;
If the Sirius Mods object module is in a separate library, the JCL should be modified to include that library in the SEARCH= paramter of the LIBDEF OBJ statement.&lt;br /&gt;
If you include any other object modules, they also must appear after the Sirius Mods object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 // LIBDEF PHASE,CATALOG=M204LIB.V7R4&lt;br /&gt;
 // LIBDEF OBJ,SEARCH=M204LIB.V7R4&lt;br /&gt;
 // OPTION CATAL&lt;br /&gt;
  PHASE ONLINE,* REPLACE=YES&lt;br /&gt;
  INCLUDE SIR80074&lt;br /&gt;
  INCLUDE LKONLN&lt;br /&gt;
  INCLUDE&lt;br /&gt;
  ENTRY MAINTASK&lt;br /&gt;
 /*&lt;br /&gt;
 // EXEC LNKEDT&lt;br /&gt;
 /*&lt;br /&gt;
 /&amp;amp;&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Fast/Unload object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;Fast/Unload&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD. &lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of FUN400.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(FUN400)&lt;br /&gt;
  ENTRY FUNLOAD&lt;br /&gt;
  NAME FUNLOAD(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;Fast/Unload&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a FUNLOAD load module.&lt;br /&gt;
In this example, it is assumed that the Fast/Unload object file has a filename of FUN400.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD FUN400 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET FUNLOAD RLDSAVE&lt;br /&gt;
 GENMOD FUNLOAD (FROM FUNL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Why were there three object files for SirTune?===&lt;br /&gt;
Beginning with Version 7.0 of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, all &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; functionality has been merged into the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; and so the standalone &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; load modules are obsolete.&lt;br /&gt;
&lt;br /&gt;
Prior to Version 7.0 of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, however, &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; consisted of three components.&lt;br /&gt;
The first component was called the &amp;lt;i&amp;gt;SirTune Data Collector&amp;lt;/i&amp;gt; or simply &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt;.&lt;br /&gt;
This load module runs in the same address space as the &amp;lt;i&amp;gt;&amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/nobr&amp;gt;&amp;lt;/i&amp;gt; load module and collects data to be analyzed later.&lt;br /&gt;
&lt;br /&gt;
The second component is called the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt;.&lt;br /&gt;
This load module is run independently of &amp;lt;i&amp;gt;&amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/nobr&amp;gt;&amp;lt;/i&amp;gt; and summarizes the data collected by &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; into a report.&lt;br /&gt;
&lt;br /&gt;
The third component is used only under CMS and is called the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt;.&lt;br /&gt;
It communicates with &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; via IUCV and asynchronously logs &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; data on a separate virtual machine.&lt;br /&gt;
It is used to get around some of the difficulties of doing asynchronous I/O under CMS.&lt;br /&gt;
&lt;br /&gt;
In general, it is a good idea to be using the same versions of all three &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; components though Sirius makes every effort to allow a newer &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; to produce reports from sample datasets created by older releases of &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of TUNE104.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(TUNE104)&lt;br /&gt;
  ENTRY COLLECT&lt;br /&gt;
  NAME SIRTUNE(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNE load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file has a filename of TUNE104.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD TUNE104 (FULLMAP NODUP ORIGIN 400000 AMODE 31 RESET COLLECT&lt;br /&gt;
 GENMOD SIRTUNE (FROM COLL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune Report Generator object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of TUNR104.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(TUNR104)&lt;br /&gt;
  ENTRY ANALYZE&lt;br /&gt;
  NAME SIRTUNER(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune Report Renerator&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNER load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; object file has a filename of TUNR103.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD TUNR103 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET ANALYZE&lt;br /&gt;
 GENMOD SIRTUNER (FROM ANAL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune Data Logger object file be linked?===&lt;br /&gt;
The &amp;lt;i&amp;gt;SirTune data Logger&amp;lt;/i&amp;gt; is not used under z/OS.&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNED load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt; object file has a filename of TUND104.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD TUND104 (FULLMAP NODUP ORIGIN 30000 AMODE 24 RESET OUTCMS&lt;br /&gt;
 GENMOD SIRTUNED (FROM OUTC&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the RockZap object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;RockZap&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of ZAP106.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=0&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(ZAP106)&lt;br /&gt;
  ENTRY SIRZAP&lt;br /&gt;
  NAME SIRZAP(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the SirZap object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRZAP load module.&lt;br /&gt;
In this example, it is assumed that the SirZap object file has a filename of ZAP106.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD ZAP106 (FULLMAP NODUP ORIGIN 20000 AMODE 31 RESET SIRZAP&lt;br /&gt;
 GENMOD SIRZAP (FROM APPL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirAud object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirAud&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of AUD102.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=0&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(AUD102)&lt;br /&gt;
  ENTRY JMAIN&lt;br /&gt;
  NAME SIRAUD(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the SirAud object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRAUD load module.&lt;br /&gt;
In this example, it is assumed that the SirAud object file has a filename of AUD102.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD AUD102 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET JMAIN&lt;br /&gt;
 GENMOD SIRAUD (FROM JCONF&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Fast/Cram object files be installed?===&lt;br /&gt;
Most of the documentation for &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; installation can be found in the &amp;lt;a href=&amp;quot;https://m204.rocketsoftware.com/maint/download/CRAMR.PDF&amp;quot;&amp;gt;&lt;br /&gt;
Fast/Cram Installation Guide&amp;lt;/a&amp;gt;.&lt;br /&gt;
That manual is currently not updated to reflect web downloads, so a few things must be kept in mind.&lt;br /&gt;
The first is that the first four characters of the download file indicate the module being downloaded, and they correspond to a specific member in SIRIUS.LOAD,&lt;br /&gt;
as described in the &amp;lt;i&amp;gt;Fast/Cram Installation Guide&amp;lt;/i&amp;gt;.&lt;br /&gt;
The correspondences between the first four characters in the downloaded object files and the members in SIRIUS.LOAD are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellpadding=6&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRM&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FASTSVC&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRI&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;IGCLM244&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRR&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FASTREP&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SNAPFAST&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 example JCL would create SIRIUS.LOAD load modules as described in the &amp;lt;i&amp;gt;Fast/Cram Installation Guide&amp;lt;/i&amp;gt;.&lt;br /&gt;
This example assumes you uploaded the object files into library SIRIUS.LIB with member names of FCR*27.&lt;br /&gt;
If you uploaded to non-library datasets (that is, sequential datasets, not Partitioned Data Sets), then you will need a separate DD statement for each object file as well as appropriate INCLUDE statements for them, omitting the parentheses and member names.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; The Fast/CRAM modules &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be linked using the RENT option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(FCRM27)&lt;br /&gt;
  ENTRY FASTSVC&lt;br /&gt;
  NAME FASTSVC(R)&lt;br /&gt;
  INCLUDE LIB(FCRI27)&lt;br /&gt;
  ENTRY FASTRLD&lt;br /&gt;
  NAME IGCLM244(R)&lt;br /&gt;
  INCLUDE LIB(FCRR27)&lt;br /&gt;
  ENTRY FASTREP&lt;br /&gt;
  NAME FASTREP(R)&lt;br /&gt;
  INCLUDE LIB(FCRS27)&lt;br /&gt;
  ENTRY SNAPFAST&lt;br /&gt;
  NAME SNAPFAST(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the customization job is currently &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; release specific.&lt;br /&gt;
The following job is a sample customization job for &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; V2.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //FASTCUST JOB  ,&#039;Fast/CRAM&#039;,CLASS=A,MSGCLASS=A&lt;br /&gt;
 //*&lt;br /&gt;
 //*        Customize FASTCRAM  Version 2.7&lt;br /&gt;
 //*&lt;br /&gt;
 //*        Install  FASTCRAM in SYS1.LPALIB,&lt;br /&gt;
 //*        as a Type 3 or type 4 SVC, using an SVC&lt;br /&gt;
 //*        number of 250 and a subsystem name of SIRI.&lt;br /&gt;
 //*&lt;br /&gt;
 //ZAPS     EXEC PGM=SIRZAP,PARM=NOVER&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSLIB   DD   DISP=SHR,DSN=SIRIUS.LOAD&lt;br /&gt;
 //SYSIN    DD   *&lt;br /&gt;
 * *********************************************************************&lt;br /&gt;
 *   ZAP THE SVC NUMBER INTO FASTRLD.                                  *&lt;br /&gt;
 * *********************************************************************&lt;br /&gt;
  NAME FASTRLD  FASTRLD&lt;br /&gt;
  VER  0184 0A0D&lt;br /&gt;
  REP  0184 0AFA      * NEW SVC=250&lt;br /&gt;
 * *********************************************************************&lt;br /&gt;
 *   ZAP THE SUBSYSTEM NAME AND SVC NUMBER INTO FASTSVC.               *&lt;br /&gt;
 * *********************************************************************&lt;br /&gt;
  NAME FASTSVC  FASTSVC&lt;br /&gt;
  VER  1678 00007FFF&lt;br /&gt;
  VER  167C C6C1E2E3  * CURRENT SUBSYSTEM=FAST&lt;br /&gt;
  REP  167C E2C9D9C9  * NEW SUBSYSTEM=SIRI&lt;br /&gt;
  VER  1688 0A0D&lt;br /&gt;
  REP  1688 0AFA      * NEW SVC=250&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No matter which subsystem name you choose, this subsystem name must be defined in IEFSSNxx in SYS1.PARMLIB.&lt;br /&gt;
It is strongly recommended that subsystem name &amp;quot;M204&amp;quot; not be used because that subsystem name is used for &amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&#039;s&amp;lt;/nobr&amp;gt; standard CRAM implementations.&lt;br /&gt;
The subsystem can also be defined dynamically with the SETSSI command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 SETSSI ADD,SUBNAME=FAST&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are downloading a release for which no sample customization job is listed here, or if you need more help with the installation, contact Rocket M204 support at +1.800.755.4222, or e-mail us at [mailto:m204support@rocketsoftware.com m204support@rocketsoftware.com].&lt;br /&gt;
&lt;br /&gt;
===Where can more documentation be found?===&lt;br /&gt;
The primary source of documentation for Rocket M204 products is this wiki.&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Web_help_download_authorization_keys&amp;diff=71700</id>
		<title>Web help download authorization keys</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Web_help_download_authorization_keys&amp;diff=71700"/>
		<updated>2014-09-04T21:27:31Z</updated>

		<summary type="html">&lt;p&gt;Gary: Redirected page to Downloading and installing Rocket M204 products&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Downloading and installing Rocket M204 products]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_installing_Rocket_M204_products&amp;diff=71699</id>
		<title>Downloading and installing Rocket M204 products</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_installing_Rocket_M204_products&amp;diff=71699"/>
		<updated>2014-09-04T21:24:20Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* How should the Fast/Cram object files be installed? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How can the above object files be downloaded?==&lt;br /&gt;
The object files can be downloaded by clicking on the link for the object file with the &amp;lt;b&amp;gt;right&amp;lt;/b&amp;gt; mouse button.&lt;br /&gt;
This will (on most browsers) bring up a pop-up menu that will have an option &amp;lt;i&amp;gt;Save Link As&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Save target As&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Save As&amp;lt;/i&amp;gt;, or something similar.&lt;br /&gt;
Select this option, and then set the appropriate target directory (and name if desired) for the file.&lt;br /&gt;
The object file will then be downloaded to the indicated location.&lt;br /&gt;
&lt;br /&gt;
Alternatively, click the &amp;lt;b&amp;gt;left&amp;lt;/b&amp;gt; mouse button on the link for an object file. This will result in the browser prompting the user whether the file should be saved, where it should be saved, and under what name.&lt;br /&gt;
Some browsers prompt for this information before the object file is actually downloaded; others prompt for it after.&lt;br /&gt;
Obviously, those that prompt after will present a considerable delay before the prompt.&lt;br /&gt;
Opera actually prompts as soon as it receives the file header but continues downloading while waiting for the user response.&lt;br /&gt;
&lt;br /&gt;
Object files are customized for a particular site, simplifying the installation process.&lt;br /&gt;
Because of this, there may be a noticeable delay in processing a download request.&lt;br /&gt;
In addition, the downloaded object files can range in size from hundreds of kilobytes to perhaps 10 megabytes.&lt;br /&gt;
&lt;br /&gt;
If an e-mail transfer is selected, the object deck will be e-mailed to the indicated e-mail address as an attachment.&lt;br /&gt;
The attachment should be saved to a local file and then uploaded to the mainframe exactly as if it had been downloaded directly.&lt;br /&gt;
Receiving the object deck via e-mail might take a little longer than downloading it directly, but it allows you to schedule a set of object to be sent to a different person in your organization.&lt;br /&gt;
&lt;br /&gt;
==How can the object files be uploaded to the mainframe?==&lt;br /&gt;
Once the object files are downloaded to the workstation they must be uploaded to the z/OS, VM, or VSE system on the IBM mainframe.&lt;br /&gt;
Any file transfer mechanism can be used including FTP and IND$FILE, but regardless of the transfer mechanism some rules must be observed.&lt;br /&gt;
&lt;br /&gt;
First, the object files contain binary data and hence &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be transferred as binary.&lt;br /&gt;
That is, no translation from ASCII to EBCDIC must occur as a result of the upload.&lt;br /&gt;
&lt;br /&gt;
Second, the format and LRECL of the file must be specified during the upload.&lt;br /&gt;
This is because most workstation systems (including Windows, Mac OS and Unix) do not have a concept of file formats and LRECL&#039;s.&lt;br /&gt;
This information would be lost if it were not specified during the upload.&lt;br /&gt;
The format of the uploaded file must be &amp;lt;i&amp;gt;F&amp;lt;/i&amp;gt; under VM systems and &amp;lt;i&amp;gt;FB&amp;lt;/i&amp;gt; under z/OS and VSE systems. The LRECL must be&lt;br /&gt;
80 on all systems and under z/OS and VSE the blocksize can be any multiple of 80 though 3120 is a common blocksize for object libraries.&lt;br /&gt;
&lt;br /&gt;
When using FTP, the characteristics (RECFM, LRECL, and BLOCKSIZE) of the uploaded file can be set with the &amp;lt;i&amp;gt;SITE&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;LOCSITE&amp;lt;/i&amp;gt; FTP commands.&lt;br /&gt;
The SITE command should be used if the FTP client is on the workstation and the server is on the mainframe.&lt;br /&gt;
In this case the SITE command might have to be sent as a &amp;quot;quote&amp;quot; to the mainframe.&lt;br /&gt;
How this is done depends on your workstation&#039;s FTP client.&lt;br /&gt;
The LOCSITE command should be used if the FTP client is on the mainframe and the server is on the workstation.&lt;br /&gt;
&lt;br /&gt;
===Model 204 object library===&lt;br /&gt;
The Model 204 installation process entails creating a library (in z/OS, a Partitioned Data Set, or PDS), which is then used in subsequent steps to link the various Model 204 load modules.&lt;br /&gt;
The file which you have uploaded to the mainframe, typically as a sequential dataset (DSORG=PS in z/OS), is used as the &amp;lt;code&amp;gt;INP=&amp;lt;/code&amp;gt; parameter to the following JCL PROC for a z/OS installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//NEWOBJLB PROC TRK=&#039;320,50&#039;,BLK=6400&lt;br /&gt;
//*&lt;br /&gt;
//* Usage: //BLD EXEC NEWOBJLB,LIB=objectLibDsn,INP=inputStreamDsn&lt;br /&gt;
//*&lt;br /&gt;
//* Important note: The output object library (LIB=) is first deleted&lt;br /&gt;
//*&lt;br /&gt;
//* This proc creates an object library, using the input stream which&lt;br /&gt;
//* was downloaded from the Rocket Model 204 web site.  After the&lt;br /&gt;
//* download, it must be un-zipped, and then FTP&#039;d (BINARY, 80 byte&lt;br /&gt;
//* fixed length records) to a z/OS dataset.&lt;br /&gt;
//*&lt;br /&gt;
//* The FTP&#039;d z/OS dataset is specified by the INP= parameter&lt;br /&gt;
//*&lt;br /&gt;
//* Note: If you thought you might want to, it&#039;s best not to try&lt;br /&gt;
//*       to over-ride SYSIN with a DD *, because the input stream&lt;br /&gt;
//*       contains JCL.&lt;br /&gt;
//*&lt;br /&gt;
//DEL      EXEC PGM=IEFBR14&lt;br /&gt;
//DEL      DD DSN=&amp;amp;LIB,DISP=(MOD,DELETE),UNIT=SYSDA,SPACE=(TRK,1)&lt;br /&gt;
//*&lt;br /&gt;
//BLDOBJLB EXEC PGM=IEBUPDTE,PARM=NEW&lt;br /&gt;
//SYSPRINT DD SYSOUT=A   &amp;lt;&amp;lt; Note: this output will contain on the order&lt;br /&gt;
//*                         of 160K lines or more&lt;br /&gt;
//SYSUT2   DD DISP=(NEW,CATLG),SPACE=(TRK,(&amp;amp;TRK,60),RLSE),&lt;br /&gt;
//            UNIT=SYSDA,DCB=(DSORG=PO,LRECL=80,RECFM=FB,BLKSIZE=&amp;amp;BLK),&lt;br /&gt;
//            DSN=&amp;amp;LIB&lt;br /&gt;
//SYSIN    DD DISP=SHR,DSN=&amp;amp;INP&lt;br /&gt;
//*&lt;br /&gt;
//         PEND&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example, if you downloaded the input stream and then FTP&#039;d it into &amp;lt;code&amp;gt;M204.V75.DOWNLOAD.OBJ&amp;lt;/code&amp;gt;,&lt;br /&gt;
and the object library dataset is to be &amp;lt;code&amp;gt;M204.V75.OBJLIB&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//BLDOBJLB EXEC NEWOBJLB,&lt;br /&gt;
//            INP=M204.V75.DOWNLOAD,&lt;br /&gt;
//            LIB=M204.V75.OBJLIB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The space allocation and block size are PROC parameters, but their defaults will work.&lt;br /&gt;
You can, of course, use any dataset name you want for the object library after &amp;lt;code&amp;gt;INP=&amp;lt;/code&amp;gt; &amp;amp;mdash; note that in our documentation, we refer to the object library as &amp;lt;b&amp;gt;ROKOB204&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Other object files===&lt;br /&gt;
For products other than Model 204, the downloaded file is a single object file.&lt;br /&gt;
Under z/OS, you can upload an object file either as a member of a Partitioned Data Set (PDS) or as an individual sequential file.&lt;br /&gt;
A PDS is recommended as a good way to collect all your Rocket M204 object file uploads in one dataset, using the member name to show the product and version.&lt;br /&gt;
&lt;br /&gt;
==Should maintenance be applied to the uploaded object files?==&lt;br /&gt;
When Rocket M204 products are downloaded, they will contain all of the current maintenance as well as all applicable authorization keys.&lt;br /&gt;
Thus no additional additional installation steps steps are required to install maintenance or authorization keys.&lt;br /&gt;
Subsequent fixes can be applied by downloading ZAPs and applying them, or by downloading a replacement object file and re-linking the appropriate load modules.&lt;br /&gt;
&lt;br /&gt;
==How should the Model 204 load modules be linked under z/OS?==&lt;br /&gt;
The Model 204 object library you created contains object files, JCL, and link-edit control statements so that you can link the Model 204 load modules.&lt;br /&gt;
(This library, of course, has the DSNAME you chose &amp;amp;mdash; but in our documentation, we refer to the object library as &amp;lt;b&amp;gt;ROKOB204&amp;lt;/b&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
One of the members of ROKOB204 is a text file named README, which includes a list of the Model 204 load modules, and, individual instructions for linking them.&lt;br /&gt;
&lt;br /&gt;
For example, to link the ONLINE load module, there is a member named JZLONLN.&lt;br /&gt;
This basic JCL has simple instructions for using it.&lt;br /&gt;
One of the comments in the JCL is a link which you may follow for more [[M204_install#zOS_link_onl|detailed instructions]].&lt;br /&gt;
&lt;br /&gt;
==What are the Sirius Mods?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; is a collection of functions and enhancements to the core &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module.&lt;br /&gt;
These enhancements are either products in and of themselves, or they are prerequisites for products which are written in User Language.&lt;br /&gt;
A site is authorized to download all of the &amp;lt;i&amp;gt;Sirus&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; if it is licensed for any of the products that require these enhancements.&lt;br /&gt;
Your authorization key will then enable the appropriate set of products.&lt;br /&gt;
&lt;br /&gt;
Products that require the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; are:&lt;br /&gt;
&lt;br /&gt;
* Fast/Backup&lt;br /&gt;
* Fast/Reload&lt;br /&gt;
* Fast/Unload User Language Interface&lt;br /&gt;
* Janus Network Security&lt;br /&gt;
* Janus Open Server&lt;br /&gt;
* Janus Open Client&lt;br /&gt;
* Janus SOAP&lt;br /&gt;
* Janus Specialty Data Store&lt;br /&gt;
* Janus TCP/IP Base&lt;br /&gt;
* Janus Web Server&lt;br /&gt;
* Japanese Functions&lt;br /&gt;
* SirDBA&lt;br /&gt;
* SirFact&lt;br /&gt;
* SirFile&lt;br /&gt;
* Sirius Performance Enhancements&lt;br /&gt;
* Sirius Performance Enhancements V2&lt;br /&gt;
* SirLib&lt;br /&gt;
* SirMon&lt;br /&gt;
* SirPro&lt;br /&gt;
* SirSafe&lt;br /&gt;
* SirScan&lt;br /&gt;
* SirTune&lt;br /&gt;
* SirXref&lt;br /&gt;
* Sir2000 Field Migration Facility&lt;br /&gt;
* Sir2000 User Language Tools&lt;br /&gt;
* Trusted Login Facility&lt;br /&gt;
&lt;br /&gt;
You can determine which of these products your site is authorized for by examining &amp;lt;a href=&amp;quot;https://m204.rocketsoftware.com/dlist&amp;quot;&amp;gt;your customer profile&amp;lt;/a&amp;gt;. After the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; are installed, you can verify product authorizations by issuing the &amp;lt;b&amp;gt;SIRIUS&amp;lt;/b&amp;gt; command in an Online running a load module that includes the &amp;lt;i&amp;gt;Sirius&amp;amp;npsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==How should the Sirius Mods object file be linked under z/OS?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object modules from Rocket.&lt;br /&gt;
Under z/OS, an object deck can be re-linked with a load module.&lt;br /&gt;
In theory, this load module can already contain the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
While this is generally OK if linking over the same release of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, it is almost certainly a bad idea otherwise.&lt;br /&gt;
As such, it is a good idea to keep a load module without the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; available for rebuilding a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
The non-&amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; load module should have all Rocket ZAPs applied, or these ZAPs should be applied after the re-link with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
&lt;br /&gt;
Should Rocket provide replacement object files as part of their maintenance, these object files must &amp;lt;b&amp;gt;never&amp;lt;/b&amp;gt; be linked ahead of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
This also means that replacement Rocket object files cannot simply be linked ahead of a load module containing the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; without also linking the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file ahead of the replacement object files from Rocket.&lt;br /&gt;
&lt;br /&gt;
Both of the next two examples assume you uploaded the object file into library SIRIUS.LIB with a member name of SIR80074.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
The following JCL is an example of how you would link the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file with a standard &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module called ONLINE in&lt;br /&gt;
library M204.V7R4.LOADLIB.  The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK    EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;LIST,LET,MAP,SIZE=(2048K,512K),RMODE=ANY,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD SYSOUT=*&lt;br /&gt;
 //M204LOAD DD DSN=M204.V7R4.LOADLIB,DISP=SHR&lt;br /&gt;
 //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(SIR80074)&lt;br /&gt;
  INCLUDE M204LOAD(ONLINE)&lt;br /&gt;
  ENTRY MAINTASK&lt;br /&gt;
  NAME ONLINE(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following JCL is an example of how you would link the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file with a standard &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module called ONLINE in&lt;br /&gt;
library M204.V7R4.LOADLIB, along with replacement object decks for EVNU and SBFM, which were provided with Rocket maintenance and are in library M204.V7R4.FIXOBJ.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;LIST,LET,MAP,SIZE=(2048K,512K),RMODE=ANY,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //M204LOAD DD   DSN=M204.V7R4.LOADLIB,DISP=SHR&lt;br /&gt;
 //M204FIX  DD   DSN=M204.V7R4.FIXOBJ,DISP=SHR&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(SIR80074)&lt;br /&gt;
  INCLUDE M204FIX(EVFM,SBFM)&lt;br /&gt;
  INCLUDE M204LOAD(ONLINE)&lt;br /&gt;
  ENTRY MAINTASK&lt;br /&gt;
  NAME ONLINE(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How should the Sirius Mods object file be linked under CMS?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object modules from Rocket.&lt;br /&gt;
This means, first, that the object file&#039;s filetype must conform to CMS conventions for object files.&lt;br /&gt;
The simplest way to ensure this is to use a filetype of TEXT for the object file under CMS.&lt;br /&gt;
&lt;br /&gt;
To link with the Rocket-supplied M204GEN utility, the &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load list must be modified to include the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
This can be done by simply inserting a line with an &amp;quot;&amp;amp;1 &amp;amp;2&amp;quot; followed by the filename of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file before the name of any other object file in the load list.&lt;br /&gt;
The following is an example of the first few lines of an updated load list, where the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file is called &amp;quot;SIR80074 TEXT&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 * LOAD LIST FOR M204ONLN MODULE&lt;br /&gt;
 * (&amp;amp;START IN MLNK)&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 SIR80074&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 MLNK&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 ACF2CMS&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 ANXV&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 APSY&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 APSZ&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 ARTH&lt;br /&gt;
  . . . . .&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; dynamically adds hooks to the load module, Sirius recommends against using shared segments with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
If this is considered essential, contact Sirius Software technical support for help in building a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; and shared segments.&lt;br /&gt;
&lt;br /&gt;
An exec called LOADCONV is also available to automatically convert the loadlist, it can be &amp;lt;a href=&amp;quot;download/loadconv.rex&amp;quot;&amp;gt;downloaded here&amp;lt;/a&amp;gt;.&lt;br /&gt;
Note that LOADCONV requires that the filename of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file be &amp;quot;SIROBJ&amp;quot; followed by the &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; release to which it&lt;br /&gt;
applies, as in &amp;quot;SIROBJ74&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the M204GEN exec is being used, M204CCA PARMS needs to be edited.&lt;br /&gt;
First, in the M204GEN/DEFAULTS section, the ldrtbls value might need to be increased:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 M204GEN:&lt;br /&gt;
 DEFAULTS:&lt;br /&gt;
   ldrtbls = 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the load module start needs to include the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; so in the ONLINE/ONLN section the line&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    start.mod   = MLNK$&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
needs to be changed to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    start.mod   = SLNK$&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to be able to generate a load module both with and without the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, you could copy the whole ONLINE section in M204CCA PARMS and call it something else, for example, SIRIUS, and change start.mod in that section.&lt;br /&gt;
Then, when you want to generate a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; in it you&#039;d simply type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 M204GEN SIRIUS&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Sirius Mods object file be linked under VSE?===&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object files from Rocket. The example below shows an excerpt of the standard Rocket link JCL for an ONLINE.&lt;br /&gt;
To linkedit the online with the Sirius Mods, you must insert the include statement for the object module immediately after the PHASE statement.&lt;br /&gt;
In this example, the Sirius Mods object is named SIR80074.&lt;br /&gt;
If the Sirius Mods object module is in a separate library, the JCL should be modified to include that library in the SEARCH= paramter of the LIBDEF OBJ statement.&lt;br /&gt;
If you include any other object modules, they also must appear after the Sirius Mods object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 // LIBDEF PHASE,CATALOG=M204LIB.V7R4&lt;br /&gt;
 // LIBDEF OBJ,SEARCH=M204LIB.V7R4&lt;br /&gt;
 // OPTION CATAL&lt;br /&gt;
  PHASE ONLINE,* REPLACE=YES&lt;br /&gt;
  INCLUDE SIR80074&lt;br /&gt;
  INCLUDE LKONLN&lt;br /&gt;
  INCLUDE&lt;br /&gt;
  ENTRY MAINTASK&lt;br /&gt;
 /*&lt;br /&gt;
 // EXEC LNKEDT&lt;br /&gt;
 /*&lt;br /&gt;
 /&amp;amp;&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Fast/Unload object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;Fast/Unload&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD. &lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of FUN400.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(FUN400)&lt;br /&gt;
  ENTRY FUNLOAD&lt;br /&gt;
  NAME FUNLOAD(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;Fast/Unload&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a FUNLOAD load module.&lt;br /&gt;
In this example, it is assumed that the Fast/Unload object file has a filename of FUN400.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD FUN400 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET FUNLOAD RLDSAVE&lt;br /&gt;
 GENMOD FUNLOAD (FROM FUNL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Why were there three object files for SirTune?===&lt;br /&gt;
Beginning with Version 7.0 of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, all &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; functionality has been merged into the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; and so the standalone &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; load modules are obsolete.&lt;br /&gt;
&lt;br /&gt;
Prior to Version 7.0 of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, however, &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; consisted of three components.&lt;br /&gt;
The first component was called the &amp;lt;i&amp;gt;SirTune Data Collector&amp;lt;/i&amp;gt; or simply &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt;.&lt;br /&gt;
This load module runs in the same address space as the &amp;lt;i&amp;gt;&amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/nobr&amp;gt;&amp;lt;/i&amp;gt; load module and collects data to be analyzed later.&lt;br /&gt;
&lt;br /&gt;
The second component is called the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt;.&lt;br /&gt;
This load module is run independently of &amp;lt;i&amp;gt;&amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/nobr&amp;gt;&amp;lt;/i&amp;gt; and summarizes the data collected by &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; into a report.&lt;br /&gt;
&lt;br /&gt;
The third component is used only under CMS and is called the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt;.&lt;br /&gt;
It communicates with &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; via IUCV and asynchronously logs &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; data on a separate virtual machine.&lt;br /&gt;
It is used to get around some of the difficulties of doing asynchronous I/O under CMS.&lt;br /&gt;
&lt;br /&gt;
In general, it is a good idea to be using the same versions of all three &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; components though Sirius makes every effort to allow a newer &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; to produce reports from sample datasets created by older releases of &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of TUNE104.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(TUNE104)&lt;br /&gt;
  ENTRY COLLECT&lt;br /&gt;
  NAME SIRTUNE(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNE load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file has a filename of TUNE104.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD TUNE104 (FULLMAP NODUP ORIGIN 400000 AMODE 31 RESET COLLECT&lt;br /&gt;
 GENMOD SIRTUNE (FROM COLL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune Report Generator object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of TUNR104.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(TUNR104)&lt;br /&gt;
  ENTRY ANALYZE&lt;br /&gt;
  NAME SIRTUNER(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune Report Renerator&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNER load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; object file has a filename of TUNR103.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD TUNR103 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET ANALYZE&lt;br /&gt;
 GENMOD SIRTUNER (FROM ANAL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune Data Logger object file be linked?===&lt;br /&gt;
The &amp;lt;i&amp;gt;SirTune data Logger&amp;lt;/i&amp;gt; is not used under z/OS.&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNED load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt; object file has a filename of TUND104.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD TUND104 (FULLMAP NODUP ORIGIN 30000 AMODE 24 RESET OUTCMS&lt;br /&gt;
 GENMOD SIRTUNED (FROM OUTC&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the RockZap object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;RockZap&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of ZAP106.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=0&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(ZAP106)&lt;br /&gt;
  ENTRY SIRZAP&lt;br /&gt;
  NAME SIRZAP(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the SirZap object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRZAP load module.&lt;br /&gt;
In this example, it is assumed that the SirZap object file has a filename of ZAP106.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD ZAP106 (FULLMAP NODUP ORIGIN 20000 AMODE 31 RESET SIRZAP&lt;br /&gt;
 GENMOD SIRZAP (FROM APPL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirAud object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirAud&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of AUD102.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=0&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(AUD102)&lt;br /&gt;
  ENTRY JMAIN&lt;br /&gt;
  NAME SIRAUD(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the SirAud object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRAUD load module.&lt;br /&gt;
In this example, it is assumed that the SirAud object file has a filename of AUD102.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD AUD102 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET JMAIN&lt;br /&gt;
 GENMOD SIRAUD (FROM JCONF&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Fast/Cram object files be installed?===&lt;br /&gt;
Most of the documentation for &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; installation can be found in the &amp;lt;a href=&amp;quot;https://m204.rocketsoftware.com/maint/download/CRAMR.PDF&amp;quot;&amp;gt;&lt;br /&gt;
Fast/Cram Installation Guide&amp;lt;/a&amp;gt;.&lt;br /&gt;
That manual is currently not updated to reflect web downloads, so a few things must be kept in mind.&lt;br /&gt;
The first is that the first four characters of the download file indicate the module being downloaded, and they correspond to a specific member in SIRIUS.LOAD,&lt;br /&gt;
as described in the &amp;lt;i&amp;gt;Fast/Cram Installation Guide&amp;lt;/i&amp;gt;.&lt;br /&gt;
The correspondences between the first four characters in the downloaded object files and the members in SIRIUS.LOAD are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellpadding=6&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRM&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FASTSVC&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRI&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;IGCLM244&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRR&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FASTREP&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SNAPFAST&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 example JCL would create SIRIUS.LOAD load modules as described in the &amp;lt;i&amp;gt;Fast/Cram Installation Guide&amp;lt;/i&amp;gt;.&lt;br /&gt;
This example assumes you uploaded the object files into library SIRIUS.LIB with member names of FCR*27.&lt;br /&gt;
If you uploaded to non-library datasets (that is, sequential datasets, not Partitioned Data Sets), then you will need a separate DD statement for each object file as well as appropriate INCLUDE statements for them, omitting the parentheses and member names.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; The Fast/CRAM modules &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be linked using the RENT option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(FCRM27)&lt;br /&gt;
  ENTRY FASTSVC&lt;br /&gt;
  NAME FASTSVC(R)&lt;br /&gt;
  INCLUDE LIB(FCRI27)&lt;br /&gt;
  ENTRY FASTRLD&lt;br /&gt;
  NAME IGCLM244(R)&lt;br /&gt;
  INCLUDE LIB(FCRR27)&lt;br /&gt;
  ENTRY FASTREP&lt;br /&gt;
  NAME FASTREP(R)&lt;br /&gt;
  INCLUDE LIB(FCRS27)&lt;br /&gt;
  ENTRY SNAPFAST&lt;br /&gt;
  NAME SNAPFAST(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the customization job is currently &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; release specific.&lt;br /&gt;
The following job is a sample customization job for &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; V2.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //FASTCUST JOB  ,&#039;Fast/CRAM&#039;,CLASS=A,MSGCLASS=A&lt;br /&gt;
 //*&lt;br /&gt;
 //*        Customize FASTCRAM  Version 2.7&lt;br /&gt;
 //*&lt;br /&gt;
 //*        Install  FASTCRAM in SYS1.LPALIB,&lt;br /&gt;
 //*        as a Type 3 or type 4 SVC, using an SVC&lt;br /&gt;
 //*        number of 250 and a subsystem name of SIRI.&lt;br /&gt;
 //*&lt;br /&gt;
 //ZAPS     EXEC PGM=SIRZAP,PARM=NOVER&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSLIB   DD   DISP=SHR,DSN=SIRIUS.LOAD&lt;br /&gt;
 //SYSIN    DD   *&lt;br /&gt;
 * *********************************************************************&lt;br /&gt;
 *   ZAP THE SVC NUMBER INTO FASTRLD.                                  *&lt;br /&gt;
 * *********************************************************************&lt;br /&gt;
  NAME FASTRLD  FASTRLD&lt;br /&gt;
  VER  0184 0A0D&lt;br /&gt;
  REP  0184 0AFA      * NEW SVC=250&lt;br /&gt;
 * *********************************************************************&lt;br /&gt;
 *   ZAP THE SUBSYSTEM NAME AND SVC NUMBER INTO FASTSVC.               *&lt;br /&gt;
 * *********************************************************************&lt;br /&gt;
  NAME FASTSVC  FASTSVC&lt;br /&gt;
  VER  1678 00007FFF&lt;br /&gt;
  VER  167C C6C1E2E3  * CURRENT SUBSYSTEM=FAST&lt;br /&gt;
  REP  167C E2C9D9C9  * NEW SUBSYSTEM=SIRI&lt;br /&gt;
  VER  1688 0A0D&lt;br /&gt;
  REP  1688 0AFA      * NEW SVC=250&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No matter which subsystem name you choose, this subsystem name must be defined in IEFSSNxx in SYS1.PARMLIB.&lt;br /&gt;
It is strongly recommended that subsystem name &amp;quot;M204&amp;quot; not be used because that subsystem name is used for &amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&#039;s&amp;lt;/nobr&amp;gt; standard CRAM implementations.&lt;br /&gt;
The subsystem can also be defined dynamically with the SETSSI command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 SETSSI ADD,SUBNAME=FAST&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are downloading a release for which no sample customization job is listed here, or if you need more help with the installation, contact Rocket M204 support at +1.800.755.4222, or e-mail us at [mailto:m204support@rocketsoftware.com m204support@rocketsoftware.com].&lt;br /&gt;
&lt;br /&gt;
===Where can more documentation be found?===&lt;br /&gt;
The primary source of documentation for Rocket M204 products is this wiki.&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_installing_Rocket_M204_products&amp;diff=71698</id>
		<title>Downloading and installing Rocket M204 products</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_installing_Rocket_M204_products&amp;diff=71698"/>
		<updated>2014-09-04T21:21:40Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* How should the Sirius Mods object file be linked under CMS? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How can the above object files be downloaded?==&lt;br /&gt;
The object files can be downloaded by clicking on the link for the object file with the &amp;lt;b&amp;gt;right&amp;lt;/b&amp;gt; mouse button.&lt;br /&gt;
This will (on most browsers) bring up a pop-up menu that will have an option &amp;lt;i&amp;gt;Save Link As&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Save target As&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Save As&amp;lt;/i&amp;gt;, or something similar.&lt;br /&gt;
Select this option, and then set the appropriate target directory (and name if desired) for the file.&lt;br /&gt;
The object file will then be downloaded to the indicated location.&lt;br /&gt;
&lt;br /&gt;
Alternatively, click the &amp;lt;b&amp;gt;left&amp;lt;/b&amp;gt; mouse button on the link for an object file. This will result in the browser prompting the user whether the file should be saved, where it should be saved, and under what name.&lt;br /&gt;
Some browsers prompt for this information before the object file is actually downloaded; others prompt for it after.&lt;br /&gt;
Obviously, those that prompt after will present a considerable delay before the prompt.&lt;br /&gt;
Opera actually prompts as soon as it receives the file header but continues downloading while waiting for the user response.&lt;br /&gt;
&lt;br /&gt;
Object files are customized for a particular site, simplifying the installation process.&lt;br /&gt;
Because of this, there may be a noticeable delay in processing a download request.&lt;br /&gt;
In addition, the downloaded object files can range in size from hundreds of kilobytes to perhaps 10 megabytes.&lt;br /&gt;
&lt;br /&gt;
If an e-mail transfer is selected, the object deck will be e-mailed to the indicated e-mail address as an attachment.&lt;br /&gt;
The attachment should be saved to a local file and then uploaded to the mainframe exactly as if it had been downloaded directly.&lt;br /&gt;
Receiving the object deck via e-mail might take a little longer than downloading it directly, but it allows you to schedule a set of object to be sent to a different person in your organization.&lt;br /&gt;
&lt;br /&gt;
==How can the object files be uploaded to the mainframe?==&lt;br /&gt;
Once the object files are downloaded to the workstation they must be uploaded to the z/OS, VM, or VSE system on the IBM mainframe.&lt;br /&gt;
Any file transfer mechanism can be used including FTP and IND$FILE, but regardless of the transfer mechanism some rules must be observed.&lt;br /&gt;
&lt;br /&gt;
First, the object files contain binary data and hence &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be transferred as binary.&lt;br /&gt;
That is, no translation from ASCII to EBCDIC must occur as a result of the upload.&lt;br /&gt;
&lt;br /&gt;
Second, the format and LRECL of the file must be specified during the upload.&lt;br /&gt;
This is because most workstation systems (including Windows, Mac OS and Unix) do not have a concept of file formats and LRECL&#039;s.&lt;br /&gt;
This information would be lost if it were not specified during the upload.&lt;br /&gt;
The format of the uploaded file must be &amp;lt;i&amp;gt;F&amp;lt;/i&amp;gt; under VM systems and &amp;lt;i&amp;gt;FB&amp;lt;/i&amp;gt; under z/OS and VSE systems. The LRECL must be&lt;br /&gt;
80 on all systems and under z/OS and VSE the blocksize can be any multiple of 80 though 3120 is a common blocksize for object libraries.&lt;br /&gt;
&lt;br /&gt;
When using FTP, the characteristics (RECFM, LRECL, and BLOCKSIZE) of the uploaded file can be set with the &amp;lt;i&amp;gt;SITE&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;LOCSITE&amp;lt;/i&amp;gt; FTP commands.&lt;br /&gt;
The SITE command should be used if the FTP client is on the workstation and the server is on the mainframe.&lt;br /&gt;
In this case the SITE command might have to be sent as a &amp;quot;quote&amp;quot; to the mainframe.&lt;br /&gt;
How this is done depends on your workstation&#039;s FTP client.&lt;br /&gt;
The LOCSITE command should be used if the FTP client is on the mainframe and the server is on the workstation.&lt;br /&gt;
&lt;br /&gt;
===Model 204 object library===&lt;br /&gt;
The Model 204 installation process entails creating a library (in z/OS, a Partitioned Data Set, or PDS), which is then used in subsequent steps to link the various Model 204 load modules.&lt;br /&gt;
The file which you have uploaded to the mainframe, typically as a sequential dataset (DSORG=PS in z/OS), is used as the &amp;lt;code&amp;gt;INP=&amp;lt;/code&amp;gt; parameter to the following JCL PROC for a z/OS installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//NEWOBJLB PROC TRK=&#039;320,50&#039;,BLK=6400&lt;br /&gt;
//*&lt;br /&gt;
//* Usage: //BLD EXEC NEWOBJLB,LIB=objectLibDsn,INP=inputStreamDsn&lt;br /&gt;
//*&lt;br /&gt;
//* Important note: The output object library (LIB=) is first deleted&lt;br /&gt;
//*&lt;br /&gt;
//* This proc creates an object library, using the input stream which&lt;br /&gt;
//* was downloaded from the Rocket Model 204 web site.  After the&lt;br /&gt;
//* download, it must be un-zipped, and then FTP&#039;d (BINARY, 80 byte&lt;br /&gt;
//* fixed length records) to a z/OS dataset.&lt;br /&gt;
//*&lt;br /&gt;
//* The FTP&#039;d z/OS dataset is specified by the INP= parameter&lt;br /&gt;
//*&lt;br /&gt;
//* Note: If you thought you might want to, it&#039;s best not to try&lt;br /&gt;
//*       to over-ride SYSIN with a DD *, because the input stream&lt;br /&gt;
//*       contains JCL.&lt;br /&gt;
//*&lt;br /&gt;
//DEL      EXEC PGM=IEFBR14&lt;br /&gt;
//DEL      DD DSN=&amp;amp;LIB,DISP=(MOD,DELETE),UNIT=SYSDA,SPACE=(TRK,1)&lt;br /&gt;
//*&lt;br /&gt;
//BLDOBJLB EXEC PGM=IEBUPDTE,PARM=NEW&lt;br /&gt;
//SYSPRINT DD SYSOUT=A   &amp;lt;&amp;lt; Note: this output will contain on the order&lt;br /&gt;
//*                         of 160K lines or more&lt;br /&gt;
//SYSUT2   DD DISP=(NEW,CATLG),SPACE=(TRK,(&amp;amp;TRK,60),RLSE),&lt;br /&gt;
//            UNIT=SYSDA,DCB=(DSORG=PO,LRECL=80,RECFM=FB,BLKSIZE=&amp;amp;BLK),&lt;br /&gt;
//            DSN=&amp;amp;LIB&lt;br /&gt;
//SYSIN    DD DISP=SHR,DSN=&amp;amp;INP&lt;br /&gt;
//*&lt;br /&gt;
//         PEND&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example, if you downloaded the input stream and then FTP&#039;d it into &amp;lt;code&amp;gt;M204.V75.DOWNLOAD.OBJ&amp;lt;/code&amp;gt;,&lt;br /&gt;
and the object library dataset is to be &amp;lt;code&amp;gt;M204.V75.OBJLIB&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//BLDOBJLB EXEC NEWOBJLB,&lt;br /&gt;
//            INP=M204.V75.DOWNLOAD,&lt;br /&gt;
//            LIB=M204.V75.OBJLIB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The space allocation and block size are PROC parameters, but their defaults will work.&lt;br /&gt;
You can, of course, use any dataset name you want for the object library after &amp;lt;code&amp;gt;INP=&amp;lt;/code&amp;gt; &amp;amp;mdash; note that in our documentation, we refer to the object library as &amp;lt;b&amp;gt;ROKOB204&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Other object files===&lt;br /&gt;
For products other than Model 204, the downloaded file is a single object file.&lt;br /&gt;
Under z/OS, you can upload an object file either as a member of a Partitioned Data Set (PDS) or as an individual sequential file.&lt;br /&gt;
A PDS is recommended as a good way to collect all your Rocket M204 object file uploads in one dataset, using the member name to show the product and version.&lt;br /&gt;
&lt;br /&gt;
==Should maintenance be applied to the uploaded object files?==&lt;br /&gt;
When Rocket M204 products are downloaded, they will contain all of the current maintenance as well as all applicable authorization keys.&lt;br /&gt;
Thus no additional additional installation steps steps are required to install maintenance or authorization keys.&lt;br /&gt;
Subsequent fixes can be applied by downloading ZAPs and applying them, or by downloading a replacement object file and re-linking the appropriate load modules.&lt;br /&gt;
&lt;br /&gt;
==How should the Model 204 load modules be linked under z/OS?==&lt;br /&gt;
The Model 204 object library you created contains object files, JCL, and link-edit control statements so that you can link the Model 204 load modules.&lt;br /&gt;
(This library, of course, has the DSNAME you chose &amp;amp;mdash; but in our documentation, we refer to the object library as &amp;lt;b&amp;gt;ROKOB204&amp;lt;/b&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
One of the members of ROKOB204 is a text file named README, which includes a list of the Model 204 load modules, and, individual instructions for linking them.&lt;br /&gt;
&lt;br /&gt;
For example, to link the ONLINE load module, there is a member named JZLONLN.&lt;br /&gt;
This basic JCL has simple instructions for using it.&lt;br /&gt;
One of the comments in the JCL is a link which you may follow for more [[M204_install#zOS_link_onl|detailed instructions]].&lt;br /&gt;
&lt;br /&gt;
==What are the Sirius Mods?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; is a collection of functions and enhancements to the core &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module.&lt;br /&gt;
These enhancements are either products in and of themselves, or they are prerequisites for products which are written in User Language.&lt;br /&gt;
A site is authorized to download all of the &amp;lt;i&amp;gt;Sirus&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; if it is licensed for any of the products that require these enhancements.&lt;br /&gt;
Your authorization key will then enable the appropriate set of products.&lt;br /&gt;
&lt;br /&gt;
Products that require the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; are:&lt;br /&gt;
&lt;br /&gt;
* Fast/Backup&lt;br /&gt;
* Fast/Reload&lt;br /&gt;
* Fast/Unload User Language Interface&lt;br /&gt;
* Janus Network Security&lt;br /&gt;
* Janus Open Server&lt;br /&gt;
* Janus Open Client&lt;br /&gt;
* Janus SOAP&lt;br /&gt;
* Janus Specialty Data Store&lt;br /&gt;
* Janus TCP/IP Base&lt;br /&gt;
* Janus Web Server&lt;br /&gt;
* Japanese Functions&lt;br /&gt;
* SirDBA&lt;br /&gt;
* SirFact&lt;br /&gt;
* SirFile&lt;br /&gt;
* Sirius Performance Enhancements&lt;br /&gt;
* Sirius Performance Enhancements V2&lt;br /&gt;
* SirLib&lt;br /&gt;
* SirMon&lt;br /&gt;
* SirPro&lt;br /&gt;
* SirSafe&lt;br /&gt;
* SirScan&lt;br /&gt;
* SirTune&lt;br /&gt;
* SirXref&lt;br /&gt;
* Sir2000 Field Migration Facility&lt;br /&gt;
* Sir2000 User Language Tools&lt;br /&gt;
* Trusted Login Facility&lt;br /&gt;
&lt;br /&gt;
You can determine which of these products your site is authorized for by examining &amp;lt;a href=&amp;quot;https://m204.rocketsoftware.com/dlist&amp;quot;&amp;gt;your customer profile&amp;lt;/a&amp;gt;. After the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; are installed, you can verify product authorizations by issuing the &amp;lt;b&amp;gt;SIRIUS&amp;lt;/b&amp;gt; command in an Online running a load module that includes the &amp;lt;i&amp;gt;Sirius&amp;amp;npsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==How should the Sirius Mods object file be linked under z/OS?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object modules from Rocket.&lt;br /&gt;
Under z/OS, an object deck can be re-linked with a load module.&lt;br /&gt;
In theory, this load module can already contain the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
While this is generally OK if linking over the same release of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, it is almost certainly a bad idea otherwise.&lt;br /&gt;
As such, it is a good idea to keep a load module without the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; available for rebuilding a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
The non-&amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; load module should have all Rocket ZAPs applied, or these ZAPs should be applied after the re-link with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
&lt;br /&gt;
Should Rocket provide replacement object files as part of their maintenance, these object files must &amp;lt;b&amp;gt;never&amp;lt;/b&amp;gt; be linked ahead of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
This also means that replacement Rocket object files cannot simply be linked ahead of a load module containing the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; without also linking the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file ahead of the replacement object files from Rocket.&lt;br /&gt;
&lt;br /&gt;
Both of the next two examples assume you uploaded the object file into library SIRIUS.LIB with a member name of SIR80074.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
The following JCL is an example of how you would link the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file with a standard &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module called ONLINE in&lt;br /&gt;
library M204.V7R4.LOADLIB.  The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK    EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;LIST,LET,MAP,SIZE=(2048K,512K),RMODE=ANY,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD SYSOUT=*&lt;br /&gt;
 //M204LOAD DD DSN=M204.V7R4.LOADLIB,DISP=SHR&lt;br /&gt;
 //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(SIR80074)&lt;br /&gt;
  INCLUDE M204LOAD(ONLINE)&lt;br /&gt;
  ENTRY MAINTASK&lt;br /&gt;
  NAME ONLINE(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following JCL is an example of how you would link the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file with a standard &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module called ONLINE in&lt;br /&gt;
library M204.V7R4.LOADLIB, along with replacement object decks for EVNU and SBFM, which were provided with Rocket maintenance and are in library M204.V7R4.FIXOBJ.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;LIST,LET,MAP,SIZE=(2048K,512K),RMODE=ANY,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //M204LOAD DD   DSN=M204.V7R4.LOADLIB,DISP=SHR&lt;br /&gt;
 //M204FIX  DD   DSN=M204.V7R4.FIXOBJ,DISP=SHR&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(SIR80074)&lt;br /&gt;
  INCLUDE M204FIX(EVFM,SBFM)&lt;br /&gt;
  INCLUDE M204LOAD(ONLINE)&lt;br /&gt;
  ENTRY MAINTASK&lt;br /&gt;
  NAME ONLINE(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How should the Sirius Mods object file be linked under CMS?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object modules from Rocket.&lt;br /&gt;
This means, first, that the object file&#039;s filetype must conform to CMS conventions for object files.&lt;br /&gt;
The simplest way to ensure this is to use a filetype of TEXT for the object file under CMS.&lt;br /&gt;
&lt;br /&gt;
To link with the Rocket-supplied M204GEN utility, the &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load list must be modified to include the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
This can be done by simply inserting a line with an &amp;quot;&amp;amp;1 &amp;amp;2&amp;quot; followed by the filename of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file before the name of any other object file in the load list.&lt;br /&gt;
The following is an example of the first few lines of an updated load list, where the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file is called &amp;quot;SIR80074 TEXT&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 * LOAD LIST FOR M204ONLN MODULE&lt;br /&gt;
 * (&amp;amp;START IN MLNK)&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 SIR80074&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 MLNK&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 ACF2CMS&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 ANXV&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 APSY&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 APSZ&lt;br /&gt;
  &amp;amp;1 &amp;amp;2 ARTH&lt;br /&gt;
  . . . . .&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; dynamically adds hooks to the load module, Sirius recommends against using shared segments with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
If this is considered essential, contact Sirius Software technical support for help in building a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; and shared segments.&lt;br /&gt;
&lt;br /&gt;
An exec called LOADCONV is also available to automatically convert the loadlist, it can be &amp;lt;a href=&amp;quot;download/loadconv.rex&amp;quot;&amp;gt;downloaded here&amp;lt;/a&amp;gt;.&lt;br /&gt;
Note that LOADCONV requires that the filename of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file be &amp;quot;SIROBJ&amp;quot; followed by the &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; release to which it&lt;br /&gt;
applies, as in &amp;quot;SIROBJ74&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the M204GEN exec is being used, M204CCA PARMS needs to be edited.&lt;br /&gt;
First, in the M204GEN/DEFAULTS section, the ldrtbls value might need to be increased:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 M204GEN:&lt;br /&gt;
 DEFAULTS:&lt;br /&gt;
   ldrtbls = 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the load module start needs to include the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; so in the ONLINE/ONLN section the line&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    start.mod   = MLNK$&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
needs to be changed to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    start.mod   = SLNK$&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to be able to generate a load module both with and without the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, you could copy the whole ONLINE section in M204CCA PARMS and call it something else, for example, SIRIUS, and change start.mod in that section.&lt;br /&gt;
Then, when you want to generate a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; in it you&#039;d simply type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 M204GEN SIRIUS&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Sirius Mods object file be linked under VSE?===&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object files from Rocket. The example below shows an excerpt of the standard Rocket link JCL for an ONLINE.&lt;br /&gt;
To linkedit the online with the Sirius Mods, you must insert the include statement for the object module immediately after the PHASE statement.&lt;br /&gt;
In this example, the Sirius Mods object is named SIR80074.&lt;br /&gt;
If the Sirius Mods object module is in a separate library, the JCL should be modified to include that library in the SEARCH= paramter of the LIBDEF OBJ statement.&lt;br /&gt;
If you include any other object modules, they also must appear after the Sirius Mods object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 // LIBDEF PHASE,CATALOG=M204LIB.V7R4&lt;br /&gt;
 // LIBDEF OBJ,SEARCH=M204LIB.V7R4&lt;br /&gt;
 // OPTION CATAL&lt;br /&gt;
  PHASE ONLINE,* REPLACE=YES&lt;br /&gt;
  INCLUDE SIR80074&lt;br /&gt;
  INCLUDE LKONLN&lt;br /&gt;
  INCLUDE&lt;br /&gt;
  ENTRY MAINTASK&lt;br /&gt;
 /*&lt;br /&gt;
 // EXEC LNKEDT&lt;br /&gt;
 /*&lt;br /&gt;
 /&amp;amp;&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Fast/Unload object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;Fast/Unload&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD. &lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of FUN400.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(FUN400)&lt;br /&gt;
  ENTRY FUNLOAD&lt;br /&gt;
  NAME FUNLOAD(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;Fast/Unload&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a FUNLOAD load module.&lt;br /&gt;
In this example, it is assumed that the Fast/Unload object file has a filename of FUN400.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD FUN400 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET FUNLOAD RLDSAVE&lt;br /&gt;
 GENMOD FUNLOAD (FROM FUNL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Why were there three object files for SirTune?===&lt;br /&gt;
Beginning with Version 7.0 of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, all &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; functionality has been merged into the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; and so the standalone &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; load modules are obsolete.&lt;br /&gt;
&lt;br /&gt;
Prior to Version 7.0 of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, however, &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; consisted of three components.&lt;br /&gt;
The first component was called the &amp;lt;i&amp;gt;SirTune Data Collector&amp;lt;/i&amp;gt; or simply &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt;.&lt;br /&gt;
This load module runs in the same address space as the &amp;lt;i&amp;gt;&amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/nobr&amp;gt;&amp;lt;/i&amp;gt; load module and collects data to be analyzed later.&lt;br /&gt;
&lt;br /&gt;
The second component is called the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt;.&lt;br /&gt;
This load module is run independently of &amp;lt;i&amp;gt;&amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/nobr&amp;gt;&amp;lt;/i&amp;gt; and summarizes the data collected by &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; into a report.&lt;br /&gt;
&lt;br /&gt;
The third component is used only under CMS and is called the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt;.&lt;br /&gt;
It communicates with &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; via IUCV and asynchronously logs &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; data on a separate virtual machine.&lt;br /&gt;
It is used to get around some of the difficulties of doing asynchronous I/O under CMS.&lt;br /&gt;
&lt;br /&gt;
In general, it is a good idea to be using the same versions of all three &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; components though Sirius makes every effort to allow a newer &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; to produce reports from sample datasets created by older releases of &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of TUNE104.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(TUNE104)&lt;br /&gt;
  ENTRY COLLECT&lt;br /&gt;
  NAME SIRTUNE(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNE load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file has a filename of TUNE104.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD TUNE104 (FULLMAP NODUP ORIGIN 400000 AMODE 31 RESET COLLECT&lt;br /&gt;
 GENMOD SIRTUNE (FROM COLL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune Report Generator object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of TUNR104.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(TUNR104)&lt;br /&gt;
  ENTRY ANALYZE&lt;br /&gt;
  NAME SIRTUNER(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune Report Renerator&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNER load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; object file has a filename of TUNR103.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD TUNR103 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET ANALYZE&lt;br /&gt;
 GENMOD SIRTUNER (FROM ANAL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune Data Logger object file be linked?===&lt;br /&gt;
The &amp;lt;i&amp;gt;SirTune data Logger&amp;lt;/i&amp;gt; is not used under z/OS.&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNED load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt; object file has a filename of TUND104.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD TUND104 (FULLMAP NODUP ORIGIN 30000 AMODE 24 RESET OUTCMS&lt;br /&gt;
 GENMOD SIRTUNED (FROM OUTC&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the RockZap object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;RockZap&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of ZAP106.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=0&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(ZAP106)&lt;br /&gt;
  ENTRY SIRZAP&lt;br /&gt;
  NAME SIRZAP(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the SirZap object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRZAP load module.&lt;br /&gt;
In this example, it is assumed that the SirZap object file has a filename of ZAP106.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD ZAP106 (FULLMAP NODUP ORIGIN 20000 AMODE 31 RESET SIRZAP&lt;br /&gt;
 GENMOD SIRZAP (FROM APPL&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirAud object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirAud&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of AUD102.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=0&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(AUD102)&lt;br /&gt;
  ENTRY JMAIN&lt;br /&gt;
  NAME SIRAUD(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the SirAud object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRAUD load module.&lt;br /&gt;
In this example, it is assumed that the SirAud object file has a filename of AUD102.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 LOAD AUD102 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET JMAIN&lt;br /&gt;
 GENMOD SIRAUD (FROM JCONF&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Fast/Cram object files be installed?===&lt;br /&gt;
Most of the documentation for &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; installation can be found in the &amp;lt;a href=&amp;quot;https://m204.rocketsoftware.com/maint/download/CRAMR.PDF&amp;quot;&amp;gt;&lt;br /&gt;
Fast/Cram Installation Guide&amp;lt;/a&amp;gt;.&lt;br /&gt;
That manual is currently not updated to reflect web downloads, so a few things must be kept in mind.&lt;br /&gt;
The first is that the first four characters of the download file indicate the module being downloaded, and they correspond to a specific member in SIRIUS.LOAD,&lt;br /&gt;
as described in the &amp;lt;i&amp;gt;Fast/Cram Installation Guide&amp;lt;/i&amp;gt;.&lt;br /&gt;
The correspondences between the first four characters in the downloaded object files and the members in SIRIUS.LOAD are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellpadding=6&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRM&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FASTSVC&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRI&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;IGCLM244&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRR&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FASTREP&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SNAPFAST&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 example JCL would create SIRIUS.LOAD load modules as described in the &amp;lt;i&amp;gt;Fast/Cram Installation Guide&amp;lt;/i&amp;gt;.&lt;br /&gt;
This example assumes you uploaded the object files into library SIRIUS.LIB with member names of FCR*27.&lt;br /&gt;
If you uploaded to non-library datasets (that is, sequential datasets, not Partitioned Data Sets), then you will need a separate DD statement for each object file as well as appropriate INCLUDE statements for them, omitting the parentheses and member names.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; The Fast/CRAM modules &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be linked using the RENT option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(FCRM27)&lt;br /&gt;
  ENTRY FASTSVC&lt;br /&gt;
  NAME FASTSVC(R)&lt;br /&gt;
  INCLUDE LIB(FCRI27)&lt;br /&gt;
  ENTRY FASTRLD&lt;br /&gt;
  NAME IGCLM244(R)&lt;br /&gt;
  INCLUDE LIB(FCRR27)&lt;br /&gt;
  ENTRY FASTREP&lt;br /&gt;
  NAME FASTREP(R)&lt;br /&gt;
  INCLUDE LIB(FCRS27)&lt;br /&gt;
  ENTRY SNAPFAST&lt;br /&gt;
  NAME SNAPFAST(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the customization job is currently &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; release specific.&lt;br /&gt;
The following job is a sample customization job for &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; V2.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //FASTCUST JOB  ,&#039;Fast/CRAM&#039;,CLASS=A,MSGCLASS=A&lt;br /&gt;
 //*&lt;br /&gt;
 //*        Customize FASTCRAM  Version 2.7&lt;br /&gt;
 //*&lt;br /&gt;
 //*        Install  FASTCRAM in SYS1.LPALIB,&lt;br /&gt;
 //*        as a Type 3 or type 4 SVC, using an SVC&lt;br /&gt;
 //*        number of 250 and a subsystem name of SIRI.&lt;br /&gt;
 //*&lt;br /&gt;
 //ZAPS     EXEC PGM=SIRZAP,PARM=NOVER&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //SYSLIB   DD   DISP=SHR,DSN=SIRIUS.LOAD&lt;br /&gt;
 //SYSIN    DD   *&lt;br /&gt;
 * *********************************************************************&lt;br /&gt;
 *   ZAP THE SVC NUMBER INTO FASTRLD.                                  *&lt;br /&gt;
 * *********************************************************************&lt;br /&gt;
  NAME FASTRLD  FASTRLD&lt;br /&gt;
  VER  0184 0A0D&lt;br /&gt;
  REP  0184 0AFA      * NEW SVC=250&lt;br /&gt;
 * *********************************************************************&lt;br /&gt;
 *   ZAP THE SUBSYSTEM NAME AND SVC NUMBER INTO FASTSVC.               *&lt;br /&gt;
 * *********************************************************************&lt;br /&gt;
  NAME FASTSVC  FASTSVC&lt;br /&gt;
  VER  1678 00007FFF&lt;br /&gt;
  VER  167C C6C1E2E3  * CURRENT SUBSYSTEM=FAST&lt;br /&gt;
  REP  167C E2C9D9C9  * NEW SUBSYSTEM=SIRI&lt;br /&gt;
  VER  1688 0A0D&lt;br /&gt;
  REP  1688 0AFA      * NEW SVC=250&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No matter which subsystem name you choose, this subsystem name must be defined in IEFSSNxx in SYS1.PARMLIB.&lt;br /&gt;
It is strongly recommended that subsystem name &amp;quot;M204&amp;quot; not be used because that subsystem name is used for &amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&#039;s&amp;lt;/nobr&amp;gt; standard CRAM implementations.&lt;br /&gt;
The subsystem can also be defined dynamically with the SETSSI command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 SETSSI ADD,SUBNAME=FAST&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are downloading a release for which no sample customization job is listed here, or if you need more help with the installation, contact Rocket M204 support at +1.800.755.4222, or e-mail us at &amp;lt;a href=&amp;quot;mailto:m204support@rocketsoftware.com&amp;quot;&amp;gt;m204support@rocketsoftware.com&amp;lt;/a&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Where can more documentation be found?===&lt;br /&gt;
The primary source of documentation for Rocket M204 products is this wiki.&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_installing_Rocket_M204_products&amp;diff=71697</id>
		<title>Downloading and installing Rocket M204 products</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_installing_Rocket_M204_products&amp;diff=71697"/>
		<updated>2014-09-04T21:15:48Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* How should the Sirius Mods object file be linked under z/OS? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How can the above object files be downloaded?==&lt;br /&gt;
The object files can be downloaded by clicking on the link for the object file with the &amp;lt;b&amp;gt;right&amp;lt;/b&amp;gt; mouse button.&lt;br /&gt;
This will (on most browsers) bring up a pop-up menu that will have an option &amp;lt;i&amp;gt;Save Link As&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Save target As&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Save As&amp;lt;/i&amp;gt;, or something similar.&lt;br /&gt;
Select this option, and then set the appropriate target directory (and name if desired) for the file.&lt;br /&gt;
The object file will then be downloaded to the indicated location.&lt;br /&gt;
&lt;br /&gt;
Alternatively, click the &amp;lt;b&amp;gt;left&amp;lt;/b&amp;gt; mouse button on the link for an object file. This will result in the browser prompting the user whether the file should be saved, where it should be saved, and under what name.&lt;br /&gt;
Some browsers prompt for this information before the object file is actually downloaded; others prompt for it after.&lt;br /&gt;
Obviously, those that prompt after will present a considerable delay before the prompt.&lt;br /&gt;
Opera actually prompts as soon as it receives the file header but continues downloading while waiting for the user response.&lt;br /&gt;
&lt;br /&gt;
Object files are customized for a particular site, simplifying the installation process.&lt;br /&gt;
Because of this, there may be a noticeable delay in processing a download request.&lt;br /&gt;
In addition, the downloaded object files can range in size from hundreds of kilobytes to perhaps 10 megabytes.&lt;br /&gt;
&lt;br /&gt;
If an e-mail transfer is selected, the object deck will be e-mailed to the indicated e-mail address as an attachment.&lt;br /&gt;
The attachment should be saved to a local file and then uploaded to the mainframe exactly as if it had been downloaded directly.&lt;br /&gt;
Receiving the object deck via e-mail might take a little longer than downloading it directly, but it allows you to schedule a set of object to be sent to a different person in your organization.&lt;br /&gt;
&lt;br /&gt;
==How can the object files be uploaded to the mainframe?==&lt;br /&gt;
Once the object files are downloaded to the workstation they must be uploaded to the z/OS, VM, or VSE system on the IBM mainframe.&lt;br /&gt;
Any file transfer mechanism can be used including FTP and IND$FILE, but regardless of the transfer mechanism some rules must be observed.&lt;br /&gt;
&lt;br /&gt;
First, the object files contain binary data and hence &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be transferred as binary.&lt;br /&gt;
That is, no translation from ASCII to EBCDIC must occur as a result of the upload.&lt;br /&gt;
&lt;br /&gt;
Second, the format and LRECL of the file must be specified during the upload.&lt;br /&gt;
This is because most workstation systems (including Windows, Mac OS and Unix) do not have a concept of file formats and LRECL&#039;s.&lt;br /&gt;
This information would be lost if it were not specified during the upload.&lt;br /&gt;
The format of the uploaded file must be &amp;lt;i&amp;gt;F&amp;lt;/i&amp;gt; under VM systems and &amp;lt;i&amp;gt;FB&amp;lt;/i&amp;gt; under z/OS and VSE systems. The LRECL must be&lt;br /&gt;
80 on all systems and under z/OS and VSE the blocksize can be any multiple of 80 though 3120 is a common blocksize for object libraries.&lt;br /&gt;
&lt;br /&gt;
When using FTP, the characteristics (RECFM, LRECL, and BLOCKSIZE) of the uploaded file can be set with the &amp;lt;i&amp;gt;SITE&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;LOCSITE&amp;lt;/i&amp;gt; FTP commands.&lt;br /&gt;
The SITE command should be used if the FTP client is on the workstation and the server is on the mainframe.&lt;br /&gt;
In this case the SITE command might have to be sent as a &amp;quot;quote&amp;quot; to the mainframe.&lt;br /&gt;
How this is done depends on your workstation&#039;s FTP client.&lt;br /&gt;
The LOCSITE command should be used if the FTP client is on the mainframe and the server is on the workstation.&lt;br /&gt;
&lt;br /&gt;
===Model 204 object library===&lt;br /&gt;
The Model 204 installation process entails creating a library (in z/OS, a Partitioned Data Set, or PDS), which is then used in subsequent steps to link the various Model 204 load modules.&lt;br /&gt;
The file which you have uploaded to the mainframe, typically as a sequential dataset (DSORG=PS in z/OS), is used as the &amp;lt;code&amp;gt;INP=&amp;lt;/code&amp;gt; parameter to the following JCL PROC for a z/OS installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//NEWOBJLB PROC TRK=&#039;320,50&#039;,BLK=6400&lt;br /&gt;
//*&lt;br /&gt;
//* Usage: //BLD EXEC NEWOBJLB,LIB=objectLibDsn,INP=inputStreamDsn&lt;br /&gt;
//*&lt;br /&gt;
//* Important note: The output object library (LIB=) is first deleted&lt;br /&gt;
//*&lt;br /&gt;
//* This proc creates an object library, using the input stream which&lt;br /&gt;
//* was downloaded from the Rocket Model 204 web site.  After the&lt;br /&gt;
//* download, it must be un-zipped, and then FTP&#039;d (BINARY, 80 byte&lt;br /&gt;
//* fixed length records) to a z/OS dataset.&lt;br /&gt;
//*&lt;br /&gt;
//* The FTP&#039;d z/OS dataset is specified by the INP= parameter&lt;br /&gt;
//*&lt;br /&gt;
//* Note: If you thought you might want to, it&#039;s best not to try&lt;br /&gt;
//*       to over-ride SYSIN with a DD *, because the input stream&lt;br /&gt;
//*       contains JCL.&lt;br /&gt;
//*&lt;br /&gt;
//DEL      EXEC PGM=IEFBR14&lt;br /&gt;
//DEL      DD DSN=&amp;amp;LIB,DISP=(MOD,DELETE),UNIT=SYSDA,SPACE=(TRK,1)&lt;br /&gt;
//*&lt;br /&gt;
//BLDOBJLB EXEC PGM=IEBUPDTE,PARM=NEW&lt;br /&gt;
//SYSPRINT DD SYSOUT=A   &amp;lt;&amp;lt; Note: this output will contain on the order&lt;br /&gt;
//*                         of 160K lines or more&lt;br /&gt;
//SYSUT2   DD DISP=(NEW,CATLG),SPACE=(TRK,(&amp;amp;TRK,60),RLSE),&lt;br /&gt;
//            UNIT=SYSDA,DCB=(DSORG=PO,LRECL=80,RECFM=FB,BLKSIZE=&amp;amp;BLK),&lt;br /&gt;
//            DSN=&amp;amp;LIB&lt;br /&gt;
//SYSIN    DD DISP=SHR,DSN=&amp;amp;INP&lt;br /&gt;
//*&lt;br /&gt;
//         PEND&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example, if you downloaded the input stream and then FTP&#039;d it into &amp;lt;code&amp;gt;M204.V75.DOWNLOAD.OBJ&amp;lt;/code&amp;gt;,&lt;br /&gt;
and the object library dataset is to be &amp;lt;code&amp;gt;M204.V75.OBJLIB&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//BLDOBJLB EXEC NEWOBJLB,&lt;br /&gt;
//            INP=M204.V75.DOWNLOAD,&lt;br /&gt;
//            LIB=M204.V75.OBJLIB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The space allocation and block size are PROC parameters, but their defaults will work.&lt;br /&gt;
You can, of course, use any dataset name you want for the object library after &amp;lt;code&amp;gt;INP=&amp;lt;/code&amp;gt; &amp;amp;mdash; note that in our documentation, we refer to the object library as &amp;lt;b&amp;gt;ROKOB204&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Other object files===&lt;br /&gt;
For products other than Model 204, the downloaded file is a single object file.&lt;br /&gt;
Under z/OS, you can upload an object file either as a member of a Partitioned Data Set (PDS) or as an individual sequential file.&lt;br /&gt;
A PDS is recommended as a good way to collect all your Rocket M204 object file uploads in one dataset, using the member name to show the product and version.&lt;br /&gt;
&lt;br /&gt;
==Should maintenance be applied to the uploaded object files?==&lt;br /&gt;
When Rocket M204 products are downloaded, they will contain all of the current maintenance as well as all applicable authorization keys.&lt;br /&gt;
Thus no additional additional installation steps steps are required to install maintenance or authorization keys.&lt;br /&gt;
Subsequent fixes can be applied by downloading ZAPs and applying them, or by downloading a replacement object file and re-linking the appropriate load modules.&lt;br /&gt;
&lt;br /&gt;
==How should the Model 204 load modules be linked under z/OS?==&lt;br /&gt;
The Model 204 object library you created contains object files, JCL, and link-edit control statements so that you can link the Model 204 load modules.&lt;br /&gt;
(This library, of course, has the DSNAME you chose &amp;amp;mdash; but in our documentation, we refer to the object library as &amp;lt;b&amp;gt;ROKOB204&amp;lt;/b&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
One of the members of ROKOB204 is a text file named README, which includes a list of the Model 204 load modules, and, individual instructions for linking them.&lt;br /&gt;
&lt;br /&gt;
For example, to link the ONLINE load module, there is a member named JZLONLN.&lt;br /&gt;
This basic JCL has simple instructions for using it.&lt;br /&gt;
One of the comments in the JCL is a link which you may follow for more [[M204_install#zOS_link_onl|detailed instructions]].&lt;br /&gt;
&lt;br /&gt;
==What are the Sirius Mods?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; is a collection of functions and enhancements to the core &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module.&lt;br /&gt;
These enhancements are either products in and of themselves, or they are prerequisites for products which are written in User Language.&lt;br /&gt;
A site is authorized to download all of the &amp;lt;i&amp;gt;Sirus&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; if it is licensed for any of the products that require these enhancements.&lt;br /&gt;
Your authorization key will then enable the appropriate set of products.&lt;br /&gt;
&lt;br /&gt;
Products that require the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; are:&lt;br /&gt;
&lt;br /&gt;
* Fast/Backup&lt;br /&gt;
* Fast/Reload&lt;br /&gt;
* Fast/Unload User Language Interface&lt;br /&gt;
* Janus Network Security&lt;br /&gt;
* Janus Open Server&lt;br /&gt;
* Janus Open Client&lt;br /&gt;
* Janus SOAP&lt;br /&gt;
* Janus Specialty Data Store&lt;br /&gt;
* Janus TCP/IP Base&lt;br /&gt;
* Janus Web Server&lt;br /&gt;
* Japanese Functions&lt;br /&gt;
* SirDBA&lt;br /&gt;
* SirFact&lt;br /&gt;
* SirFile&lt;br /&gt;
* Sirius Performance Enhancements&lt;br /&gt;
* Sirius Performance Enhancements V2&lt;br /&gt;
* SirLib&lt;br /&gt;
* SirMon&lt;br /&gt;
* SirPro&lt;br /&gt;
* SirSafe&lt;br /&gt;
* SirScan&lt;br /&gt;
* SirTune&lt;br /&gt;
* SirXref&lt;br /&gt;
* Sir2000 Field Migration Facility&lt;br /&gt;
* Sir2000 User Language Tools&lt;br /&gt;
* Trusted Login Facility&lt;br /&gt;
&lt;br /&gt;
You can determine which of these products your site is authorized for by examining &amp;lt;a href=&amp;quot;https://m204.rocketsoftware.com/dlist&amp;quot;&amp;gt;your customer profile&amp;lt;/a&amp;gt;. After the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; are installed, you can verify product authorizations by issuing the &amp;lt;b&amp;gt;SIRIUS&amp;lt;/b&amp;gt; command in an Online running a load module that includes the &amp;lt;i&amp;gt;Sirius&amp;amp;npsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==How should the Sirius Mods object file be linked under z/OS?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object modules from Rocket.&lt;br /&gt;
Under z/OS, an object deck can be re-linked with a load module.&lt;br /&gt;
In theory, this load module can already contain the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
While this is generally OK if linking over the same release of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, it is almost certainly a bad idea otherwise.&lt;br /&gt;
As such, it is a good idea to keep a load module without the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; available for rebuilding a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
The non-&amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; load module should have all Rocket ZAPs applied, or these ZAPs should be applied after the re-link with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
&lt;br /&gt;
Should Rocket provide replacement object files as part of their maintenance, these object files must &amp;lt;b&amp;gt;never&amp;lt;/b&amp;gt; be linked ahead of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
This also means that replacement Rocket object files cannot simply be linked ahead of a load module containing the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; without also linking the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file ahead of the replacement object files from Rocket.&lt;br /&gt;
&lt;br /&gt;
Both of the next two examples assume you uploaded the object file into library SIRIUS.LIB with a member name of SIR80074.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
The following JCL is an example of how you would link the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file with a standard &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module called ONLINE in&lt;br /&gt;
library M204.V7R4.LOADLIB.  The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK    EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;LIST,LET,MAP,SIZE=(2048K,512K),RMODE=ANY,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD SYSOUT=*&lt;br /&gt;
 //M204LOAD DD DSN=M204.V7R4.LOADLIB,DISP=SHR&lt;br /&gt;
 //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(SIR80074)&lt;br /&gt;
  INCLUDE M204LOAD(ONLINE)&lt;br /&gt;
  ENTRY MAINTASK&lt;br /&gt;
  NAME ONLINE(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following JCL is an example of how you would link the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file with a standard &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module called ONLINE in&lt;br /&gt;
library M204.V7R4.LOADLIB, along with replacement object decks for EVNU and SBFM, which were provided with Rocket maintenance and are in library M204.V7R4.FIXOBJ.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 //JOB      whatever&lt;br /&gt;
 //LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
 //            PARM=&#039;LIST,LET,MAP,SIZE=(2048K,512K),RMODE=ANY,AC=1&#039;&lt;br /&gt;
 //SYSPRINT DD   SYSOUT=*&lt;br /&gt;
 //M204LOAD DD   DSN=M204.V7R4.LOADLIB,DISP=SHR&lt;br /&gt;
 //M204FIX  DD   DSN=M204.V7R4.FIXOBJ,DISP=SHR&lt;br /&gt;
 //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
 //LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
 //SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
 //SYSLIN   DD   *&lt;br /&gt;
  INCLUDE LIB(SIR80074)&lt;br /&gt;
  INCLUDE M204FIX(EVFM,SBFM)&lt;br /&gt;
  INCLUDE M204LOAD(ONLINE)&lt;br /&gt;
  ENTRY MAINTASK&lt;br /&gt;
  NAME ONLINE(R)&lt;br /&gt;
 /*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How should the Sirius Mods object file be linked under CMS?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object modules from Rocket.&lt;br /&gt;
This means, first, that the object file&#039;s filetype must conform to CMS conventions for object files.&lt;br /&gt;
The simplest way to ensure this is to use a filetype of TEXT for the object file under CMS.&lt;br /&gt;
&lt;br /&gt;
To link with the Rocket-supplied M204GEN utility, the &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load list must be modified to include the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
This can be done by simply inserting a line with an &amp;quot;&amp;amp;1 &amp;amp;2&amp;quot; followed by the filename of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file before the name of any other object file in the load list.&lt;br /&gt;
The following is an example of the first few lines of an updated load list, where the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file is called &amp;quot;SIR80074 TEXT&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
* LOAD LIST FOR M204ONLN MODULE&lt;br /&gt;
* (&amp;amp;START IN MLNK)&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 SIR80074&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 MLNK&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 ACF2CMS&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 ANXV&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 APSY&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 APSZ&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 ARTH&lt;br /&gt;
 . . . . .&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; dynamically adds hooks to the load module, Sirius recommends against using shared segments with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
If this is considered essential, contact Sirius Software technical support for help in building a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; and shared segments.&lt;br /&gt;
&lt;br /&gt;
An exec called LOADCONV is also available to automatically convert the loadlist, it can be &amp;lt;a href=&amp;quot;download/loadconv.rex&amp;quot;&amp;gt;downloaded here&amp;lt;/a&amp;gt;.&lt;br /&gt;
Note that LOADCONV requires that the filename of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file be &amp;quot;SIROBJ&amp;quot; followed by the &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; release to which it&lt;br /&gt;
applies, as in &amp;quot;SIROBJ74&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the M204GEN exec is being used, M204CCA PARMS needs to be edited.&lt;br /&gt;
First, in the M204GEN/DEFAULTS section, the ldrtbls value might need to be increased:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
M204GEN:&lt;br /&gt;
DEFAULTS:&lt;br /&gt;
  ldrtbls = 50&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the load module start needs to include the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; so in the ONLINE/ONLN section the line&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
   start.mod   = MLNK$&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
needs to be changed to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
   start.mod   = SLNK$&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to be able to generate a load module both with and without the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, you could copy the whole ONLINE section in M204CCA PARMS and call it something else, for example, SIRIUS, and change start.mod in that section.&lt;br /&gt;
Then, when you want to generate a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; in it you&#039;d simply type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
M204GEN SIRIUS&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Sirius Mods object file be linked under VSE?===&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object files from Rocket. The example below shows an excerpt of the standard Rocket link JCL for an ONLINE.&lt;br /&gt;
To linkedit the online with the Sirius Mods, you must insert the include statement for the object module immediately after the PHASE statement.&lt;br /&gt;
In this example, the Sirius Mods object is named SIR80074.&lt;br /&gt;
If the Sirius Mods object module is in a separate library, the JCL should be modified to include that library in the SEARCH= paramter of the LIBDEF OBJ statement.&lt;br /&gt;
If you include any other object modules, they also must appear after the Sirius Mods object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
 // LIBDEF PHASE,CATALOG=M204LIB.V7R4&lt;br /&gt;
 // LIBDEF OBJ,SEARCH=M204LIB.V7R4&lt;br /&gt;
 // OPTION CATAL&lt;br /&gt;
  PHASE ONLINE,* REPLACE=YES&lt;br /&gt;
  INCLUDE SIR80074&lt;br /&gt;
  INCLUDE LKONLN&lt;br /&gt;
  INCLUDE&lt;br /&gt;
  ENTRY MAINTASK&lt;br /&gt;
 /*&lt;br /&gt;
 // EXEC LNKEDT&lt;br /&gt;
 /*&lt;br /&gt;
 /&amp;amp;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Fast/Unload object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;Fast/Unload&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD. &lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of FUN400.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(FUN400)&lt;br /&gt;
 ENTRY FUNLOAD&lt;br /&gt;
 NAME FUNLOAD(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;Fast/Unload&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a FUNLOAD load module.&lt;br /&gt;
In this example, it is assumed that the Fast/Unload object file has a filename of FUN400.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD FUN400 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET FUNLOAD RLDSAVE&lt;br /&gt;
GENMOD FUNLOAD (FROM FUNL&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Why were there three object files for SirTune?===&lt;br /&gt;
Beginning with Version 7.0 of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, all &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; functionality has been merged into the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; and so the standalone &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; load modules are obsolete.&lt;br /&gt;
&lt;br /&gt;
Prior to Version 7.0 of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, however, &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; consisted of three components.&lt;br /&gt;
The first component was called the &amp;lt;i&amp;gt;SirTune Data Collector&amp;lt;/i&amp;gt; or simply &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt;.&lt;br /&gt;
This load module runs in the same address space as the &amp;lt;i&amp;gt;&amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/nobr&amp;gt;&amp;lt;/i&amp;gt; load module and collects data to be analyzed later.&lt;br /&gt;
&lt;br /&gt;
The second component is called the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt;.&lt;br /&gt;
This load module is run independently of &amp;lt;i&amp;gt;&amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/nobr&amp;gt;&amp;lt;/i&amp;gt; and summarizes the data collected by &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; into a report.&lt;br /&gt;
&lt;br /&gt;
The third component is used only under CMS and is called the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt;.&lt;br /&gt;
It communicates with &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; via IUCV and asynchronously logs &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; data on a separate virtual machine.&lt;br /&gt;
It is used to get around some of the difficulties of doing asynchronous I/O under CMS.&lt;br /&gt;
&lt;br /&gt;
In general, it is a good idea to be using the same versions of all three &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; components though Sirius makes every effort to allow a newer &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; to produce reports from sample datasets created by older releases of &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of TUNE104.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(TUNE104)&lt;br /&gt;
 ENTRY COLLECT&lt;br /&gt;
 NAME SIRTUNE(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNE load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file has a filename of TUNE104.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD TUNE104 (FULLMAP NODUP ORIGIN 400000 AMODE 31 RESET COLLECT&lt;br /&gt;
GENMOD SIRTUNE (FROM COLL&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune Report Generator object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of TUNR104.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(TUNR104)&lt;br /&gt;
 ENTRY ANALYZE&lt;br /&gt;
 NAME SIRTUNER(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune Report Renerator&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNER load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; object file has a filename of TUNR103.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD TUNR103 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET ANALYZE&lt;br /&gt;
GENMOD SIRTUNER (FROM ANAL&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune Data Logger object file be linked?===&lt;br /&gt;
The &amp;lt;i&amp;gt;SirTune data Logger&amp;lt;/i&amp;gt; is not used under z/OS.&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNED load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt; object file has a filename of TUND104.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD TUND104 (FULLMAP NODUP ORIGIN 30000 AMODE 24 RESET OUTCMS&lt;br /&gt;
GENMOD SIRTUNED (FROM OUTC&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the RockZap object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;RockZap&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of ZAP106.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=0&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(ZAP106)&lt;br /&gt;
 ENTRY SIRZAP&lt;br /&gt;
 NAME SIRZAP(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the SirZap object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRZAP load module.&lt;br /&gt;
In this example, it is assumed that the SirZap object file has a filename of ZAP106.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD ZAP106 (FULLMAP NODUP ORIGIN 20000 AMODE 31 RESET SIRZAP&lt;br /&gt;
GENMOD SIRZAP (FROM APPL&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirAud object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirAud&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of AUD102.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=0&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(AUD102)&lt;br /&gt;
 ENTRY JMAIN&lt;br /&gt;
 NAME SIRAUD(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the SirAud object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRAUD load module.&lt;br /&gt;
In this example, it is assumed that the SirAud object file has a filename of AUD102.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD AUD102 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET JMAIN&lt;br /&gt;
GENMOD SIRAUD (FROM JCONF&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Fast/Cram object files be installed?===&lt;br /&gt;
Most of the documentation for &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; installation can be found in the &amp;lt;a href=&amp;quot;https://m204.rocketsoftware.com/maint/download/CRAMR.PDF&amp;quot;&amp;gt;&lt;br /&gt;
Fast/Cram Installation Guide&amp;lt;/a&amp;gt;.&lt;br /&gt;
That manual is currently not updated to reflect web downloads, so a few things must be kept in mind.&lt;br /&gt;
The first is that the first four characters of the download file indicate the module being downloaded, and they correspond to a specific member in SIRIUS.LOAD,&lt;br /&gt;
as described in the &amp;lt;i&amp;gt;Fast/Cram Installation Guide&amp;lt;/i&amp;gt;.&lt;br /&gt;
The correspondences between the first four characters in the downloaded object files and the members in SIRIUS.LOAD are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellpadding=6&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRM&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FASTSVC&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRI&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;IGCLM244&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRR&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FASTREP&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SNAPFAST&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 example JCL would create SIRIUS.LOAD load modules as described in the &amp;lt;i&amp;gt;Fast/Cram Installation Guide&amp;lt;/i&amp;gt;.&lt;br /&gt;
This example assumes you uploaded the object files into library SIRIUS.LIB with member names of FCR*27.&lt;br /&gt;
If you uploaded to non-library datasets (that is, sequential datasets, not Partitioned Data Sets), then you will need a separate DD statement for each object file as well as appropriate INCLUDE statements for them, omitting the parentheses and member names.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; The Fast/CRAM modules &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be linked using the RENT option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(FCRM27)&lt;br /&gt;
 ENTRY FASTSVC&lt;br /&gt;
 NAME FASTSVC(R)&lt;br /&gt;
 INCLUDE LIB(FCRI27)&lt;br /&gt;
 ENTRY FASTRLD&lt;br /&gt;
 NAME IGCLM244(R)&lt;br /&gt;
 INCLUDE LIB(FCRR27)&lt;br /&gt;
 ENTRY FASTREP&lt;br /&gt;
 NAME FASTREP(R)&lt;br /&gt;
 INCLUDE LIB(FCRS27)&lt;br /&gt;
 ENTRY SNAPFAST&lt;br /&gt;
 NAME SNAPFAST(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the customization job is currently &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; release specific.&lt;br /&gt;
The following job is a sample customization job for &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; V2.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//FASTCUST JOB  ,&#039;Fast/CRAM&#039;,CLASS=A,MSGCLASS=A&lt;br /&gt;
//*&lt;br /&gt;
//*        Customize FASTCRAM  Version 2.7&lt;br /&gt;
//*&lt;br /&gt;
//*        Install  FASTCRAM in SYS1.LPALIB,&lt;br /&gt;
//*        as a Type 3 or type 4 SVC, using an SVC&lt;br /&gt;
//*        number of 250 and a subsystem name of SIRI.&lt;br /&gt;
//*&lt;br /&gt;
//ZAPS     EXEC PGM=SIRZAP,PARM=NOVER&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSLIB   DD   DISP=SHR,DSN=SIRIUS.LOAD&lt;br /&gt;
//SYSIN    DD   *&lt;br /&gt;
* *********************************************************************&lt;br /&gt;
*   ZAP THE SVC NUMBER INTO FASTRLD.                                  *&lt;br /&gt;
* *********************************************************************&lt;br /&gt;
 NAME FASTRLD  FASTRLD&lt;br /&gt;
 VER  0184 0A0D&lt;br /&gt;
 REP  0184 0AFA      * NEW SVC=250&lt;br /&gt;
* *********************************************************************&lt;br /&gt;
*   ZAP THE SUBSYSTEM NAME AND SVC NUMBER INTO FASTSVC.               *&lt;br /&gt;
* *********************************************************************&lt;br /&gt;
 NAME FASTSVC  FASTSVC&lt;br /&gt;
 VER  1678 00007FFF&lt;br /&gt;
 VER  167C C6C1E2E3  * CURRENT SUBSYSTEM=FAST&lt;br /&gt;
 REP  167C E2C9D9C9  * NEW SUBSYSTEM=SIRI&lt;br /&gt;
 VER  1688 0A0D&lt;br /&gt;
 REP  1688 0AFA      * NEW SVC=250&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No matter which subsystem name you choose, this subsystem name must be defined in IEFSSNxx in SYS1.PARMLIB.&lt;br /&gt;
It is strongly recommended that subsystem name &amp;quot;M204&amp;quot; not be used because that subsystem name is used for &amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&#039;s&amp;lt;/nobr&amp;gt; standard CRAM implementations.&lt;br /&gt;
The subsystem can also be defined dynamically with the SETSSI command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
SETSSI ADD,SUBNAME=FAST&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are downloading a release for which no sample customization job is listed here, or if you need more help with the installation, contact Rocket M204 support at +1.800.755.4222, or e-mail us at &amp;lt;a href=&amp;quot;mailto:m204support@rocketsoftware.com&amp;quot;&amp;gt;m204support@rocketsoftware.com&amp;lt;/a&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Where can more documentation be found?===&lt;br /&gt;
The primary source of documentation for Rocket M204 products is this wiki.&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_installing_Rocket_M204_products&amp;diff=71696</id>
		<title>Downloading and installing Rocket M204 products</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_installing_Rocket_M204_products&amp;diff=71696"/>
		<updated>2014-09-04T21:13:18Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* How should the Sirius Mods object file be linked under z/OS? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How can the above object files be downloaded?==&lt;br /&gt;
The object files can be downloaded by clicking on the link for the object file with the &amp;lt;b&amp;gt;right&amp;lt;/b&amp;gt; mouse button.&lt;br /&gt;
This will (on most browsers) bring up a pop-up menu that will have an option &amp;lt;i&amp;gt;Save Link As&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Save target As&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Save As&amp;lt;/i&amp;gt;, or something similar.&lt;br /&gt;
Select this option, and then set the appropriate target directory (and name if desired) for the file.&lt;br /&gt;
The object file will then be downloaded to the indicated location.&lt;br /&gt;
&lt;br /&gt;
Alternatively, click the &amp;lt;b&amp;gt;left&amp;lt;/b&amp;gt; mouse button on the link for an object file. This will result in the browser prompting the user whether the file should be saved, where it should be saved, and under what name.&lt;br /&gt;
Some browsers prompt for this information before the object file is actually downloaded; others prompt for it after.&lt;br /&gt;
Obviously, those that prompt after will present a considerable delay before the prompt.&lt;br /&gt;
Opera actually prompts as soon as it receives the file header but continues downloading while waiting for the user response.&lt;br /&gt;
&lt;br /&gt;
Object files are customized for a particular site, simplifying the installation process.&lt;br /&gt;
Because of this, there may be a noticeable delay in processing a download request.&lt;br /&gt;
In addition, the downloaded object files can range in size from hundreds of kilobytes to perhaps 10 megabytes.&lt;br /&gt;
&lt;br /&gt;
If an e-mail transfer is selected, the object deck will be e-mailed to the indicated e-mail address as an attachment.&lt;br /&gt;
The attachment should be saved to a local file and then uploaded to the mainframe exactly as if it had been downloaded directly.&lt;br /&gt;
Receiving the object deck via e-mail might take a little longer than downloading it directly, but it allows you to schedule a set of object to be sent to a different person in your organization.&lt;br /&gt;
&lt;br /&gt;
==How can the object files be uploaded to the mainframe?==&lt;br /&gt;
Once the object files are downloaded to the workstation they must be uploaded to the z/OS, VM, or VSE system on the IBM mainframe.&lt;br /&gt;
Any file transfer mechanism can be used including FTP and IND$FILE, but regardless of the transfer mechanism some rules must be observed.&lt;br /&gt;
&lt;br /&gt;
First, the object files contain binary data and hence &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be transferred as binary.&lt;br /&gt;
That is, no translation from ASCII to EBCDIC must occur as a result of the upload.&lt;br /&gt;
&lt;br /&gt;
Second, the format and LRECL of the file must be specified during the upload.&lt;br /&gt;
This is because most workstation systems (including Windows, Mac OS and Unix) do not have a concept of file formats and LRECL&#039;s.&lt;br /&gt;
This information would be lost if it were not specified during the upload.&lt;br /&gt;
The format of the uploaded file must be &amp;lt;i&amp;gt;F&amp;lt;/i&amp;gt; under VM systems and &amp;lt;i&amp;gt;FB&amp;lt;/i&amp;gt; under z/OS and VSE systems. The LRECL must be&lt;br /&gt;
80 on all systems and under z/OS and VSE the blocksize can be any multiple of 80 though 3120 is a common blocksize for object libraries.&lt;br /&gt;
&lt;br /&gt;
When using FTP, the characteristics (RECFM, LRECL, and BLOCKSIZE) of the uploaded file can be set with the &amp;lt;i&amp;gt;SITE&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;LOCSITE&amp;lt;/i&amp;gt; FTP commands.&lt;br /&gt;
The SITE command should be used if the FTP client is on the workstation and the server is on the mainframe.&lt;br /&gt;
In this case the SITE command might have to be sent as a &amp;quot;quote&amp;quot; to the mainframe.&lt;br /&gt;
How this is done depends on your workstation&#039;s FTP client.&lt;br /&gt;
The LOCSITE command should be used if the FTP client is on the mainframe and the server is on the workstation.&lt;br /&gt;
&lt;br /&gt;
===Model 204 object library===&lt;br /&gt;
The Model 204 installation process entails creating a library (in z/OS, a Partitioned Data Set, or PDS), which is then used in subsequent steps to link the various Model 204 load modules.&lt;br /&gt;
The file which you have uploaded to the mainframe, typically as a sequential dataset (DSORG=PS in z/OS), is used as the &amp;lt;code&amp;gt;INP=&amp;lt;/code&amp;gt; parameter to the following JCL PROC for a z/OS installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//NEWOBJLB PROC TRK=&#039;320,50&#039;,BLK=6400&lt;br /&gt;
//*&lt;br /&gt;
//* Usage: //BLD EXEC NEWOBJLB,LIB=objectLibDsn,INP=inputStreamDsn&lt;br /&gt;
//*&lt;br /&gt;
//* Important note: The output object library (LIB=) is first deleted&lt;br /&gt;
//*&lt;br /&gt;
//* This proc creates an object library, using the input stream which&lt;br /&gt;
//* was downloaded from the Rocket Model 204 web site.  After the&lt;br /&gt;
//* download, it must be un-zipped, and then FTP&#039;d (BINARY, 80 byte&lt;br /&gt;
//* fixed length records) to a z/OS dataset.&lt;br /&gt;
//*&lt;br /&gt;
//* The FTP&#039;d z/OS dataset is specified by the INP= parameter&lt;br /&gt;
//*&lt;br /&gt;
//* Note: If you thought you might want to, it&#039;s best not to try&lt;br /&gt;
//*       to over-ride SYSIN with a DD *, because the input stream&lt;br /&gt;
//*       contains JCL.&lt;br /&gt;
//*&lt;br /&gt;
//DEL      EXEC PGM=IEFBR14&lt;br /&gt;
//DEL      DD DSN=&amp;amp;LIB,DISP=(MOD,DELETE),UNIT=SYSDA,SPACE=(TRK,1)&lt;br /&gt;
//*&lt;br /&gt;
//BLDOBJLB EXEC PGM=IEBUPDTE,PARM=NEW&lt;br /&gt;
//SYSPRINT DD SYSOUT=A   &amp;lt;&amp;lt; Note: this output will contain on the order&lt;br /&gt;
//*                         of 160K lines or more&lt;br /&gt;
//SYSUT2   DD DISP=(NEW,CATLG),SPACE=(TRK,(&amp;amp;TRK,60),RLSE),&lt;br /&gt;
//            UNIT=SYSDA,DCB=(DSORG=PO,LRECL=80,RECFM=FB,BLKSIZE=&amp;amp;BLK),&lt;br /&gt;
//            DSN=&amp;amp;LIB&lt;br /&gt;
//SYSIN    DD DISP=SHR,DSN=&amp;amp;INP&lt;br /&gt;
//*&lt;br /&gt;
//         PEND&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example, if you downloaded the input stream and then FTP&#039;d it into &amp;lt;code&amp;gt;M204.V75.DOWNLOAD.OBJ&amp;lt;/code&amp;gt;,&lt;br /&gt;
and the object library dataset is to be &amp;lt;code&amp;gt;M204.V75.OBJLIB&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//BLDOBJLB EXEC NEWOBJLB,&lt;br /&gt;
//            INP=M204.V75.DOWNLOAD,&lt;br /&gt;
//            LIB=M204.V75.OBJLIB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The space allocation and block size are PROC parameters, but their defaults will work.&lt;br /&gt;
You can, of course, use any dataset name you want for the object library after &amp;lt;code&amp;gt;INP=&amp;lt;/code&amp;gt; &amp;amp;mdash; note that in our documentation, we refer to the object library as &amp;lt;b&amp;gt;ROKOB204&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Other object files===&lt;br /&gt;
For products other than Model 204, the downloaded file is a single object file.&lt;br /&gt;
Under z/OS, you can upload an object file either as a member of a Partitioned Data Set (PDS) or as an individual sequential file.&lt;br /&gt;
A PDS is recommended as a good way to collect all your Rocket M204 object file uploads in one dataset, using the member name to show the product and version.&lt;br /&gt;
&lt;br /&gt;
==Should maintenance be applied to the uploaded object files?==&lt;br /&gt;
When Rocket M204 products are downloaded, they will contain all of the current maintenance as well as all applicable authorization keys.&lt;br /&gt;
Thus no additional additional installation steps steps are required to install maintenance or authorization keys.&lt;br /&gt;
Subsequent fixes can be applied by downloading ZAPs and applying them, or by downloading a replacement object file and re-linking the appropriate load modules.&lt;br /&gt;
&lt;br /&gt;
==How should the Model 204 load modules be linked under z/OS?==&lt;br /&gt;
The Model 204 object library you created contains object files, JCL, and link-edit control statements so that you can link the Model 204 load modules.&lt;br /&gt;
(This library, of course, has the DSNAME you chose &amp;amp;mdash; but in our documentation, we refer to the object library as &amp;lt;b&amp;gt;ROKOB204&amp;lt;/b&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
One of the members of ROKOB204 is a text file named README, which includes a list of the Model 204 load modules, and, individual instructions for linking them.&lt;br /&gt;
&lt;br /&gt;
For example, to link the ONLINE load module, there is a member named JZLONLN.&lt;br /&gt;
This basic JCL has simple instructions for using it.&lt;br /&gt;
One of the comments in the JCL is a link which you may follow for more [[M204_install#zOS_link_onl|detailed instructions]].&lt;br /&gt;
&lt;br /&gt;
==What are the Sirius Mods?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; is a collection of functions and enhancements to the core &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module.&lt;br /&gt;
These enhancements are either products in and of themselves, or they are prerequisites for products which are written in User Language.&lt;br /&gt;
A site is authorized to download all of the &amp;lt;i&amp;gt;Sirus&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; if it is licensed for any of the products that require these enhancements.&lt;br /&gt;
Your authorization key will then enable the appropriate set of products.&lt;br /&gt;
&lt;br /&gt;
Products that require the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; are:&lt;br /&gt;
&lt;br /&gt;
* Fast/Backup&lt;br /&gt;
* Fast/Reload&lt;br /&gt;
* Fast/Unload User Language Interface&lt;br /&gt;
* Janus Network Security&lt;br /&gt;
* Janus Open Server&lt;br /&gt;
* Janus Open Client&lt;br /&gt;
* Janus SOAP&lt;br /&gt;
* Janus Specialty Data Store&lt;br /&gt;
* Janus TCP/IP Base&lt;br /&gt;
* Janus Web Server&lt;br /&gt;
* Japanese Functions&lt;br /&gt;
* SirDBA&lt;br /&gt;
* SirFact&lt;br /&gt;
* SirFile&lt;br /&gt;
* Sirius Performance Enhancements&lt;br /&gt;
* Sirius Performance Enhancements V2&lt;br /&gt;
* SirLib&lt;br /&gt;
* SirMon&lt;br /&gt;
* SirPro&lt;br /&gt;
* SirSafe&lt;br /&gt;
* SirScan&lt;br /&gt;
* SirTune&lt;br /&gt;
* SirXref&lt;br /&gt;
* Sir2000 Field Migration Facility&lt;br /&gt;
* Sir2000 User Language Tools&lt;br /&gt;
* Trusted Login Facility&lt;br /&gt;
&lt;br /&gt;
You can determine which of these products your site is authorized for by examining &amp;lt;a href=&amp;quot;https://m204.rocketsoftware.com/dlist&amp;quot;&amp;gt;your customer profile&amp;lt;/a&amp;gt;. After the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; are installed, you can verify product authorizations by issuing the &amp;lt;b&amp;gt;SIRIUS&amp;lt;/b&amp;gt; command in an Online running a load module that includes the &amp;lt;i&amp;gt;Sirius&amp;amp;npsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==How should the Sirius Mods object file be linked under z/OS?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object modules from Rocket.&lt;br /&gt;
Under z/OS, an object deck can be re-linked with a load module.&lt;br /&gt;
In theory, this load module can already contain the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
While this is generally OK if linking over the same release of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, it is almost certainly a bad idea otherwise.&lt;br /&gt;
As such, it is a good idea to keep a load module without the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; available for rebuilding a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
The non-&amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; load module should have all Rocket ZAPs applied, or these ZAPs should be applied after the re-link with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
&lt;br /&gt;
Should Rocket provide replacement object files as part of their maintenance, these object files must &amp;lt;b&amp;gt;never&amp;lt;/b&amp;gt; be linked ahead of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
This also means that replacement Rocket object files cannot simply be linked ahead of a load module containing the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; without also linking the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file ahead of the replacement object files from Rocket.&lt;br /&gt;
&lt;br /&gt;
Both of the next two examples assume you uploaded the object file into library SIRIUS.LIB with a member name of SIR80074.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
The following JCL is an example of how you would link the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file with a standard &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module called ONLINE in&lt;br /&gt;
library M204.V7R4.LOADLIB.  The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK    EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;LIST,LET,MAP,SIZE=(2048K,512K),RMODE=ANY,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD SYSOUT=*&lt;br /&gt;
//M204LOAD DD DSN=M204.V7R4.LOADLIB,DISP=SHR&lt;br /&gt;
//SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(SIR80074)&lt;br /&gt;
 INCLUDE M204LOAD(ONLINE)&lt;br /&gt;
 ENTRY MAINTASK&lt;br /&gt;
 NAME ONLINE(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following JCL is an example of how you would link the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file with a standard &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module called ONLINE in&lt;br /&gt;
library M204.V7R4.LOADLIB, along with replacement object decks for EVNU and SBFM, which were provided with Rocket maintenance and are in library M204.V7R4.FIXOBJ.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;LIST,LET,MAP,SIZE=(2048K,512K),RMODE=ANY,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//M204LOAD DD   DSN=M204.V7R4.LOADLIB,DISP=SHR&lt;br /&gt;
//M204FIX  DD   DSN=M204.V7R4.FIXOBJ,DISP=SHR&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(SIR80074)&lt;br /&gt;
 INCLUDE M204FIX(EVFM,SBFM)&lt;br /&gt;
 INCLUDE M204LOAD(ONLINE)&lt;br /&gt;
 ENTRY MAINTASK&lt;br /&gt;
 NAME ONLINE(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How should the Sirius Mods object file be linked under CMS?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object modules from Rocket.&lt;br /&gt;
This means, first, that the object file&#039;s filetype must conform to CMS conventions for object files.&lt;br /&gt;
The simplest way to ensure this is to use a filetype of TEXT for the object file under CMS.&lt;br /&gt;
&lt;br /&gt;
To link with the Rocket-supplied M204GEN utility, the &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load list must be modified to include the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
This can be done by simply inserting a line with an &amp;quot;&amp;amp;1 &amp;amp;2&amp;quot; followed by the filename of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file before the name of any other object file in the load list.&lt;br /&gt;
The following is an example of the first few lines of an updated load list, where the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file is called &amp;quot;SIR80074 TEXT&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
* LOAD LIST FOR M204ONLN MODULE&lt;br /&gt;
* (&amp;amp;START IN MLNK)&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 SIR80074&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 MLNK&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 ACF2CMS&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 ANXV&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 APSY&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 APSZ&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 ARTH&lt;br /&gt;
 . . . . .&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; dynamically adds hooks to the load module, Sirius recommends against using shared segments with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
If this is considered essential, contact Sirius Software technical support for help in building a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; and shared segments.&lt;br /&gt;
&lt;br /&gt;
An exec called LOADCONV is also available to automatically convert the loadlist, it can be &amp;lt;a href=&amp;quot;download/loadconv.rex&amp;quot;&amp;gt;downloaded here&amp;lt;/a&amp;gt;.&lt;br /&gt;
Note that LOADCONV requires that the filename of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file be &amp;quot;SIROBJ&amp;quot; followed by the &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; release to which it&lt;br /&gt;
applies, as in &amp;quot;SIROBJ74&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the M204GEN exec is being used, M204CCA PARMS needs to be edited.&lt;br /&gt;
First, in the M204GEN/DEFAULTS section, the ldrtbls value might need to be increased:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
M204GEN:&lt;br /&gt;
DEFAULTS:&lt;br /&gt;
  ldrtbls = 50&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the load module start needs to include the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; so in the ONLINE/ONLN section the line&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
   start.mod   = MLNK$&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
needs to be changed to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
   start.mod   = SLNK$&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to be able to generate a load module both with and without the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, you could copy the whole ONLINE section in M204CCA PARMS and call it something else, for example, SIRIUS, and change start.mod in that section.&lt;br /&gt;
Then, when you want to generate a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; in it you&#039;d simply type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
M204GEN SIRIUS&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Sirius Mods object file be linked under VSE?===&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object files from Rocket. The example below shows an excerpt of the standard Rocket link JCL for an ONLINE.&lt;br /&gt;
To linkedit the online with the Sirius Mods, you must insert the include statement for the object module immediately after the PHASE statement.&lt;br /&gt;
In this example, the Sirius Mods object is named SIR80074.&lt;br /&gt;
If the Sirius Mods object module is in a separate library, the JCL should be modified to include that library in the SEARCH= paramter of the LIBDEF OBJ statement.&lt;br /&gt;
If you include any other object modules, they also must appear after the Sirius Mods object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
 // LIBDEF PHASE,CATALOG=M204LIB.V7R4&lt;br /&gt;
 // LIBDEF OBJ,SEARCH=M204LIB.V7R4&lt;br /&gt;
 // OPTION CATAL&lt;br /&gt;
  PHASE ONLINE,* REPLACE=YES&lt;br /&gt;
  INCLUDE SIR80074&lt;br /&gt;
  INCLUDE LKONLN&lt;br /&gt;
  INCLUDE&lt;br /&gt;
  ENTRY MAINTASK&lt;br /&gt;
 /*&lt;br /&gt;
 // EXEC LNKEDT&lt;br /&gt;
 /*&lt;br /&gt;
 /&amp;amp;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Fast/Unload object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;Fast/Unload&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD. &lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of FUN400.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(FUN400)&lt;br /&gt;
 ENTRY FUNLOAD&lt;br /&gt;
 NAME FUNLOAD(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;Fast/Unload&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a FUNLOAD load module.&lt;br /&gt;
In this example, it is assumed that the Fast/Unload object file has a filename of FUN400.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD FUN400 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET FUNLOAD RLDSAVE&lt;br /&gt;
GENMOD FUNLOAD (FROM FUNL&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Why were there three object files for SirTune?===&lt;br /&gt;
Beginning with Version 7.0 of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, all &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; functionality has been merged into the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; and so the standalone &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; load modules are obsolete.&lt;br /&gt;
&lt;br /&gt;
Prior to Version 7.0 of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, however, &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; consisted of three components.&lt;br /&gt;
The first component was called the &amp;lt;i&amp;gt;SirTune Data Collector&amp;lt;/i&amp;gt; or simply &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt;.&lt;br /&gt;
This load module runs in the same address space as the &amp;lt;i&amp;gt;&amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/nobr&amp;gt;&amp;lt;/i&amp;gt; load module and collects data to be analyzed later.&lt;br /&gt;
&lt;br /&gt;
The second component is called the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt;.&lt;br /&gt;
This load module is run independently of &amp;lt;i&amp;gt;&amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/nobr&amp;gt;&amp;lt;/i&amp;gt; and summarizes the data collected by &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; into a report.&lt;br /&gt;
&lt;br /&gt;
The third component is used only under CMS and is called the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt;.&lt;br /&gt;
It communicates with &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; via IUCV and asynchronously logs &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; data on a separate virtual machine.&lt;br /&gt;
It is used to get around some of the difficulties of doing asynchronous I/O under CMS.&lt;br /&gt;
&lt;br /&gt;
In general, it is a good idea to be using the same versions of all three &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; components though Sirius makes every effort to allow a newer &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; to produce reports from sample datasets created by older releases of &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of TUNE104.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(TUNE104)&lt;br /&gt;
 ENTRY COLLECT&lt;br /&gt;
 NAME SIRTUNE(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNE load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file has a filename of TUNE104.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD TUNE104 (FULLMAP NODUP ORIGIN 400000 AMODE 31 RESET COLLECT&lt;br /&gt;
GENMOD SIRTUNE (FROM COLL&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune Report Generator object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of TUNR104.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(TUNR104)&lt;br /&gt;
 ENTRY ANALYZE&lt;br /&gt;
 NAME SIRTUNER(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune Report Renerator&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNER load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; object file has a filename of TUNR103.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD TUNR103 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET ANALYZE&lt;br /&gt;
GENMOD SIRTUNER (FROM ANAL&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune Data Logger object file be linked?===&lt;br /&gt;
The &amp;lt;i&amp;gt;SirTune data Logger&amp;lt;/i&amp;gt; is not used under z/OS.&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNED load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt; object file has a filename of TUND104.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD TUND104 (FULLMAP NODUP ORIGIN 30000 AMODE 24 RESET OUTCMS&lt;br /&gt;
GENMOD SIRTUNED (FROM OUTC&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the RockZap object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;RockZap&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of ZAP106.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=0&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(ZAP106)&lt;br /&gt;
 ENTRY SIRZAP&lt;br /&gt;
 NAME SIRZAP(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the SirZap object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRZAP load module.&lt;br /&gt;
In this example, it is assumed that the SirZap object file has a filename of ZAP106.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD ZAP106 (FULLMAP NODUP ORIGIN 20000 AMODE 31 RESET SIRZAP&lt;br /&gt;
GENMOD SIRZAP (FROM APPL&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirAud object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirAud&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of AUD102.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=0&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(AUD102)&lt;br /&gt;
 ENTRY JMAIN&lt;br /&gt;
 NAME SIRAUD(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the SirAud object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRAUD load module.&lt;br /&gt;
In this example, it is assumed that the SirAud object file has a filename of AUD102.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD AUD102 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET JMAIN&lt;br /&gt;
GENMOD SIRAUD (FROM JCONF&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Fast/Cram object files be installed?===&lt;br /&gt;
Most of the documentation for &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; installation can be found in the &amp;lt;a href=&amp;quot;https://m204.rocketsoftware.com/maint/download/CRAMR.PDF&amp;quot;&amp;gt;&lt;br /&gt;
Fast/Cram Installation Guide&amp;lt;/a&amp;gt;.&lt;br /&gt;
That manual is currently not updated to reflect web downloads, so a few things must be kept in mind.&lt;br /&gt;
The first is that the first four characters of the download file indicate the module being downloaded, and they correspond to a specific member in SIRIUS.LOAD,&lt;br /&gt;
as described in the &amp;lt;i&amp;gt;Fast/Cram Installation Guide&amp;lt;/i&amp;gt;.&lt;br /&gt;
The correspondences between the first four characters in the downloaded object files and the members in SIRIUS.LOAD are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellpadding=6&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRM&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FASTSVC&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRI&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;IGCLM244&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRR&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FASTREP&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SNAPFAST&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 example JCL would create SIRIUS.LOAD load modules as described in the &amp;lt;i&amp;gt;Fast/Cram Installation Guide&amp;lt;/i&amp;gt;.&lt;br /&gt;
This example assumes you uploaded the object files into library SIRIUS.LIB with member names of FCR*27.&lt;br /&gt;
If you uploaded to non-library datasets (that is, sequential datasets, not Partitioned Data Sets), then you will need a separate DD statement for each object file as well as appropriate INCLUDE statements for them, omitting the parentheses and member names.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; The Fast/CRAM modules &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be linked using the RENT option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(FCRM27)&lt;br /&gt;
 ENTRY FASTSVC&lt;br /&gt;
 NAME FASTSVC(R)&lt;br /&gt;
 INCLUDE LIB(FCRI27)&lt;br /&gt;
 ENTRY FASTRLD&lt;br /&gt;
 NAME IGCLM244(R)&lt;br /&gt;
 INCLUDE LIB(FCRR27)&lt;br /&gt;
 ENTRY FASTREP&lt;br /&gt;
 NAME FASTREP(R)&lt;br /&gt;
 INCLUDE LIB(FCRS27)&lt;br /&gt;
 ENTRY SNAPFAST&lt;br /&gt;
 NAME SNAPFAST(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the customization job is currently &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; release specific.&lt;br /&gt;
The following job is a sample customization job for &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; V2.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//FASTCUST JOB  ,&#039;Fast/CRAM&#039;,CLASS=A,MSGCLASS=A&lt;br /&gt;
//*&lt;br /&gt;
//*        Customize FASTCRAM  Version 2.7&lt;br /&gt;
//*&lt;br /&gt;
//*        Install  FASTCRAM in SYS1.LPALIB,&lt;br /&gt;
//*        as a Type 3 or type 4 SVC, using an SVC&lt;br /&gt;
//*        number of 250 and a subsystem name of SIRI.&lt;br /&gt;
//*&lt;br /&gt;
//ZAPS     EXEC PGM=SIRZAP,PARM=NOVER&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSLIB   DD   DISP=SHR,DSN=SIRIUS.LOAD&lt;br /&gt;
//SYSIN    DD   *&lt;br /&gt;
* *********************************************************************&lt;br /&gt;
*   ZAP THE SVC NUMBER INTO FASTRLD.                                  *&lt;br /&gt;
* *********************************************************************&lt;br /&gt;
 NAME FASTRLD  FASTRLD&lt;br /&gt;
 VER  0184 0A0D&lt;br /&gt;
 REP  0184 0AFA      * NEW SVC=250&lt;br /&gt;
* *********************************************************************&lt;br /&gt;
*   ZAP THE SUBSYSTEM NAME AND SVC NUMBER INTO FASTSVC.               *&lt;br /&gt;
* *********************************************************************&lt;br /&gt;
 NAME FASTSVC  FASTSVC&lt;br /&gt;
 VER  1678 00007FFF&lt;br /&gt;
 VER  167C C6C1E2E3  * CURRENT SUBSYSTEM=FAST&lt;br /&gt;
 REP  167C E2C9D9C9  * NEW SUBSYSTEM=SIRI&lt;br /&gt;
 VER  1688 0A0D&lt;br /&gt;
 REP  1688 0AFA      * NEW SVC=250&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No matter which subsystem name you choose, this subsystem name must be defined in IEFSSNxx in SYS1.PARMLIB.&lt;br /&gt;
It is strongly recommended that subsystem name &amp;quot;M204&amp;quot; not be used because that subsystem name is used for &amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&#039;s&amp;lt;/nobr&amp;gt; standard CRAM implementations.&lt;br /&gt;
The subsystem can also be defined dynamically with the SETSSI command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
SETSSI ADD,SUBNAME=FAST&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are downloading a release for which no sample customization job is listed here, or if you need more help with the installation, contact Rocket M204 support at +1.800.755.4222, or e-mail us at &amp;lt;a href=&amp;quot;mailto:m204support@rocketsoftware.com&amp;quot;&amp;gt;m204support@rocketsoftware.com&amp;lt;/a&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Where can more documentation be found?===&lt;br /&gt;
The primary source of documentation for Rocket M204 products is this wiki.&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_installing_Rocket_M204_products&amp;diff=71695</id>
		<title>Downloading and installing Rocket M204 products</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Downloading_and_installing_Rocket_M204_products&amp;diff=71695"/>
		<updated>2014-09-04T20:39:58Z</updated>

		<summary type="html">&lt;p&gt;Gary: Created page with &amp;quot;==How can the above object files be downloaded?== The object files can be downloaded by clicking on the link for the object file with the &amp;lt;b&amp;gt;right&amp;lt;/b&amp;gt; mouse button. This will...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How can the above object files be downloaded?==&lt;br /&gt;
The object files can be downloaded by clicking on the link for the object file with the &amp;lt;b&amp;gt;right&amp;lt;/b&amp;gt; mouse button.&lt;br /&gt;
This will (on most browsers) bring up a pop-up menu that will have an option &amp;lt;i&amp;gt;Save Link As&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Save target As&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;Save As&amp;lt;/i&amp;gt;, or something similar.&lt;br /&gt;
Select this option, and then set the appropriate target directory (and name if desired) for the file.&lt;br /&gt;
The object file will then be downloaded to the indicated location.&lt;br /&gt;
&lt;br /&gt;
Alternatively, click the &amp;lt;b&amp;gt;left&amp;lt;/b&amp;gt; mouse button on the link for an object file. This will result in the browser prompting the user whether the file should be saved, where it should be saved, and under what name.&lt;br /&gt;
Some browsers prompt for this information before the object file is actually downloaded; others prompt for it after.&lt;br /&gt;
Obviously, those that prompt after will present a considerable delay before the prompt.&lt;br /&gt;
Opera actually prompts as soon as it receives the file header but continues downloading while waiting for the user response.&lt;br /&gt;
&lt;br /&gt;
Object files are customized for a particular site, simplifying the installation process.&lt;br /&gt;
Because of this, there may be a noticeable delay in processing a download request.&lt;br /&gt;
In addition, the downloaded object files can range in size from hundreds of kilobytes to perhaps 10 megabytes.&lt;br /&gt;
&lt;br /&gt;
If an e-mail transfer is selected, the object deck will be e-mailed to the indicated e-mail address as an attachment.&lt;br /&gt;
The attachment should be saved to a local file and then uploaded to the mainframe exactly as if it had been downloaded directly.&lt;br /&gt;
Receiving the object deck via e-mail might take a little longer than downloading it directly, but it allows you to schedule a set of object to be sent to a different person in your organization.&lt;br /&gt;
&lt;br /&gt;
==How can the object files be uploaded to the mainframe?==&lt;br /&gt;
Once the object files are downloaded to the workstation they must be uploaded to the z/OS, VM, or VSE system on the IBM mainframe.&lt;br /&gt;
Any file transfer mechanism can be used including FTP and IND$FILE, but regardless of the transfer mechanism some rules must be observed.&lt;br /&gt;
&lt;br /&gt;
First, the object files contain binary data and hence &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be transferred as binary.&lt;br /&gt;
That is, no translation from ASCII to EBCDIC must occur as a result of the upload.&lt;br /&gt;
&lt;br /&gt;
Second, the format and LRECL of the file must be specified during the upload.&lt;br /&gt;
This is because most workstation systems (including Windows, Mac OS and Unix) do not have a concept of file formats and LRECL&#039;s.&lt;br /&gt;
This information would be lost if it were not specified during the upload.&lt;br /&gt;
The format of the uploaded file must be &amp;lt;i&amp;gt;F&amp;lt;/i&amp;gt; under VM systems and &amp;lt;i&amp;gt;FB&amp;lt;/i&amp;gt; under z/OS and VSE systems. The LRECL must be&lt;br /&gt;
80 on all systems and under z/OS and VSE the blocksize can be any multiple of 80 though 3120 is a common blocksize for object libraries.&lt;br /&gt;
&lt;br /&gt;
When using FTP, the characteristics (RECFM, LRECL, and BLOCKSIZE) of the uploaded file can be set with the &amp;lt;i&amp;gt;SITE&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;LOCSITE&amp;lt;/i&amp;gt; FTP commands.&lt;br /&gt;
The SITE command should be used if the FTP client is on the workstation and the server is on the mainframe.&lt;br /&gt;
In this case the SITE command might have to be sent as a &amp;quot;quote&amp;quot; to the mainframe.&lt;br /&gt;
How this is done depends on your workstation&#039;s FTP client.&lt;br /&gt;
The LOCSITE command should be used if the FTP client is on the mainframe and the server is on the workstation.&lt;br /&gt;
&lt;br /&gt;
===Model 204 object library===&lt;br /&gt;
The Model 204 installation process entails creating a library (in z/OS, a Partitioned Data Set, or PDS), which is then used in subsequent steps to link the various Model 204 load modules.&lt;br /&gt;
The file which you have uploaded to the mainframe, typically as a sequential dataset (DSORG=PS in z/OS), is used as the &amp;lt;code&amp;gt;INP=&amp;lt;/code&amp;gt; parameter to the following JCL PROC for a z/OS installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//NEWOBJLB PROC TRK=&#039;320,50&#039;,BLK=6400&lt;br /&gt;
//*&lt;br /&gt;
//* Usage: //BLD EXEC NEWOBJLB,LIB=objectLibDsn,INP=inputStreamDsn&lt;br /&gt;
//*&lt;br /&gt;
//* Important note: The output object library (LIB=) is first deleted&lt;br /&gt;
//*&lt;br /&gt;
//* This proc creates an object library, using the input stream which&lt;br /&gt;
//* was downloaded from the Rocket Model 204 web site.  After the&lt;br /&gt;
//* download, it must be un-zipped, and then FTP&#039;d (BINARY, 80 byte&lt;br /&gt;
//* fixed length records) to a z/OS dataset.&lt;br /&gt;
//*&lt;br /&gt;
//* The FTP&#039;d z/OS dataset is specified by the INP= parameter&lt;br /&gt;
//*&lt;br /&gt;
//* Note: If you thought you might want to, it&#039;s best not to try&lt;br /&gt;
//*       to over-ride SYSIN with a DD *, because the input stream&lt;br /&gt;
//*       contains JCL.&lt;br /&gt;
//*&lt;br /&gt;
//DEL      EXEC PGM=IEFBR14&lt;br /&gt;
//DEL      DD DSN=&amp;amp;LIB,DISP=(MOD,DELETE),UNIT=SYSDA,SPACE=(TRK,1)&lt;br /&gt;
//*&lt;br /&gt;
//BLDOBJLB EXEC PGM=IEBUPDTE,PARM=NEW&lt;br /&gt;
//SYSPRINT DD SYSOUT=A   &amp;lt;&amp;lt; Note: this output will contain on the order&lt;br /&gt;
//*                         of 160K lines or more&lt;br /&gt;
//SYSUT2   DD DISP=(NEW,CATLG),SPACE=(TRK,(&amp;amp;TRK,60),RLSE),&lt;br /&gt;
//            UNIT=SYSDA,DCB=(DSORG=PO,LRECL=80,RECFM=FB,BLKSIZE=&amp;amp;BLK),&lt;br /&gt;
//            DSN=&amp;amp;LIB&lt;br /&gt;
//SYSIN    DD DISP=SHR,DSN=&amp;amp;INP&lt;br /&gt;
//*&lt;br /&gt;
//         PEND&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For example, if you downloaded the input stream and then FTP&#039;d it into &amp;lt;code&amp;gt;M204.V75.DOWNLOAD.OBJ&amp;lt;/code&amp;gt;,&lt;br /&gt;
and the object library dataset is to be &amp;lt;code&amp;gt;M204.V75.OBJLIB&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//BLDOBJLB EXEC NEWOBJLB,&lt;br /&gt;
//            INP=M204.V75.DOWNLOAD,&lt;br /&gt;
//            LIB=M204.V75.OBJLIB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The space allocation and block size are PROC parameters, but their defaults will work.&lt;br /&gt;
You can, of course, use any dataset name you want for the object library after &amp;lt;code&amp;gt;INP=&amp;lt;/code&amp;gt; &amp;amp;mdash; note that in our documentation, we refer to the object library as &amp;lt;b&amp;gt;ROKOB204&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Other object files===&lt;br /&gt;
For products other than Model 204, the downloaded file is a single object file.&lt;br /&gt;
Under z/OS, you can upload an object file either as a member of a Partitioned Data Set (PDS) or as an individual sequential file.&lt;br /&gt;
A PDS is recommended as a good way to collect all your Rocket M204 object file uploads in one dataset, using the member name to show the product and version.&lt;br /&gt;
&lt;br /&gt;
==Should maintenance be applied to the uploaded object files?==&lt;br /&gt;
When Rocket M204 products are downloaded, they will contain all of the current maintenance as well as all applicable authorization keys.&lt;br /&gt;
Thus no additional additional installation steps steps are required to install maintenance or authorization keys.&lt;br /&gt;
Subsequent fixes can be applied by downloading ZAPs and applying them, or by downloading a replacement object file and re-linking the appropriate load modules.&lt;br /&gt;
&lt;br /&gt;
==How should the Model 204 load modules be linked under z/OS?==&lt;br /&gt;
The Model 204 object library you created contains object files, JCL, and link-edit control statements so that you can link the Model 204 load modules.&lt;br /&gt;
(This library, of course, has the DSNAME you chose &amp;amp;mdash; but in our documentation, we refer to the object library as &amp;lt;b&amp;gt;ROKOB204&amp;lt;/b&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
One of the members of ROKOB204 is a text file named README, which includes a list of the Model 204 load modules, and, individual instructions for linking them.&lt;br /&gt;
&lt;br /&gt;
For example, to link the ONLINE load module, there is a member named JZLONLN.&lt;br /&gt;
This basic JCL has simple instructions for using it.&lt;br /&gt;
One of the comments in the JCL is a link which you may follow for more [[M204_install#zOS_link_onl|detailed instructions]].&lt;br /&gt;
&lt;br /&gt;
==What are the Sirius Mods?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; is a collection of functions and enhancements to the core &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module.&lt;br /&gt;
These enhancements are either products in and of themselves, or they are prerequisites for products which are written in User Language.&lt;br /&gt;
A site is authorized to download all of the &amp;lt;i&amp;gt;Sirus&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; if it is licensed for any of the products that require these enhancements.&lt;br /&gt;
Your authorization key will then enable the appropriate set of products.&lt;br /&gt;
&lt;br /&gt;
Products that require the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; are:&lt;br /&gt;
&lt;br /&gt;
* Fast/Backup&lt;br /&gt;
* Fast/Reload&lt;br /&gt;
* Fast/Unload User Language Interface&lt;br /&gt;
* Janus Network Security&lt;br /&gt;
* Janus Open Server&lt;br /&gt;
* Janus Open Client&lt;br /&gt;
* Janus SOAP&lt;br /&gt;
* Janus Specialty Data Store&lt;br /&gt;
* Janus TCP/IP Base&lt;br /&gt;
* Janus Web Server&lt;br /&gt;
* Japanese Functions&lt;br /&gt;
* SirDBA&lt;br /&gt;
* SirFact&lt;br /&gt;
* SirFile&lt;br /&gt;
* Sirius Performance Enhancements&lt;br /&gt;
* Sirius Performance Enhancements V2&lt;br /&gt;
* SirLib&lt;br /&gt;
* SirMon&lt;br /&gt;
* SirPro&lt;br /&gt;
* SirSafe&lt;br /&gt;
* SirScan&lt;br /&gt;
* SirTune&lt;br /&gt;
* SirXref&lt;br /&gt;
* Sir2000 Field Migration Facility&lt;br /&gt;
* Sir2000 User Language Tools&lt;br /&gt;
* Trusted Login Facility&lt;br /&gt;
&lt;br /&gt;
You can determine which of these products your site is authorized for by examining &amp;lt;a href=&amp;quot;https://m204.rocketsoftware.com/dlist&amp;quot;&amp;gt;your customer profile&amp;lt;/a&amp;gt;. After the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; are installed, you can verify product authorizations by issuing the &amp;lt;b&amp;gt;SIRIUS&amp;lt;/b&amp;gt; command in an Online running a load module that includes the &amp;lt;i&amp;gt;Sirius&amp;amp;npsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==How should the Sirius Mods object file be linked under z/OS?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object modules from Rocket.&lt;br /&gt;
Under z/OS, an object deck can be re-linked with a load module.&lt;br /&gt;
In theory, this load module can already contain the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
While this is generally OK if linking over the same release of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, it is almost certainly a bad idea otherwise.&lt;br /&gt;
As such, it is a good idea to keep a load module without the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; available for rebuilding a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
The non-&amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; load module should have all Rocket ZAPs applied, or these ZAPs should be applied after the re-link with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
&lt;br /&gt;
Should Rocket provide replacement object files as part of their maintenance, these object files must &amp;lt;b&amp;gt;never&amp;lt;/b&amp;gt; be linked ahead of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
This also means that replacement Rocket object files cannot simply be linked ahead of a load module containing the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; without also linking the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file ahead of the replacement object files from Rocket.&lt;br /&gt;
&lt;br /&gt;
Both of the next two examples assume you uploaded the object file into library SIRIUS.LIB with a member name of SIR80074.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
The following JCL is an example of how you would link the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file with a standard &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module called ONLINE in&lt;br /&gt;
library M204.V7R4.LOADLIB.  The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK    EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;LIST,LET,MAP,SIZE=(2048K,512K),RMODE=ANY,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD SYSOUT=*&lt;br /&gt;
//M204LOAD DD DSN=M204.V7R4.LOADLIB,DISP=SHR&lt;br /&gt;
//SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(SIR80074)&lt;br /&gt;
 INCLUDE M204LOAD(ONLINE)&lt;br /&gt;
 ENTRY MAINTASK&lt;br /&gt;
 NAME ONLINE(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following JCL is an example of how you would link the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file with a standard &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load module called ONLINE in&lt;br /&gt;
library M204.V7R4.LOADLIB, along with replacement object decks for EVNU and SBFM, which were provided with Rocket maintenance and are in library M204.V7R4.FIXOBJ.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;LIST,LET,MAP,SIZE=(2048K,512K),RMODE=ANY,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//M204LOAD DD   DSN=M204.V7R4.LOADLIB,DISP=SHR&lt;br /&gt;
//M204FIX  DD   DSN=M204.V7R4.FIXOBJ,DISP=SHR&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(SIR80074)&lt;br /&gt;
 INCLUDE M204FIX(EVFM,SBFM)&lt;br /&gt;
 INCLUDE M204LOAD(ONLINE)&lt;br /&gt;
 ENTRY MAINTASK&lt;br /&gt;
 NAME ONLINE(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How should the Sirius Mods object file be linked under CMS?==&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object modules from Rocket.&lt;br /&gt;
This means, first, that the object file&#039;s filetype must conform to CMS conventions for object files.&lt;br /&gt;
The simplest way to ensure this is to use a filetype of TEXT for the object file under CMS.&lt;br /&gt;
&lt;br /&gt;
To link with the Rocket-supplied M204GEN utility, the &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; load list must be modified to include the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
This can be done by simply inserting a line with an &amp;quot;&amp;amp;1 &amp;amp;2&amp;quot; followed by the filename of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file before the name of any other object file in the load list.&lt;br /&gt;
The following is an example of the first few lines of an updated load list, where the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file is called &amp;quot;SIR80074 TEXT&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
* LOAD LIST FOR M204ONLN MODULE&lt;br /&gt;
* (&amp;amp;START IN MLNK)&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 SIR80074&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 MLNK&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 ACF2CMS&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 ANXV&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 APSY&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 APSZ&lt;br /&gt;
 &amp;amp;1 &amp;amp;2 ARTH&lt;br /&gt;
 . . . . .&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; dynamically adds hooks to the load module, Sirius recommends against using shared segments with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;.&lt;br /&gt;
If this is considered essential, contact Sirius Software technical support for help in building a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; and shared segments.&lt;br /&gt;
&lt;br /&gt;
An exec called LOADCONV is also available to automatically convert the loadlist, it can be &amp;lt;a href=&amp;quot;download/loadconv.rex&amp;quot;&amp;gt;downloaded here&amp;lt;/a&amp;gt;.&lt;br /&gt;
Note that LOADCONV requires that the filename of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file be &amp;quot;SIROBJ&amp;quot; followed by the &amp;lt;i&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/i&amp;gt; release to which it&lt;br /&gt;
applies, as in &amp;quot;SIROBJ74&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the M204GEN exec is being used, M204CCA PARMS needs to be edited.&lt;br /&gt;
First, in the M204GEN/DEFAULTS section, the ldrtbls value might need to be increased:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
M204GEN:&lt;br /&gt;
DEFAULTS:&lt;br /&gt;
  ldrtbls = 50&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the load module start needs to include the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; so in the ONLINE/ONLN section the line&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
   start.mod   = MLNK$&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
needs to be changed to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
   start.mod   = SLNK$&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to be able to generate a load module both with and without the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, you could copy the whole ONLINE section in M204CCA PARMS and call it something else, for example, SIRIUS, and change start.mod in that section.&lt;br /&gt;
Then, when you want to generate a load module with the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; in it you&#039;d simply type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
M204GEN SIRIUS&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Sirius Mods object file be linked under VSE?===&lt;br /&gt;
The &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; object file should be linked ahead of the Model&amp;amp;nbsp;204 object files from Rocket. The example below shows an excerpt of the standard Rocket link JCL for an ONLINE.&lt;br /&gt;
To linkedit the online with the Sirius Mods, you must insert the include statement for the object module immediately after the PHASE statement.&lt;br /&gt;
In this example, the Sirius Mods object is named SIR80074.&lt;br /&gt;
If the Sirius Mods object module is in a separate library, the JCL should be modified to include that library in the SEARCH= paramter of the LIBDEF OBJ statement.&lt;br /&gt;
If you include any other object modules, they also must appear after the Sirius Mods object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
 // LIBDEF PHASE,CATALOG=M204LIB.V7R4&lt;br /&gt;
 // LIBDEF OBJ,SEARCH=M204LIB.V7R4&lt;br /&gt;
 // OPTION CATAL&lt;br /&gt;
  PHASE ONLINE,* REPLACE=YES&lt;br /&gt;
  INCLUDE SIR80074&lt;br /&gt;
  INCLUDE LKONLN&lt;br /&gt;
  INCLUDE&lt;br /&gt;
  ENTRY MAINTASK&lt;br /&gt;
 /*&lt;br /&gt;
 // EXEC LNKEDT&lt;br /&gt;
 /*&lt;br /&gt;
 /&amp;amp;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Fast/Unload object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;Fast/Unload&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD. &lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of FUN400.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(FUN400)&lt;br /&gt;
 ENTRY FUNLOAD&lt;br /&gt;
 NAME FUNLOAD(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;Fast/Unload&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a FUNLOAD load module.&lt;br /&gt;
In this example, it is assumed that the Fast/Unload object file has a filename of FUN400.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD FUN400 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET FUNLOAD RLDSAVE&lt;br /&gt;
GENMOD FUNLOAD (FROM FUNL&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Why were there three object files for SirTune?===&lt;br /&gt;
Beginning with Version 7.0 of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, all &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; functionality has been merged into the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt; and so the standalone &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; load modules are obsolete.&lt;br /&gt;
&lt;br /&gt;
Prior to Version 7.0 of the &amp;lt;i&amp;gt;Sirius&amp;amp;nbsp;Mods&amp;lt;/i&amp;gt;, however, &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; consisted of three components.&lt;br /&gt;
The first component was called the &amp;lt;i&amp;gt;SirTune Data Collector&amp;lt;/i&amp;gt; or simply &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt;.&lt;br /&gt;
This load module runs in the same address space as the &amp;lt;i&amp;gt;&amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/nobr&amp;gt;&amp;lt;/i&amp;gt; load module and collects data to be analyzed later.&lt;br /&gt;
&lt;br /&gt;
The second component is called the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt;.&lt;br /&gt;
This load module is run independently of &amp;lt;i&amp;gt;&amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/nobr&amp;gt;&amp;lt;/i&amp;gt; and summarizes the data collected by &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; into a report.&lt;br /&gt;
&lt;br /&gt;
The third component is used only under CMS and is called the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt;.&lt;br /&gt;
It communicates with &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; via IUCV and asynchronously logs &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; data on a separate virtual machine.&lt;br /&gt;
It is used to get around some of the difficulties of doing asynchronous I/O under CMS.&lt;br /&gt;
&lt;br /&gt;
In general, it is a good idea to be using the same versions of all three &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; components though Sirius makes every effort to allow a newer &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; to produce reports from sample datasets created by older releases of &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of TUNE104.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(TUNE104)&lt;br /&gt;
 ENTRY COLLECT&lt;br /&gt;
 NAME SIRTUNE(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNE load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune&amp;lt;/i&amp;gt; object file has a filename of TUNE104.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD TUNE104 (FULLMAP NODUP ORIGIN 400000 AMODE 31 RESET COLLECT&lt;br /&gt;
GENMOD SIRTUNE (FROM COLL&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune Report Generator object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of TUNR104.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(TUNR104)&lt;br /&gt;
 ENTRY ANALYZE&lt;br /&gt;
 NAME SIRTUNER(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune Report Renerator&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNER load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune Report Generator&amp;lt;/i&amp;gt; object file has a filename of TUNR103.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD TUNR103 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET ANALYZE&lt;br /&gt;
GENMOD SIRTUNER (FROM ANAL&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirTune Data Logger object file be linked?===&lt;br /&gt;
The &amp;lt;i&amp;gt;SirTune data Logger&amp;lt;/i&amp;gt; is not used under z/OS.&lt;br /&gt;
&lt;br /&gt;
Under CMS, the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt; object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRTUNED load module.&lt;br /&gt;
In this example, it is assumed that the &amp;lt;i&amp;gt;SirTune Data Logger&amp;lt;/i&amp;gt; object file has a filename of TUND104.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD TUND104 (FULLMAP NODUP ORIGIN 30000 AMODE 24 RESET OUTCMS&lt;br /&gt;
GENMOD SIRTUNED (FROM OUTC&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the RockZap object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;RockZap&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of ZAP106.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=0&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(ZAP106)&lt;br /&gt;
 ENTRY SIRZAP&lt;br /&gt;
 NAME SIRZAP(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the SirZap object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRZAP load module.&lt;br /&gt;
In this example, it is assumed that the SirZap object file has a filename of ZAP106.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD ZAP106 (FULLMAP NODUP ORIGIN 20000 AMODE 31 RESET SIRZAP&lt;br /&gt;
GENMOD SIRZAP (FROM APPL&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the SirAud object file be linked?===&lt;br /&gt;
The following z/OS JCL is an example of how one would link the &amp;lt;i&amp;gt;SirAud&amp;lt;/i&amp;gt; object file.&lt;br /&gt;
The module is linked into library SIRIUS.LOAD.&lt;br /&gt;
This example assumes you &amp;lt;a href=&#039;#objup&#039;&amp;gt;uploaded&amp;lt;/a&amp;gt; the object file into library SIRIUS.LIB with a member name of AUD102.&lt;br /&gt;
If you uploaded to a non-library dataset (that is, a sequential dataset, not a Partitioned Data Set), then you should omit the parentheses and member name after INCLUDE LIB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=0&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(AUD102)&lt;br /&gt;
 ENTRY JMAIN&lt;br /&gt;
 NAME SIRAUD(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Under CMS, the SirAud object file should be given a filetype of &amp;quot;TEXT&amp;quot;.&lt;br /&gt;
The following commands can then be issued either directly or in an EXEC to build a SIRAUD load module.&lt;br /&gt;
In this example, it is assumed that the SirAud object file has a filename of AUD102.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
LOAD AUD102 (FULLMAP NODUP ORIGIN 30000 AMODE 31 RESET JMAIN&lt;br /&gt;
GENMOD SIRAUD (FROM JCONF&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How should the Fast/Cram object files be installed?===&lt;br /&gt;
Most of the documentation for &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; installation can be found in the &amp;lt;a href=&amp;quot;https://m204.rocketsoftware.com/maint/download/CRAMR.PDF&amp;quot;&amp;gt;&lt;br /&gt;
Fast/Cram Installation Guide&amp;lt;/a&amp;gt;.&lt;br /&gt;
That manual is currently not updated to reflect web downloads, so a few things must be kept in mind.&lt;br /&gt;
The first is that the first four characters of the download file indicate the module being downloaded, and they correspond to a specific member in SIRIUS.LOAD,&lt;br /&gt;
as described in the &amp;lt;i&amp;gt;Fast/Cram Installation Guide&amp;lt;/i&amp;gt;.&lt;br /&gt;
The correspondences between the first four characters in the downloaded object files and the members in SIRIUS.LOAD are:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellpadding=6&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRM&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FASTSVC&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRI&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;IGCLM244&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRR&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FASTREP&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;FCRS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SNAPFAST&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 example JCL would create SIRIUS.LOAD load modules as described in the &amp;lt;i&amp;gt;Fast/Cram Installation Guide&amp;lt;/i&amp;gt;.&lt;br /&gt;
This example assumes you uploaded the object files into library SIRIUS.LIB with member names of FCR*27.&lt;br /&gt;
If you uploaded to non-library datasets (that is, sequential datasets, not Partitioned Data Sets), then you will need a separate DD statement for each object file as well as appropriate INCLUDE statements for them, omitting the parentheses and member names.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; The Fast/CRAM modules &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be linked using the RENT option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//JOB      whatever&lt;br /&gt;
//LINK     EXEC PGM=IEWL,REGION=0M,&lt;br /&gt;
//            PARM=&#039;RENT,LIST,MAP,NCAL,SIZE=(2048K,512K),AMODE=31,RMODE=24,AC=1&#039;&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(2,1))&lt;br /&gt;
//LIB      DD   DSN=SIRIUS.LIB,DISP=SHR&lt;br /&gt;
//SYSLMOD  DD   DSN=SIRIUS.LOAD,DISP=SHR&lt;br /&gt;
//SYSLIN   DD   *&lt;br /&gt;
 INCLUDE LIB(FCRM27)&lt;br /&gt;
 ENTRY FASTSVC&lt;br /&gt;
 NAME FASTSVC(R)&lt;br /&gt;
 INCLUDE LIB(FCRI27)&lt;br /&gt;
 ENTRY FASTRLD&lt;br /&gt;
 NAME IGCLM244(R)&lt;br /&gt;
 INCLUDE LIB(FCRR27)&lt;br /&gt;
 ENTRY FASTREP&lt;br /&gt;
 NAME FASTREP(R)&lt;br /&gt;
 INCLUDE LIB(FCRS27)&lt;br /&gt;
 ENTRY SNAPFAST&lt;br /&gt;
 NAME SNAPFAST(R)&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the customization job is currently &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; release specific.&lt;br /&gt;
The following job is a sample customization job for &amp;lt;i&amp;gt;Fast/Cram&amp;lt;/i&amp;gt; V2.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
//FASTCUST JOB  ,&#039;Fast/CRAM&#039;,CLASS=A,MSGCLASS=A&lt;br /&gt;
//*&lt;br /&gt;
//*        Customize FASTCRAM  Version 2.7&lt;br /&gt;
//*&lt;br /&gt;
//*        Install  FASTCRAM in SYS1.LPALIB,&lt;br /&gt;
//*        as a Type 3 or type 4 SVC, using an SVC&lt;br /&gt;
//*        number of 250 and a subsystem name of SIRI.&lt;br /&gt;
//*&lt;br /&gt;
//ZAPS     EXEC PGM=SIRZAP,PARM=NOVER&lt;br /&gt;
//SYSPRINT DD   SYSOUT=*&lt;br /&gt;
//SYSLIB   DD   DISP=SHR,DSN=SIRIUS.LOAD&lt;br /&gt;
//SYSIN    DD   *&lt;br /&gt;
* *********************************************************************&lt;br /&gt;
*   ZAP THE SVC NUMBER INTO FASTRLD.                                  *&lt;br /&gt;
* *********************************************************************&lt;br /&gt;
 NAME FASTRLD  FASTRLD&lt;br /&gt;
 VER  0184 0A0D&lt;br /&gt;
 REP  0184 0AFA      * NEW SVC=250&lt;br /&gt;
* *********************************************************************&lt;br /&gt;
*   ZAP THE SUBSYSTEM NAME AND SVC NUMBER INTO FASTSVC.               *&lt;br /&gt;
* *********************************************************************&lt;br /&gt;
 NAME FASTSVC  FASTSVC&lt;br /&gt;
 VER  1678 00007FFF&lt;br /&gt;
 VER  167C C6C1E2E3  * CURRENT SUBSYSTEM=FAST&lt;br /&gt;
 REP  167C E2C9D9C9  * NEW SUBSYSTEM=SIRI&lt;br /&gt;
 VER  1688 0A0D&lt;br /&gt;
 REP  1688 0AFA      * NEW SVC=250&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No matter which subsystem name you choose, this subsystem name must be defined in IEFSSNxx in SYS1.PARMLIB.&lt;br /&gt;
It is strongly recommended that subsystem name &amp;quot;M204&amp;quot; not be used because that subsystem name is used for &amp;lt;nobr&amp;gt;Model&amp;amp;nbsp;204&#039;s&amp;lt;/nobr&amp;gt; standard CRAM implementations.&lt;br /&gt;
The subsystem can also be defined dynamically with the SETSSI command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
SETSSI ADD,SUBNAME=FAST&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are downloading a release for which no sample customization job is listed here, or if you need more help with the installation, contact Rocket M204 support at +1.800.755.4222, or e-mail us at &amp;lt;a href=&amp;quot;mailto:m204support@rocketsoftware.com&amp;quot;&amp;gt;m204support@rocketsoftware.com&amp;lt;/a&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Where can more documentation be found?===&lt;br /&gt;
The primary source of documentation for Rocket M204 products is this wiki.&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Template:Legal_notices&amp;diff=69826</id>
		<title>Template:Legal notices</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Template:Legal_notices&amp;diff=69826"/>
		<updated>2014-06-23T20:09:28Z</updated>

		<summary type="html">&lt;p&gt;Gary: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Database_download&amp;diff=69825</id>
		<title>M204wiki:Database download</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Database_download&amp;diff=69825"/>
		<updated>2014-06-23T19:57:32Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* Copyright */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The content of {{SITENAME}} is available for download, provided only that no copyright notices may be removed or altered.  The download format is a zip archive that contains both an XML dump of the wiki pages suitable for loading into your own installation of Mediawiki (or one of the many personal wiki implementations) and a tar file with all of the uploaded images and other objects such as PDF files.&lt;br /&gt;
&lt;br /&gt;
==How to download a copy of {{SITENAME}}==&lt;br /&gt;
Use one of the following URLs to download a copy of the {{SITENAME}} contents:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://M204wiki.rocketsoftware.com/images/M204wiki_full.zip or &lt;br /&gt;
http://M204wiki.rocketsoftware.com/images/M204wiki_current.zip&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;M204wiki_full.zip&#039;&#039;&#039; contains the full {{SITENAME}} content (minus user records, security groups and &amp;quot;talk&amp;quot; pages), including all past versions of each page.  As of February 2014, this file is approximately 65 megabytes of data, and expected to constantly increase in size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;M204wiki_current.zip&#039;&#039;&#039; contains only the latest version of each {{SITENAME}} page (minus user records, security groups and &amp;quot;talk&amp;quot; pages).  This copy provides the latest version of all material but &#039;&#039;without&#039;&#039; the page history.  As of February 2014, this file is approximately 20 megabytes in size, and it is expected to increase in size but to always remain smaller than the &amp;quot;full&amp;quot; version.  &#039;&#039;&#039;This is probably the copy you want.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Both of the above files are refreshed every night, just after midnight Boston time.&lt;br /&gt;
&lt;br /&gt;
===Updating local copies of {{SITENAME}}===&lt;br /&gt;
If you make changes to a downloaded copy of the {{SITENAME}} content, then of course those changes will be lost if you refresh the downloaded copy; The download and import process is a full refresh, and no incremental option is currently offered.&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to contribute to {{SITENAME}}, you will need to [[M204wiki:Get M204wiki User ID|obtain a M204wiki User ID]].&lt;br /&gt;
&lt;br /&gt;
==What to do with your copy of {{SITENAME}}==&lt;br /&gt;
Most likely you are downloading a copy of {{SITENAME}} because your &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; site does not allow internet access.  Maintaining a local copy of {{SITENAME}} provides access in a format that can be kept as up-to-date as you like.&lt;br /&gt;
&lt;br /&gt;
If you want to present {{SITENAME}} totally faithful to its original format, you&#039;ll want to install a local copy of Mediawiki, the software currently hosting {{SITENAME}}:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://www.mediawiki.org/wiki/MediaWiki&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are a variety of methods for importing a {{SITENAME}} XML dump and related binary uploads, all explained at the Mediawiki site:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://www.mediawiki.org/wiki/Manual:Importing_XML_dumps&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of Mediawiki installed, the simplest way to load the SirWiki content in a single step is via the script in &amp;lt;code&amp;gt;maintenance/importDump.php&amp;lt;/code&amp;gt; (documentation provided in &amp;quot;Using importDump.php, if you have shell access&amp;quot; at the above link). For example, issue a command like the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;php \www\mediawiki\maintenance\importDump.php c:\users\dave\downloads\sirWiki_current.xml&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
The above command can be run in Windows, if the MoWeS portable reader was installed in the root directory containing &amp;lt;code&amp;gt;\www&amp;lt;/code&amp;gt; and the current SirWiki was saved in the above &amp;lt;code&amp;gt;downloads&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
Alternately, you can forgo the local installation of Mediawiki and use one of the aftermarket readers designed to import and display the Mediawiki XML dump.  The most popular one is Wikitaxi (Windows only; no Linux or OS/X version is provided):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://en.wikipedia.org/wiki/Wikipedia:Database_download#WikiTaxi&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A number of other viewing options are explained at the above page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Sirius Homepage: http://sirius-software.com&lt;br /&gt;
&amp;lt;li&amp;gt;Mediawiki: http://www.mediawiki.org&amp;lt;&lt;br /&gt;
&amp;lt;li&amp;gt;Wikitaxi: http://www.wikitaxi.org&lt;br /&gt;
&amp;lt;li&amp;gt;Wikimedia XML dump importing: http://www.mediawiki.org/wiki/Manual:Importing_XML_dumps&lt;br /&gt;
&amp;lt;li&amp;gt;Mediawiki XML dump format: http://meta.wikimedia.org/wiki/Help:Export&lt;br /&gt;
&amp;lt;li&amp;gt;Wikipedia&#039;s information page on using XML database dumps: http://en.wikipedia.org/wiki/Wikipedia:Database_download&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Copyrights&amp;diff=69824</id>
		<title>M204wiki:Copyrights</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Copyrights&amp;diff=69824"/>
		<updated>2014-06-23T19:56:54Z</updated>

		<summary type="html">&lt;p&gt;Gary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;© Rocket Software, Inc. or its affiliates 1990 – 2014. All rights reserved. Rocket and the Rocket Software logos are registered trademarks of Rocket Software, Inc. Other product and service names might be trademarks of Rocket Software or its affiliates.&lt;br /&gt;
&lt;br /&gt;
For a list of Rocket registered trademarks visit: [http://www.rocketsoftware.com/about/legal www.rocketsoftware.com/about/legal]. All other products or services mentioned in this web site may be covered by the trademarks, service marks, or product names of their respective owners.&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=USE_$PRINT_/_$PUNCH_/_$JOB_command&amp;diff=68151</id>
		<title>USE $PRINT / $PUNCH / $JOB command</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=USE_$PRINT_/_$PUNCH_/_$JOB_command&amp;diff=68151"/>
		<updated>2014-03-27T13:55:16Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* Syntax */&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;Under z/OS or z/VM, directs output to a dynamically allocated printer, punch device, or internal reader.&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;&amp;lt;b&amp;gt;U&amp;lt;/b&amp;gt;SE &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt; [&amp;lt;i&amp;gt;option&amp;lt;/i&amp;gt; [,&amp;lt;i&amp;gt;option&amp;lt;/i&amp;gt;]...]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;b&amp;gt;Where:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; is one of the following: &lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;$function &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Routes output to...&amp;lt;/p&amp;gt;&lt;br /&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;&lt;br /&gt;
&amp;lt;p&amp;gt;$JOB&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Internal reader that submits a job from &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; to JES. (Only z/OS) &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;&lt;br /&gt;
&amp;lt;p&amp;gt;$PRINT&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;Printer. USE sets up a 133-character ASA carriage control buffer.    &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;&lt;br /&gt;
&amp;lt;p&amp;gt;$PUNCH&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;Punch. USE sets up an 80-character buffer.    &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&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;th&amp;gt;options&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; are described in the table below.&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;USE command output options &amp;lt;/caption&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Option&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Specifies the...&amp;lt;/p&amp;gt;&lt;br /&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;&lt;br /&gt;
&amp;lt;p&amp;gt;CLASS&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Output class. The class is specified as one alphanumeric character. The default is:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A for $PRINT&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;B for $PUNCH&amp;lt;/p&amp;gt;&lt;br /&gt;
(A is assumed for $JOB)   &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;&lt;br /&gt;
&amp;lt;p&amp;gt;COPIES&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Number of copies to be printed. The number must be in the range 1 to 255 to match the range allowed for the COPY parameter of the z/VSE/POWER *$$LST and *$$PUN statements. The default is 1. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If COPIES is omitted or a zero value is specified, COPIES=1 is assumed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The z/VSE/POWER equivalent option name is COPY.&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; FCB&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;Name of the forms control buffer (block) used to control the vertical spacing of output on the page. FCB consists of 1 to 4 characters. There is no default.   &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;&lt;br /&gt;
&amp;lt;p&amp;gt;FORMS&amp;lt;br&amp;gt;F&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;Form name for the output. The name consists of 1 to 8 characters. There is no default.   &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;&lt;br /&gt;
&amp;lt;p&amp;gt;JOBNAME&amp;lt;br&amp;gt;J&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;Identifier that appears in place of your user ID on the separator page. This option is equivalent to HDR2.   &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;&lt;br /&gt;
&amp;lt;p&amp;gt;ROUTE&amp;lt;br&amp;gt;R&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Desired output destination or routing. The destination consists of one to eight characters. The default is LOCAL.   &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;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;USE $PRINT COPIES=3, FORMS=TIME,FCB=FM01 -&lt;br /&gt;
JOBNAME=ENDMONTH, ROUTE=ACCT05&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
==Usage notes==&lt;br /&gt;
Under z/OS or z/VM, the USE $PRINT/$PUNCH/$JOB command directs output to a dynamically allocated printer, punch device, or internal reader. $JOB applies only to z/OS. &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 version of the USE command is obsolete and is supplied only for purposes of compatibility.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Under z/OS, when a data set is printed or punched, the operating system inserts a separator page or card identifying the job (for example, ONLINE &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt;) that created the data set. &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; also generates a separator page. For $PRINT output under z/OS, if the IBM Block Letter Routine (IEFSD095) is not in effect, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; generates a separator page that contains a one-line message: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204LIST &amp;lt;i&amp;gt;userid&amp;lt;/i&amp;gt; &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;where userid consists of the first eight characters of the user ID of the user who is running the request.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the IBM Block Letter Routine is in effect, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; generates a separator that contains the following message lines: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204LIST &lt;br /&gt;
userid &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;These lines are equivalent to the options HDR1 and HDR2. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Block Letter Routine is automatically linked (by M204LINK or M204RLNK) into your online or BATCH204 during &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; installation&amp;lt;i&amp;gt;.&amp;lt;/i&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Under z/VM, the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; separator page always consists of the following message:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;Model 204 SPINOFF FOR USER&lt;br /&gt;
userid &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If you are using an external security interface, authorization to open SYSOUT data sets is validated during execution of the command. An external security interface verifies the USE $JOB command&#039;s authorization to submit jobs to the internal reader. For more information, refer to the &amp;lt;var&amp;gt;Model&amp;amp;nbsp;204 Security Interfaces Manual&amp;lt;/var&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Category: General user commands]]&lt;br /&gt;
[[Category:Commands]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=USE_$PRINT_/_$PUNCH_/_$JOB_command&amp;diff=68150</id>
		<title>USE $PRINT / $PUNCH / $JOB command</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=USE_$PRINT_/_$PUNCH_/_$JOB_command&amp;diff=68150"/>
		<updated>2014-03-27T13:54:29Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* Syntax */&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;Under z/OS or z/VM, directs output to a dynamically allocated printer, punch device, or internal reader.&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;&amp;lt;b&amp;gt;U&amp;lt;/b&amp;gt;SE &amp;lt;i&amp;gt;name&amp;lt;/i&amp;gt; [&amp;lt;i&amp;gt;option&amp;lt;/i&amp;gt; [,&amp;lt;i&amp;gt;option&amp;lt;/i&amp;gt;]...]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;b&amp;gt;Where:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; is one of the following: &lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;$function &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Routes output to...&amp;lt;/p&amp;gt;&lt;br /&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;&lt;br /&gt;
&amp;lt;p&amp;gt;$JOB&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Internal reader that submits a job from &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; to JES. (Only z/OS) &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;&lt;br /&gt;
&amp;lt;p&amp;gt;$PRINT&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;Printer. USE sets up a 133-character ASA carriage control buffer.    &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;&lt;br /&gt;
&amp;lt;p&amp;gt;$PUNCH&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;Punch. USE sets up an 80-character buffer.    &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&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;th&amp;gt;options&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; are described in the table below.&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;USE command output options &amp;lt;/caption&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;th&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Option&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Specifies the...&amp;lt;/p&amp;gt;&lt;br /&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;&lt;br /&gt;
&amp;lt;p&amp;gt;CLASS&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Output class. The class is specified as one alphanumeric character. The default is:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A for $PRINT&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;B for $PUNCH&amp;lt;/p&amp;gt;&lt;br /&gt;
(A is assumed for $JOB)   &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;&lt;br /&gt;
&amp;lt;p&amp;gt;COPIES&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Number of copies to be printed. The number must be in the range 1 to 255 to match the range allowed for the COPY parameter of the z/VSE/POWER *$$LST and *$$PUN statements. The default is 1. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If COPIES is omitted or a zero value is specified, COPIES=1 is assumed. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The z/VSE/POWER equivalent option name is COPY.&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; FCB&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;Name of the forms control buffer (block) used to control the vertical spacing of output on the page. FCB consists of 1 to 4 characters. There is no default.   &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;&lt;br /&gt;
&amp;lt;p&amp;gt;FORMS&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;Form name for the output. The name consists of 1 to 8 characters. There is no default.   &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;&lt;br /&gt;
&amp;lt;p&amp;gt;JOBNAME&amp;lt;br&amp;gt;J&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;Identifier that appears in place of your user ID on the separator page. This option is equivalent to HDR2.   &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;&lt;br /&gt;
&amp;lt;p&amp;gt;ROUTE&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/var&amp;gt;&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Desired output destination or routing. The destination consists of one to eight characters. The default is LOCAL.   &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;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;USE $PRINT COPIES=3, FORMS=TIME,FCB=FM01 -&lt;br /&gt;
JOBNAME=ENDMONTH, ROUTE=ACCT05&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
==Usage notes==&lt;br /&gt;
Under z/OS or z/VM, the USE $PRINT/$PUNCH/$JOB command directs output to a dynamically allocated printer, punch device, or internal reader. $JOB applies only to z/OS. &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 version of the USE command is obsolete and is supplied only for purposes of compatibility.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Under z/OS, when a data set is printed or punched, the operating system inserts a separator page or card identifying the job (for example, ONLINE &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt;) that created the data set. &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; also generates a separator page. For $PRINT output under z/OS, if the IBM Block Letter Routine (IEFSD095) is not in effect, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; generates a separator page that contains a one-line message: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204LIST &amp;lt;i&amp;gt;userid&amp;lt;/i&amp;gt; &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;where userid consists of the first eight characters of the user ID of the user who is running the request.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the IBM Block Letter Routine is in effect, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; generates a separator that contains the following message lines: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204LIST &lt;br /&gt;
userid &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;These lines are equivalent to the options HDR1 and HDR2. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Block Letter Routine is automatically linked (by M204LINK or M204RLNK) into your online or BATCH204 during &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; installation&amp;lt;i&amp;gt;.&amp;lt;/i&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Under z/VM, the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; separator page always consists of the following message:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;Model 204 SPINOFF FOR USER&lt;br /&gt;
userid &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If you are using an external security interface, authorization to open SYSOUT data sets is validated during execution of the command. An external security interface verifies the USE $JOB command&#039;s authorization to submit jobs to the internal reader. For more information, refer to the &amp;lt;var&amp;gt;Model&amp;amp;nbsp;204 Security Interfaces Manual&amp;lt;/var&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[Category: General user commands]]&lt;br /&gt;
[[Category:Commands]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Database_download&amp;diff=67379</id>
		<title>M204wiki:Database download</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Database_download&amp;diff=67379"/>
		<updated>2014-02-07T15:03:25Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* How to download a copy of {{SITENAME}} */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The content of {{SITENAME}} is available for download, provided only that no copyright notices may be removed or altered.  The download format is a zip archive that contains both an XML dump of the wiki pages suitable for loading into your own installation of Mediawiki (or one of the many personal wiki implementations) and a tar file with all of the uploaded images and other objects such as PDF files.&lt;br /&gt;
&lt;br /&gt;
==How to download a copy of {{SITENAME}}==&lt;br /&gt;
Use one of the following URLs to download a copy of the {{SITENAME}} contents:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://M204wiki.rocketsoftware.com/images/M204wiki_full.zip or &lt;br /&gt;
http://M204wiki.rocketsoftware.com/images/M204wiki_current.zip&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;M204wiki_full.zip&#039;&#039;&#039; contains the full {{SITENAME}} content (minus user records, security groups and &amp;quot;talk&amp;quot; pages), including all past versions of each page.  As of February 2014, this file is approximately 65 megabytes of data, and expected to constantly increase in size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;M204wiki_current.zip&#039;&#039;&#039; contains only the latest version of each {{SITENAME}} page (minus user records, security groups and &amp;quot;talk&amp;quot; pages).  This copy provides the latest version of all material but &#039;&#039;without&#039;&#039; the page history.  As of February 2014, this file is approximately 20 megabytes in size, and it is expected to increase in size but to always remain smaller than the &amp;quot;full&amp;quot; version.  &#039;&#039;&#039;This is probably the copy you want.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Both of the above files are refreshed every night, just after midnight Boston time.&lt;br /&gt;
&lt;br /&gt;
===Updating local copies of {{SITENAME}}===&lt;br /&gt;
If you make changes to a downloaded copy of the {{SITENAME}} content, then of course those changes will be lost if you refresh the downloaded copy; The download and import process is a full refresh, and no incremental option is currently offered.&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to contribute to {{SITENAME}}, you will need to [[M204wiki:Get M204wiki User ID|obtain a M204wiki User ID]].&lt;br /&gt;
&lt;br /&gt;
==What to do with your copy of {{SITENAME}}==&lt;br /&gt;
Most likely you are downloading a copy of {{SITENAME}} because your &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; site does not allow internet access.  Maintaining a local copy of {{SITENAME}} provides access in a format that can be kept as up-to-date as you like.&lt;br /&gt;
&lt;br /&gt;
If you want to present {{SITENAME}} totally faithful to its original format, you&#039;ll want to install a local copy of Mediawiki, the software currently hosting {{SITENAME}}:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://www.mediawiki.org/wiki/MediaWiki&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are a variety of methods for importing a {{SITENAME}} XML dump and related binary uploads, all explained at the Mediawiki site:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://www.mediawiki.org/wiki/Manual:Importing_XML_dumps&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of Mediawiki installed, the simplest way to load the SirWiki content in a single step is via the script in &amp;lt;code&amp;gt;maintenance/importDump.php&amp;lt;/code&amp;gt; (documentation provided in &amp;quot;Using importDump.php, if you have shell access&amp;quot; at the above link). For example, issue a command like the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;php \www\mediawiki\maintenance\importDump.php c:\users\dave\downloads\sirWiki_current.xml&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
The above command can be run in Windows, if the MoWeS portable reader was installed in the root directory containing &amp;lt;code&amp;gt;\www&amp;lt;/code&amp;gt; and the current SirWiki was saved in the above &amp;lt;code&amp;gt;downloads&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
Alternately, you can forgo the local installation of Mediawiki and use one of the aftermarket readers designed to import and display the Mediawiki XML dump.  The most popular one is Wikitaxi (Windows only; no Linux or OS/X version is provided):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://en.wikipedia.org/wiki/Wikipedia:Database_download#WikiTaxi&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A number of other viewing options are explained at the above page.&lt;br /&gt;
&lt;br /&gt;
==Copyright==&lt;br /&gt;
All material in M204wiki is copyright 2013 by Rocket Software, Inc., of Waltham, Massachusetts.  The material is provided here as reference material for our clients, for users of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[Model 204]]&amp;lt;/var&amp;gt;, and for educational purposes in the technical community.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Sirius Homepage: http://sirius-software.com&lt;br /&gt;
&amp;lt;li&amp;gt;Mediawiki: http://www.mediawiki.org&amp;lt;&lt;br /&gt;
&amp;lt;li&amp;gt;Wikitaxi: http://www.wikitaxi.org&lt;br /&gt;
&amp;lt;li&amp;gt;Wikimedia XML dump importing: http://www.mediawiki.org/wiki/Manual:Importing_XML_dumps&lt;br /&gt;
&amp;lt;li&amp;gt;Mediawiki XML dump format: http://meta.wikimedia.org/wiki/Help:Export&lt;br /&gt;
&amp;lt;li&amp;gt;Wikipedia&#039;s information page on using XML database dumps: http://en.wikipedia.org/wiki/Wikipedia:Database_download&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=APSYSEC_parameter&amp;diff=65896</id>
		<title>APSYSEC parameter</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=APSYSEC_parameter&amp;diff=65896"/>
		<updated>2013-12-09T03:26:42Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:APSYSEC 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;X&#039;00&#039;&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;Prior to Version 7.5 of Model&amp;amp;nbsp;204, this parameter required the [[SirSafe]] product.&lt;br /&gt;
&amp;lt;dt&amp;gt;Introduced&lt;br /&gt;
&amp;lt;dd&amp;gt;&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;
The APSYSEC parameter makes it possible for a system&lt;br /&gt;
manager to START, STOP, DEBUG, or TEST any subsystem, without have to&lt;br /&gt;
add the system manager to the sclass authorized to do these things.&lt;br /&gt;
Setting this parameter has no effect at sites not authorized for &#039;&#039;SirSafe&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The APSYSEC parameter is a bitmask parameter where the bits mean:&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;01&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;System managers are allowed to START, STOP, DEBUG, or TEST any subsystem.&lt;br /&gt;
This saves the effort of adding a system manager to a privileged&lt;br /&gt;
sclass in every subsystem in an Online so that the system manager could&lt;br /&gt;
at least start and stop the subsystems &amp;amp;mdash; a common thing for system&lt;br /&gt;
managers to need to do.&lt;br /&gt;
&lt;br /&gt;
In fact, if no users other than system managers need to start or stop&lt;br /&gt;
subsystems, this can eliminate the need to even have sclasses in a subsystem&lt;br /&gt;
to allow starting or stopping of the subsystem.&lt;br /&gt;
In some cases, eliminating this need can reduce the subsystem definition to&lt;br /&gt;
a single default sclass, which has performance benefits &amp;amp;mdash; no sclass&lt;br /&gt;
lookup is required when a user enters a subsystem, and no sclass-specific&lt;br /&gt;
compiles are done for the procedures in the subsystem.&lt;br /&gt;
&lt;br /&gt;
Because of the overhead associated with multiple sclasses in a&lt;br /&gt;
subsystem (not huge, but possibly measurable), some sites take the risk&lt;br /&gt;
of adding START and STOP privileges (and perhaps TEST and DEBUG)&lt;br /&gt;
to the one and only sclass for a subsystem.&lt;br /&gt;
This, of course, means that any user can start and stop the subsystem, which&lt;br /&gt;
might not be ideal from a control or security perspective.&lt;br /&gt;
&lt;br /&gt;
The APSYSEC parameter allows such a site to keep one sclass but remove the risk.&lt;br /&gt;
START and STOP privileges can be removed from the default/only sclass for a&lt;br /&gt;
subsystem, and only system managers (or users running subsystems that give&lt;br /&gt;
them system manager privileges) can start or stop subsystems.&lt;br /&gt;
&lt;br /&gt;
To continue using [[Model 204]]&#039;s traditional fine-grained&lt;br /&gt;
control of START, STOP, TEST, and DEBUG privileges, the APSYSEC X&#039;01&#039; bit&lt;br /&gt;
should &#039;&#039;not&#039;&#039; be set.&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- APSYXMM - Deprecated --&amp;gt;&lt;br /&gt;
&amp;lt;!-- APSYXMP - deprecated --&amp;gt;&lt;br /&gt;
[[Category:System parameters]]&lt;br /&gt;
[[Category:Parameters]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=COMMLOG_parameter&amp;diff=65618</id>
		<title>COMMLOG parameter</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=COMMLOG_parameter&amp;diff=65618"/>
		<updated>2013-11-08T14:27:58Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:COMMLOG 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;X&#039;00&#039;&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;
==Description==&lt;br /&gt;
This is a bitmask parameter that affects the type of login performed&lt;br /&gt;
by daemon threads when logged in via a $comm function ($command, $commndl,&lt;br /&gt;
or $commbg), or via a New method for a daemon class object.&lt;br /&gt;
&lt;br /&gt;
The bits in this parameter mean:&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;01&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;A login that bypasses external authorizer (RACF, ACF2, Top Secret) validation&lt;br /&gt;
is performed.&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;02&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;A trusted login is performed via the external authorizer.&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;b&amp;gt;X&#039;04&#039;&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;This activates support for daemon login improvements when used in conjunction with the X&#039;02&#039; bit.&lt;br /&gt;
&lt;br /&gt;
COMMLOG=6 activates an additional layer of processing between Model 204 and ACF2 for processing daemon logins (including $COMMBG and related functions). With COMMLOG=6, each user that performs a login passing a password will get a UUP block, that will be shared with any of its daemons.&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;80&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;If this bit is set along with the X&#039;04&#039; bit, any CCASNAP will include extra information relating to the caching of external authorizer information.&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;20&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;This bit activates diagnostic processing that can be fairly expensive. Only set this option if directed by Rocket support.&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If COMMLOG is set to zero, the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Sirius Mods&amp;lt;/var&amp;gt; attempts to determine if the external&lt;br /&gt;
authorizer (if any) supports trusted login (RACF, ACF2, and Top Secret all&lt;br /&gt;
support trusted login):&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the authorizer does, the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Sirius Mods&amp;lt;/var&amp;gt; sets COMMLOG to X&#039;02&#039; and then does all&lt;br /&gt;
trusted logins via the external authorizer.&lt;br /&gt;
&amp;lt;li&amp;gt;If the authorizer does not, the flag is set to&lt;br /&gt;
X&#039;01&#039;, and all logins for $comm and daemon objects do not use the external&lt;br /&gt;
authorizer.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, this parameter should be left as 0, though it might make sense&lt;br /&gt;
to set it to X&#039;01&#039; for efficiency &amp;amp;mdash; there is considerable overhead&lt;br /&gt;
in an external authorizer login, even a trusted one.&lt;br /&gt;
&lt;br /&gt;
The downside of setting this parameter to X&#039;01&#039; is that no external authorizer&lt;br /&gt;
logging will be performed for the daemon login (this might be viewed as a benefit),&lt;br /&gt;
and things that required external authorizer validation (such as sequential file&lt;br /&gt;
access) will not be correctly controlled by the external authorizer.&lt;br /&gt;
[[Category:System parameters]]&lt;br /&gt;
[[Category:Parameters]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=WEBOPT_parameter&amp;diff=64328</id>
		<title>WEBOPT parameter</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=WEBOPT_parameter&amp;diff=64328"/>
		<updated>2013-09-01T11:58:13Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:WEBOPT 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;0&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 resettable&lt;br /&gt;
&amp;lt;dt&amp;gt;Related products&lt;br /&gt;
&amp;lt;dd&amp;gt;Janus Web Server&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.5&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
==Description==&lt;br /&gt;
The WEBOPT parameter is a standard Model 204 bitmask-type parameter introduced in&lt;br /&gt;
Sirius Mods version 6.5. The X&#039;01&#039; setting causes RACF calls to be performed in a&lt;br /&gt;
special RACF subtask.&lt;br /&gt;
&lt;br /&gt;
In cases where Janus Web Server is deployed and RACF handles login validation, the&lt;br /&gt;
RACF call load for login-protected web pages can get very high. Since these calls often&lt;br /&gt;
involve synchronous I/Os that stop the Model 204 main task, they are generally not very&lt;br /&gt;
good for Model 204 performance. However, if you set the WEBOPT system parameter&lt;br /&gt;
to X&#039;01&#039;, these calls are done in a subtask, reducing their impact on Online performance&lt;br /&gt;
dramatically.&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;01&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;RACF Calls are performed in a special RACF subtask.&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;02&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;Introduced with Sirius Mods 7.9, this bit directs that Model&amp;amp;nbsp;204 set the RACF Control Group Name as the APPL parameter for RACF verify calls. Note: this parameter only takes effect if the X&#039;01&#039; bit is also set.&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
When WEBOPT includes the X&#039;03&#039; bits, the RACF Control Group name will be set as the APPL parameter.&lt;br /&gt;
This enables both the generation of RACF Pass Tickets and the use of extended APPLDATA(&#039;RACF-INITSTATS(DAILY)&#039;) to limit history updates for RACF logins.&lt;br /&gt;
The APPL name is set to the value of the Model&amp;amp;nbsp;204 RACF Control Group name, which can be found by issuing the following command:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;AUTHCTL VIEW&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:System parameters]]&lt;br /&gt;
[[Category:Parameters]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=WEBOPT_parameter&amp;diff=64327</id>
		<title>WEBOPT parameter</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=WEBOPT_parameter&amp;diff=64327"/>
		<updated>2013-09-01T03:09:08Z</updated>

		<summary type="html">&lt;p&gt;Gary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:WEBOPT 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;0&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 resettable&lt;br /&gt;
&amp;lt;dt&amp;gt;Related products&lt;br /&gt;
&amp;lt;dd&amp;gt;Janus Web Server&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.5&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
==Description==&lt;br /&gt;
The WEBOPT parameter is a standard Model 204 bitmask-type parameter introduced in&lt;br /&gt;
Sirius Mods version 6.5. The X&#039;01&#039; setting causes RACF calls to be performed in a&lt;br /&gt;
special RACF subtask.&lt;br /&gt;
&lt;br /&gt;
In cases where Janus Web Server is deployed and RACF handles login validation, the&lt;br /&gt;
RACF call load for login-protected web pages can get very high. Since these calls often&lt;br /&gt;
involve synchronous I/Os that stop the Model 204 main task, they are generally not very&lt;br /&gt;
good for Model 204 performance. However, if you set the WEBOPT system parameter&lt;br /&gt;
to X&#039;01&#039;, these calls are done in a subtask, reducing their impact on Online performance&lt;br /&gt;
dramatically.&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;01&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;RACF Calls are performed in a special RACF subtask.&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;02&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;Set the RACF Control Group Name as the APPL parameter for RACF verify calls. Note: this parameter only takes effect if the X&#039;01&#039; bit is also set.&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
When WEBOPT includes the X&#039;03&#039; bits, the RACF Control Group name will be set as the APPL parameter.&lt;br /&gt;
This enables both the generation of RACF Pass Tickets and the use of extended APPLDATA(&#039;RACF-INITSTATS(DAILY)&#039;) to limit history updates for RACF logins.&lt;br /&gt;
The APPL name is set to the value of the Model&amp;amp;nbsp;204 RACF Control Group name, which can be found by issuing the following command:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;AUTHCTL VIEW&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:System parameters]]&lt;br /&gt;
[[Category:Parameters]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=WEBOPT_parameter&amp;diff=64326</id>
		<title>WEBOPT parameter</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=WEBOPT_parameter&amp;diff=64326"/>
		<updated>2013-09-01T03:08:38Z</updated>

		<summary type="html">&lt;p&gt;Gary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:WEBOPT 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;0&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 resettable&lt;br /&gt;
&amp;lt;dt&amp;gt;Related products&lt;br /&gt;
&amp;lt;dd&amp;gt;Janus Web Server&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.5&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
==Description==&lt;br /&gt;
The WEBOPT parameter is a standard Model 204 bitmask-type parameter introduced in&lt;br /&gt;
Sirius Mods version 6.5. The X&#039;01&#039; setting causes RACF calls to be performed in a&lt;br /&gt;
special RACF subtask.&lt;br /&gt;
&lt;br /&gt;
In cases where Janus Web Server is deployed and RACF handles login validation, the&lt;br /&gt;
RACF call load for login-protected web pages can get very high. Since these calls often&lt;br /&gt;
involve synchronous I/Os that stop the Model 204 main task, they are generally not very&lt;br /&gt;
good for Model 204 performance. However, if you set the WEBOPT system parameter&lt;br /&gt;
to X&#039;01&#039;, these calls are done in a subtask, reducing their impact on Online performance&lt;br /&gt;
dramatically.&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;01&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;RACF Calls are performed in a special RACF subtask.&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;02&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;Set the RACF Control Group Name as the APPL parameter for RACF verify calls. Note: this parameter only takes effect if the X&#039;01&#039; bit is also set.&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
When WEBOPT includes the X&#039;03&#039; bits, the RACF Control Group name will be set as the APPL parameter.&lt;br /&gt;
This enables both the generation of RACF Pass Tickets and the use of extended APPLDATA(&#039;RACF-INITSTATS(DAILY)&#039;) to limit history updates for RACF logins.&lt;br /&gt;
The APPL name is set to the value of the Model&amp;amp;nbsp;204 RACF Control Group name, which can be found by issuing the following command:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
AUTHCTL VIEW&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:System parameters]]&lt;br /&gt;
[[Category:Parameters]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=WEBOPT_parameter&amp;diff=64325</id>
		<title>WEBOPT parameter</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=WEBOPT_parameter&amp;diff=64325"/>
		<updated>2013-08-31T22:24:15Z</updated>

		<summary type="html">&lt;p&gt;Gary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:WEBOPT 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;0&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 resettable&lt;br /&gt;
&amp;lt;dt&amp;gt;Related products&lt;br /&gt;
&amp;lt;dd&amp;gt;Janus Web Server&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.5&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
==Description==&lt;br /&gt;
The WEBOPT parameter is a standard Model 204 bitmask-type parameter introduced in&lt;br /&gt;
Sirius Mods version 6.5. The X&#039;01&#039; setting causes RACF calls to be performed in a&lt;br /&gt;
special RACF subtask.&lt;br /&gt;
&lt;br /&gt;
In cases where Janus Web Server is deployed and RACF handles login validation, the&lt;br /&gt;
RACF call load for login-protected web pages can get very high. Since these calls often&lt;br /&gt;
involve synchronous I/Os that stop the Model 204 main task, they are generally not very&lt;br /&gt;
good for Model 204 performance. However, if you set the WEBOPT system parameter&lt;br /&gt;
to X&#039;01&#039;, these calls are done in a subtask, reducing their impact on Online performance&lt;br /&gt;
dramatically.&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;01&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;RACF Calls are performed in a special RACF subtask.&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;02&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;Set the RACF Control Group Name as the APPL parameter for RACF verify calls. Note: this parameter only takes effect if the X&#039;01&#039; bit is also set.&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
When WEBOPT includes the X&#039;03&#039; bits, the RACF Control Group name will be set as the APPL parameter.&lt;br /&gt;
This enables both the generation of RACF Pass Tickets and the use of extended loggin rules.&lt;br /&gt;
The APPL name is set to the value of the Model&amp;amp;nbsp;204 RACF Control Group name, which can be found by issuing the following command:&lt;br /&gt;
&amp;lt;xmp&amp;gt;&lt;br /&gt;
AUTHCTL VIEW&lt;br /&gt;
&amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:System parameters]]&lt;br /&gt;
[[Category:Parameters]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Database_download&amp;diff=54120</id>
		<title>M204wiki:Database download</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Database_download&amp;diff=54120"/>
		<updated>2013-03-18T03:47:52Z</updated>

		<summary type="html">&lt;p&gt;Gary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The content of {{SITENAME}} is available for download, provided only that no copyright notices may be removed or altered.  The download format is a zip archive that contains both an XML dump of the wiki pages suitable for loading into your own installation of Mediawiki (or one of the many personal wiki implementations) and a tar file with all of the uploaded images and other objects such as PDF files.&lt;br /&gt;
&lt;br /&gt;
==How to download a copy of {{SITENAME}}==&lt;br /&gt;
Use one of the following URLs to download a copy of the {{SITENAME}} contents:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://M204wiki.rocketsoftware.com/images/M204wiki_full.zip or &lt;br /&gt;
http://M204wiki.rocketsoftware.com/images/M204wiki_current.zip&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;M204wiki_full.zip&#039;&#039;&#039; contains the full {{SITENAME}} content (minus user records, security groups and &amp;quot;talk&amp;quot; pages), including all past versions of each page.  As of March 2013, this file is approximately 18 megabytes of data, and expected to constantly increase in size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;M204wiki_current.zip&#039;&#039;&#039; contains only the latest version of each {{SITENAME}} page (minus user records, security groups and &amp;quot;talk&amp;quot; pages).  This copy provides the latest version of all material but &#039;&#039;without&#039;&#039; the page history.  As of March 2013, this file is approximately 5 megabytes in size, and it is expected to increase in size but to always remain smaller than the &amp;quot;full&amp;quot; version.  &#039;&#039;&#039;This is probably the copy you want.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Both of the above files are refreshed every night, just after midnight Boston time.&lt;br /&gt;
&lt;br /&gt;
===Updating local copies of {{SITENAME}}===&lt;br /&gt;
If you make changes to a downloaded copy of the {{SITENAME}} content, then of course those changes will be lost if you refresh the downloaded copy; The download and import process is a full refresh, and no incremental option is currently offered.&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to contribute to {{SITENAME}}, you will need to [[M204wiki:Get M204wiki User ID|obtain a M204wiki User ID]].&lt;br /&gt;
&lt;br /&gt;
==What to do with your copy of {{SITENAME}}==&lt;br /&gt;
Most likely you are downloading a copy of {{SITENAME}} because your &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nobr;204&amp;lt;/var&amp;gt; site does not allow internet access.  Maintaining a local copy of {{SITENAME}} provides access in a format that can be kept as up-to-date as you like.&lt;br /&gt;
&lt;br /&gt;
If you want to present {{SITENAME}} totally faithful to its original format, you&#039;ll want to install a local copy of Mediawiki, the software currently hosting {{SITENAME}}:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://www.mediawiki.org/wiki/MediaWiki&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are a variety of methods for importing a {{SITENAME}} XML dump and related binary uploads, all explained at the Mediawiki site:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://www.mediawiki.org/wiki/Manual:Importing_XML_dumps&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of Mediawiki installed, the simplest way to load the SirWiki content in a single step is via the script in &amp;lt;code&amp;gt;maintenance/importDump.php&amp;lt;/code&amp;gt; (documentation provided in &amp;quot;Using importDump.php, if you have shell access&amp;quot; at the above link). For example, issue a command like the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;php \www\mediawiki\maintenance\importDump.php c:\users\dave\downloads\sirWiki_current.xml&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
The above command can be run in Windows, if the MoWeS portable reader was installed in the root directory containing &amp;lt;code&amp;gt;\www&amp;lt;/code&amp;gt; and the current SirWiki was saved in the above &amp;lt;code&amp;gt;downloads&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
Alternately, you can forgo the local installation of Mediawiki and use one of the aftermarket readers designed to import and display the Mediawiki XML dump.  The most popular one is Wikitaxi (Windows only; no Linux or OS/X version is provided):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://en.wikipedia.org/wiki/Wikipedia:Database_download#WikiTaxi&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A number of other viewing options are explained at the above page.&lt;br /&gt;
&lt;br /&gt;
==Copyright==&lt;br /&gt;
All material in M204wiki is copyright 2013 by Rocket Software, Inc., of Waltham, Massachusetts.  The material is provided here as reference material for our clients, for users of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[Model 204]]&amp;lt;/var&amp;gt;, and for educational purposes in the technical community.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Sirius Homepage: http://sirius-software.com&lt;br /&gt;
&amp;lt;li&amp;gt;Mediawiki: http://www.mediawiki.org&amp;lt;&lt;br /&gt;
&amp;lt;li&amp;gt;Wikitaxi: http://www.wikitaxi.org&lt;br /&gt;
&amp;lt;li&amp;gt;Wikimedia XML dump importing: http://www.mediawiki.org/wiki/Manual:Importing_XML_dumps&lt;br /&gt;
&amp;lt;li&amp;gt;Mediawiki XML dump format: http://meta.wikimedia.org/wiki/Help:Export&lt;br /&gt;
&amp;lt;li&amp;gt;Wikipedia&#039;s information page on using XML database dumps: http://en.wikipedia.org/wiki/Wikipedia:Database_download&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Database_download&amp;diff=54119</id>
		<title>M204wiki:Database download</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Database_download&amp;diff=54119"/>
		<updated>2013-03-18T03:25:12Z</updated>

		<summary type="html">&lt;p&gt;Gary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The content of {{SITENAME}} is available for download, provided only that no copyright notices may be removed or altered.  The download format is a zip archive that contains both an XML dump of the wiki pages suitable for loading into your own installation of Mediawiki (or one of the many personal wiki implementations) and a tar file with all of the uploaded images and other objects such as PDF files.&lt;br /&gt;
&lt;br /&gt;
==How to download a copy of {{SITENAME}}==&lt;br /&gt;
Use one of the following URLs to download a copy of the {{SITENAME}} contents:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://M204wiki.rocketsoftware.com/images/M204wiki_full.zip or &lt;br /&gt;
http://M204wiki.rocketsoftware.com/images/M204wiki_current.zip&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;M204wiki_full.zip&#039;&#039;&#039; contains the full {{SITENAME}} content (minus user records, security groups and &amp;quot;talk&amp;quot; pages), including all past versions of each page.  As of March 2013, this file is approximately 6.5 megabytes of data, and expected to constantly increase in size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;M204wiki_current.zip&#039;&#039;&#039; contains only the latest version of each {{SITENAME}} page (minus user records, security groups and &amp;quot;talk&amp;quot; pages).  This copy provides the latest version of all material but &#039;&#039;without&#039;&#039; the page history.  As of March 2013, this file is a little over 1 megabyte in size, and it is expected to increase in size but to always remain smaller than the &amp;quot;full&amp;quot; version.  &#039;&#039;&#039;This is probably the copy you want.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Both of the above files are refreshed every night, just after midnight Boston time.&lt;br /&gt;
&lt;br /&gt;
===Updating local copies of {{SITENAME}}===&lt;br /&gt;
If you make changes to a downloaded copy of the {{SITENAME}} content, then of course those changes will be lost if you refresh the downloaded copy; The download and import process is a full refresh, and no incremental option is currently offered.&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to contribute to {{SITENAME}}, you will need to [[M204wiki:Get M204wiki User ID|obtain a M204wiki User ID]].&lt;br /&gt;
&lt;br /&gt;
==What to do with your copy of {{SITENAME}}==&lt;br /&gt;
Most likely you are downloading a copy of {{SITENAME}} because your &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nobr;204&amp;lt;/var&amp;gt; site does not allow internet access.  Maintaining a local copy of {{SITENAME}} provides access in a format that can be kept as up-to-date as you like.&lt;br /&gt;
&lt;br /&gt;
If you want to present {{SITENAME}} totally faithful to its original format, you&#039;ll want to install a local copy of Mediawiki, the software currently hosting {{SITENAME}}:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://www.mediawiki.org/wiki/MediaWiki&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are a variety of methods for importing a {{SITENAME}} XML dump and related binary uploads, all explained at the Mediawiki site:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://www.mediawiki.org/wiki/Manual:Importing_XML_dumps&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of Mediawiki installed, the simplest way to load the SirWiki content in a single step is via the script in &amp;lt;code&amp;gt;maintenance/importDump.php&amp;lt;/code&amp;gt; (documentation provided in &amp;quot;Using importDump.php, if you have shell access&amp;quot; at the above link). For example, issue a command like the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;php \www\mediawiki\maintenance\importDump.php c:\users\dave\downloads\sirWiki_current.xml&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
The above command can be run in Windows, if the MoWeS portable reader was installed in the root directory containing &amp;lt;code&amp;gt;\www&amp;lt;/code&amp;gt; and the current SirWiki was saved in the above &amp;lt;code&amp;gt;downloads&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
Alternately, you can forgo the local installation of Mediawiki and use one of the aftermarket readers designed to import and display the Mediawiki XML dump.  The most popular one is Wikitaxi (Windows only; no Linux or OS/X version is provided):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://en.wikipedia.org/wiki/Wikipedia:Database_download#WikiTaxi&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A number of other viewing options are explained at the above page.&lt;br /&gt;
&lt;br /&gt;
==Copyright==&lt;br /&gt;
All material in M204wiki is copyright 2013 by Rocket Software, Inc., of Waltham, Massachusetts.  The material is provided here as reference material for our clients, for users of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[Model 204]]&amp;lt;/var&amp;gt;, and for educational purposes in the technical community.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Sirius Homepage: http://sirius-software.com&lt;br /&gt;
&amp;lt;li&amp;gt;Mediawiki: http://www.mediawiki.org&amp;lt;&lt;br /&gt;
&amp;lt;li&amp;gt;Wikitaxi: http://www.wikitaxi.org&lt;br /&gt;
&amp;lt;li&amp;gt;Wikimedia XML dump importing: http://www.mediawiki.org/wiki/Manual:Importing_XML_dumps&lt;br /&gt;
&amp;lt;li&amp;gt;Mediawiki XML dump format: http://meta.wikimedia.org/wiki/Help:Export&lt;br /&gt;
&amp;lt;li&amp;gt;Wikipedia&#039;s information page on using XML database dumps: http://en.wikipedia.org/wiki/Wikipedia:Database_download&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Database_download&amp;diff=54118</id>
		<title>M204wiki:Database download</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Database_download&amp;diff=54118"/>
		<updated>2013-03-18T03:09:06Z</updated>

		<summary type="html">&lt;p&gt;Gary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The current content of {{SITENAME}} is available for download, provided only that no copyright notices may be removed or altered.  The download format is a zip archive that contains both an XML dump of the wiki pages suitable for loading into your own installation of Mediawiki (or one of the many personal wiki implementations) and a tar file with all of the uploaded images and other objects such as PDF files.&lt;br /&gt;
&lt;br /&gt;
==How to download a copy of M204wiki==&lt;br /&gt;
Use one of the following URLs to download a copy of the M204wiki contents:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://M204wiki.rocketsoftware.com/images/M204wiki_full.xml or &lt;br /&gt;
http://M204wiki.rocketsoftware.com/images/M204wiki_current.xml&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;M204wiki_full.xml&#039;&#039;&#039; contains the full M204wiki content (minus user records, security groups and &amp;quot;talk&amp;quot; pages), including all past versions of each page.  As of December 2012, this file is approximately 225 megabytes of data, and expected to constantly increase in size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;M204wiki_current.xml&#039;&#039;&#039; contains only the latest update of each M204wiki page (minus user records, security groups and &amp;quot;talk&amp;quot; pages).  This copy provides the latest version of all material but &#039;&#039;without&#039;&#039; the page history.  As of December 2012, this file is approximately 15 megabytes in size, and it is expected to increase in size but to always remain smaller than the &amp;quot;full&amp;quot; version.  &#039;&#039;&#039;This is probably the copy you want.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Both of the above files are refreshed every night, at midnight EST, from SirWiki.&lt;br /&gt;
&lt;br /&gt;
===Updating M204wiki===&lt;br /&gt;
If you make changes to a downloaded copy of M204wiki, then of course those changes will be lost if you refresh the downloaded copy; The download and import process is a full refresh, and no incremental option is currently offered.&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to contribute to M204wiki, you will need to [[M204wiki:Get M204wiki User ID|obtain a M204wiki User ID]].&lt;br /&gt;
&lt;br /&gt;
==What to do with your copy of M204wiki==&lt;br /&gt;
Most likely you are taking a copy of M204wiki because your &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; site does not provide internet access from your site during work hours.  Keeping a local copy of the Sirius Wiki provides the Sirius documentation in a format that can be kept as up-to-date as you like.&lt;br /&gt;
&lt;br /&gt;
If you want to present the M204wiki in its original format, you&#039;ll want to install a local copy of Mediawiki, the software currently hosting M204wiki:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://www.mediawiki.org/wiki/MediaWiki&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are a variety of methods for importing the SirWiki dump, all explained at the Mediawiki site:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://www.mediawiki.org/wiki/Manual:Importing_XML_dumps&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of Mediawiki installed, the simplest way to load the SirWiki content in a single step is via the script in &amp;lt;code&amp;gt;maintenance/importDump.php&amp;lt;/code&amp;gt; (documentation provided in &amp;quot;Using importDump.php, if you have shell access&amp;quot; at the above link). For example, issue a command like the following:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;php \www\mediawiki\maintenance\importDump.php c:\users\dave\downloads\sirWiki_current.xml&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
The above command can be run in Windows, if the MoWeS portable reader was installed in the root directory containing &amp;lt;code&amp;gt;\www&amp;lt;/code&amp;gt; and the current SirWiki was saved in the above &amp;lt;code&amp;gt;downloads&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
Alternately, you can forgo the local installation of Mediawiki and use one of the aftermarket readers designed to import and display the Mediawiki XML dump.  The most popular one is Wikitaxi (Windows only; no Linux or OS/X version is provided):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;http://en.wikipedia.org/wiki/Wikipedia:Database_download#WikiTaxi&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A number of other viewing options are explained at the above page.&lt;br /&gt;
&lt;br /&gt;
==Copyright==&lt;br /&gt;
All material in M204wiki is copyright 2013 by Rocket Software, Inc., of Waltham, Massachusetts.  The material is provided here as reference material for our clients, for users of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[Model 204]]&amp;lt;/var&amp;gt;, and for educational purposes in the technical community.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Sirius Homepage: http://sirius-software.com&lt;br /&gt;
&amp;lt;li&amp;gt;Mediawiki: http://www.mediawiki.org&amp;lt;&lt;br /&gt;
&amp;lt;li&amp;gt;Wikitaxi: http://www.wikitaxi.org&lt;br /&gt;
&amp;lt;li&amp;gt;Wikimedia XML dump importing: http://www.mediawiki.org/wiki/Manual:Importing_XML_dumps&lt;br /&gt;
&amp;lt;li&amp;gt;Mediawiki XML dump format: http://meta.wikimedia.org/wiki/Help:Export&lt;br /&gt;
&amp;lt;li&amp;gt;Wikipedia&#039;s information page on using XML database dumps: http://en.wikipedia.org/wiki/Wikipedia:Database_download&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Privacy_policy&amp;diff=52486</id>
		<title>M204wiki:Privacy policy</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Privacy_policy&amp;diff=52486"/>
		<updated>2013-02-22T05:03:16Z</updated>

		<summary type="html">&lt;p&gt;Gary: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Privacy Policy is designed to inform users of M204wiki about how Rocket Software, Inc. and its&lt;br /&gt;
affiliates (&amp;quot;Rocket&amp;quot;, &amp;quot;we&amp;quot;, or &amp;quot;us&amp;quot;) gathers and uses personal information&lt;br /&gt;
collected by us in connection with use of M204wiki.  We will take reasonable steps&lt;br /&gt;
to protect user privacy consistent with the guidelines set forth in this policy and&lt;br /&gt;
with applicable U.S. laws.  In this policy, &amp;quot;user&amp;quot; or &amp;quot;you&amp;quot; means any individual&lt;br /&gt;
using M204wiki. By visiting M204wiki, you are accepting the practices described in&lt;br /&gt;
this Privacy policy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;What personal information do we collect?&amp;lt;/h2&amp;gt;&lt;br /&gt;
We collect the personal information you disclose when you sign up for a M204wiki&lt;br /&gt;
account.  You are not required to register for an account or to provide any&lt;br /&gt;
personal information to us in order to use M204wiki.&lt;br /&gt;
&lt;br /&gt;
As is true of most Web sites, we gather certain information automatically and&lt;br /&gt;
store it in log files (&amp;quot;Web Tracking Information&amp;quot;). This information includes&lt;br /&gt;
information such as your IP address, the time of your visit, your browser type,&lt;br /&gt;
and your browser&#039;s language setting.  We do not link this automatically-collected&lt;br /&gt;
data to personally identifiable information.  M204wiki also may send one or more&lt;br /&gt;
cookies &amp;amp;mdash; a small file that lives in your web browser that helps M204wiki operate&lt;br /&gt;
with full functionality (such as keeping you logged into M204wiki).  Most web&lt;br /&gt;
browsers allow you to disable cookies, and you are welcome to continue to use&lt;br /&gt;
M204wiki if you choose to do so.  However, some of M204wiki&#039;s features may not&lt;br /&gt;
function properly if cookies are disabled.&lt;br /&gt;
&lt;br /&gt;
If you send a communication to Rocket, we may hold onto that communication so&lt;br /&gt;
that we can respond appropriately, and so that we can incorporate your feedback&lt;br /&gt;
to improve M204wiki.&lt;br /&gt;
&lt;br /&gt;
M204wiki collects all the information you provide when you modify the content of a&lt;br /&gt;
page (such as making edits, creating pages, etc.).  An indicator that you provided&lt;br /&gt;
that information is left on the History tab associated with the new or edited page,&lt;br /&gt;
on the Recent Changes link, and in your user contributions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;How do we use information collected?&amp;lt;/h2&amp;gt;&lt;br /&gt;
We will use and store your personal information for the purpose of making&lt;br /&gt;
M204wiki available to you, to analyze and enhance the operation of M204wiki, and for&lt;br /&gt;
the internal operational and administrative purposes of M204wiki.&lt;br /&gt;
&lt;br /&gt;
We use Web Tracking Information to administer M204wiki and to understand how&lt;br /&gt;
well M204wiki is working.  This allows us to determine which features visitors like&lt;br /&gt;
best to help us improve M204wiki.&lt;br /&gt;
&lt;br /&gt;
We may also create statistical, aggregated data relating to our users and M204wiki&lt;br /&gt;
for analytical purposes.  Aggregated data is derived from your information, but in&lt;br /&gt;
its aggregated form it does not relate to or identify any individual.  This data is&lt;br /&gt;
used to understand our customer base and to develop, improve, and market our&lt;br /&gt;
products.&lt;br /&gt;
&lt;br /&gt;
Notwithstanding the above, we may in any event use personal information and&lt;br /&gt;
other information collected through M204wiki, to the extent required by law or legal&lt;br /&gt;
process, to resolve disputes, to enforce our agreements (including this Privacy&lt;br /&gt;
Policy and the [[M204wiki:Terms of use|Terms of use]]) with you, or, if in our reasonable discretion use is&lt;br /&gt;
necessary, to protect our legal rights or to protect third parties.&lt;br /&gt;
&lt;br /&gt;
If you register and contribute to M204wiki, we may send you administrative emails.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;What personal information do we disclose to third parties?&amp;lt;/h2&amp;gt;&lt;br /&gt;
We do not disclose your name or email address to other users of M204wiki.  We&lt;br /&gt;
only share your personal information with others in the following circumstances:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;as described in this Privacy policy;&lt;br /&gt;
&amp;lt;li&amp;gt;with third party contractors, subject to obligations of confidentiality, who&lt;br /&gt;
are permitted to use the information only to perform services for Rocket;&lt;br /&gt;
&amp;lt;li&amp;gt;with any law enforcement, judicial authority, or governmental or regulatory&lt;br /&gt;
authority, to the extent required by law or if in our reasonable discretion&lt;br /&gt;
disclosure is necessary to enforce or protect our legal rights or to protect&lt;br /&gt;
third parties; and&lt;br /&gt;
&amp;lt;li&amp;gt;as we, in our sole judgment, deem necessary to investigate a breach of&lt;br /&gt;
security.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
If Rocket becomes involved in a merger or acquisition or any form of sale&lt;br /&gt;
of some or all of its assets, we reserve the right to transfer the information we&lt;br /&gt;
have collected in connection with your use of M204wiki to the successor to our&lt;br /&gt;
business.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Third-party websites&amp;lt;/h2&amp;gt;&lt;br /&gt;
This Web site contains links to other sites that are not owned or controlled by&lt;br /&gt;
Rocket.  Please be aware that we, Rocket, are not responsible&lt;br /&gt;
for the privacy practices of such other sites.  We encourage you to read the&lt;br /&gt;
privacy statements of each and every Web site that collects personally&lt;br /&gt;
identifiable information.  This privacy statement applies only to information&lt;br /&gt;
collected by this Web site.&lt;br /&gt;
&amp;lt;h2&amp;gt;Security&amp;lt;/h2&amp;gt;&lt;br /&gt;
We follow generally accepted industry standards to protect the personal&lt;br /&gt;
information submitted to us, both during transmission and once we receive it. No&lt;br /&gt;
method of transmission over the Internet or method of electronic storage is 100%&lt;br /&gt;
secure, however.  Therefore, while we strive to use commercially acceptable&lt;br /&gt;
means to protect your personal information, we cannot guarantee its absolute&lt;br /&gt;
security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Modifications to this policy&amp;lt;/h2&amp;gt;&lt;br /&gt;
We reserve the right to modify this privacy statement at any time. If we make&lt;br /&gt;
material changes to this policy, we will notify you here, by email, or by means of&lt;br /&gt;
a notice on our home page.  Notwithstanding any modifications we may make,&lt;br /&gt;
any personal information collected from you will be treated in accordance with&lt;br /&gt;
the privacy policy in effect at the time information was collected, unless we obtain&lt;br /&gt;
your consent otherwise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Effective date of this policy:&amp;lt;/b&amp;gt; 20 July 2011&lt;br /&gt;
&lt;br /&gt;
[[Category:Legal]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Privacy_policy&amp;diff=52484</id>
		<title>M204wiki:Privacy policy</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Privacy_policy&amp;diff=52484"/>
		<updated>2013-02-22T04:38:04Z</updated>

		<summary type="html">&lt;p&gt;Gary: Gary moved page M204wiki:M204wiki:Privacy policy to M204wiki:Privacy policy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Privacy Policy is designed to inform users of SirWiki about how Sirius&lt;br /&gt;
Software, Inc. (&amp;quot;Sirius&amp;quot;, &amp;quot;we&amp;quot;, or &amp;quot;us&amp;quot;) gathers and uses personal information&lt;br /&gt;
collected by us in connection with use of SirWiki.  We will take reasonable steps&lt;br /&gt;
to protect user privacy consistent with the guidelines set forth in this policy and&lt;br /&gt;
with applicable U.S. laws.  In this policy, &amp;quot;user&amp;quot; or &amp;quot;you&amp;quot; means any individual&lt;br /&gt;
using SirWiki. By visiting SirWiki, you are accepting the practices described in&lt;br /&gt;
this Privacy policy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;What personal information do we collect?&amp;lt;/h2&amp;gt;&lt;br /&gt;
We collect the personal information you disclose when you sign up for a SirWiki&lt;br /&gt;
account. You are not required to register for an account or to provide any&lt;br /&gt;
personal information to us in order to use SirWiki.&lt;br /&gt;
&lt;br /&gt;
As is true of most Web sites, we gather certain information automatically and&lt;br /&gt;
store it in log files (&amp;quot;Web Tracking Information&amp;quot;). This information includes&lt;br /&gt;
information such as your IP address, the time of your visit, your browser type,&lt;br /&gt;
and your browser&#039;s language setting. We do not link this automatically-collected&lt;br /&gt;
data to personally identifiable information.  SirWiki also may send one or more&lt;br /&gt;
cookies &amp;amp;mdash; a small file that lives in your web browser that helps SirWiki operate&lt;br /&gt;
with full functionality (such as keeping you logged into SirWiki). Most web&lt;br /&gt;
browsers allow you to disable cookies, and you are welcome to continue to use&lt;br /&gt;
SirWiki if you choose to do so. However, some of SirWiki&#039;s features may not&lt;br /&gt;
function properly if cookies are disabled.&lt;br /&gt;
&lt;br /&gt;
If you send a communication to Sirius, we may hold onto that communication so&lt;br /&gt;
that we can respond appropriately, and so that we can incorporate your feedback&lt;br /&gt;
to improve SirWiki.&lt;br /&gt;
&lt;br /&gt;
SirWiki collects all the information you provide when you modify the content of a&lt;br /&gt;
page (such as making edits, creating pages, etc.).  An indicator that you provided&lt;br /&gt;
that information is left on the History tab associated with the new or edited page,&lt;br /&gt;
on the Recent Changes link, and in your user contributions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;How do we use information collected?&amp;lt;/h2&amp;gt;&lt;br /&gt;
We will use and store your personal information for the purpose of making&lt;br /&gt;
SirWiki available to you, to analyze and enhance the operation of SirWiki, and for&lt;br /&gt;
the internal operational and administrative purposes of SirWiki.&lt;br /&gt;
&lt;br /&gt;
We use Web Tracking Information to administer SirWiki and to understand how&lt;br /&gt;
well SirWiki is working.  This allows us to determine which features visitors like&lt;br /&gt;
best to help us improve SirWiki.&lt;br /&gt;
&lt;br /&gt;
We may also create statistical, aggregated data relating to our users and SirWiki&lt;br /&gt;
for analytical purposes.  Aggregated data is derived from your information, but in&lt;br /&gt;
its aggregated form it does not relate to or identify any individual.  This data is&lt;br /&gt;
used to understand our customer base and to develop, improve, and market our&lt;br /&gt;
products.&lt;br /&gt;
&lt;br /&gt;
Notwithstanding the above, we may in any event use personal information and&lt;br /&gt;
other information collected through SirWiki, to the extent required by law or legal&lt;br /&gt;
process, to resolve disputes, to enforce our agreements (including this Privacy&lt;br /&gt;
Policy and the [[SirWiki:Terms of use|Terms of use]]) with you, or, if in our reasonable discretion use is&lt;br /&gt;
necessary, to protect our legal rights or to protect third parties.&lt;br /&gt;
&lt;br /&gt;
If you register and contribute to the wiki, we may send you administrative emails.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;What personal information do we disclose to third parties?&amp;lt;/h2&amp;gt;&lt;br /&gt;
We do not disclose your name or email address to other users of SirWiki.  We&lt;br /&gt;
only share your personal information with others in the following circumstances:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;as described in this Privacy policy;&lt;br /&gt;
&amp;lt;li&amp;gt;with third party contractors, subject to obligations of confidentiality, who&lt;br /&gt;
are permitted to use the information only to perform services for Sirius;&lt;br /&gt;
&amp;lt;li&amp;gt;with any law enforcement, judicial authority, or governmental or regulatory&lt;br /&gt;
authority, to the extent required by law or if in our reasonable discretion&lt;br /&gt;
disclosure is necessary to enforce or protect our legal rights or to protect&lt;br /&gt;
third parties; and&lt;br /&gt;
&amp;lt;li&amp;gt;as we, in our sole judgment, deem necessary to investigate a breach of&lt;br /&gt;
security.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
If Sirius Software becomes involved in a merger or acquisition or any form of sale&lt;br /&gt;
of some or all of its assets, we reserve the right to transfer the information we&lt;br /&gt;
have collected in connection with your use of SirWiki to the successor to our&lt;br /&gt;
business.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Third-party websites&amp;lt;/h2&amp;gt;&lt;br /&gt;
This Web site contains links to other sites that are not owned or controlled by&lt;br /&gt;
Sirius Software. Please be aware that we, Sirius Software, are not responsible&lt;br /&gt;
for the privacy practices of such other sites.  We encourage you to read the&lt;br /&gt;
privacy statements of each and every Web site that collects personally&lt;br /&gt;
identifiable information.  This privacy statement applies only to information&lt;br /&gt;
collected by this Web site.&lt;br /&gt;
&amp;lt;h2&amp;gt;Security&amp;lt;/h2&amp;gt;&lt;br /&gt;
We follow generally accepted industry standards to protect the personal&lt;br /&gt;
information submitted to us, both during transmission and once we receive it. No&lt;br /&gt;
method of transmission over the Internet or method of electronic storage is 100%&lt;br /&gt;
secure, however. Therefore, while we strive to use commercially acceptable&lt;br /&gt;
means to protect your personal information, we cannot guarantee its absolute&lt;br /&gt;
security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Modifications to this policy&amp;lt;/h2&amp;gt;&lt;br /&gt;
We reserve the right to modify this privacy statement at any time. If we make&lt;br /&gt;
material changes to this policy, we will notify you here, by email, or by means of&lt;br /&gt;
a notice on our home page.  Notwithstanding any modifications we may make,&lt;br /&gt;
any personal information collected from you will be treated in accordance with&lt;br /&gt;
the privacy policy in effect at the time information was collected, unless we obtain&lt;br /&gt;
your consent otherwise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Effective date of this policy:&amp;lt;/b&amp;gt; 20 July 2011&lt;br /&gt;
&lt;br /&gt;
[[Category:Legal]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=SirWiki:Privacy_policy&amp;diff=52483</id>
		<title>SirWiki:Privacy policy</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=SirWiki:Privacy_policy&amp;diff=52483"/>
		<updated>2013-02-22T04:37:12Z</updated>

		<summary type="html">&lt;p&gt;Gary: Gary moved page SirWiki:Privacy policy to M204wiki:M204wiki:Privacy policy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[M204wiki:M204wiki:Privacy policy]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Privacy_policy&amp;diff=52482</id>
		<title>M204wiki:Privacy policy</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Privacy_policy&amp;diff=52482"/>
		<updated>2013-02-22T04:37:12Z</updated>

		<summary type="html">&lt;p&gt;Gary: Gary moved page SirWiki:Privacy policy to M204wiki:M204wiki:Privacy policy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This Privacy Policy is designed to inform users of SirWiki about how Sirius&lt;br /&gt;
Software, Inc. (&amp;quot;Sirius&amp;quot;, &amp;quot;we&amp;quot;, or &amp;quot;us&amp;quot;) gathers and uses personal information&lt;br /&gt;
collected by us in connection with use of SirWiki.  We will take reasonable steps&lt;br /&gt;
to protect user privacy consistent with the guidelines set forth in this policy and&lt;br /&gt;
with applicable U.S. laws.  In this policy, &amp;quot;user&amp;quot; or &amp;quot;you&amp;quot; means any individual&lt;br /&gt;
using SirWiki. By visiting SirWiki, you are accepting the practices described in&lt;br /&gt;
this Privacy policy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;What personal information do we collect?&amp;lt;/h2&amp;gt;&lt;br /&gt;
We collect the personal information you disclose when you sign up for a SirWiki&lt;br /&gt;
account. You are not required to register for an account or to provide any&lt;br /&gt;
personal information to us in order to use SirWiki.&lt;br /&gt;
&lt;br /&gt;
As is true of most Web sites, we gather certain information automatically and&lt;br /&gt;
store it in log files (&amp;quot;Web Tracking Information&amp;quot;). This information includes&lt;br /&gt;
information such as your IP address, the time of your visit, your browser type,&lt;br /&gt;
and your browser&#039;s language setting. We do not link this automatically-collected&lt;br /&gt;
data to personally identifiable information.  SirWiki also may send one or more&lt;br /&gt;
cookies &amp;amp;mdash; a small file that lives in your web browser that helps SirWiki operate&lt;br /&gt;
with full functionality (such as keeping you logged into SirWiki). Most web&lt;br /&gt;
browsers allow you to disable cookies, and you are welcome to continue to use&lt;br /&gt;
SirWiki if you choose to do so. However, some of SirWiki&#039;s features may not&lt;br /&gt;
function properly if cookies are disabled.&lt;br /&gt;
&lt;br /&gt;
If you send a communication to Sirius, we may hold onto that communication so&lt;br /&gt;
that we can respond appropriately, and so that we can incorporate your feedback&lt;br /&gt;
to improve SirWiki.&lt;br /&gt;
&lt;br /&gt;
SirWiki collects all the information you provide when you modify the content of a&lt;br /&gt;
page (such as making edits, creating pages, etc.).  An indicator that you provided&lt;br /&gt;
that information is left on the History tab associated with the new or edited page,&lt;br /&gt;
on the Recent Changes link, and in your user contributions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;How do we use information collected?&amp;lt;/h2&amp;gt;&lt;br /&gt;
We will use and store your personal information for the purpose of making&lt;br /&gt;
SirWiki available to you, to analyze and enhance the operation of SirWiki, and for&lt;br /&gt;
the internal operational and administrative purposes of SirWiki.&lt;br /&gt;
&lt;br /&gt;
We use Web Tracking Information to administer SirWiki and to understand how&lt;br /&gt;
well SirWiki is working.  This allows us to determine which features visitors like&lt;br /&gt;
best to help us improve SirWiki.&lt;br /&gt;
&lt;br /&gt;
We may also create statistical, aggregated data relating to our users and SirWiki&lt;br /&gt;
for analytical purposes.  Aggregated data is derived from your information, but in&lt;br /&gt;
its aggregated form it does not relate to or identify any individual.  This data is&lt;br /&gt;
used to understand our customer base and to develop, improve, and market our&lt;br /&gt;
products.&lt;br /&gt;
&lt;br /&gt;
Notwithstanding the above, we may in any event use personal information and&lt;br /&gt;
other information collected through SirWiki, to the extent required by law or legal&lt;br /&gt;
process, to resolve disputes, to enforce our agreements (including this Privacy&lt;br /&gt;
Policy and the [[SirWiki:Terms of use|Terms of use]]) with you, or, if in our reasonable discretion use is&lt;br /&gt;
necessary, to protect our legal rights or to protect third parties.&lt;br /&gt;
&lt;br /&gt;
If you register and contribute to the wiki, we may send you administrative emails.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;What personal information do we disclose to third parties?&amp;lt;/h2&amp;gt;&lt;br /&gt;
We do not disclose your name or email address to other users of SirWiki.  We&lt;br /&gt;
only share your personal information with others in the following circumstances:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;as described in this Privacy policy;&lt;br /&gt;
&amp;lt;li&amp;gt;with third party contractors, subject to obligations of confidentiality, who&lt;br /&gt;
are permitted to use the information only to perform services for Sirius;&lt;br /&gt;
&amp;lt;li&amp;gt;with any law enforcement, judicial authority, or governmental or regulatory&lt;br /&gt;
authority, to the extent required by law or if in our reasonable discretion&lt;br /&gt;
disclosure is necessary to enforce or protect our legal rights or to protect&lt;br /&gt;
third parties; and&lt;br /&gt;
&amp;lt;li&amp;gt;as we, in our sole judgment, deem necessary to investigate a breach of&lt;br /&gt;
security.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
If Sirius Software becomes involved in a merger or acquisition or any form of sale&lt;br /&gt;
of some or all of its assets, we reserve the right to transfer the information we&lt;br /&gt;
have collected in connection with your use of SirWiki to the successor to our&lt;br /&gt;
business.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Third-party websites&amp;lt;/h2&amp;gt;&lt;br /&gt;
This Web site contains links to other sites that are not owned or controlled by&lt;br /&gt;
Sirius Software. Please be aware that we, Sirius Software, are not responsible&lt;br /&gt;
for the privacy practices of such other sites.  We encourage you to read the&lt;br /&gt;
privacy statements of each and every Web site that collects personally&lt;br /&gt;
identifiable information.  This privacy statement applies only to information&lt;br /&gt;
collected by this Web site.&lt;br /&gt;
&amp;lt;h2&amp;gt;Security&amp;lt;/h2&amp;gt;&lt;br /&gt;
We follow generally accepted industry standards to protect the personal&lt;br /&gt;
information submitted to us, both during transmission and once we receive it. No&lt;br /&gt;
method of transmission over the Internet or method of electronic storage is 100%&lt;br /&gt;
secure, however. Therefore, while we strive to use commercially acceptable&lt;br /&gt;
means to protect your personal information, we cannot guarantee its absolute&lt;br /&gt;
security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Modifications to this policy&amp;lt;/h2&amp;gt;&lt;br /&gt;
We reserve the right to modify this privacy statement at any time. If we make&lt;br /&gt;
material changes to this policy, we will notify you here, by email, or by means of&lt;br /&gt;
a notice on our home page.  Notwithstanding any modifications we may make,&lt;br /&gt;
any personal information collected from you will be treated in accordance with&lt;br /&gt;
the privacy policy in effect at the time information was collected, unless we obtain&lt;br /&gt;
your consent otherwise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Effective date of this policy:&amp;lt;/b&amp;gt; 20 July 2011&lt;br /&gt;
&lt;br /&gt;
[[Category:Legal]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki_main_page&amp;diff=52481</id>
		<title>M204wiki main page</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki_main_page&amp;diff=52481"/>
		<updated>2013-02-22T04:30:37Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* Legal notices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to &#039;&#039;&#039;M204wiki&#039;&#039;&#039;, formerly the [[Sirius Software]] &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[Model 204]]&amp;lt;/var&amp;gt; wiki. This wiki is for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[User Language]]&amp;lt;/var&amp;gt; developers, database administrators, system managers, and anyone else who works with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; and with [[Sirius Software product list|Sirius Software products]]. &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;&amp;lt;b&amp;gt;[[Model 204]]&amp;lt;/b&amp;gt;&amp;lt;/var&amp;gt; is a product of Computer Corporation of America, a wholly-owned subsidiary of Rocket Software, Inc.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var class=&amp;quot;product&amp;gt;Model 204&amp;lt;/var&amp;gt; documentation is available [http://www.rocketsoftware.com/m204/products/index/documentation online in PDF format]. &lt;br /&gt;
&lt;br /&gt;
The primary, but not exclusive, purpose of M204wiki is to be the platform for Sirius product documentation. The M204wiki pages supersede many of the [[Sirius documentation|Sirius PDF manuals]], and eventually M204wiki will contain all the contemporary Sirius technical documentation. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;font-size: 110%;font-weight: bold;&amp;quot;&amp;gt;Contributing, downloading&amp;lt;/p&amp;gt;&lt;br /&gt;
Anyone who works with &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; is encouraged to contribute to M204wiki, either by providing new content or correcting or improving content. Before you can edit content you must [[M204wiki:Get M204wiki User ID|obtain a M204wiki User ID]].&lt;br /&gt;
&lt;br /&gt;
You can also [[M204wiki:Database Download|download your own copy of M204wiki]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;font-size: 110%;font-weight: bold;&amp;quot;&amp;gt;Using this page&amp;lt;/p&amp;gt;&lt;br /&gt;
This main page presents links to principal subdivisions of the Sirius reference documentation, beginning with the most-in-demand material, the system classes of the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;[[Janus SOAP User Language Interface]]&amp;lt;/var&amp;gt;, which are built into the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; nucleus and written in Assembler language. You can easily return to this page from any M204wiki page by clicking the &amp;quot;Main page&amp;quot; link in the &#039;&#039;&#039;&amp;lt;tt&amp;gt;wiki&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;content&amp;lt;/tt&amp;gt;&#039;&#039;&#039; area of the sidebar to the left, or simply by clicking anywhere in the Rocket&amp;amp;reg;&amp;amp;nbsp;M204 logo above the left sidebar.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Janus SOAP ULI system classes and methods==&lt;br /&gt;
{{Template:List of classes and methods}}&lt;br /&gt;
&lt;br /&gt;
==Non-OO User Language enhancements==&lt;br /&gt;
These Sirius Software enhancements of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;User Language&amp;lt;/var&amp;gt; are not strictly concerned with object-oriented programming: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[New User Language statements]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[User Language syntax enhancements]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Terminal MODEL 6 support]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Commands, parameters, and messages==&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Commands&lt;br /&gt;
&amp;lt;dd&amp;gt;[[:Category:Editor commands|Editor commands]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;dd&amp;gt;[[:Category:Janus commands|Janus commands]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[:Category:Operator commands|Operator commands]]&lt;br /&gt;
&amp;amp;mdash; including information about issuing them from zOS console&lt;br /&gt;
&amp;lt;br&amp;gt;[[:Category:System administrator commands|System administrator commands]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[:Category:User commands|User commands]]&lt;br /&gt;
&amp;lt;dt&amp;gt;Parameters&lt;br /&gt;
&amp;lt;dd&amp;gt;[[:Category:System parameters|System parameters]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[:Category:User parameters|User parameters]]&lt;br /&gt;
&amp;lt;dt&amp;gt;Messages&lt;br /&gt;
&amp;lt;dd&amp;gt;[[:Category:Fast/Unload Messages|Fast/Unload messages]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[:Category:SirAud Messages|SirAud messages]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[:Category:Sirius Mods Messages|Sirius Mods messages]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[:Category:SirTune Data Collector Messages|SirTune Data Collector messages]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[:Category:SirZap Messages|SirZap messages]]&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Release notes, wishlists, and punch lists==&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;Sirius_Mods_release_notes&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Sirius Mods&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;[[Release notes for Sirius Mods V7.8]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Release notes for Sirius Mods V7.9]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Release notes for Sirius Mods V8.0]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Release notes for Sirius Mods V8.1]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Fast/Unload&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;[http://sirius-software.com/maint/download/funrel46.pdf Release notes for Fast/Unload V4.6 (PDF)]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Release notes for Fast/Unload V4.7]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Fast/Unload active punch list | Fast/Unload punch list]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Overviews and tutorials==&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Overviews&lt;br /&gt;
&amp;lt;dd&amp;gt;[[Janus SOAP User Language Interface]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Classes and Objects]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Methods]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Intrinsic classes]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Collections]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Longstrings]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[$lists]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Sessions]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Sdaemons]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Regex processing]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[XML processing in Janus SOAP]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[XmlDoc API]], [[XPath]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Unicode]]&lt;br /&gt;
&amp;lt;dt&amp;gt;Tutorials&lt;br /&gt;
&amp;lt;dd&amp;gt;[[Charting using Janus Web Server and FusionCharts Free]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[Getting started with object-oriented programming for User Language programmers]]&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==$Functions==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[List of $functions]]&lt;br /&gt;
&amp;lt;!-- Note: Rest of this list in synch with table at top of List of $functions --&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[List of mathematical $functions]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[List of Janus Sockets $functions]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[List of Janus Web Server $functions]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Legal notices==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[M204wiki:General disclaimer|General disclaimer]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[M204wiki:Privacy policy|Privacy policy]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[M204wiki:Terms of use|Terms of use]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Terms_of_use&amp;diff=52480</id>
		<title>M204wiki:Terms of use</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Terms_of_use&amp;diff=52480"/>
		<updated>2013-02-22T04:25:01Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* DMCA Counter-notice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;M204wiki provides users with online access to M204 product documentation and a&lt;br /&gt;
procedure to collaboratively contribute and edit product documentation content.&lt;br /&gt;
M204wiki is owned and operated by Rocket Software, Inc. and its affiliates (&amp;quot;Rocket&amp;quot; or &amp;quot;we&amp;quot;).&lt;br /&gt;
These Terms of Use (&amp;quot;Agreement&amp;quot;) between you and Rocket set&lt;br /&gt;
forth the terms on which we make M204wiki available to you, &amp;quot;You&amp;quot; meaning any&lt;br /&gt;
person or entity who uses M204wiki and/or posts User Content to M204wiki.&lt;br /&gt;
By using M204wiki and/or posting [[M204wiki:Terms of use#User Content|User Content]] you agree to be bound by the terms and&lt;br /&gt;
conditions of this Agreement.&lt;br /&gt;
 &lt;br /&gt;
==Proprietary materials and ownership==&lt;br /&gt;
M204wiki is the property of Rocket.  Without limitation of the foregoing, all the text,&lt;br /&gt;
images, sound, music, marks, logos, compilations (meaning the collection,&lt;br /&gt;
arrangement and assembly of information) and other content on this website&lt;br /&gt;
other than User Content as defined below (collectively, the &amp;quot;Site Content&amp;quot;), and&lt;br /&gt;
all software embodied in M204wiki (&amp;quot;Software&amp;quot;) is proprietary to us or to third&lt;br /&gt;
parties and are protected by copyright and other intellectual property laws.&lt;br /&gt;
Except as otherwise expressly permitted by this Agreement, any use, copying,&lt;br /&gt;
making derivative works, transmitting, posting, linking, deep linking, redistribution,&lt;br /&gt;
sale, decompilation, modification, reverse engineering, translation or disassembly&lt;br /&gt;
of the Software or Site Content (collectively, the &amp;quot;Rocket Property&amp;quot;) is prohibited.&lt;br /&gt;
You may be subject to criminal or civil penalties for violation of this paragraph.&lt;br /&gt;
 &lt;br /&gt;
The marks Rocket and the Rocket Software logos are registered trademarks of Rocket Software, Inc.&lt;br /&gt;
Other products and service names might be registered or unregistered trademarks of Rocket,&lt;br /&gt;
and they may not be&lt;br /&gt;
used in connection with any service or products other than those provided by&lt;br /&gt;
Rocket, in any manner that is likely to cause confusion among Users, or in any&lt;br /&gt;
manner that disparages or discredits Rocket.  M204wiki may also feature the&lt;br /&gt;
trademarks, service marks, and logos of Rocket or third parties, and each owner&lt;br /&gt;
retains all rights in such marks.  Any use of such marks, or any others displayed&lt;br /&gt;
on M204wiki, will inure solely to the benefit of their respective owners.&lt;br /&gt;
&lt;br /&gt;
==License to use M204wiki==&lt;br /&gt;
Rocket authorizes you to access, view and use M204wiki to further your&lt;br /&gt;
understanding of Rocket products.  You may not remove any copyright, trademark&lt;br /&gt;
or other proprietary notices that have been placed on the Rocket Property.&lt;br /&gt;
Changing, copying, redistributing, republishing, uploading, posting, transmitting,&lt;br /&gt;
distributing or otherwise exploiting in any way the Rocket Property, or any portion&lt;br /&gt;
of the Rocket Property, is strictly prohibited without the prior written permission of&lt;br /&gt;
Rocket, unless this Agreement otherwise expressly allows you to do so.&lt;br /&gt;
 &lt;br /&gt;
You warrant and agree that your use of M204wiki will be consistent with this&lt;br /&gt;
Agreement and will not infringe or violate the rights of any other party or breach&lt;br /&gt;
any contract or legal duty to any other parties.  You will comply with all applicable&lt;br /&gt;
laws, regulations and ordinances relating to M204wiki, the Rocket Property or your&lt;br /&gt;
use of them, and in using M204wiki you will not engage in any conduct that restricts&lt;br /&gt;
or inhibits any other person from using or enjoying M204wiki.&lt;br /&gt;
&lt;br /&gt;
==User Content==&lt;br /&gt;
In connection with using M204wiki, you may be authorized to upload, post, or submit to M204wiki&lt;br /&gt;
screenshots, text, graphics, and other materials and information (collectively,&lt;br /&gt;
&amp;quot;User Content&amp;quot;) pertinent to the purpose of M204wiki.  The User Content remains&lt;br /&gt;
your property, and Rocket does not claim any ownership of the copyright or other&lt;br /&gt;
proprietary rights in such User Content.  Notwithstanding the foregoing, you&lt;br /&gt;
agree to all of these:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You are publishing and making your User Content publicly available for viewing&lt;br /&gt;
by third parties on a non-confidential basis, your User Content may be&lt;br /&gt;
associated with your username and so will be attributable to you, third parties will&lt;br /&gt;
gain access to your User Content through M204wiki, and Rocket shall in no event be&lt;br /&gt;
liable to you for any use or misuse of your User Content by any third party;&lt;br /&gt;
&amp;lt;li&amp;gt;You grant Rocket a worldwide, non-exclusive, perpetual, irrevocable, royalty-free, &lt;br /&gt;
transferable license, with right to sublicense through multiple tiers, to copy,&lt;br /&gt;
edit, modify, use, publish, distribute, prepare derivative works, publicly perform,&lt;br /&gt;
publicly display and otherwise exploit the User Content in connection with&lt;br /&gt;
operation of M204wiki, promotion of Rocket products and services, and any other&lt;br /&gt;
purposes reasonably related to using M204wiki and participation in promotions and&lt;br /&gt;
advertising of Rocket and its partners.&lt;br /&gt;
&amp;lt;li&amp;gt;All users of M204wiki have the right to access your User Content, and to copy,&lt;br /&gt;
modify, use, publish, distribute, prepare derivative works, publicly perform,&lt;br /&gt;
publicly display and otherwise exploit the User Content for personal, non-commercial use.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Restrictions==&lt;br /&gt;
You agree to &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; use M204wiki to do any of the following:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that is unlawful, harmful, threatening, abusive, harassing, tortious, defamatory,&lt;br /&gt;
vulgar, obscene, libelous, invasive of another&#039;s privacy, hateful, or racially,&lt;br /&gt;
ethnically or otherwise objectionable;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that you do not have a right to make available under any law or under contractual&lt;br /&gt;
or fiduciary relationships (such as inside information, proprietary and confidential&lt;br /&gt;
information learned or disclosed as part of employment relationships or under&lt;br /&gt;
nondisclosure agreements);&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that infringes any patent, trademark, trade secret, copyright or other proprietary&lt;br /&gt;
rights (&amp;quot;Rights&amp;quot;) of any party;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any unsolicited or&lt;br /&gt;
unauthorized advertising, promotional materials, &amp;quot;junk mail,&amp;quot; &amp;quot;spam,&amp;quot; &amp;quot;chain&lt;br /&gt;
letters,&amp;quot; &amp;quot;pyramid schemes,&amp;quot; or any other form of solicitation;&lt;br /&gt;
&amp;lt;li&amp;gt;Harm minors in any way;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any material that&lt;br /&gt;
contains software viruses or any other computer code, files or programs&lt;br /&gt;
designed to interrupt, destroy or limit the functionality of any computer software&lt;br /&gt;
or hardware or telecommunications equipment;&lt;br /&gt;
&amp;lt;li&amp;gt;Interfere with or disrupt M204wiki or servers or networks connected to M204wiki, or&lt;br /&gt;
disobey any requirements, procedures, policies or regulations of networks&lt;br /&gt;
connected to M204wiki;&lt;br /&gt;
&amp;lt;li&amp;gt;Intentionally or unintentionally violate any applicable local, state, national or&lt;br /&gt;
international law;&lt;br /&gt;
&amp;lt;li&amp;gt;Provide material support or resources (or to conceal or disguise the nature,&lt;br /&gt;
location, source, or ownership of material support or resources) to any&lt;br /&gt;
organization(s) designated by the United States government as a foreign terrorist&lt;br /&gt;
organization pursuant to section 219 of the Immigration and Nationality Act; or&lt;br /&gt;
&amp;lt;li&amp;gt;Collect or store personal data about other users.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You acknowledge that Rocket may or may not pre-screen User Content, but that&lt;br /&gt;
Rocket shall have the right (but not the obligation) in its sole discretion for any&lt;br /&gt;
reason to pre-screen, refuse, delete, or move any User Content that is available&lt;br /&gt;
via M204wiki.  Without limiting the foregoing, Rocket shall have the right to remove&lt;br /&gt;
any User Content that violates this Agreement or is otherwise objectionable. You&lt;br /&gt;
agree that you must evaluate, and bear all risks associated with, the use of any&lt;br /&gt;
User Content, including any reliance on the accuracy, completeness, or&lt;br /&gt;
usefulness of such User Content.&lt;br /&gt;
 &lt;br /&gt;
==Limitation of content accuracy==&lt;br /&gt;
Insofar as M204wiki is a collaborative environment for documentation of Rocket&lt;br /&gt;
products that contains edits and contributions of content by users of&lt;br /&gt;
M204wiki other than Rocket, Rocket does not guarantee the accuracy, integrity or&lt;br /&gt;
quality of M204wiki Content. Under no circumstances will Rocket be liable in any way&lt;br /&gt;
for any User Content, including, but not limited to, for any errors or omissions in&lt;br /&gt;
any User Content, or for any loss or damage of any kind incurred as a result of&lt;br /&gt;
the use of any User Content posted, emailed, transmitted or otherwise made&lt;br /&gt;
available via M204wiki.&lt;br /&gt;
&lt;br /&gt;
==Indemnity==&lt;br /&gt;
You agree to indemnify and hold Rocket, and its subsidiaries, affiliates, officers,&lt;br /&gt;
agents, co-branders or other partners, and employees, harmless from any claim,&lt;br /&gt;
demand, action, suit, proceeding, liability, losses, damages, costs and expenses,&lt;br /&gt;
including reasonable attorneys&#039; fees, arising out of User Content you submit, post,&lt;br /&gt;
transmit or make available through M204wiki, your use of M204wiki, your connection&lt;br /&gt;
to M204wiki, your violation of this Agreement, or your violation of any rights of&lt;br /&gt;
another.&lt;br /&gt;
&lt;br /&gt;
==DISCLAIMER OF WARRANTIES==&lt;br /&gt;
YOU EXPRESSLY UNDERSTAND AND AGREE THAT:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;YOUR USE OF M204WIKI IS AT YOUR SOLE RISK. M204WIKI IS PROVIDED&lt;br /&gt;
ON AN &amp;quot;AS IS&amp;quot; AND &amp;quot;AS AVAILABLE&amp;quot; BASIS. ROCKET EXPRESSLY&lt;br /&gt;
DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES&lt;br /&gt;
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND&lt;br /&gt;
NON-INFRINGEMENT.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ROCKET MAKES NO WARRANTY THAT (i) M204WIKI WILL MEET YOUR&lt;br /&gt;
REQUIREMENTS, (ii) M204WIKI WILL BE UNINTERRUPTED, TIMELY, SECURE,&lt;br /&gt;
OR ERROR-FREE, (iii) THE RESULTS THAT MAY BE OBTAINED FROM THE&lt;br /&gt;
USE OF M204WIKI WILL BE ACCURATE OR RELIABLE, (iv) THE QUALITY OF&lt;br /&gt;
ANY PRODUCTS, SERVICES, INFORMATION, OR OTHER MATERIAL&lt;br /&gt;
PURCHASED OR OBTAINED BY YOU THROUGH M204WIKI WILL MEET YOUR&lt;br /&gt;
EXPECTATIONS, (v) ANY ERRORS IN THE SOFTWARE WILL BE&lt;br /&gt;
CORRECTED, (vi) OR THAT THIS WEB SITE, ITS CONTENT, AND THE&lt;br /&gt;
SERVERS ON WHICH THE WEB SITE AND CONTENT ARE AVAILABLE ARE&lt;br /&gt;
FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH&lt;br /&gt;
THE USE OF M204WIKI IS DONE AT YOUR OWN DISCRETION AND RISK AND&lt;br /&gt;
THAT YOU WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR&lt;br /&gt;
COMPUTER SYSTEM OR LOSS OF DATA THAT RESULTS FROM THE&lt;br /&gt;
DOWNLOAD OF ANY SUCH MATERIAL.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN,&lt;br /&gt;
OBTAINED BY YOU FROM ROCKET OR THROUGH OR FROM M204WIKI SHALL&lt;br /&gt;
CREATE ANY WARRANTY NOT EXPRESSLY STATED IN THIS AGREEMENT.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;INFORMATION CREATED BY THIRD PARTIES THAT YOU MAY ACCESS&lt;br /&gt;
ON THE SITE OR THROUGH LINKS IS NOT ADOPTED OR ENDORSED BY&lt;br /&gt;
ROCKET AND REMAINS THE RESPONSIBILITY OF SUCH THIRD PARTIES.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LIMITATION OF LIABILITY==&lt;br /&gt;
YOU EXPRESSLY UNDERSTAND AND AGREE THAT ROCKET SHALL NOT BE&lt;br /&gt;
LIABLE TO YOU FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
CONSEQUENTIAL OR EXEMPLARY DAMAGES, INCLUDING BUT NOT&lt;br /&gt;
LIMITED TO, DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA&lt;br /&gt;
OR OTHER INTANGIBLE LOSSES (EVEN IF ROCKET HAS BEEN ADVISED OF&lt;br /&gt;
THE POSSIBILITY OF SUCH DAMAGES), RESULTING FROM: (i) THE USE&lt;br /&gt;
OR THE INABILITY TO USE M204WIKI; (ii) THE COST OF PROCUREMENT OF&lt;br /&gt;
SUBSTITUTE GOODS AND SERVICES RESULTING FROM ANY GOODS,&lt;br /&gt;
DATA, INFORMATION OR SERVICES PURCHASED OR OBTAINED OR&lt;br /&gt;
MESSAGES RECEIVED OR TRANSACTIONS ENTERED INTO THROUGH OR&lt;br /&gt;
FROM M204WIKI; (iii) UNAUTHORIZED ACCESS TO OR ALTERATION OF&lt;br /&gt;
YOUR TRANSMISSIONS OR DATA; (iv) STATEMENTS OR CONDUCT OF&lt;br /&gt;
ANY THIRD PARTY ON M204WIKI; OR (v) ANY OTHER MATTER RELATING TO&lt;br /&gt;
M204WIKI.&lt;br /&gt;
&lt;br /&gt;
==Digital Millennium Copyright Act==&lt;br /&gt;
Rocket complies with the provisions of the Digital Millennium Copyright Act&lt;br /&gt;
applicable to internet service providers (17 U.S.C. &#039;512, as amended).  If you&lt;br /&gt;
have any complaints or objections to material posted on M204wiki you may contact&lt;br /&gt;
our Designated Agent at the following address:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;James Lapierre&lt;br /&gt;
Rocket Software, Inc.&lt;br /&gt;
77 Fourth Avenue, Suite 100&lt;br /&gt;
Waltham, MA 02451&lt;br /&gt;
Telephone: 781 684 2267&lt;br /&gt;
Email: JLapierre@rocketsoftware.com&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
===DMCA Takedown notice===&lt;br /&gt;
Any notice alleging that materials hosted by or distributed through M204wiki infringe&lt;br /&gt;
intellectual property rights must include the following information:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;An electronic or physical signature of the person authorized to act on&lt;br /&gt;
behalf of the owner of the copyright or other right being infringed;&lt;br /&gt;
&amp;lt;li&amp;gt;A description of the copyrighted work or other intellectual property that you&lt;br /&gt;
claim has been infringed;&lt;br /&gt;
&amp;lt;li&amp;gt;A description of the material that you claim is infringing and where it is&lt;br /&gt;
located on M204wiki;&lt;br /&gt;
&amp;lt;li&amp;gt;Your address, telephone number, and email address;&lt;br /&gt;
&amp;lt;li&amp;gt;A statement by you that you have a good faith belief that the use of the&lt;br /&gt;
materials on M204wiki of which you are complaining is not authorized by the&lt;br /&gt;
copyright owner, its agent, or the law; and&lt;br /&gt;
&amp;lt;li&amp;gt;A statement by you that the above information in your notice is accurate&lt;br /&gt;
and that, under penalty of perjury, you are the copyright or intellectual property&lt;br /&gt;
owner or authorized to act on the copyright or intellectual property owner&#039;s behalf.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DMCA Counter-notice===&lt;br /&gt;
If material that you have posted to M204wiki has been removed or disabled, you&lt;br /&gt;
may file a counter notice pursuant to 17 U.S.C. &#039;512 (g). To be effective, the&lt;br /&gt;
counter notice must be a written communication sent to the designated agent&lt;br /&gt;
address listed above that includes the following:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A physical or electronic signature of the subscriber;&lt;br /&gt;
&amp;lt;li&amp;gt;Identification of the material that has been removed or to which access&lt;br /&gt;
has been disabled and the location at which the material appeared before it was&lt;br /&gt;
removed or access to it was disabled;&lt;br /&gt;
&amp;lt;li&amp;gt;A statement under penalty of perjury that you have a good faith belief that&lt;br /&gt;
the material was removed or disabled as a result of mistake or misidentification&lt;br /&gt;
of the material to be removed or disabled; and&lt;br /&gt;
&amp;lt;li&amp;gt;Your name, address, and telephone number, and a statement that you&lt;br /&gt;
consent to the jurisdiction of Federal District Court for the judicial district in which&lt;br /&gt;
the address is located or, if your address is outside of the United States, for any&lt;br /&gt;
judicial district in which Rocket may be found, and that you will accept service of&lt;br /&gt;
process from the person who provided notification under subsection 17 U.S.C.&lt;br /&gt;
&#039;512 (c)(1)(C) or an agent of such person.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modification and termination==&lt;br /&gt;
Rocket reserves the right at any time and from time to time to modify or&lt;br /&gt;
discontinue, temporarily or permanently, M204wiki (or any part thereof) with or&lt;br /&gt;
without notice. You agree that Rocket shall not be liable to you or to any third party&lt;br /&gt;
for any modification, suspension or discontinuance of M204wiki.&lt;br /&gt;
 &lt;br /&gt;
Rocket may change, add or remove any part of this Agreement, or any other terms&lt;br /&gt;
associated with the use of the site, at any time, by posting a notice of such&lt;br /&gt;
changes to the Terms of Use page of the web site. Any changes shall become&lt;br /&gt;
part of the Agreement and shall apply as soon as such a notice is posted. By&lt;br /&gt;
continuing to use M204wiki after the notice is posted, you are indicating your&lt;br /&gt;
acceptance of those changes.&lt;br /&gt;
 &lt;br /&gt;
Rocket reserves the right to refuse or discontinue access to M204wiki by any user for&lt;br /&gt;
non-compliance with this Agreement.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
Except as otherwise expressly provided herein, this Agreement, including the&lt;br /&gt;
[[M204wiki:Privacy policy|Privacy policy]] and all other operating rules, policies and procedures that may be&lt;br /&gt;
published on M204wiki from time to time, sets forth the entire agreement between&lt;br /&gt;
you and Rocket regarding the use of M204wiki, and supersedes all prior promises,&lt;br /&gt;
agreements or representations, whether written or oral, regarding such subject&lt;br /&gt;
matter.  This Agreement will be governed by and construed and enforced in&lt;br /&gt;
accordance with the substantive law of the Commonwealth of Massachusetts,&lt;br /&gt;
USA, without regard to its principles of conflicts of law.&lt;br /&gt;
 &lt;br /&gt;
No delay or omission by Rocket in exercising any of its rights occurring upon any&lt;br /&gt;
noncompliance or default by you with respect to any of the terms and conditions&lt;br /&gt;
of this Agreement will impair any such right or be construed to be a waiver&lt;br /&gt;
thereof, and a waiver by Rocket of any of the covenants, conditions or agreements&lt;br /&gt;
to be performed by you will not be construed to be a waiver of any succeeding&lt;br /&gt;
breach thereof or of any other covenant, condition or agreement hereof&lt;br /&gt;
contained.  Any waiver of any right of Rocket under this Agreement must be given&lt;br /&gt;
in writing and signed on behalf of Rocket to be enforceable.  If any provision of this&lt;br /&gt;
Agreement is found by a court of competent jurisdiction to be invalid or&lt;br /&gt;
unenforceable, then this Agreement will remain in full force and effect and will be&lt;br /&gt;
reformed to be valid and enforceable while reflecting the intent of the parties to&lt;br /&gt;
the greatest extent permitted by law.&lt;br /&gt;
 &lt;br /&gt;
Your registration, this Agreement and your rights and obligations hereunder are&lt;br /&gt;
not assignable or transferable by you to any third party without the prior written&lt;br /&gt;
consent of Rocket.  We may assign this Agreement to any purchaser of the Rocket&lt;br /&gt;
business.  This Agreement may be executed electronically, and your electronic&lt;br /&gt;
assent or use of the Service shall constitute execution of this Agreement.  You&lt;br /&gt;
agree that the electronic text of this Agreement constitutes a writing and your&lt;br /&gt;
assent to the terms and conditions hereof constitutes a &amp;quot;signing&amp;quot; for all purposes.&lt;br /&gt;
Email to your registered email address shall constitute effective notice by Rocket&lt;br /&gt;
to you for all purposes under or in connection with this Agreement.&lt;br /&gt;
&lt;br /&gt;
[[Category:Legal]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Terms_of_use&amp;diff=52479</id>
		<title>M204wiki:Terms of use</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Terms_of_use&amp;diff=52479"/>
		<updated>2013-02-22T04:23:25Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* DMCA Counter-notice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;M204wiki provides users with online access to M204 product documentation and a&lt;br /&gt;
procedure to collaboratively contribute and edit product documentation content.&lt;br /&gt;
M204wiki is owned and operated by Rocket Software, Inc. and its affiliates (&amp;quot;Rocket&amp;quot; or &amp;quot;we&amp;quot;).&lt;br /&gt;
These Terms of Use (&amp;quot;Agreement&amp;quot;) between you and Rocket set&lt;br /&gt;
forth the terms on which we make M204wiki available to you, &amp;quot;You&amp;quot; meaning any&lt;br /&gt;
person or entity who uses M204wiki and/or posts User Content to M204wiki.&lt;br /&gt;
By using M204wiki and/or posting [[M204wiki:Terms of use#User Content|User Content]] you agree to be bound by the terms and&lt;br /&gt;
conditions of this Agreement.&lt;br /&gt;
 &lt;br /&gt;
==Proprietary materials and ownership==&lt;br /&gt;
M204wiki is the property of Rocket.  Without limitation of the foregoing, all the text,&lt;br /&gt;
images, sound, music, marks, logos, compilations (meaning the collection,&lt;br /&gt;
arrangement and assembly of information) and other content on this website&lt;br /&gt;
other than User Content as defined below (collectively, the &amp;quot;Site Content&amp;quot;), and&lt;br /&gt;
all software embodied in M204wiki (&amp;quot;Software&amp;quot;) is proprietary to us or to third&lt;br /&gt;
parties and are protected by copyright and other intellectual property laws.&lt;br /&gt;
Except as otherwise expressly permitted by this Agreement, any use, copying,&lt;br /&gt;
making derivative works, transmitting, posting, linking, deep linking, redistribution,&lt;br /&gt;
sale, decompilation, modification, reverse engineering, translation or disassembly&lt;br /&gt;
of the Software or Site Content (collectively, the &amp;quot;Rocket Property&amp;quot;) is prohibited.&lt;br /&gt;
You may be subject to criminal or civil penalties for violation of this paragraph.&lt;br /&gt;
 &lt;br /&gt;
The marks Rocket and the Rocket Software logos are registered trademarks of Rocket Software, Inc.&lt;br /&gt;
Other products and service names might be registered or unregistered trademarks of Rocket,&lt;br /&gt;
and they may not be&lt;br /&gt;
used in connection with any service or products other than those provided by&lt;br /&gt;
Rocket, in any manner that is likely to cause confusion among Users, or in any&lt;br /&gt;
manner that disparages or discredits Rocket.  M204wiki may also feature the&lt;br /&gt;
trademarks, service marks, and logos of Rocket or third parties, and each owner&lt;br /&gt;
retains all rights in such marks.  Any use of such marks, or any others displayed&lt;br /&gt;
on M204wiki, will inure solely to the benefit of their respective owners.&lt;br /&gt;
&lt;br /&gt;
==License to use M204wiki==&lt;br /&gt;
Rocket authorizes you to access, view and use M204wiki to further your&lt;br /&gt;
understanding of Rocket products.  You may not remove any copyright, trademark&lt;br /&gt;
or other proprietary notices that have been placed on the Rocket Property.&lt;br /&gt;
Changing, copying, redistributing, republishing, uploading, posting, transmitting,&lt;br /&gt;
distributing or otherwise exploiting in any way the Rocket Property, or any portion&lt;br /&gt;
of the Rocket Property, is strictly prohibited without the prior written permission of&lt;br /&gt;
Rocket, unless this Agreement otherwise expressly allows you to do so.&lt;br /&gt;
 &lt;br /&gt;
You warrant and agree that your use of M204wiki will be consistent with this&lt;br /&gt;
Agreement and will not infringe or violate the rights of any other party or breach&lt;br /&gt;
any contract or legal duty to any other parties.  You will comply with all applicable&lt;br /&gt;
laws, regulations and ordinances relating to M204wiki, the Rocket Property or your&lt;br /&gt;
use of them, and in using M204wiki you will not engage in any conduct that restricts&lt;br /&gt;
or inhibits any other person from using or enjoying M204wiki.&lt;br /&gt;
&lt;br /&gt;
==User Content==&lt;br /&gt;
In connection with using M204wiki, you may be authorized to upload, post, or submit to M204wiki&lt;br /&gt;
screenshots, text, graphics, and other materials and information (collectively,&lt;br /&gt;
&amp;quot;User Content&amp;quot;) pertinent to the purpose of M204wiki.  The User Content remains&lt;br /&gt;
your property, and Rocket does not claim any ownership of the copyright or other&lt;br /&gt;
proprietary rights in such User Content.  Notwithstanding the foregoing, you&lt;br /&gt;
agree to all of these:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You are publishing and making your User Content publicly available for viewing&lt;br /&gt;
by third parties on a non-confidential basis, your User Content may be&lt;br /&gt;
associated with your username and so will be attributable to you, third parties will&lt;br /&gt;
gain access to your User Content through M204wiki, and Rocket shall in no event be&lt;br /&gt;
liable to you for any use or misuse of your User Content by any third party;&lt;br /&gt;
&amp;lt;li&amp;gt;You grant Rocket a worldwide, non-exclusive, perpetual, irrevocable, royalty-free, &lt;br /&gt;
transferable license, with right to sublicense through multiple tiers, to copy,&lt;br /&gt;
edit, modify, use, publish, distribute, prepare derivative works, publicly perform,&lt;br /&gt;
publicly display and otherwise exploit the User Content in connection with&lt;br /&gt;
operation of M204wiki, promotion of Rocket products and services, and any other&lt;br /&gt;
purposes reasonably related to using M204wiki and participation in promotions and&lt;br /&gt;
advertising of Rocket and its partners.&lt;br /&gt;
&amp;lt;li&amp;gt;All users of M204wiki have the right to access your User Content, and to copy,&lt;br /&gt;
modify, use, publish, distribute, prepare derivative works, publicly perform,&lt;br /&gt;
publicly display and otherwise exploit the User Content for personal, non-commercial use.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Restrictions==&lt;br /&gt;
You agree to &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; use M204wiki to do any of the following:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that is unlawful, harmful, threatening, abusive, harassing, tortious, defamatory,&lt;br /&gt;
vulgar, obscene, libelous, invasive of another&#039;s privacy, hateful, or racially,&lt;br /&gt;
ethnically or otherwise objectionable;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that you do not have a right to make available under any law or under contractual&lt;br /&gt;
or fiduciary relationships (such as inside information, proprietary and confidential&lt;br /&gt;
information learned or disclosed as part of employment relationships or under&lt;br /&gt;
nondisclosure agreements);&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that infringes any patent, trademark, trade secret, copyright or other proprietary&lt;br /&gt;
rights (&amp;quot;Rights&amp;quot;) of any party;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any unsolicited or&lt;br /&gt;
unauthorized advertising, promotional materials, &amp;quot;junk mail,&amp;quot; &amp;quot;spam,&amp;quot; &amp;quot;chain&lt;br /&gt;
letters,&amp;quot; &amp;quot;pyramid schemes,&amp;quot; or any other form of solicitation;&lt;br /&gt;
&amp;lt;li&amp;gt;Harm minors in any way;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any material that&lt;br /&gt;
contains software viruses or any other computer code, files or programs&lt;br /&gt;
designed to interrupt, destroy or limit the functionality of any computer software&lt;br /&gt;
or hardware or telecommunications equipment;&lt;br /&gt;
&amp;lt;li&amp;gt;Interfere with or disrupt M204wiki or servers or networks connected to M204wiki, or&lt;br /&gt;
disobey any requirements, procedures, policies or regulations of networks&lt;br /&gt;
connected to M204wiki;&lt;br /&gt;
&amp;lt;li&amp;gt;Intentionally or unintentionally violate any applicable local, state, national or&lt;br /&gt;
international law;&lt;br /&gt;
&amp;lt;li&amp;gt;Provide material support or resources (or to conceal or disguise the nature,&lt;br /&gt;
location, source, or ownership of material support or resources) to any&lt;br /&gt;
organization(s) designated by the United States government as a foreign terrorist&lt;br /&gt;
organization pursuant to section 219 of the Immigration and Nationality Act; or&lt;br /&gt;
&amp;lt;li&amp;gt;Collect or store personal data about other users.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You acknowledge that Rocket may or may not pre-screen User Content, but that&lt;br /&gt;
Rocket shall have the right (but not the obligation) in its sole discretion for any&lt;br /&gt;
reason to pre-screen, refuse, delete, or move any User Content that is available&lt;br /&gt;
via M204wiki.  Without limiting the foregoing, Rocket shall have the right to remove&lt;br /&gt;
any User Content that violates this Agreement or is otherwise objectionable. You&lt;br /&gt;
agree that you must evaluate, and bear all risks associated with, the use of any&lt;br /&gt;
User Content, including any reliance on the accuracy, completeness, or&lt;br /&gt;
usefulness of such User Content.&lt;br /&gt;
 &lt;br /&gt;
==Limitation of content accuracy==&lt;br /&gt;
Insofar as M204wiki is a collaborative environment for documentation of Rocket&lt;br /&gt;
products that contains edits and contributions of content by users of&lt;br /&gt;
M204wiki other than Rocket, Rocket does not guarantee the accuracy, integrity or&lt;br /&gt;
quality of M204wiki Content. Under no circumstances will Rocket be liable in any way&lt;br /&gt;
for any User Content, including, but not limited to, for any errors or omissions in&lt;br /&gt;
any User Content, or for any loss or damage of any kind incurred as a result of&lt;br /&gt;
the use of any User Content posted, emailed, transmitted or otherwise made&lt;br /&gt;
available via M204wiki.&lt;br /&gt;
&lt;br /&gt;
==Indemnity==&lt;br /&gt;
You agree to indemnify and hold Rocket, and its subsidiaries, affiliates, officers,&lt;br /&gt;
agents, co-branders or other partners, and employees, harmless from any claim,&lt;br /&gt;
demand, action, suit, proceeding, liability, losses, damages, costs and expenses,&lt;br /&gt;
including reasonable attorneys&#039; fees, arising out of User Content you submit, post,&lt;br /&gt;
transmit or make available through M204wiki, your use of M204wiki, your connection&lt;br /&gt;
to M204wiki, your violation of this Agreement, or your violation of any rights of&lt;br /&gt;
another.&lt;br /&gt;
&lt;br /&gt;
==DISCLAIMER OF WARRANTIES==&lt;br /&gt;
YOU EXPRESSLY UNDERSTAND AND AGREE THAT:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;YOUR USE OF M204WIKI IS AT YOUR SOLE RISK. M204WIKI IS PROVIDED&lt;br /&gt;
ON AN &amp;quot;AS IS&amp;quot; AND &amp;quot;AS AVAILABLE&amp;quot; BASIS. ROCKET EXPRESSLY&lt;br /&gt;
DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES&lt;br /&gt;
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND&lt;br /&gt;
NON-INFRINGEMENT.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ROCKET MAKES NO WARRANTY THAT (i) M204WIKI WILL MEET YOUR&lt;br /&gt;
REQUIREMENTS, (ii) M204WIKI WILL BE UNINTERRUPTED, TIMELY, SECURE,&lt;br /&gt;
OR ERROR-FREE, (iii) THE RESULTS THAT MAY BE OBTAINED FROM THE&lt;br /&gt;
USE OF M204WIKI WILL BE ACCURATE OR RELIABLE, (iv) THE QUALITY OF&lt;br /&gt;
ANY PRODUCTS, SERVICES, INFORMATION, OR OTHER MATERIAL&lt;br /&gt;
PURCHASED OR OBTAINED BY YOU THROUGH M204WIKI WILL MEET YOUR&lt;br /&gt;
EXPECTATIONS, (v) ANY ERRORS IN THE SOFTWARE WILL BE&lt;br /&gt;
CORRECTED, (vi) OR THAT THIS WEB SITE, ITS CONTENT, AND THE&lt;br /&gt;
SERVERS ON WHICH THE WEB SITE AND CONTENT ARE AVAILABLE ARE&lt;br /&gt;
FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH&lt;br /&gt;
THE USE OF M204WIKI IS DONE AT YOUR OWN DISCRETION AND RISK AND&lt;br /&gt;
THAT YOU WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR&lt;br /&gt;
COMPUTER SYSTEM OR LOSS OF DATA THAT RESULTS FROM THE&lt;br /&gt;
DOWNLOAD OF ANY SUCH MATERIAL.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN,&lt;br /&gt;
OBTAINED BY YOU FROM ROCKET OR THROUGH OR FROM M204WIKI SHALL&lt;br /&gt;
CREATE ANY WARRANTY NOT EXPRESSLY STATED IN THIS AGREEMENT.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;INFORMATION CREATED BY THIRD PARTIES THAT YOU MAY ACCESS&lt;br /&gt;
ON THE SITE OR THROUGH LINKS IS NOT ADOPTED OR ENDORSED BY&lt;br /&gt;
ROCKET AND REMAINS THE RESPONSIBILITY OF SUCH THIRD PARTIES.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LIMITATION OF LIABILITY==&lt;br /&gt;
YOU EXPRESSLY UNDERSTAND AND AGREE THAT ROCKET SHALL NOT BE&lt;br /&gt;
LIABLE TO YOU FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
CONSEQUENTIAL OR EXEMPLARY DAMAGES, INCLUDING BUT NOT&lt;br /&gt;
LIMITED TO, DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA&lt;br /&gt;
OR OTHER INTANGIBLE LOSSES (EVEN IF ROCKET HAS BEEN ADVISED OF&lt;br /&gt;
THE POSSIBILITY OF SUCH DAMAGES), RESULTING FROM: (i) THE USE&lt;br /&gt;
OR THE INABILITY TO USE M204WIKI; (ii) THE COST OF PROCUREMENT OF&lt;br /&gt;
SUBSTITUTE GOODS AND SERVICES RESULTING FROM ANY GOODS,&lt;br /&gt;
DATA, INFORMATION OR SERVICES PURCHASED OR OBTAINED OR&lt;br /&gt;
MESSAGES RECEIVED OR TRANSACTIONS ENTERED INTO THROUGH OR&lt;br /&gt;
FROM M204WIKI; (iii) UNAUTHORIZED ACCESS TO OR ALTERATION OF&lt;br /&gt;
YOUR TRANSMISSIONS OR DATA; (iv) STATEMENTS OR CONDUCT OF&lt;br /&gt;
ANY THIRD PARTY ON M204WIKI; OR (v) ANY OTHER MATTER RELATING TO&lt;br /&gt;
M204WIKI.&lt;br /&gt;
&lt;br /&gt;
==Digital Millennium Copyright Act==&lt;br /&gt;
Rocket complies with the provisions of the Digital Millennium Copyright Act&lt;br /&gt;
applicable to internet service providers (17 U.S.C. &#039;512, as amended).  If you&lt;br /&gt;
have any complaints or objections to material posted on M204wiki you may contact&lt;br /&gt;
our Designated Agent at the following address:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;James Lapierre&lt;br /&gt;
Rocket Software, Inc.&lt;br /&gt;
77 Fourth Avenue, Suite 100&lt;br /&gt;
Waltham, MA 02451&lt;br /&gt;
Telephone: 781 684 2267&lt;br /&gt;
Email: JLapierre@rocketsoftware.com&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
===DMCA Takedown notice===&lt;br /&gt;
Any notice alleging that materials hosted by or distributed through M204wiki infringe&lt;br /&gt;
intellectual property rights must include the following information:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;An electronic or physical signature of the person authorized to act on&lt;br /&gt;
behalf of the owner of the copyright or other right being infringed;&lt;br /&gt;
&amp;lt;li&amp;gt;A description of the copyrighted work or other intellectual property that you&lt;br /&gt;
claim has been infringed;&lt;br /&gt;
&amp;lt;li&amp;gt;A description of the material that you claim is infringing and where it is&lt;br /&gt;
located on M204wiki;&lt;br /&gt;
&amp;lt;li&amp;gt;Your address, telephone number, and email address;&lt;br /&gt;
&amp;lt;li&amp;gt;A statement by you that you have a good faith belief that the use of the&lt;br /&gt;
materials on M204wiki of which you are complaining is not authorized by the&lt;br /&gt;
copyright owner, its agent, or the law; and&lt;br /&gt;
&amp;lt;li&amp;gt;A statement by you that the above information in your notice is accurate&lt;br /&gt;
and that, under penalty of perjury, you are the copyright or intellectual property&lt;br /&gt;
owner or authorized to act on the copyright or intellectual property owner&#039;s behalf.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DMCA Counter-notice===&lt;br /&gt;
If material that you have posted to M204wiki has been removed or disabled, you&lt;br /&gt;
may file a counter notice pursuant to 17 U.S.C. &#039;512 (g). To be effective, the&lt;br /&gt;
counter notice must be a written communication sent to the designated agent&lt;br /&gt;
address listed above that includes the following:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A physical or electronic signature of the subscriber;&lt;br /&gt;
&amp;lt;li&amp;gt;Identification of the material that has been removed or to which access&lt;br /&gt;
has been disabled and the location at which the material appeared before it was&lt;br /&gt;
removed or access to it was disabled;&lt;br /&gt;
&amp;lt;li&amp;gt;A statement under penalty of perjury that you have a good faith belief that&lt;br /&gt;
the material was removed or disabled as a result of mistake or misidentification&lt;br /&gt;
of the material to be removed or disabled; and&lt;br /&gt;
&amp;lt;li&amp;gt;Your name, address, and telephone number, and a statement that you&lt;br /&gt;
consent to the jurisdiction of Federal District Court for the judicial district in which&lt;br /&gt;
the address is located or, if your address is outside of the United States, for any&lt;br /&gt;
judicial district in which Rocket may be found, and that you will accept service of&lt;br /&gt;
process from the person who provided notification under subsection 17 U.S.C.&lt;br /&gt;
&#039;512 (c)(1)(C) or an agent of such person.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modification and termination==&lt;br /&gt;
Rocket reserves the right at any time and from time to time to modify or&lt;br /&gt;
discontinue, temporarily or permanently, M204wiki (or any part thereof) with or&lt;br /&gt;
without notice. You agree that Rocket shall not be liable to you or to any third party&lt;br /&gt;
for any modification, suspension or discontinuance of M204wiki.&lt;br /&gt;
 &lt;br /&gt;
Rocket may change, add or remove any part of this Agreement, or any other terms&lt;br /&gt;
associated with the use of the site, at any time, by posting a notice of such&lt;br /&gt;
changes to the Terms of Use page of the web site. Any changes shall become&lt;br /&gt;
part of the Agreement and shall apply as soon as such a notice is posted. By&lt;br /&gt;
continuing to use M204wiki after the notice is posted, you are indicating your&lt;br /&gt;
acceptance of those changes.&lt;br /&gt;
 &lt;br /&gt;
Rocket reserves the right to refuse or discontinue access to M204wiki by any user for&lt;br /&gt;
non-compliance with this Agreement.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
Except as otherwise expressly provided herein, this Agreement, including the&lt;br /&gt;
[[M204wiki:Privacy policy|Privacy policy]] and all other operating rules, policies and procedures that may be&lt;br /&gt;
published on M204wiki from time to time, sets forth the entire agreement between&lt;br /&gt;
you and Rocket regarding the use of M204wiki, and supersedes all prior promises,&lt;br /&gt;
agreements or representations, whether written or oral, regarding such subject&lt;br /&gt;
matter.  This Agreement will be governed by and construed and enforced in&lt;br /&gt;
accordance with the substantive law of the Commonwealth of Massachusetts,&lt;br /&gt;
USA, without regard to its principles of conflicts of law.&lt;br /&gt;
 &lt;br /&gt;
No delay or omission by Rocket in exercising any of its rights occurring upon any&lt;br /&gt;
noncompliance or default by you with respect to any of the terms and conditions&lt;br /&gt;
of this Agreement will impair any such right or be construed to be a waiver&lt;br /&gt;
thereof, and a waiver by Rocket of any of the covenants, conditions or agreements&lt;br /&gt;
to be performed by you will not be construed to be a waiver of any succeeding&lt;br /&gt;
breach thereof or of any other covenant, condition or agreement hereof&lt;br /&gt;
contained.  Any waiver of any right of Rocket under this Agreement must be given&lt;br /&gt;
in writing and signed on behalf of Rocket to be enforceable.  If any provision of this&lt;br /&gt;
Agreement is found by a court of competent jurisdiction to be invalid or&lt;br /&gt;
unenforceable, then this Agreement will remain in full force and effect and will be&lt;br /&gt;
reformed to be valid and enforceable while reflecting the intent of the parties to&lt;br /&gt;
the greatest extent permitted by law.&lt;br /&gt;
 &lt;br /&gt;
Your registration, this Agreement and your rights and obligations hereunder are&lt;br /&gt;
not assignable or transferable by you to any third party without the prior written&lt;br /&gt;
consent of Rocket.  We may assign this Agreement to any purchaser of the Rocket&lt;br /&gt;
business.  This Agreement may be executed electronically, and your electronic&lt;br /&gt;
assent or use of the Service shall constitute execution of this Agreement.  You&lt;br /&gt;
agree that the electronic text of this Agreement constitutes a writing and your&lt;br /&gt;
assent to the terms and conditions hereof constitutes a &amp;quot;signing&amp;quot; for all purposes.&lt;br /&gt;
Email to your registered email address shall constitute effective notice by Rocket&lt;br /&gt;
to you for all purposes under or in connection with this Agreement.&lt;br /&gt;
&lt;br /&gt;
[[Category:Legal]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Terms_of_use&amp;diff=52478</id>
		<title>M204wiki:Terms of use</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Terms_of_use&amp;diff=52478"/>
		<updated>2013-02-22T04:21:25Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* DMCA Takedown notice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;M204wiki provides users with online access to M204 product documentation and a&lt;br /&gt;
procedure to collaboratively contribute and edit product documentation content.&lt;br /&gt;
M204wiki is owned and operated by Rocket Software, Inc. and its affiliates (&amp;quot;Rocket&amp;quot; or &amp;quot;we&amp;quot;).&lt;br /&gt;
These Terms of Use (&amp;quot;Agreement&amp;quot;) between you and Rocket set&lt;br /&gt;
forth the terms on which we make M204wiki available to you, &amp;quot;You&amp;quot; meaning any&lt;br /&gt;
person or entity who uses M204wiki and/or posts User Content to M204wiki.&lt;br /&gt;
By using M204wiki and/or posting [[M204wiki:Terms of use#User Content|User Content]] you agree to be bound by the terms and&lt;br /&gt;
conditions of this Agreement.&lt;br /&gt;
 &lt;br /&gt;
==Proprietary materials and ownership==&lt;br /&gt;
M204wiki is the property of Rocket.  Without limitation of the foregoing, all the text,&lt;br /&gt;
images, sound, music, marks, logos, compilations (meaning the collection,&lt;br /&gt;
arrangement and assembly of information) and other content on this website&lt;br /&gt;
other than User Content as defined below (collectively, the &amp;quot;Site Content&amp;quot;), and&lt;br /&gt;
all software embodied in M204wiki (&amp;quot;Software&amp;quot;) is proprietary to us or to third&lt;br /&gt;
parties and are protected by copyright and other intellectual property laws.&lt;br /&gt;
Except as otherwise expressly permitted by this Agreement, any use, copying,&lt;br /&gt;
making derivative works, transmitting, posting, linking, deep linking, redistribution,&lt;br /&gt;
sale, decompilation, modification, reverse engineering, translation or disassembly&lt;br /&gt;
of the Software or Site Content (collectively, the &amp;quot;Rocket Property&amp;quot;) is prohibited.&lt;br /&gt;
You may be subject to criminal or civil penalties for violation of this paragraph.&lt;br /&gt;
 &lt;br /&gt;
The marks Rocket and the Rocket Software logos are registered trademarks of Rocket Software, Inc.&lt;br /&gt;
Other products and service names might be registered or unregistered trademarks of Rocket,&lt;br /&gt;
and they may not be&lt;br /&gt;
used in connection with any service or products other than those provided by&lt;br /&gt;
Rocket, in any manner that is likely to cause confusion among Users, or in any&lt;br /&gt;
manner that disparages or discredits Rocket.  M204wiki may also feature the&lt;br /&gt;
trademarks, service marks, and logos of Rocket or third parties, and each owner&lt;br /&gt;
retains all rights in such marks.  Any use of such marks, or any others displayed&lt;br /&gt;
on M204wiki, will inure solely to the benefit of their respective owners.&lt;br /&gt;
&lt;br /&gt;
==License to use M204wiki==&lt;br /&gt;
Rocket authorizes you to access, view and use M204wiki to further your&lt;br /&gt;
understanding of Rocket products.  You may not remove any copyright, trademark&lt;br /&gt;
or other proprietary notices that have been placed on the Rocket Property.&lt;br /&gt;
Changing, copying, redistributing, republishing, uploading, posting, transmitting,&lt;br /&gt;
distributing or otherwise exploiting in any way the Rocket Property, or any portion&lt;br /&gt;
of the Rocket Property, is strictly prohibited without the prior written permission of&lt;br /&gt;
Rocket, unless this Agreement otherwise expressly allows you to do so.&lt;br /&gt;
 &lt;br /&gt;
You warrant and agree that your use of M204wiki will be consistent with this&lt;br /&gt;
Agreement and will not infringe or violate the rights of any other party or breach&lt;br /&gt;
any contract or legal duty to any other parties.  You will comply with all applicable&lt;br /&gt;
laws, regulations and ordinances relating to M204wiki, the Rocket Property or your&lt;br /&gt;
use of them, and in using M204wiki you will not engage in any conduct that restricts&lt;br /&gt;
or inhibits any other person from using or enjoying M204wiki.&lt;br /&gt;
&lt;br /&gt;
==User Content==&lt;br /&gt;
In connection with using M204wiki, you may be authorized to upload, post, or submit to M204wiki&lt;br /&gt;
screenshots, text, graphics, and other materials and information (collectively,&lt;br /&gt;
&amp;quot;User Content&amp;quot;) pertinent to the purpose of M204wiki.  The User Content remains&lt;br /&gt;
your property, and Rocket does not claim any ownership of the copyright or other&lt;br /&gt;
proprietary rights in such User Content.  Notwithstanding the foregoing, you&lt;br /&gt;
agree to all of these:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You are publishing and making your User Content publicly available for viewing&lt;br /&gt;
by third parties on a non-confidential basis, your User Content may be&lt;br /&gt;
associated with your username and so will be attributable to you, third parties will&lt;br /&gt;
gain access to your User Content through M204wiki, and Rocket shall in no event be&lt;br /&gt;
liable to you for any use or misuse of your User Content by any third party;&lt;br /&gt;
&amp;lt;li&amp;gt;You grant Rocket a worldwide, non-exclusive, perpetual, irrevocable, royalty-free, &lt;br /&gt;
transferable license, with right to sublicense through multiple tiers, to copy,&lt;br /&gt;
edit, modify, use, publish, distribute, prepare derivative works, publicly perform,&lt;br /&gt;
publicly display and otherwise exploit the User Content in connection with&lt;br /&gt;
operation of M204wiki, promotion of Rocket products and services, and any other&lt;br /&gt;
purposes reasonably related to using M204wiki and participation in promotions and&lt;br /&gt;
advertising of Rocket and its partners.&lt;br /&gt;
&amp;lt;li&amp;gt;All users of M204wiki have the right to access your User Content, and to copy,&lt;br /&gt;
modify, use, publish, distribute, prepare derivative works, publicly perform,&lt;br /&gt;
publicly display and otherwise exploit the User Content for personal, non-commercial use.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Restrictions==&lt;br /&gt;
You agree to &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; use M204wiki to do any of the following:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that is unlawful, harmful, threatening, abusive, harassing, tortious, defamatory,&lt;br /&gt;
vulgar, obscene, libelous, invasive of another&#039;s privacy, hateful, or racially,&lt;br /&gt;
ethnically or otherwise objectionable;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that you do not have a right to make available under any law or under contractual&lt;br /&gt;
or fiduciary relationships (such as inside information, proprietary and confidential&lt;br /&gt;
information learned or disclosed as part of employment relationships or under&lt;br /&gt;
nondisclosure agreements);&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that infringes any patent, trademark, trade secret, copyright or other proprietary&lt;br /&gt;
rights (&amp;quot;Rights&amp;quot;) of any party;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any unsolicited or&lt;br /&gt;
unauthorized advertising, promotional materials, &amp;quot;junk mail,&amp;quot; &amp;quot;spam,&amp;quot; &amp;quot;chain&lt;br /&gt;
letters,&amp;quot; &amp;quot;pyramid schemes,&amp;quot; or any other form of solicitation;&lt;br /&gt;
&amp;lt;li&amp;gt;Harm minors in any way;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any material that&lt;br /&gt;
contains software viruses or any other computer code, files or programs&lt;br /&gt;
designed to interrupt, destroy or limit the functionality of any computer software&lt;br /&gt;
or hardware or telecommunications equipment;&lt;br /&gt;
&amp;lt;li&amp;gt;Interfere with or disrupt M204wiki or servers or networks connected to M204wiki, or&lt;br /&gt;
disobey any requirements, procedures, policies or regulations of networks&lt;br /&gt;
connected to M204wiki;&lt;br /&gt;
&amp;lt;li&amp;gt;Intentionally or unintentionally violate any applicable local, state, national or&lt;br /&gt;
international law;&lt;br /&gt;
&amp;lt;li&amp;gt;Provide material support or resources (or to conceal or disguise the nature,&lt;br /&gt;
location, source, or ownership of material support or resources) to any&lt;br /&gt;
organization(s) designated by the United States government as a foreign terrorist&lt;br /&gt;
organization pursuant to section 219 of the Immigration and Nationality Act; or&lt;br /&gt;
&amp;lt;li&amp;gt;Collect or store personal data about other users.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You acknowledge that Rocket may or may not pre-screen User Content, but that&lt;br /&gt;
Rocket shall have the right (but not the obligation) in its sole discretion for any&lt;br /&gt;
reason to pre-screen, refuse, delete, or move any User Content that is available&lt;br /&gt;
via M204wiki.  Without limiting the foregoing, Rocket shall have the right to remove&lt;br /&gt;
any User Content that violates this Agreement or is otherwise objectionable. You&lt;br /&gt;
agree that you must evaluate, and bear all risks associated with, the use of any&lt;br /&gt;
User Content, including any reliance on the accuracy, completeness, or&lt;br /&gt;
usefulness of such User Content.&lt;br /&gt;
 &lt;br /&gt;
==Limitation of content accuracy==&lt;br /&gt;
Insofar as M204wiki is a collaborative environment for documentation of Rocket&lt;br /&gt;
products that contains edits and contributions of content by users of&lt;br /&gt;
M204wiki other than Rocket, Rocket does not guarantee the accuracy, integrity or&lt;br /&gt;
quality of M204wiki Content. Under no circumstances will Rocket be liable in any way&lt;br /&gt;
for any User Content, including, but not limited to, for any errors or omissions in&lt;br /&gt;
any User Content, or for any loss or damage of any kind incurred as a result of&lt;br /&gt;
the use of any User Content posted, emailed, transmitted or otherwise made&lt;br /&gt;
available via M204wiki.&lt;br /&gt;
&lt;br /&gt;
==Indemnity==&lt;br /&gt;
You agree to indemnify and hold Rocket, and its subsidiaries, affiliates, officers,&lt;br /&gt;
agents, co-branders or other partners, and employees, harmless from any claim,&lt;br /&gt;
demand, action, suit, proceeding, liability, losses, damages, costs and expenses,&lt;br /&gt;
including reasonable attorneys&#039; fees, arising out of User Content you submit, post,&lt;br /&gt;
transmit or make available through M204wiki, your use of M204wiki, your connection&lt;br /&gt;
to M204wiki, your violation of this Agreement, or your violation of any rights of&lt;br /&gt;
another.&lt;br /&gt;
&lt;br /&gt;
==DISCLAIMER OF WARRANTIES==&lt;br /&gt;
YOU EXPRESSLY UNDERSTAND AND AGREE THAT:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;YOUR USE OF M204WIKI IS AT YOUR SOLE RISK. M204WIKI IS PROVIDED&lt;br /&gt;
ON AN &amp;quot;AS IS&amp;quot; AND &amp;quot;AS AVAILABLE&amp;quot; BASIS. ROCKET EXPRESSLY&lt;br /&gt;
DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES&lt;br /&gt;
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND&lt;br /&gt;
NON-INFRINGEMENT.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ROCKET MAKES NO WARRANTY THAT (i) M204WIKI WILL MEET YOUR&lt;br /&gt;
REQUIREMENTS, (ii) M204WIKI WILL BE UNINTERRUPTED, TIMELY, SECURE,&lt;br /&gt;
OR ERROR-FREE, (iii) THE RESULTS THAT MAY BE OBTAINED FROM THE&lt;br /&gt;
USE OF M204WIKI WILL BE ACCURATE OR RELIABLE, (iv) THE QUALITY OF&lt;br /&gt;
ANY PRODUCTS, SERVICES, INFORMATION, OR OTHER MATERIAL&lt;br /&gt;
PURCHASED OR OBTAINED BY YOU THROUGH M204WIKI WILL MEET YOUR&lt;br /&gt;
EXPECTATIONS, (v) ANY ERRORS IN THE SOFTWARE WILL BE&lt;br /&gt;
CORRECTED, (vi) OR THAT THIS WEB SITE, ITS CONTENT, AND THE&lt;br /&gt;
SERVERS ON WHICH THE WEB SITE AND CONTENT ARE AVAILABLE ARE&lt;br /&gt;
FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH&lt;br /&gt;
THE USE OF M204WIKI IS DONE AT YOUR OWN DISCRETION AND RISK AND&lt;br /&gt;
THAT YOU WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR&lt;br /&gt;
COMPUTER SYSTEM OR LOSS OF DATA THAT RESULTS FROM THE&lt;br /&gt;
DOWNLOAD OF ANY SUCH MATERIAL.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN,&lt;br /&gt;
OBTAINED BY YOU FROM ROCKET OR THROUGH OR FROM M204WIKI SHALL&lt;br /&gt;
CREATE ANY WARRANTY NOT EXPRESSLY STATED IN THIS AGREEMENT.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;INFORMATION CREATED BY THIRD PARTIES THAT YOU MAY ACCESS&lt;br /&gt;
ON THE SITE OR THROUGH LINKS IS NOT ADOPTED OR ENDORSED BY&lt;br /&gt;
ROCKET AND REMAINS THE RESPONSIBILITY OF SUCH THIRD PARTIES.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LIMITATION OF LIABILITY==&lt;br /&gt;
YOU EXPRESSLY UNDERSTAND AND AGREE THAT ROCKET SHALL NOT BE&lt;br /&gt;
LIABLE TO YOU FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
CONSEQUENTIAL OR EXEMPLARY DAMAGES, INCLUDING BUT NOT&lt;br /&gt;
LIMITED TO, DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA&lt;br /&gt;
OR OTHER INTANGIBLE LOSSES (EVEN IF ROCKET HAS BEEN ADVISED OF&lt;br /&gt;
THE POSSIBILITY OF SUCH DAMAGES), RESULTING FROM: (i) THE USE&lt;br /&gt;
OR THE INABILITY TO USE M204WIKI; (ii) THE COST OF PROCUREMENT OF&lt;br /&gt;
SUBSTITUTE GOODS AND SERVICES RESULTING FROM ANY GOODS,&lt;br /&gt;
DATA, INFORMATION OR SERVICES PURCHASED OR OBTAINED OR&lt;br /&gt;
MESSAGES RECEIVED OR TRANSACTIONS ENTERED INTO THROUGH OR&lt;br /&gt;
FROM M204WIKI; (iii) UNAUTHORIZED ACCESS TO OR ALTERATION OF&lt;br /&gt;
YOUR TRANSMISSIONS OR DATA; (iv) STATEMENTS OR CONDUCT OF&lt;br /&gt;
ANY THIRD PARTY ON M204WIKI; OR (v) ANY OTHER MATTER RELATING TO&lt;br /&gt;
M204WIKI.&lt;br /&gt;
&lt;br /&gt;
==Digital Millennium Copyright Act==&lt;br /&gt;
Rocket complies with the provisions of the Digital Millennium Copyright Act&lt;br /&gt;
applicable to internet service providers (17 U.S.C. &#039;512, as amended).  If you&lt;br /&gt;
have any complaints or objections to material posted on M204wiki you may contact&lt;br /&gt;
our Designated Agent at the following address:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;James Lapierre&lt;br /&gt;
Rocket Software, Inc.&lt;br /&gt;
77 Fourth Avenue, Suite 100&lt;br /&gt;
Waltham, MA 02451&lt;br /&gt;
Telephone: 781 684 2267&lt;br /&gt;
Email: JLapierre@rocketsoftware.com&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
===DMCA Takedown notice===&lt;br /&gt;
Any notice alleging that materials hosted by or distributed through M204wiki infringe&lt;br /&gt;
intellectual property rights must include the following information:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;An electronic or physical signature of the person authorized to act on&lt;br /&gt;
behalf of the owner of the copyright or other right being infringed;&lt;br /&gt;
&amp;lt;li&amp;gt;A description of the copyrighted work or other intellectual property that you&lt;br /&gt;
claim has been infringed;&lt;br /&gt;
&amp;lt;li&amp;gt;A description of the material that you claim is infringing and where it is&lt;br /&gt;
located on M204wiki;&lt;br /&gt;
&amp;lt;li&amp;gt;Your address, telephone number, and email address;&lt;br /&gt;
&amp;lt;li&amp;gt;A statement by you that you have a good faith belief that the use of the&lt;br /&gt;
materials on M204wiki of which you are complaining is not authorized by the&lt;br /&gt;
copyright owner, its agent, or the law; and&lt;br /&gt;
&amp;lt;li&amp;gt;A statement by you that the above information in your notice is accurate&lt;br /&gt;
and that, under penalty of perjury, you are the copyright or intellectual property&lt;br /&gt;
owner or authorized to act on the copyright or intellectual property owner&#039;s behalf.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DMCA Counter-notice===&lt;br /&gt;
If material that you have posted to M204wiki has been removed or disabled, you&lt;br /&gt;
may file a counter notice pursuant to 17 U.S.C. &#039;512 (g). To be effective, the&lt;br /&gt;
counter notice must be a written communication sent to the designated agent&lt;br /&gt;
address listed above that includes the following:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A physical or electronic signature of the subscriber;&lt;br /&gt;
&amp;lt;li&amp;gt;Identification of the material that has been removed or to which access&lt;br /&gt;
has been disabled and the location at which the material appeared before it was&lt;br /&gt;
removed or access to it was disabled;&lt;br /&gt;
&amp;lt;li&amp;gt;A statement under penalty of perjury that you have a good faith belief that&lt;br /&gt;
the material was removed or disabled as a result of mistake or misidentification&lt;br /&gt;
of the material to be removed or disabled; and&lt;br /&gt;
&amp;lt;li&amp;gt;Your name, address, and telephone number, and a statement that you&lt;br /&gt;
consent to the jurisdiction of Federal District Court for the judicial district in which&lt;br /&gt;
the address is located or, if your address is outside of the United States, for any&lt;br /&gt;
judicial district in which Rocket may be found, and that you will accept service of&lt;br /&gt;
process from the person who provided notification under subsection 17 U.S.C.&lt;br /&gt;
&#039;512 (c)(1)(C) or an agent of such person.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modification and termination==&lt;br /&gt;
Rocket reserves the right at any time and from time to time to modify or&lt;br /&gt;
discontinue, temporarily or permanently, M204wiki (or any part thereof) with or&lt;br /&gt;
without notice. You agree that Rocket shall not be liable to you or to any third party&lt;br /&gt;
for any modification, suspension or discontinuance of M204wiki.&lt;br /&gt;
 &lt;br /&gt;
Rocket may change, add or remove any part of this Agreement, or any other terms&lt;br /&gt;
associated with the use of the site, at any time, by posting a notice of such&lt;br /&gt;
changes to the Terms of Use page of the web site. Any changes shall become&lt;br /&gt;
part of the Agreement and shall apply as soon as such a notice is posted. By&lt;br /&gt;
continuing to use M204wiki after the notice is posted, you are indicating your&lt;br /&gt;
acceptance of those changes.&lt;br /&gt;
 &lt;br /&gt;
Rocket reserves the right to refuse or discontinue access to M204wiki by any user for&lt;br /&gt;
non-compliance with this Agreement.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
Except as otherwise expressly provided herein, this Agreement, including the&lt;br /&gt;
[[M204wiki:Privacy policy|Privacy policy]] and all other operating rules, policies and procedures that may be&lt;br /&gt;
published on M204wiki from time to time, sets forth the entire agreement between&lt;br /&gt;
you and Rocket regarding the use of M204wiki, and supersedes all prior promises,&lt;br /&gt;
agreements or representations, whether written or oral, regarding such subject&lt;br /&gt;
matter.  This Agreement will be governed by and construed and enforced in&lt;br /&gt;
accordance with the substantive law of the Commonwealth of Massachusetts,&lt;br /&gt;
USA, without regard to its principles of conflicts of law.&lt;br /&gt;
 &lt;br /&gt;
No delay or omission by Rocket in exercising any of its rights occurring upon any&lt;br /&gt;
noncompliance or default by you with respect to any of the terms and conditions&lt;br /&gt;
of this Agreement will impair any such right or be construed to be a waiver&lt;br /&gt;
thereof, and a waiver by Rocket of any of the covenants, conditions or agreements&lt;br /&gt;
to be performed by you will not be construed to be a waiver of any succeeding&lt;br /&gt;
breach thereof or of any other covenant, condition or agreement hereof&lt;br /&gt;
contained.  Any waiver of any right of Rocket under this Agreement must be given&lt;br /&gt;
in writing and signed on behalf of Rocket to be enforceable.  If any provision of this&lt;br /&gt;
Agreement is found by a court of competent jurisdiction to be invalid or&lt;br /&gt;
unenforceable, then this Agreement will remain in full force and effect and will be&lt;br /&gt;
reformed to be valid and enforceable while reflecting the intent of the parties to&lt;br /&gt;
the greatest extent permitted by law.&lt;br /&gt;
 &lt;br /&gt;
Your registration, this Agreement and your rights and obligations hereunder are&lt;br /&gt;
not assignable or transferable by you to any third party without the prior written&lt;br /&gt;
consent of Rocket.  We may assign this Agreement to any purchaser of the Rocket&lt;br /&gt;
business.  This Agreement may be executed electronically, and your electronic&lt;br /&gt;
assent or use of the Service shall constitute execution of this Agreement.  You&lt;br /&gt;
agree that the electronic text of this Agreement constitutes a writing and your&lt;br /&gt;
assent to the terms and conditions hereof constitutes a &amp;quot;signing&amp;quot; for all purposes.&lt;br /&gt;
Email to your registered email address shall constitute effective notice by Rocket&lt;br /&gt;
to you for all purposes under or in connection with this Agreement.&lt;br /&gt;
&lt;br /&gt;
[[Category:Legal]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Terms_of_use&amp;diff=52477</id>
		<title>M204wiki:Terms of use</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Terms_of_use&amp;diff=52477"/>
		<updated>2013-02-22T04:19:54Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* Digital Millennium Copyright Act */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;M204wiki provides users with online access to M204 product documentation and a&lt;br /&gt;
procedure to collaboratively contribute and edit product documentation content.&lt;br /&gt;
M204wiki is owned and operated by Rocket Software, Inc. and its affiliates (&amp;quot;Rocket&amp;quot; or &amp;quot;we&amp;quot;).&lt;br /&gt;
These Terms of Use (&amp;quot;Agreement&amp;quot;) between you and Rocket set&lt;br /&gt;
forth the terms on which we make M204wiki available to you, &amp;quot;You&amp;quot; meaning any&lt;br /&gt;
person or entity who uses M204wiki and/or posts User Content to M204wiki.&lt;br /&gt;
By using M204wiki and/or posting [[M204wiki:Terms of use#User Content|User Content]] you agree to be bound by the terms and&lt;br /&gt;
conditions of this Agreement.&lt;br /&gt;
 &lt;br /&gt;
==Proprietary materials and ownership==&lt;br /&gt;
M204wiki is the property of Rocket.  Without limitation of the foregoing, all the text,&lt;br /&gt;
images, sound, music, marks, logos, compilations (meaning the collection,&lt;br /&gt;
arrangement and assembly of information) and other content on this website&lt;br /&gt;
other than User Content as defined below (collectively, the &amp;quot;Site Content&amp;quot;), and&lt;br /&gt;
all software embodied in M204wiki (&amp;quot;Software&amp;quot;) is proprietary to us or to third&lt;br /&gt;
parties and are protected by copyright and other intellectual property laws.&lt;br /&gt;
Except as otherwise expressly permitted by this Agreement, any use, copying,&lt;br /&gt;
making derivative works, transmitting, posting, linking, deep linking, redistribution,&lt;br /&gt;
sale, decompilation, modification, reverse engineering, translation or disassembly&lt;br /&gt;
of the Software or Site Content (collectively, the &amp;quot;Rocket Property&amp;quot;) is prohibited.&lt;br /&gt;
You may be subject to criminal or civil penalties for violation of this paragraph.&lt;br /&gt;
 &lt;br /&gt;
The marks Rocket and the Rocket Software logos are registered trademarks of Rocket Software, Inc.&lt;br /&gt;
Other products and service names might be registered or unregistered trademarks of Rocket,&lt;br /&gt;
and they may not be&lt;br /&gt;
used in connection with any service or products other than those provided by&lt;br /&gt;
Rocket, in any manner that is likely to cause confusion among Users, or in any&lt;br /&gt;
manner that disparages or discredits Rocket.  M204wiki may also feature the&lt;br /&gt;
trademarks, service marks, and logos of Rocket or third parties, and each owner&lt;br /&gt;
retains all rights in such marks.  Any use of such marks, or any others displayed&lt;br /&gt;
on M204wiki, will inure solely to the benefit of their respective owners.&lt;br /&gt;
&lt;br /&gt;
==License to use M204wiki==&lt;br /&gt;
Rocket authorizes you to access, view and use M204wiki to further your&lt;br /&gt;
understanding of Rocket products.  You may not remove any copyright, trademark&lt;br /&gt;
or other proprietary notices that have been placed on the Rocket Property.&lt;br /&gt;
Changing, copying, redistributing, republishing, uploading, posting, transmitting,&lt;br /&gt;
distributing or otherwise exploiting in any way the Rocket Property, or any portion&lt;br /&gt;
of the Rocket Property, is strictly prohibited without the prior written permission of&lt;br /&gt;
Rocket, unless this Agreement otherwise expressly allows you to do so.&lt;br /&gt;
 &lt;br /&gt;
You warrant and agree that your use of M204wiki will be consistent with this&lt;br /&gt;
Agreement and will not infringe or violate the rights of any other party or breach&lt;br /&gt;
any contract or legal duty to any other parties.  You will comply with all applicable&lt;br /&gt;
laws, regulations and ordinances relating to M204wiki, the Rocket Property or your&lt;br /&gt;
use of them, and in using M204wiki you will not engage in any conduct that restricts&lt;br /&gt;
or inhibits any other person from using or enjoying M204wiki.&lt;br /&gt;
&lt;br /&gt;
==User Content==&lt;br /&gt;
In connection with using M204wiki, you may be authorized to upload, post, or submit to M204wiki&lt;br /&gt;
screenshots, text, graphics, and other materials and information (collectively,&lt;br /&gt;
&amp;quot;User Content&amp;quot;) pertinent to the purpose of M204wiki.  The User Content remains&lt;br /&gt;
your property, and Rocket does not claim any ownership of the copyright or other&lt;br /&gt;
proprietary rights in such User Content.  Notwithstanding the foregoing, you&lt;br /&gt;
agree to all of these:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You are publishing and making your User Content publicly available for viewing&lt;br /&gt;
by third parties on a non-confidential basis, your User Content may be&lt;br /&gt;
associated with your username and so will be attributable to you, third parties will&lt;br /&gt;
gain access to your User Content through M204wiki, and Rocket shall in no event be&lt;br /&gt;
liable to you for any use or misuse of your User Content by any third party;&lt;br /&gt;
&amp;lt;li&amp;gt;You grant Rocket a worldwide, non-exclusive, perpetual, irrevocable, royalty-free, &lt;br /&gt;
transferable license, with right to sublicense through multiple tiers, to copy,&lt;br /&gt;
edit, modify, use, publish, distribute, prepare derivative works, publicly perform,&lt;br /&gt;
publicly display and otherwise exploit the User Content in connection with&lt;br /&gt;
operation of M204wiki, promotion of Rocket products and services, and any other&lt;br /&gt;
purposes reasonably related to using M204wiki and participation in promotions and&lt;br /&gt;
advertising of Rocket and its partners.&lt;br /&gt;
&amp;lt;li&amp;gt;All users of M204wiki have the right to access your User Content, and to copy,&lt;br /&gt;
modify, use, publish, distribute, prepare derivative works, publicly perform,&lt;br /&gt;
publicly display and otherwise exploit the User Content for personal, non-commercial use.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Restrictions==&lt;br /&gt;
You agree to &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; use M204wiki to do any of the following:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that is unlawful, harmful, threatening, abusive, harassing, tortious, defamatory,&lt;br /&gt;
vulgar, obscene, libelous, invasive of another&#039;s privacy, hateful, or racially,&lt;br /&gt;
ethnically or otherwise objectionable;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that you do not have a right to make available under any law or under contractual&lt;br /&gt;
or fiduciary relationships (such as inside information, proprietary and confidential&lt;br /&gt;
information learned or disclosed as part of employment relationships or under&lt;br /&gt;
nondisclosure agreements);&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that infringes any patent, trademark, trade secret, copyright or other proprietary&lt;br /&gt;
rights (&amp;quot;Rights&amp;quot;) of any party;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any unsolicited or&lt;br /&gt;
unauthorized advertising, promotional materials, &amp;quot;junk mail,&amp;quot; &amp;quot;spam,&amp;quot; &amp;quot;chain&lt;br /&gt;
letters,&amp;quot; &amp;quot;pyramid schemes,&amp;quot; or any other form of solicitation;&lt;br /&gt;
&amp;lt;li&amp;gt;Harm minors in any way;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any material that&lt;br /&gt;
contains software viruses or any other computer code, files or programs&lt;br /&gt;
designed to interrupt, destroy or limit the functionality of any computer software&lt;br /&gt;
or hardware or telecommunications equipment;&lt;br /&gt;
&amp;lt;li&amp;gt;Interfere with or disrupt M204wiki or servers or networks connected to M204wiki, or&lt;br /&gt;
disobey any requirements, procedures, policies or regulations of networks&lt;br /&gt;
connected to M204wiki;&lt;br /&gt;
&amp;lt;li&amp;gt;Intentionally or unintentionally violate any applicable local, state, national or&lt;br /&gt;
international law;&lt;br /&gt;
&amp;lt;li&amp;gt;Provide material support or resources (or to conceal or disguise the nature,&lt;br /&gt;
location, source, or ownership of material support or resources) to any&lt;br /&gt;
organization(s) designated by the United States government as a foreign terrorist&lt;br /&gt;
organization pursuant to section 219 of the Immigration and Nationality Act; or&lt;br /&gt;
&amp;lt;li&amp;gt;Collect or store personal data about other users.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You acknowledge that Rocket may or may not pre-screen User Content, but that&lt;br /&gt;
Rocket shall have the right (but not the obligation) in its sole discretion for any&lt;br /&gt;
reason to pre-screen, refuse, delete, or move any User Content that is available&lt;br /&gt;
via M204wiki.  Without limiting the foregoing, Rocket shall have the right to remove&lt;br /&gt;
any User Content that violates this Agreement or is otherwise objectionable. You&lt;br /&gt;
agree that you must evaluate, and bear all risks associated with, the use of any&lt;br /&gt;
User Content, including any reliance on the accuracy, completeness, or&lt;br /&gt;
usefulness of such User Content.&lt;br /&gt;
 &lt;br /&gt;
==Limitation of content accuracy==&lt;br /&gt;
Insofar as M204wiki is a collaborative environment for documentation of Rocket&lt;br /&gt;
products that contains edits and contributions of content by users of&lt;br /&gt;
M204wiki other than Rocket, Rocket does not guarantee the accuracy, integrity or&lt;br /&gt;
quality of M204wiki Content. Under no circumstances will Rocket be liable in any way&lt;br /&gt;
for any User Content, including, but not limited to, for any errors or omissions in&lt;br /&gt;
any User Content, or for any loss or damage of any kind incurred as a result of&lt;br /&gt;
the use of any User Content posted, emailed, transmitted or otherwise made&lt;br /&gt;
available via M204wiki.&lt;br /&gt;
&lt;br /&gt;
==Indemnity==&lt;br /&gt;
You agree to indemnify and hold Rocket, and its subsidiaries, affiliates, officers,&lt;br /&gt;
agents, co-branders or other partners, and employees, harmless from any claim,&lt;br /&gt;
demand, action, suit, proceeding, liability, losses, damages, costs and expenses,&lt;br /&gt;
including reasonable attorneys&#039; fees, arising out of User Content you submit, post,&lt;br /&gt;
transmit or make available through M204wiki, your use of M204wiki, your connection&lt;br /&gt;
to M204wiki, your violation of this Agreement, or your violation of any rights of&lt;br /&gt;
another.&lt;br /&gt;
&lt;br /&gt;
==DISCLAIMER OF WARRANTIES==&lt;br /&gt;
YOU EXPRESSLY UNDERSTAND AND AGREE THAT:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;YOUR USE OF M204WIKI IS AT YOUR SOLE RISK. M204WIKI IS PROVIDED&lt;br /&gt;
ON AN &amp;quot;AS IS&amp;quot; AND &amp;quot;AS AVAILABLE&amp;quot; BASIS. ROCKET EXPRESSLY&lt;br /&gt;
DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES&lt;br /&gt;
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND&lt;br /&gt;
NON-INFRINGEMENT.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ROCKET MAKES NO WARRANTY THAT (i) M204WIKI WILL MEET YOUR&lt;br /&gt;
REQUIREMENTS, (ii) M204WIKI WILL BE UNINTERRUPTED, TIMELY, SECURE,&lt;br /&gt;
OR ERROR-FREE, (iii) THE RESULTS THAT MAY BE OBTAINED FROM THE&lt;br /&gt;
USE OF M204WIKI WILL BE ACCURATE OR RELIABLE, (iv) THE QUALITY OF&lt;br /&gt;
ANY PRODUCTS, SERVICES, INFORMATION, OR OTHER MATERIAL&lt;br /&gt;
PURCHASED OR OBTAINED BY YOU THROUGH M204WIKI WILL MEET YOUR&lt;br /&gt;
EXPECTATIONS, (v) ANY ERRORS IN THE SOFTWARE WILL BE&lt;br /&gt;
CORRECTED, (vi) OR THAT THIS WEB SITE, ITS CONTENT, AND THE&lt;br /&gt;
SERVERS ON WHICH THE WEB SITE AND CONTENT ARE AVAILABLE ARE&lt;br /&gt;
FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH&lt;br /&gt;
THE USE OF M204WIKI IS DONE AT YOUR OWN DISCRETION AND RISK AND&lt;br /&gt;
THAT YOU WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR&lt;br /&gt;
COMPUTER SYSTEM OR LOSS OF DATA THAT RESULTS FROM THE&lt;br /&gt;
DOWNLOAD OF ANY SUCH MATERIAL.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN,&lt;br /&gt;
OBTAINED BY YOU FROM ROCKET OR THROUGH OR FROM M204WIKI SHALL&lt;br /&gt;
CREATE ANY WARRANTY NOT EXPRESSLY STATED IN THIS AGREEMENT.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;INFORMATION CREATED BY THIRD PARTIES THAT YOU MAY ACCESS&lt;br /&gt;
ON THE SITE OR THROUGH LINKS IS NOT ADOPTED OR ENDORSED BY&lt;br /&gt;
ROCKET AND REMAINS THE RESPONSIBILITY OF SUCH THIRD PARTIES.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LIMITATION OF LIABILITY==&lt;br /&gt;
YOU EXPRESSLY UNDERSTAND AND AGREE THAT ROCKET SHALL NOT BE&lt;br /&gt;
LIABLE TO YOU FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
CONSEQUENTIAL OR EXEMPLARY DAMAGES, INCLUDING BUT NOT&lt;br /&gt;
LIMITED TO, DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA&lt;br /&gt;
OR OTHER INTANGIBLE LOSSES (EVEN IF ROCKET HAS BEEN ADVISED OF&lt;br /&gt;
THE POSSIBILITY OF SUCH DAMAGES), RESULTING FROM: (i) THE USE&lt;br /&gt;
OR THE INABILITY TO USE M204WIKI; (ii) THE COST OF PROCUREMENT OF&lt;br /&gt;
SUBSTITUTE GOODS AND SERVICES RESULTING FROM ANY GOODS,&lt;br /&gt;
DATA, INFORMATION OR SERVICES PURCHASED OR OBTAINED OR&lt;br /&gt;
MESSAGES RECEIVED OR TRANSACTIONS ENTERED INTO THROUGH OR&lt;br /&gt;
FROM M204WIKI; (iii) UNAUTHORIZED ACCESS TO OR ALTERATION OF&lt;br /&gt;
YOUR TRANSMISSIONS OR DATA; (iv) STATEMENTS OR CONDUCT OF&lt;br /&gt;
ANY THIRD PARTY ON M204WIKI; OR (v) ANY OTHER MATTER RELATING TO&lt;br /&gt;
M204WIKI.&lt;br /&gt;
&lt;br /&gt;
==Digital Millennium Copyright Act==&lt;br /&gt;
Rocket complies with the provisions of the Digital Millennium Copyright Act&lt;br /&gt;
applicable to internet service providers (17 U.S.C. &#039;512, as amended).  If you&lt;br /&gt;
have any complaints or objections to material posted on M204wiki you may contact&lt;br /&gt;
our Designated Agent at the following address:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;James Lapierre&lt;br /&gt;
Rocket Software, Inc.&lt;br /&gt;
77 Fourth Avenue, Suite 100&lt;br /&gt;
Waltham, MA 02451&lt;br /&gt;
Telephone: 781 684 2267&lt;br /&gt;
Email: JLapierre@rocketsoftware.com&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
===DMCA Takedown notice===&lt;br /&gt;
Any notice alleging that materials hosted by or distributed through M204wiki infringe&lt;br /&gt;
intellectual property rights must include the following information:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;An electronic or physical signature of the person authorized to act on&lt;br /&gt;
behalf of the owner of the copyright or other right being infringed;&lt;br /&gt;
&amp;lt;li&amp;gt;A description of the copyrighted work or other intellectual property that you&lt;br /&gt;
claim has been infringed;&lt;br /&gt;
&amp;lt;li&amp;gt;A description of the material that you claim is infringing and where it is&lt;br /&gt;
located on M204wiki;&lt;br /&gt;
&amp;lt;li&amp;gt;Your address, telephone number, and email address;&lt;br /&gt;
&amp;lt;li&amp;gt;A statement by you that you have a good faith belief that the use of the&lt;br /&gt;
materials on M204wiki of which you are complaining is not authorized by the&lt;br /&gt;
copyright owner, its agent, or the law; and&lt;br /&gt;
&amp;lt;li&amp;gt;A statement by you that the above information in your notice is accurate&lt;br /&gt;
and that, under penalty of perjury, you are the copyright or intellectual property&lt;br /&gt;
owner or authorized to act on the copyright or intellectual property owner&#039;s behalf.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
===DMCA Counter-notice===&lt;br /&gt;
If material that you have posted to M204wiki has been removed or disabled, you&lt;br /&gt;
may file a counter notice pursuant to 17 U.S.C. &#039;512 (g). To be effective, the&lt;br /&gt;
counter notice must be a written communication sent to the designated agent&lt;br /&gt;
address listed above that includes the following:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A physical or electronic signature of the subscriber;&lt;br /&gt;
&amp;lt;li&amp;gt;Identification of the material that has been removed or to which access&lt;br /&gt;
has been disabled and the location at which the material appeared before it was&lt;br /&gt;
removed or access to it was disabled;&lt;br /&gt;
&amp;lt;li&amp;gt;A statement under penalty of perjury that you have a good faith belief that&lt;br /&gt;
the material was removed or disabled as a result of mistake or misidentification&lt;br /&gt;
of the material to be removed or disabled; and&lt;br /&gt;
&amp;lt;li&amp;gt;Your name, address, and telephone number, and a statement that you&lt;br /&gt;
consent to the jurisdiction of Federal District Court for the judicial district in which&lt;br /&gt;
the address is located or, if your address is outside of the United States, for any&lt;br /&gt;
judicial district in which Rocket may be found, and that you will accept service of&lt;br /&gt;
process from the person who provided notification under subsection 17 U.S.C.&lt;br /&gt;
&#039;512 (c)(1)(C) or an agent of such person.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modification and termination==&lt;br /&gt;
Rocket reserves the right at any time and from time to time to modify or&lt;br /&gt;
discontinue, temporarily or permanently, M204wiki (or any part thereof) with or&lt;br /&gt;
without notice. You agree that Rocket shall not be liable to you or to any third party&lt;br /&gt;
for any modification, suspension or discontinuance of M204wiki.&lt;br /&gt;
 &lt;br /&gt;
Rocket may change, add or remove any part of this Agreement, or any other terms&lt;br /&gt;
associated with the use of the site, at any time, by posting a notice of such&lt;br /&gt;
changes to the Terms of Use page of the web site. Any changes shall become&lt;br /&gt;
part of the Agreement and shall apply as soon as such a notice is posted. By&lt;br /&gt;
continuing to use M204wiki after the notice is posted, you are indicating your&lt;br /&gt;
acceptance of those changes.&lt;br /&gt;
 &lt;br /&gt;
Rocket reserves the right to refuse or discontinue access to M204wiki by any user for&lt;br /&gt;
non-compliance with this Agreement.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
Except as otherwise expressly provided herein, this Agreement, including the&lt;br /&gt;
[[M204wiki:Privacy policy|Privacy policy]] and all other operating rules, policies and procedures that may be&lt;br /&gt;
published on M204wiki from time to time, sets forth the entire agreement between&lt;br /&gt;
you and Rocket regarding the use of M204wiki, and supersedes all prior promises,&lt;br /&gt;
agreements or representations, whether written or oral, regarding such subject&lt;br /&gt;
matter.  This Agreement will be governed by and construed and enforced in&lt;br /&gt;
accordance with the substantive law of the Commonwealth of Massachusetts,&lt;br /&gt;
USA, without regard to its principles of conflicts of law.&lt;br /&gt;
 &lt;br /&gt;
No delay or omission by Rocket in exercising any of its rights occurring upon any&lt;br /&gt;
noncompliance or default by you with respect to any of the terms and conditions&lt;br /&gt;
of this Agreement will impair any such right or be construed to be a waiver&lt;br /&gt;
thereof, and a waiver by Rocket of any of the covenants, conditions or agreements&lt;br /&gt;
to be performed by you will not be construed to be a waiver of any succeeding&lt;br /&gt;
breach thereof or of any other covenant, condition or agreement hereof&lt;br /&gt;
contained.  Any waiver of any right of Rocket under this Agreement must be given&lt;br /&gt;
in writing and signed on behalf of Rocket to be enforceable.  If any provision of this&lt;br /&gt;
Agreement is found by a court of competent jurisdiction to be invalid or&lt;br /&gt;
unenforceable, then this Agreement will remain in full force and effect and will be&lt;br /&gt;
reformed to be valid and enforceable while reflecting the intent of the parties to&lt;br /&gt;
the greatest extent permitted by law.&lt;br /&gt;
 &lt;br /&gt;
Your registration, this Agreement and your rights and obligations hereunder are&lt;br /&gt;
not assignable or transferable by you to any third party without the prior written&lt;br /&gt;
consent of Rocket.  We may assign this Agreement to any purchaser of the Rocket&lt;br /&gt;
business.  This Agreement may be executed electronically, and your electronic&lt;br /&gt;
assent or use of the Service shall constitute execution of this Agreement.  You&lt;br /&gt;
agree that the electronic text of this Agreement constitutes a writing and your&lt;br /&gt;
assent to the terms and conditions hereof constitutes a &amp;quot;signing&amp;quot; for all purposes.&lt;br /&gt;
Email to your registered email address shall constitute effective notice by Rocket&lt;br /&gt;
to you for all purposes under or in connection with this Agreement.&lt;br /&gt;
&lt;br /&gt;
[[Category:Legal]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Terms_of_use&amp;diff=52476</id>
		<title>M204wiki:Terms of use</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=M204wiki:Terms_of_use&amp;diff=52476"/>
		<updated>2013-02-22T04:09:32Z</updated>

		<summary type="html">&lt;p&gt;Gary: /* Limitation of liability */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;M204wiki provides users with online access to M204 product documentation and a&lt;br /&gt;
procedure to collaboratively contribute and edit product documentation content.&lt;br /&gt;
M204wiki is owned and operated by Rocket Software, Inc. and its affiliates (&amp;quot;Rocket&amp;quot; or &amp;quot;we&amp;quot;).&lt;br /&gt;
These Terms of Use (&amp;quot;Agreement&amp;quot;) between you and Rocket set&lt;br /&gt;
forth the terms on which we make M204wiki available to you, &amp;quot;You&amp;quot; meaning any&lt;br /&gt;
person or entity who uses M204wiki and/or posts User Content to M204wiki.&lt;br /&gt;
By using M204wiki and/or posting [[M204wiki:Terms of use#User Content|User Content]] you agree to be bound by the terms and&lt;br /&gt;
conditions of this Agreement.&lt;br /&gt;
 &lt;br /&gt;
==Proprietary materials and ownership==&lt;br /&gt;
M204wiki is the property of Rocket.  Without limitation of the foregoing, all the text,&lt;br /&gt;
images, sound, music, marks, logos, compilations (meaning the collection,&lt;br /&gt;
arrangement and assembly of information) and other content on this website&lt;br /&gt;
other than User Content as defined below (collectively, the &amp;quot;Site Content&amp;quot;), and&lt;br /&gt;
all software embodied in M204wiki (&amp;quot;Software&amp;quot;) is proprietary to us or to third&lt;br /&gt;
parties and are protected by copyright and other intellectual property laws.&lt;br /&gt;
Except as otherwise expressly permitted by this Agreement, any use, copying,&lt;br /&gt;
making derivative works, transmitting, posting, linking, deep linking, redistribution,&lt;br /&gt;
sale, decompilation, modification, reverse engineering, translation or disassembly&lt;br /&gt;
of the Software or Site Content (collectively, the &amp;quot;Rocket Property&amp;quot;) is prohibited.&lt;br /&gt;
You may be subject to criminal or civil penalties for violation of this paragraph.&lt;br /&gt;
 &lt;br /&gt;
The marks Rocket and the Rocket Software logos are registered trademarks of Rocket Software, Inc.&lt;br /&gt;
Other products and service names might be registered or unregistered trademarks of Rocket,&lt;br /&gt;
and they may not be&lt;br /&gt;
used in connection with any service or products other than those provided by&lt;br /&gt;
Rocket, in any manner that is likely to cause confusion among Users, or in any&lt;br /&gt;
manner that disparages or discredits Rocket.  M204wiki may also feature the&lt;br /&gt;
trademarks, service marks, and logos of Rocket or third parties, and each owner&lt;br /&gt;
retains all rights in such marks.  Any use of such marks, or any others displayed&lt;br /&gt;
on M204wiki, will inure solely to the benefit of their respective owners.&lt;br /&gt;
&lt;br /&gt;
==License to use M204wiki==&lt;br /&gt;
Rocket authorizes you to access, view and use M204wiki to further your&lt;br /&gt;
understanding of Rocket products.  You may not remove any copyright, trademark&lt;br /&gt;
or other proprietary notices that have been placed on the Rocket Property.&lt;br /&gt;
Changing, copying, redistributing, republishing, uploading, posting, transmitting,&lt;br /&gt;
distributing or otherwise exploiting in any way the Rocket Property, or any portion&lt;br /&gt;
of the Rocket Property, is strictly prohibited without the prior written permission of&lt;br /&gt;
Rocket, unless this Agreement otherwise expressly allows you to do so.&lt;br /&gt;
 &lt;br /&gt;
You warrant and agree that your use of M204wiki will be consistent with this&lt;br /&gt;
Agreement and will not infringe or violate the rights of any other party or breach&lt;br /&gt;
any contract or legal duty to any other parties.  You will comply with all applicable&lt;br /&gt;
laws, regulations and ordinances relating to M204wiki, the Rocket Property or your&lt;br /&gt;
use of them, and in using M204wiki you will not engage in any conduct that restricts&lt;br /&gt;
or inhibits any other person from using or enjoying M204wiki.&lt;br /&gt;
&lt;br /&gt;
==User Content==&lt;br /&gt;
In connection with using M204wiki, you may be authorized to upload, post, or submit to M204wiki&lt;br /&gt;
screenshots, text, graphics, and other materials and information (collectively,&lt;br /&gt;
&amp;quot;User Content&amp;quot;) pertinent to the purpose of M204wiki.  The User Content remains&lt;br /&gt;
your property, and Rocket does not claim any ownership of the copyright or other&lt;br /&gt;
proprietary rights in such User Content.  Notwithstanding the foregoing, you&lt;br /&gt;
agree to all of these:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You are publishing and making your User Content publicly available for viewing&lt;br /&gt;
by third parties on a non-confidential basis, your User Content may be&lt;br /&gt;
associated with your username and so will be attributable to you, third parties will&lt;br /&gt;
gain access to your User Content through M204wiki, and Rocket shall in no event be&lt;br /&gt;
liable to you for any use or misuse of your User Content by any third party;&lt;br /&gt;
&amp;lt;li&amp;gt;You grant Rocket a worldwide, non-exclusive, perpetual, irrevocable, royalty-free, &lt;br /&gt;
transferable license, with right to sublicense through multiple tiers, to copy,&lt;br /&gt;
edit, modify, use, publish, distribute, prepare derivative works, publicly perform,&lt;br /&gt;
publicly display and otherwise exploit the User Content in connection with&lt;br /&gt;
operation of M204wiki, promotion of Rocket products and services, and any other&lt;br /&gt;
purposes reasonably related to using M204wiki and participation in promotions and&lt;br /&gt;
advertising of Rocket and its partners.&lt;br /&gt;
&amp;lt;li&amp;gt;All users of M204wiki have the right to access your User Content, and to copy,&lt;br /&gt;
modify, use, publish, distribute, prepare derivative works, publicly perform,&lt;br /&gt;
publicly display and otherwise exploit the User Content for personal, non-commercial use.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Restrictions==&lt;br /&gt;
You agree to &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; use M204wiki to do any of the following:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that is unlawful, harmful, threatening, abusive, harassing, tortious, defamatory,&lt;br /&gt;
vulgar, obscene, libelous, invasive of another&#039;s privacy, hateful, or racially,&lt;br /&gt;
ethnically or otherwise objectionable;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that you do not have a right to make available under any law or under contractual&lt;br /&gt;
or fiduciary relationships (such as inside information, proprietary and confidential&lt;br /&gt;
information learned or disclosed as part of employment relationships or under&lt;br /&gt;
nondisclosure agreements);&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any User Content&lt;br /&gt;
that infringes any patent, trademark, trade secret, copyright or other proprietary&lt;br /&gt;
rights (&amp;quot;Rights&amp;quot;) of any party;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any unsolicited or&lt;br /&gt;
unauthorized advertising, promotional materials, &amp;quot;junk mail,&amp;quot; &amp;quot;spam,&amp;quot; &amp;quot;chain&lt;br /&gt;
letters,&amp;quot; &amp;quot;pyramid schemes,&amp;quot; or any other form of solicitation;&lt;br /&gt;
&amp;lt;li&amp;gt;Harm minors in any way;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload, post, email, transmit or otherwise make available any material that&lt;br /&gt;
contains software viruses or any other computer code, files or programs&lt;br /&gt;
designed to interrupt, destroy or limit the functionality of any computer software&lt;br /&gt;
or hardware or telecommunications equipment;&lt;br /&gt;
&amp;lt;li&amp;gt;Interfere with or disrupt M204wiki or servers or networks connected to M204wiki, or&lt;br /&gt;
disobey any requirements, procedures, policies or regulations of networks&lt;br /&gt;
connected to M204wiki;&lt;br /&gt;
&amp;lt;li&amp;gt;Intentionally or unintentionally violate any applicable local, state, national or&lt;br /&gt;
international law;&lt;br /&gt;
&amp;lt;li&amp;gt;Provide material support or resources (or to conceal or disguise the nature,&lt;br /&gt;
location, source, or ownership of material support or resources) to any&lt;br /&gt;
organization(s) designated by the United States government as a foreign terrorist&lt;br /&gt;
organization pursuant to section 219 of the Immigration and Nationality Act; or&lt;br /&gt;
&amp;lt;li&amp;gt;Collect or store personal data about other users.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You acknowledge that Rocket may or may not pre-screen User Content, but that&lt;br /&gt;
Rocket shall have the right (but not the obligation) in its sole discretion for any&lt;br /&gt;
reason to pre-screen, refuse, delete, or move any User Content that is available&lt;br /&gt;
via M204wiki.  Without limiting the foregoing, Rocket shall have the right to remove&lt;br /&gt;
any User Content that violates this Agreement or is otherwise objectionable. You&lt;br /&gt;
agree that you must evaluate, and bear all risks associated with, the use of any&lt;br /&gt;
User Content, including any reliance on the accuracy, completeness, or&lt;br /&gt;
usefulness of such User Content.&lt;br /&gt;
 &lt;br /&gt;
==Limitation of content accuracy==&lt;br /&gt;
Insofar as M204wiki is a collaborative environment for documentation of Rocket&lt;br /&gt;
products that contains edits and contributions of content by users of&lt;br /&gt;
M204wiki other than Rocket, Rocket does not guarantee the accuracy, integrity or&lt;br /&gt;
quality of M204wiki Content. Under no circumstances will Rocket be liable in any way&lt;br /&gt;
for any User Content, including, but not limited to, for any errors or omissions in&lt;br /&gt;
any User Content, or for any loss or damage of any kind incurred as a result of&lt;br /&gt;
the use of any User Content posted, emailed, transmitted or otherwise made&lt;br /&gt;
available via M204wiki.&lt;br /&gt;
&lt;br /&gt;
==Indemnity==&lt;br /&gt;
You agree to indemnify and hold Rocket, and its subsidiaries, affiliates, officers,&lt;br /&gt;
agents, co-branders or other partners, and employees, harmless from any claim,&lt;br /&gt;
demand, action, suit, proceeding, liability, losses, damages, costs and expenses,&lt;br /&gt;
including reasonable attorneys&#039; fees, arising out of User Content you submit, post,&lt;br /&gt;
transmit or make available through M204wiki, your use of M204wiki, your connection&lt;br /&gt;
to M204wiki, your violation of this Agreement, or your violation of any rights of&lt;br /&gt;
another.&lt;br /&gt;
&lt;br /&gt;
==DISCLAIMER OF WARRANTIES==&lt;br /&gt;
YOU EXPRESSLY UNDERSTAND AND AGREE THAT:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;YOUR USE OF M204WIKI IS AT YOUR SOLE RISK. M204WIKI IS PROVIDED&lt;br /&gt;
ON AN &amp;quot;AS IS&amp;quot; AND &amp;quot;AS AVAILABLE&amp;quot; BASIS. ROCKET EXPRESSLY&lt;br /&gt;
DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR&lt;br /&gt;
IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES&lt;br /&gt;
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND&lt;br /&gt;
NON-INFRINGEMENT.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ROCKET MAKES NO WARRANTY THAT (i) M204WIKI WILL MEET YOUR&lt;br /&gt;
REQUIREMENTS, (ii) M204WIKI WILL BE UNINTERRUPTED, TIMELY, SECURE,&lt;br /&gt;
OR ERROR-FREE, (iii) THE RESULTS THAT MAY BE OBTAINED FROM THE&lt;br /&gt;
USE OF M204WIKI WILL BE ACCURATE OR RELIABLE, (iv) THE QUALITY OF&lt;br /&gt;
ANY PRODUCTS, SERVICES, INFORMATION, OR OTHER MATERIAL&lt;br /&gt;
PURCHASED OR OBTAINED BY YOU THROUGH M204WIKI WILL MEET YOUR&lt;br /&gt;
EXPECTATIONS, (v) ANY ERRORS IN THE SOFTWARE WILL BE&lt;br /&gt;
CORRECTED, (vi) OR THAT THIS WEB SITE, ITS CONTENT, AND THE&lt;br /&gt;
SERVERS ON WHICH THE WEB SITE AND CONTENT ARE AVAILABLE ARE&lt;br /&gt;
FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH&lt;br /&gt;
THE USE OF M204WIKI IS DONE AT YOUR OWN DISCRETION AND RISK AND&lt;br /&gt;
THAT YOU WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR&lt;br /&gt;
COMPUTER SYSTEM OR LOSS OF DATA THAT RESULTS FROM THE&lt;br /&gt;
DOWNLOAD OF ANY SUCH MATERIAL.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN,&lt;br /&gt;
OBTAINED BY YOU FROM ROCKET OR THROUGH OR FROM M204WIKI SHALL&lt;br /&gt;
CREATE ANY WARRANTY NOT EXPRESSLY STATED IN THIS AGREEMENT.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;INFORMATION CREATED BY THIRD PARTIES THAT YOU MAY ACCESS&lt;br /&gt;
ON THE SITE OR THROUGH LINKS IS NOT ADOPTED OR ENDORSED BY&lt;br /&gt;
ROCKET AND REMAINS THE RESPONSIBILITY OF SUCH THIRD PARTIES.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LIMITATION OF LIABILITY==&lt;br /&gt;
YOU EXPRESSLY UNDERSTAND AND AGREE THAT ROCKET SHALL NOT BE&lt;br /&gt;
LIABLE TO YOU FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
CONSEQUENTIAL OR EXEMPLARY DAMAGES, INCLUDING BUT NOT&lt;br /&gt;
LIMITED TO, DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA&lt;br /&gt;
OR OTHER INTANGIBLE LOSSES (EVEN IF ROCKET HAS BEEN ADVISED OF&lt;br /&gt;
THE POSSIBILITY OF SUCH DAMAGES), RESULTING FROM: (i) THE USE&lt;br /&gt;
OR THE INABILITY TO USE M204WIKI; (ii) THE COST OF PROCUREMENT OF&lt;br /&gt;
SUBSTITUTE GOODS AND SERVICES RESULTING FROM ANY GOODS,&lt;br /&gt;
DATA, INFORMATION OR SERVICES PURCHASED OR OBTAINED OR&lt;br /&gt;
MESSAGES RECEIVED OR TRANSACTIONS ENTERED INTO THROUGH OR&lt;br /&gt;
FROM M204WIKI; (iii) UNAUTHORIZED ACCESS TO OR ALTERATION OF&lt;br /&gt;
YOUR TRANSMISSIONS OR DATA; (iv) STATEMENTS OR CONDUCT OF&lt;br /&gt;
ANY THIRD PARTY ON M204WIKI; OR (v) ANY OTHER MATTER RELATING TO&lt;br /&gt;
M204WIKI.&lt;br /&gt;
&lt;br /&gt;
==Digital Millennium Copyright Act==&lt;br /&gt;
Rocket complies with the provisions of the Digital Millennium Copyright Act&lt;br /&gt;
applicable to internet service providers (17 U.S.C. &#039;512, as amended).  If you&lt;br /&gt;
have any complaints or objections to material posted on M204wiki you may contact&lt;br /&gt;
our Designated Agent at the following address:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;James Lapierre&lt;br /&gt;
Rocket Software, Inc.&lt;br /&gt;
77 Fourth Avenue, Suite 100&lt;br /&gt;
Waltham, MA 02451&lt;br /&gt;
Telephone: 781 684 2267&lt;br /&gt;
Email: JLapierre@rocketsoftware.com&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
Any notice alleging that materials hosted by or distributed through M204wiki infringe&lt;br /&gt;
intellectual property rights must include the following information:&lt;br /&gt;
&amp;lt;ol class=&amp;quot;low-al&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;An electronic or physical signature of the person authorized to act on&lt;br /&gt;
behalf of the owner of the copyright or other right being infringed;&lt;br /&gt;
&amp;lt;li&amp;gt;A description of the copyrighted work or other intellectual property that you&lt;br /&gt;
claim has been infringed;&lt;br /&gt;
&amp;lt;li&amp;gt;A description of the material that you claim is infringing and where it is&lt;br /&gt;
located on M204wiki;&lt;br /&gt;
&amp;lt;li&amp;gt;Your address, telephone number, and email address;&lt;br /&gt;
&amp;lt;li&amp;gt;A statement by you that you have a good faith belief that the use of the&lt;br /&gt;
materials on M204wiki of which you are complaining is not authorized by the&lt;br /&gt;
copyright owner, its agent, or the law; and&lt;br /&gt;
&amp;lt;li&amp;gt;A statement by you that the above information in your notice is accurate&lt;br /&gt;
and that, under penalty of perjury, you are the copyright or intellectual property&lt;br /&gt;
owner or authorized to act on the copyright or intellectual property owner&#039;s behalf.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Counter notices&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If material that you have posted to M204wiki has been removed or disabled, you&lt;br /&gt;
may file a counter notice pursuant to 17 U.S.C. &#039;512 (g). To be effective, the&lt;br /&gt;
counter notice must be a written communication sent to the designated agent&lt;br /&gt;
address listed above that includes the following:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A physical or electronic signature of the subscriber;&lt;br /&gt;
&amp;lt;li&amp;gt;Identification of the material that has been removed or to which access&lt;br /&gt;
has been disabled and the location at which the material appeared before it was&lt;br /&gt;
removed or access to it was disabled;&lt;br /&gt;
&amp;lt;li&amp;gt;A statement under penalty of perjury that you have a good faith belief that&lt;br /&gt;
the material was removed or disabled as a result of mistake or misidentification&lt;br /&gt;
of the material to be removed or disabled; and&lt;br /&gt;
&amp;lt;li&amp;gt;Your name, address, and telephone number, and a statement that you&lt;br /&gt;
consent to the jurisdiction of Federal District Court for the judicial district in which&lt;br /&gt;
the address is located or, if your address is outside of the United States, for any&lt;br /&gt;
judicial district in which Rocket may be found, and that you will accept service of&lt;br /&gt;
process from the person who provided notification under subsection 17 U.S.C.&lt;br /&gt;
&#039;512 (c)(1)(C) or an agent of such person.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modification and termination==&lt;br /&gt;
Rocket reserves the right at any time and from time to time to modify or&lt;br /&gt;
discontinue, temporarily or permanently, M204wiki (or any part thereof) with or&lt;br /&gt;
without notice. You agree that Rocket shall not be liable to you or to any third party&lt;br /&gt;
for any modification, suspension or discontinuance of M204wiki.&lt;br /&gt;
 &lt;br /&gt;
Rocket may change, add or remove any part of this Agreement, or any other terms&lt;br /&gt;
associated with the use of the site, at any time, by posting a notice of such&lt;br /&gt;
changes to the Terms of Use page of the web site. Any changes shall become&lt;br /&gt;
part of the Agreement and shall apply as soon as such a notice is posted. By&lt;br /&gt;
continuing to use M204wiki after the notice is posted, you are indicating your&lt;br /&gt;
acceptance of those changes.&lt;br /&gt;
 &lt;br /&gt;
Rocket reserves the right to refuse or discontinue access to M204wiki by any user for&lt;br /&gt;
non-compliance with this Agreement.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
Except as otherwise expressly provided herein, this Agreement, including the&lt;br /&gt;
[[M204wiki:Privacy policy|Privacy policy]] and all other operating rules, policies and procedures that may be&lt;br /&gt;
published on M204wiki from time to time, sets forth the entire agreement between&lt;br /&gt;
you and Rocket regarding the use of M204wiki, and supersedes all prior promises,&lt;br /&gt;
agreements or representations, whether written or oral, regarding such subject&lt;br /&gt;
matter.  This Agreement will be governed by and construed and enforced in&lt;br /&gt;
accordance with the substantive law of the Commonwealth of Massachusetts,&lt;br /&gt;
USA, without regard to its principles of conflicts of law.&lt;br /&gt;
 &lt;br /&gt;
No delay or omission by Rocket in exercising any of its rights occurring upon any&lt;br /&gt;
noncompliance or default by you with respect to any of the terms and conditions&lt;br /&gt;
of this Agreement will impair any such right or be construed to be a waiver&lt;br /&gt;
thereof, and a waiver by Rocket of any of the covenants, conditions or agreements&lt;br /&gt;
to be performed by you will not be construed to be a waiver of any succeeding&lt;br /&gt;
breach thereof or of any other covenant, condition or agreement hereof&lt;br /&gt;
contained.  Any waiver of any right of Rocket under this Agreement must be given&lt;br /&gt;
in writing and signed on behalf of Rocket to be enforceable.  If any provision of this&lt;br /&gt;
Agreement is found by a court of competent jurisdiction to be invalid or&lt;br /&gt;
unenforceable, then this Agreement will remain in full force and effect and will be&lt;br /&gt;
reformed to be valid and enforceable while reflecting the intent of the parties to&lt;br /&gt;
the greatest extent permitted by law.&lt;br /&gt;
 &lt;br /&gt;
Your registration, this Agreement and your rights and obligations hereunder are&lt;br /&gt;
not assignable or transferable by you to any third party without the prior written&lt;br /&gt;
consent of Rocket.  We may assign this Agreement to any purchaser of the Rocket&lt;br /&gt;
business.  This Agreement may be executed electronically, and your electronic&lt;br /&gt;
assent or use of the Service shall constitute execution of this Agreement.  You&lt;br /&gt;
agree that the electronic text of this Agreement constitutes a writing and your&lt;br /&gt;
assent to the terms and conditions hereof constitutes a &amp;quot;signing&amp;quot; for all purposes.&lt;br /&gt;
Email to your registered email address shall constitute effective notice by Rocket&lt;br /&gt;
to you for all purposes under or in connection with this Agreement.&lt;br /&gt;
&lt;br /&gt;
[[Category:Legal]]&lt;/div&gt;</summary>
		<author><name>Gary</name></author>
	</entry>
</feed>