<?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=Teagan</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=Teagan"/>
	<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Special:Contributions/Teagan"/>
	<updated>2026-06-04T18:58:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Security_Server_(formerly_RACF)_interface&amp;diff=80826</id>
		<title>Security Server (formerly RACF) interface</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Security_Server_(formerly_RACF)_interface&amp;diff=80826"/>
		<updated>2015-09-16T19:48:29Z</updated>

		<summary type="html">&lt;p&gt;Teagan: spelling correction (t to the)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
This topic presents an overview of how Security Server works and describes the impact of the Security Server Interface on the Model 204 user, system manager, and Security Server security administrator.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; The Security Server interface was formerly known as the RACF interface.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Security Server===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Security Server is an extension of the IBM z/OS operating system that provides comprehensive data security. The Security Server Interface allows a Model 204 installation to use Security Server services within the Security Server environment. &amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Model 204 Security Server Interface===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The Model 204 Security Server Interface allows an orderly migration from Model 204 security to Security Server security and allows an installation to use a combination of either or both security methods. The interface provides the tools and instructions necessary to: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Define a Security Server control group so that Model 204 can distinguish between separately running copies (that is, test and production) &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Define Security Server generic profiles for Security Server authorization of Model 204 user privileges within a control group &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Define a generic profile within Security Server that is associated with a control group, and determines whether a user can log in to Model 204 &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Define a Security Server common control group for Model 204 resources that can be shared between running copies &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Define a default user priority class, or define the Security Server generic profiles that permit certain users to have specified Model 204 priorities &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Provide a mechanism to validate accounting information &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Determine a generic profile within Security Server that can define whether a user is allowed to submit JCL through the USE command &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Allow a system manager to add, change, or delete Security Server Interface options that control interface operations &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Provide a mechanism that establishes a shadow login capability to restrict user authorization via a default user ID for users who do not log directly in to Security Server &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Provide a method for a Security Server security administrator to define a default group, user ID, and password for the default user ID &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Provide a method for a Security Server security administrator to force users to log in through Security Server and not through &lt;br /&gt;
CCASTAT &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
===Model 204 Security Server Interface components===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In summary, the Security Server Interface provides all the facilities an installation needs to implement Security Server security within the Model 204 environment. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following figure illustrates the components of the Security Server Interface. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:SECURITY_Security_Server_interface.jpg|border|450px]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p class=&amp;quot;caption&amp;quot;&amp;gt;Security Server Interface&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The Security Server Interface consists of the following components: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Component&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;Notes&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Model 204 &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;Links with the Security Server Interface 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;Security Server Interface module, RACFOS&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;Communicates with Security Server by using the System Authorization Facility (SAF) z/OS router&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;RACFPARM module &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;Can be linked with Model 204 or loaded dynamically at initialization&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;Model 204 system file, CCASTAT&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;Contains file protection passwords, user IDs, and user ID passwords&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;
==Brief introduction to Security Server==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This section provides a brief summary of key Security Server features that are used in the discussion of the Model 204 Security Server Interface. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For more information about the Security Server, see the [http://www-03.ibm.com/systems/z/os/zos/features/racf/resources.html IBM documentation] associated with that product. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Security Server processing===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Security Server identifies and verifies users accessing a system in which Security Server is installed and determines whether or not the user: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Is defined to Security Server &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Has supplied a valid password (and/or operator identification card) and group name &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Has the REVOKE attribute, which prevents a Security Server defined user from entering the system at all or from entering the system with certain groups &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Can use the system only at certain times or on certain days as specified by the system manager or Security Server security officer &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Is authorized to access the terminal (which also can include day and time restrictions for accessing that terminal) &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Is authorized to access the application &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following types of checking are performed by Security Server: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Authorization &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Global access &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Authorization checking===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;When Security Server verifies a user’s identity, Security Server specifies the scope of that user’s authorization for the current terminal session or batch job in a control block called the accessor environment element (ACEE). Security Server controls the interaction between the user and protected resources and authorizes not only which resources the user can access, but the way in which the user can access them (for example, as read-only or update). &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;At the start of processing, Security Server performs the following checks that are related to the security classification of users &lt;br /&gt;
&lt;br /&gt;
and data: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compares the security level in the user and resource profiles. If the resource has a higher security level than the user, Security Server denies the request. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Checks a category list (that is, a list of site-defined names corresponding to departments or areas within an organization) in the user’s profile against the category list in the resource profile. If the resource profile contains a category that is not in the user’s &lt;br /&gt;
profile, Security Server denies the request. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If Security Server has not denied the request as a result of the security classification checks, processing continues. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Security Server permits access to a resource if the user satisfies any of a number of conditions, such as the following: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The resource is a data set and the high-level qualifier is the user’s user ID &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The user’s user ID is in the access list with sufficient authority &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The user’s current connect group is in the access list with sufficient authority &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;When list-of-group checking is active, one of the other groups with which the user is connected is in the access list with sufficient authority &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The universal access authority (UACC) is sufficiently high &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The user satisfies both of these conditions: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The user has the OPERATIONS attribute or the resource is within the scope of a group in which the user has the group-OPERATIONS attribute&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The user’s user ID or any group name the user is connected to is in the access list with an authority not less than the user’s intended access&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Security Server provides two installation exits that a site can use during RACHECK processing, as well as a quicker form of &lt;br /&gt;
authorization checking called FRACHECK, or fast path RACHECK processing. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Global access checking===&lt;br /&gt;
&lt;br /&gt;
In addition to authorization checking, Security Server also provides global access checking. Global access checking allows a site to store a system-wide table of default authorization levels for selected resources. Security Server checks this table to determine if access to a resource is permitted. &lt;br /&gt;
&lt;br /&gt;
If access is permitted, Security Server bypasses further RACHECK processing. If the global access check fails, RACHECK processing continues. Frequently accessed resources with generalized access rules are good candidates for global access checking.&lt;br /&gt;
&lt;br /&gt;
Global access checking handles resources in both the data set and the general resource classes, with the exception of group &lt;br /&gt;
resource classes. &lt;br /&gt;
&lt;br /&gt;
Global access checking does the following: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Grants access, but does not, by itself, deny any request for access &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Does not allow logging of permitted access or gather statistics &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Does not offer a postprocessing installation exit &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Performs no I/O on the Security Server data set, thus offering a high-performance checking option &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using profiles to protect resources===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Security Server protects data sets (both DASD and tape) and general resources such as tape volumes and terminals. These &lt;br /&gt;
resources are protected through profiles defined by the site. Authorized users can create, modify, list, and delete profiles using &lt;br /&gt;
Security Server commands. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;When the ADDSD statement is used to define and protect a data set, Security Server builds a data set profile and stores it in the Security Server data set. Profiles can be either generic or discrete depending on the nature of the resource. &amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Generic profile===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A generic profile protects a single resource such as one data set, or a number of related resources; for example, those having similar naming structures, or the same access, authorization, and auditing requirements. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A generic profile contains a list of authorized users and the access authority of each user. A single generic profile can protect &lt;br /&gt;
many data sets that have similar naming structures. Data sets protected by generic profiles need not be defined individually to &lt;br /&gt;
Security Server, which saves the system manager from having to enter and maintain individual profiles. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Many users can protect all their data sets with a single generic profile consisting of their user ID and an asterisk: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;user_id&amp;lt;/span&amp;gt;.* &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This profile protects all the user’s data sets that begin with the user’s user ID, regardless of the number of qualifiers. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Discrete profile===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A discrete profile protects resources that have specific or unique access authorization or logging requirements such as a single sensitive data set on a specified volume. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A discrete profile contains the same kind of information as a generic profile, but it protects only the one identified data set on the specified volume or volumes. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If the access authorization requirements are general, define a generic profile. If the data set has unique access authorization &lt;br /&gt;
requirements, define a discrete profile. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Either type of profile can protect tape data sets as well as the following: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Cataloged and uncataloged non-VSAM data sets &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
VSAM data sets &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Data sets with the same name residing on different volumes &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Generation data group (GDG) data sets &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Data sets and catalogs with single level names via a site-supplied prefix &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In Model 204, the Security Server Interface user privileges and other authorization items are defined as data set names and &lt;br /&gt;
treated as system resources. Generic profiles control who can use those resources by permitting individual users to access them. &lt;br /&gt;
These rules are written by the Model 204 system manager and the Security Server security administrator. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Running the Security Server Interface with Model 204==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;When running either as an Online or in batch mode, Model 204 checks Security Server for the system resources a user has &lt;br /&gt;
permission to access. Model 204 manages the authorization process, because only Model 204 can identify the user requesting a &lt;br /&gt;
resource. Model 204 asks Security Server to validate those requests and responds to users who have been denied requests for &lt;br /&gt;
resources. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Model 204 interfaces with Security Server in the following distinct areas: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
User logins &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;LOGIN/LOGON command &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;IFSTRT function &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;IFLOG function &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;User resource requests &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dynamic allocation of new DASD space (ALLOCATE command) &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Job submission (USE $JOB command) &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Sequential data set handling (Record I/O) &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;VSAM data set handling (External I/O) &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Because Model 204 databases are not validated on behalf of the user by the security interface, Security Server must grant the owner of an address space permission to open Model 204 file data sets for update, regardless of whether the owner has write or read-only privileges.&amp;lt;br /&amp;gt;&lt;br /&gt;
This permission allows Model 204 to write back updates to the FPL (File Parameter List) page, as required by the database management system, regardless of the Model 204 file open privileges.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;User logouts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;LOGOUT/LOGOFF command &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;IFFNSH/IFDTHRD function &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The Security Server Interface uses the standard IBM-supplied calls to validate user requests for Model 204 resources. No source code modifications or exits to the Security Server software are needed. However, you can define an additional Security Server control group for nonshared resources as well as for resources shared between multiple copies of Model 204. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using the Security Server Interface==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This section describes the changes that affect a Model 204 user. They include: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;LOGIN or LOGON &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;IFSTRT function &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;IFLOG function within IFAM1 &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Dynamic allocation &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Job submission &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Sequential and VSAM data set handling &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
===LOGIN or LOGON command===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The LOGIN/LOGON command allows you to gain access to Model 204. Once you are connected to Model 204, and if the system manager has set Model 204 to require logins, any commands you enter (other than LOGIN or LOGON) produce the following message: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;*** PLEASE LOGIN &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;To log in, enter: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;LOGIN &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;userid&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;account&amp;lt;/span&amp;gt;] &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;or &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;LOGON &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;userid&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;account&amp;lt;/span&amp;gt;] &lt;br /&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 class=&amp;quot;noBorder&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;userid&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Is a character string that identifies you.&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;var class=&amp;quot;term&amp;quot;&amp;gt;account&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Is an optional character string that identifies the account under which you log in.&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
===User ID information===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If Model 204 provides security authorization checks, as a Model 204 user you are assigned the following by the system manager: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;User ID that identifies you to Model 204 &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Password that provides access to the system &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;User privileges associated with your user ID and password to define the particular type of access that you have &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Default priority class assigned to your user ID &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;When native Model 204 security is in effect, this ID information is stored in a record in the system file CCASTAT. This record is deleted from CCASTAT when the system manager moves the user into Security Server security mode. &lt;br /&gt;
The [[#Preparing a RACFPARM parameter module with RACFGEN|RACFPARM]] module supplies a default Logonid for CCASTAT Logonids to do validation requests on Security Server.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Security Server processing===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;When Security Server performs login validation, the user ID must be eight characters or less (seven characters if jobs are &lt;br /&gt;
submitted through the internal reader). Your user ID is verified by Security Server before you can log in to Model 204. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If your site chooses to perform Security Server account validation, any value entered in the account field is verified via Security Server services. When Security Server is performing account validation, the account is limited to a maximum length of eight characters. If you do not enter an account, the default account becomes your user ID. Refer to [[#Login processing|Login processing]] for more information on login processing. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If you have the appropriate authority, you can change your Security Server user ID password when you log in to Model 204. For more information about the LOGIN and LOGON command, refer to the [[LOGIN or LOGON command]] wiki page.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===IFSTRT function===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In the IFAM1 and IFAM4 environments, the IFSTRT function is used in a Host Language Interface program to allocate a Host &lt;br /&gt;
Language Interface thread. IFSTRT also establishes the calling convention, performs a user login, and determines whether or not the thread has updating privileges. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;When processing the login argument of the IFSTRT call, the user login process follows the rules for [[#User 0 login|User 0 login]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===IFLOG function within IFAM1===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The IFLOG function is used only in the IFAM1 environment. It is called following IFSTRT to identify you when a login is required. &lt;br /&gt;
&lt;br /&gt;
This function is necessary in any IFAM1 program where user authorization is validated by Security Server. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As with the IFSTRT function, the user login process is the same as the process for &lt;br /&gt;
[[#User 0 login|User 0 login]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Dynamic allocation considerations===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;All dynamic allocation services in a Security Server environment are subject to Security Server system rules for data set &lt;br /&gt;
validation. For example, data set allocation can be restricted to allow the creation of data sets with certain name patterns. The rules for data set access are determined by the Security Server security administrator. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;To dynamically allocate a new data set, you must have Security Server ALTER authority. If you issue an ALLOCATE command &lt;br /&gt;
and you do not have ALTER authority, you receive a Model 204 error message. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If you log in to Model 204 via CCASTAT, your allocation privileges are determined by the Security Server default user’s &lt;br /&gt;
authorization. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; When you open a new or existing sequential or a VSAM data set, it is validated for read/write access. Security Server does not perform open access authorization on Model 204 data sets, because these data sets are currently protected under Model 204 security. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Job submission considerations===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;When an Online user issues the USE $JOB command to submit a batch job, Model 204 identifies the user so that Security &lt;br /&gt;
Server can determine if the user has proper authorization. If the submitter is IFAM1, IFAM4, or User 0, no additional processing &lt;br /&gt;
occurs; the submitted job inherits the privileges from the submitting job, because it has already been authorized to run by Security Server. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In a Model 204 system in which the Security Server Interface is running, the following JCL statement is appended automatically &lt;br /&gt;
to the submitted job statement(s) to identify the Model 204 user: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;// USER=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;userid&amp;lt;/span&amp;gt;,PASSWORD=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;password&amp;lt;/span&amp;gt;,GROUP=&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;groupname&amp;lt;/span&amp;gt; &lt;br /&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 class=&amp;quot;noBorder&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;userid&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Is the submitting user’s Security Server user ID, or the default user ID if the user is logged in through CCASTAT.&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;password&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Is the user password associated with the particular user ID, or the default password for the default user ID if the user is logged in through CCASTAT.&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;groupname&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Is the Security Server group to which the submitting user is assigned. This is the group identified in the user’s ACEE that is provided by Security Server during user login, or the default group if the user is logged in through CCASTAT.&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The default user ID, password, and group information is defined in the Security Server Interface parameter module (RACFPARM) and cannot be modified by the user or controlled by the system manager. RACFPARM is described later in this section. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If Model 204 finds any of the Security Server control parameters listed previously while processing the submitted JOB, they are &lt;br /&gt;
deleted from the JCL to prevent users from violating security. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;An installation can request that Model 204 check for user authority to submit a job. Because Security Server does not have a &lt;br /&gt;
facility to restrict job submission, Model 204 checks the generic profile for the comgroup.SUBMIT option. Comgroup.SUBMIT &lt;br /&gt;
determines whether or not a user is permitted to submit JCL. For more information about comgroup.SUBMIT, refer to the [[#Preparing a RACFPARM parameter module with RACFGEN|RACFGEN macro]] discussion.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If an unauthorized user attempts to submit a job, Model 204 issues an error message. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For users logged in via CCASTAT, the authority to submit jobs is determined by the default user’s authorization. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sequential and VSAM data set considerations===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Security Server always performs an authorization check if you try to use a sequential or VSAM data set. To use a sequential or &lt;br /&gt;
VSAM data set you must be a member of a control group (or optionally a common control group) that has: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Security Server alter or update privileges to open a deferred update data set or to issue the DUMP or USE commands &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Security Server alter authority to dynamically allocate a new sequential data set &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Security Server read privileges to read sequential files from User Language or to read the file specified in a RESTORE command &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Security Server read privileges to read external VSAM files from User Language. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If you issue a sequential or VSAM data set OPEN command that fails for Security Server reasons, Model 204 issues an error &lt;br /&gt;
message. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If you log in to Model 204 via CCASTAT, authorization is determined by the default user’s authorization limits. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Model 204 sequential file data sets (such as CCASTAT, CCAAUDIT, CCAJRNL, or CCAJLOG) are also checked to determine if the owner of the address space has the authority to write to them. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Security Server directly checks the following Model 204 commands: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
[[DUMP command|DUMP]] and [[DUMPG command|DUMPG]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
[[RESTORE command|RESTORE]] and [[RESTOREG command|RESTOREG]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
[[USE_command:_Directing_output|USE OUT&amp;lt;i&amp;gt;XXXXX&amp;lt;/i&amp;gt;]]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
[[ALLOCATE command|ALLOCATE]] a new data set&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
OPEN DATASET &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
[[OPEN FILE command|OPEN &amp;lt;i&amp;gt;filename&amp;lt;/i&amp;gt;]] with deferred update&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Login processing==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The system manager is responsible for defining security processing in a Model 204 installation in which Security Server supplies authorization services. This section describes the login processing performed by the Security Server Interface. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Model 204 and Security Server login processing===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;When a user logs in to Model 204, Model 204 acquires the user ID and account and searches CCASTAT to determine whether or not the user ID exists.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p&amp;gt;If the user ID is found, Model 204 queries the user for a password and proceeds with authorization processing. If the RACFPARM module indicates that CCASTAT defined users cannot log in, the login fails.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p&amp;gt;If the user ID is not found in CCASTAT and Security Server security is in effect, Model 204 uses Security Server facilities to authorize the user login: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Model 204 passes the login user ID and password to Security Server to verify that the user is a valid Security Server user and that the password is correct. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If the site has chosen to verify that the user is authorized to use Model 204, Security Server is asked if the user has PERMIT &lt;br /&gt;
authority to access the generic profile for resource group.LOGIN. If this check is successful, account processing occurs. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If the installation has chosen to verify the account, the value entered is checked against the Security Server profile for &lt;br /&gt;
comgroup.ACCOUNT.account. If the value entered has PERMIT authority, the user is allowed into Model 204. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If Security Server denies system access because of an invalid password or account, or if the user is not authorized to use Model 204, no login occurs and Model 204 issues an error message. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Once users are successfully logged in, they are granted Model 204 privileges of X‘00’. Any additional privileges are determined whenever they enter a Model 204 command that requires a specific privilege. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Users who do not log in directly to Security Server are automatically restricted in what they can do by the privileges associated with the default user ID. Refer to [[#Security Server default user ID|Security Server default user ID]] for more information.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;All the system manager commands concerning CCASTAT maintenance functions work as usual. The ZBLDTAB and ZCTLTAB utilities also continue to work as usual. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;File, group, and subsystem security functions are defined as described in the Model 204 documentation, particularly the [[Security]] wiki topic. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===User 0 login===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;When the Security Server Interface is active, User 0 is validated as the owner of the Model 204 run, regardless of whether the &lt;br /&gt;
run is Online, BATCH204, IFAM1, or IFAM4. Model 204 always attempts to log in User 0 automatically, and verifies that any user ID supplied matches the user ID of the owner of the address space. It is not necessary to supply a user ID on the login command for User 0; Model 204 determines the owner user ID and supplies it automatically. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If a user ID is supplied on the login command and the user ID does not exist on CCASTAT, it must match the user ID of the owner of the address space or the login fails. If the user ID is found on CCASTAT and CCASTAT users are allowed to log in, all further authorization checking is based on a default user ID specified by the installation (if running as an APF-authorized program). &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;BATCH204 and IFAM4 can run without APF authorization if the user ID is equal to the ADDR SPACE ID and there is no default login ID (you cannot login from CCASTAT). If you try to log in without meeting these conditions, your login fails or a B78 System ABEND occurs. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Technical Support recommends that you do not specify a user ID in the login for User 0, so jobs can be easily migrated from test to production without having to change the login command. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Whether or not you supply a user ID, no password is needed and Model 204 does not prompt for one. If a password statement is coded in the input stream, it is treated as an invalid Model 204 command. If the user ID is on CCASTAT, Model 204 prompts for a password. If the password is correct, the login succeeds but all future data set authorization checking is based on the default user ID. &amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===AUTHCTL VIEW command===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The AUTHCTL VIEW command displays the interface control options currently in effect for the active interface. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For example, if you enter: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;AUTHCTL VIEW &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;or&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;AUTHCTL VIEW RACF&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The following list is displayed (assuming this information was used during initialization): &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;Security Server INTERFACE OPTIONS &lt;br /&gt;
GROUP            M204TEST             &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;Security Server control group name&amp;lt;/var&amp;gt; &lt;br /&gt;
COMGROUP         M204COM              &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;Security Server common control group name&amp;lt;/var&amp;gt; &lt;br /&gt;
VALIDATE         LOGIN                &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;Validation option in effect&amp;lt;/var&amp;gt; &lt;br /&gt;
VALIDATE         ACCOUNT              &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;Validation option in effect&amp;lt;/var&amp;gt; &lt;br /&gt;
PRIORITY         LOW                  &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;Priority default&amp;lt;/var&amp;gt; &lt;br /&gt;
DLMCHECK                              &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;Use $JOB DLM checking option&amp;lt;/var&amp;gt;&lt;br /&gt;
                 M204GRP              &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;Default user group&amp;lt;/var&amp;gt;   &lt;br /&gt;
                 M204USR              &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;Default user ID&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The additional lines displayed indicate the current default user ID and group in use. For more information about defaults, refer to [[#Security Server default user ID|Security Server default user ID]].&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For information about setting control information, see [[#Preparing a RACFPARM parameter module with RACFGEN|Preparing a RACFPARM parameter module with RACFGEN]]. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using trusted login for CRAM users===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If your site uses CRAM, you can use the trusted login feature, which allows users to issue login commands or calls that do not include a user ID and password.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p&amp;gt;For a user to log in as trusted, the user ID must be defined to Security Server. User IDs defined to CCASTAT are not allowed to log in as trusted users. CICS users must be using the Security Server interface for CICS. Only CICS user IDs that log in through Security Server can log in as trusted users. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Trusted login can be used with the following CRAM thread IODEV types: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;IODEV11 (CRFSCHNL) &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;IODEV29 (CRIOCHNL) &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;IODEV23 (IFAMCHNL) &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;To set up trusted login for a user, set the SECTRLOG user parameter, as discussed in [[#Setting up the SECTRLOG parameter for trusted login|Setting up the SECTRLOG parameter for trusted login]]. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Login processing for trusted login====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For users connecting with a CRAM thread that allows trusted login, the user login processing routines are changed to handle a LOGIN command or IFSTRT call without a user ID and password: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;CRFS and CRIO channel threads handle User Language statements. These users ordinarily issue a LOGIN or LOGON request with the following format: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;LOGIN &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;userid&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;account&amp;lt;/span&amp;gt;];&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;password&amp;lt;/span&amp;gt; [:&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;new password&amp;lt;/span&amp;gt;];&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;apsyname&amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For trusted logins, the format is: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;LOGIN;;&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;apsyname&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;The IFAM channel threads handle IFAM2 statements. These users ordinarily issue an IFSTRT or IFSTRTN call with the following format: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;IFSTRT (RETCODE,LANG_IND,LOGIN,THRD_TYP,THRD_ID) &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;IFSTRTN (RETCODE,LANG_IND,LOGIN,THRD_TYP,THRD_ID,CHAN) &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The LOGIN parameter is required and supplies the user ID and password as a character string using the following format: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;‘&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;userid&amp;lt;/span&amp;gt; [&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;account&amp;lt;/span&amp;gt;];&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;password&amp;lt;/span&amp;gt; [:&amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;new password&amp;lt;/span&amp;gt;];’ &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For trusted logins, the statement format is the same but the login character string is a semicolon surrounded by single quotes (&#039;;&#039;). &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;
====Trusted login errors====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;When using trusted login, you might receive one of the errors described in this section. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;The following message: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.2378: SECURITY TRUSTED LOGIN FEATURE DISABLED &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;is generated in either of the following situations: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The Model 204 job requesting the trusted login feature is running without a Model 204 Security Interface (CA-ACF2, Security Server, or CA-Top Secret).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Model 204 address space does not have enough storage to allocate an internal work area for the trusted login feature. In this &lt;br /&gt;
situation, the Model204 job does not initialize because it still has to allocate storage for the Model 204 file buffers. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The following message is issued when the trusted user ID passed by CRAM is not between 1-8 bytes long:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.2379: INVALID TRUSTED USERID LENGTH = &amp;lt;span class=&amp;quot;term&amp;quot;&amp;gt;length&amp;lt;/span&amp;gt;&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;
==Maintaining the Security Server Interface==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;At each Security Server site, the security administrator performs system-wide maintenance functions within Security Server. The security administrator is responsible for defining and maintaining the Security Server generic profiles and permits for authorization that are eventually used by Model 204. The following discussions describe the Model 204 data maintained by the security administrator. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The privilege names that Model 204 uses are based on generic data set profiles. Although the Security Server ADDSD command describes a resource profile for Model 204, use it as if you are defining a data set. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This method provides the simplest way to describe resources. You do not need to reassemble any Security Server modules because all definition is external. In addition, it is portable across Security Server releases, because no internal modifications are made to Security Server tables and no Security Server exits are used. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In the following examples, the simplest set of conditions is described. You can fully utilize all Security Server options (for example, auditing when a resource is used, changing the universal access authority, or naming a specific owner of the group). Use security access levels for both the profiles and the permits for authorized users of those profiles. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The interface requires that users of these resources are permitted READ authority. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining user privileges===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;You must identify user privilege names as Security Server generic data set profiles. The standard Model 204 user privileges &lt;br /&gt;
described earlier have been assigned fixed names. The following set of user privilege names defines the possible privilege types for a user. These names are further qualified by the control group name entered in the RACFPARM module. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
These user privilege profile names are described in the following table. See the [[LOGCTL_command:_Modifying_user_ID_entries_in_the_password_table|LOGCTL]] command page for more information on the LOGCTL settings.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;&amp;lt;b&amp;gt;User privilege names&amp;lt;/b&amp;gt;&amp;lt;/caption&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;User privilege name... &amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;th&amp;gt;Defines a user who can... &amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;th&amp;gt;Corresponding LOGCTL setting &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;‘group.PRIV.SUPER.USER’ &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;Exercise superuser privileges: a user with READ access to this profile can execute a CREATE command. &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;X’80’ &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;‘group.PRIV.SYSTEM.ADMIN’ &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;Exercise system administrator privileges: a user with read access to this profile can issue system administrator commands such as LOGWHO, MONITOR, PRIORITY, and WARN. &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;X’40’ &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;‘group.PRIV.CHANGE.FILE .PASSWORD’ &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;Change the file password that is used to open a file: valid only if the file entry is stored in CCASTAT. &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;X’20’ &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;‘group.PRIV.SYSTEM .MANAGER’ &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;With system manager privileges: a user with read access to this profile can issue all system administrator commands along with certain other privileged commands such as LOGCTL, AUTHCTL VIEW, and DUMPG. &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;X’08’ &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;‘group.PRIV.OVERRIDE .RECORD.SECURITY’ &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;Override record security. &amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;X‘04’ &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;
===Defining corresponding generic profiles===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Security Server generic data set profiles must be developed and defined to Security Server to correspond to the defined &lt;br /&gt;
privileges. The Security Server generic data set profiles used to define the standard Model 204 privileges and other resources to &lt;br /&gt;
Security Server in a batch TSO execution are as follows: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;//JOBNAME      JOB (other information)..... &lt;br /&gt;
//DOIT         EXEC PGM=IKJEFT01,DYNAMNBR=20 &lt;br /&gt;
//SYSTSPRT     DD SYSOUT=A &lt;br /&gt;
//SYSTSIN      DD * &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
ADDGROUP       group DATA(&#039;MODEL204 Security Server CONTROL GROUP NAME&#039;) &lt;br /&gt;
ADDSD          &#039;group.PRIV.SUPER.USER*&#039;                UACC(NONE) GENERIC &lt;br /&gt;
ADDSD          &#039;group.PRIV.SYSTEM.ADMIN*&#039;              UACC(NONE) GENERIC &lt;br /&gt;
ADDSD          &#039;group.PRIV.CHANGE.FILE.PASSWORD.*&#039;     UACC(NONE) GENERIC &lt;br /&gt;
ADDSD          &#039;group.PRIV.SYSTEM.MANAGER*&#039;            UACC(NONE) GENERIC &lt;br /&gt;
ADDSD          &#039;group.PRIV.OVERRIDE.RECORD.SECURITY.*&#039; UACC(NONE) GENERIC &lt;br /&gt;
ADDSD          &#039;group.LOGIN*&#039;                          UACC(NONE) GENERIC &lt;br /&gt;
&lt;br /&gt;
ADDGROUP       comgroup DATA(&#039;MODEL204 Security Server COMMON GROUP NAME&#039;) &lt;br /&gt;
ADDSD          &#039;comgroup.SUBMIT*&#039;                      UACC(NONE) GENERIC &lt;br /&gt;
ADDSD          &#039;comgroup.PRIORITY.HIGH*&#039;               UACC(NONE) GENERIC &lt;br /&gt;
ADDSD          &#039;comgroup.PRIORITY.STANDARD.*&#039;          UACC(NONE) GENERIC &lt;br /&gt;
ADDSD          &#039;comgroup.PRIORITY.LOW*&#039;                UACC(NONE) GENERIC &lt;br /&gt;
ADDSD          &#039;comgroup.ACCOUNT.&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;nnnnnnnn&amp;lt;/var&amp;gt;.*&#039;           UACC(NONE) GENERIC &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt;  &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;nnnnnnnn&amp;lt;/var&amp;gt; represents an account number; there are as many as required. Also, high-level qualifiers cannot exceed eight (8) characters. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In the following two sample PERMIT statements, the first is for a system manager and the second is for login authorization to a &lt;br /&gt;
copy of Model 204: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PERMIT      &#039;&amp;lt;I&amp;gt;group&amp;lt;/I&amp;gt;.PRIV.SYSTEM.MANAGER*&#039;    ACCESS(READ)&lt;br /&gt;
         ID(user ID1,user ID2.....) &lt;br /&gt;
PERMIT      &#039;&amp;lt;I&amp;gt;group&amp;lt;/I&amp;gt;.LOGIN*&#039;    ACCESS(READ)&lt;br /&gt;
         ID(&amp;lt;I&amp;gt;user ID1,user ID2&amp;lt;/I&amp;gt;.....) &lt;br /&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 class=&amp;quot;noBorder&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;group&amp;lt;/var&amp;gt;.PRIV.&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;privilege&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Specifies one of the fixed types that Model 204 uses to build Security Server retrieval search keys for the rules &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;group&amp;lt;/var&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Is the Security Server control group defined to Model 204&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The previous Security Server PERMIT statement sample permits the specified users to access the named resource. Rules for determining the authorized user are described in the [http://www-03.ibm.com/systems/z/os/zos/features/racf/library/library.html IBM Security Server documentation].&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The privilege rules are tested whenever a user issues a command that requires a specific privilege. If the user is authorized to have that privilege, the command succeeds. If not, the user typically receives a Model 204 error message and the attempt might be logged as an Security Server violation. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing the Security Server Interface==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The Model 204 interface to Security Server consists of the following components: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Code in Model 204 that utilizes Security Server facilities &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Security Server group and generic data set profile definitions defined at your site &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;SECPLIST User 0 parameter in CCAIN &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The user site requirements that must be met in order to activate the Security Server Interface are identified in this section. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Terminal security considerations===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Security Server can enforce terminal security when a user logs in. At that time, the source of the login is passed to Security &lt;br /&gt;
Server. For systems running Model 204 with the SNA Communications Server (formerly VTAM) interface, this poses no problem &lt;br /&gt;
because Model 204 recognizes the terminal name and stores it for use. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Configurations using CRAM (TSFS, CICS, IFDIAL) must use the CRAM channel name instead of the terminal ID as the user &lt;br /&gt;
source, because there is no secured mechanism in CRAM for identifying the source of the user. Because CRAM channel names &lt;br /&gt;
can be identified as valid sources, the user IDs allowed to use those sources can be validated. Using the CRAM channel name &lt;br /&gt;
temporarily ensures that entry to Model 204 is from an approved source. &amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Decrypting Security Server===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;As part of INS204, the M204DECR job is generated with all the steps needed to decrypt Security Server. &lt;br /&gt;
Refer to the &amp;lt;var class=&amp;quot;book&amp;quot;&amp;gt;[http://docs.rocketsoftware.com/nxt/gateway.dll/RKBnew556/model%20204/v7.4/m204_v7r4_zos_install_guide.pdf Rocket Model 204 Installation Guide for IBM z/OS]&amp;lt;/var&amp;gt; for more information. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SECPLIST parameter===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The SECPLIST User 0 parameter in CCAIN lets you specify the name of the RACFGEN argument set with which to initialize the interface. The name is defined by the assembler label name of the RACFGEN macro. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the SECPLIST parameter is not in CCAIN, RACFPARM is used as the default name of the argument set. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If no match is found for the SECPLIST name or the RACFPARM default name in the RACFPARM module, the interface is initialized using the precoded default parameters defined in the Security Server Interface. In this case, Login, Account, and Priority validation are not performed. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The following RACFPARM module contains two sets of Security Server arguments: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the first set, the name is LOG1 and account security is in effect. If the user is logged on through CCASTAT, the default Logonid is M204USER.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the second set, the name is LOG2 and both account and login security are in effect. In addition, if the user is logged on through CCASTAT, the Logonid of the executing job is considered the default Logonid.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;       TITLE &#039;RACFPARM MODULE&#039;            X &lt;br /&gt;
LOG1   RACFGEN GROUP=M204PROD,            X&lt;br /&gt;
              COMGRUP=M204RACF,           X&lt;br /&gt;
              PRTY=H,                     X&lt;br /&gt;
              VALIDAT=ACCOUNT,            X&lt;br /&gt;
              DEFUSER=M204USER,           X&lt;br /&gt;
              DEFGRP=,                    X&lt;br /&gt;
              DEFPASS=,                   X&lt;br /&gt;
              DMLCHECK &lt;br /&gt;
LOG2  RACFGEN GROUP=M204TEST,             X&lt;br /&gt;
              COMGRUP=M204RACF,           X&lt;br /&gt;
              PRTY=S,                     X&lt;br /&gt;
              VALIDAT=(ACCOUNT,LOGIN),    X&lt;br /&gt;
              DEFUSER=JOBNAME,            X&lt;br /&gt;
              DEFGRP=M204GRP,             X&lt;br /&gt;
              DEFPASS=DEFPASS,            X&lt;br /&gt;
              DMLCHECK&lt;br /&gt;
          RACFGEN TYPE=END&lt;br /&gt;
          END &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Preparing a RACFPARM parameter module with RACFGEN===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The RACFGEN macro generates a set of arguments that govern login and other security processes. There can be multiple &lt;br /&gt;
argument sets in a RACFPARM module. The RACFPARM parameter module can be linked with Model 204 or dynamically loaded &lt;br /&gt;
when the Security Server Interface is initialized.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The arguments for the RACFGEN macro are described in detail in this section. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The following is a sample RACFGEN macro with one set of arguments. The name of the argument set is RACFPARM, which is &lt;br /&gt;
the required name if you are linking statically into your Model 204 modules. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;TITLE &#039;GENERATE A Security Server PARAMETER MODULE&#039; &lt;br /&gt;
&lt;br /&gt;
RACFPARM RACFGEN GROUP=M204RACF,    Control group          X  &lt;br /&gt;
   COMGRUP=M204RACF,                Common control group   X              &lt;br /&gt;
   PRTY=S,                          Priority               X &lt;br /&gt;
   VALIDAT=,                        Validation items       X  &lt;br /&gt;
   DEFUSER=M204USR,                 Default user ID        X  &lt;br /&gt;
   DEFUGRP=M204GRP,                 Default user group     X  &lt;br /&gt;
   DEFPASS=M204PASS,                Default user password  X &lt;br /&gt;
   DLMCHECK/NODLMCHECK              Check DLM= &lt;br /&gt;
RACFGEN TYPE=END  &lt;br /&gt;
END &lt;br /&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;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;RACFPARM defines the name of this set of Security Server arguments. Because there can be any number of argument &lt;br /&gt;
sets in the RACFPARM module, each set must be given a unique name. There is no default name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you want to statically link the RACFPARM module, you must include (as the first argument) a Security Server argument set named RACFPARM. Otherwise, the SECPLST value for the user is not found in the RACFPARM module, and the interface is initialized using the precoded default parameters defined in the Security Server Interface. In this case, Login, Account, and Priority validation are not performed. This may result in the user being unable to login. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;GROUP specifies the 1- to 8-character Security Server control group name selected by your site. The rules for Model 204 privileges are defined and grouped by this code and stored in Security Server profiles. The group name must match the generic profile high-level qualifier defined to Security Server in the ADDSD statements for the profiles, all of which take the form of &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;group.keyword.variable.data&amp;lt;/var&amp;gt;. &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The default is M204RACF. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;You can use the &amp;lt;code&amp;gt;GROUP&amp;lt;/code&amp;gt; name to create a separate set of privilege definitions for an individual copy of Model 204. This allows &lt;br /&gt;
your site to have different privileges for different versions of Model 204, for instance for test and production. &amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;COMGRUP specifies the 1- to 8-character Security Server common group name selected by your site. The rules for the VALIDAT ACCOUNT, PRIORITY, and SUBMIT options are defined and grouped by this code and stored in Security Server profiles.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The common group name must match the generic profile high-level qualifier defined to Security Server in the ADDSD statements for the profiles, all of which take the form of &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;comgroup.keyword.variable.data&amp;lt;/var&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The default is &amp;lt;var&amp;gt;M204RACF&amp;lt;/var&amp;gt;, if a group name is not specified. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; COMGRUP is used to create a common set of privilege definitions shared between copies of Model 204. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;PRTY specifies the default priority for any user who successfully logs in through Security Server. Options are H (high), S (standard), L (low), or N (none). The default priority is STANDARD if the PRTY keyword is omitted. For more information about priorities, refer to [[Controlling system operations (CCAIN)#Priority scheduling|Priority scheduling]].  &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;VALIDAT specifies the type of validation to be performed. Multiple validation types can be specified for the interface. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Options are: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ACCOUNT specifies that Security Server validates any account entered by the user during the login process. VALIDAT ACCOUNT verifies that Security Server permits the account value entered by the user. If so, the user is allowed in to Model 204. If not, the login fails. &lt;br /&gt;
&lt;br /&gt;
This validation uses the comgroup.ACCOUNT.account# profile.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;LOGIN specifies that Security Server rules are tested to determine if a user is allowed to log in to Model 204. If VALIDAT LOGIN is specified, the Security Server Interface determines if the user is permitted to use Model 204 before allowing access. If LOGIN is not specified, all users who pass the user ID/password and optional account validation are allowed access to Model 204. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This validation is performed using the profile group.LOGIN, so it can be used to limit the ability to log in when several copies of Model 204 are running.&amp;lt;/p&amp;gt; &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;PRIORITY verifies which priority the user is permitted to have. This option can be specified in addition to a standard priority. If priority validation fails, the standard priority is the default. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This validation uses the profiles:&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;comgroup.PRIORITY.HIGH &lt;br /&gt;
comgroup.PRIORITY.STANDARD &lt;br /&gt;
comgroup.PRIORITY.LOW &lt;br /&gt;
comgroup.PRIORITY.NONE&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Validation is checked from highest to lowest priority. If a user has PERMIT access to one of these priorities, the value is assigned. If no PERMIT is found and a standard priority is not specified, the priority for the user is set to STANDARD. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;SUBMIT uses Security Server rules to determine whether or not a user is allowed to issue the USE command to submit a job through the internal reader. If this option is specified, Security Server checks the user’s authorization privileges before allowing the user to submit the job. If this option is not specified, all users who pass the user ID/password and optional account validation are allowed to submit jobs. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;This validation uses the comgroup.SUBMIT profile. &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;
&amp;lt;li&amp;gt;DEFUSER defines the default submitting user’s Security Server user ID if the user is not directly logged in through Security Server. Refer to [[#Job submission considerations|Job submission considerations]] for a description of how the Security Server user ID is used when submitting jobs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If DEFUSER=, that is, this field is left blank, then CCASTAT-defined users are not allowed to log into Model 204. Only valid Security Server users can utilize the running system. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If DEFUSER=&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;JOBNAME&amp;lt;/var&amp;gt;, then the following occurs. The ASID ACEE is moved to DEFUSER, the GROUP ACEE is moved to &lt;br /&gt;
DEFGROUP, and the default user’s ACEE pointer is set to AUCKDPTR. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;DEFUGRP defines the default Security Server group to which a submitting user is assigned if the user is not directly logged in &lt;br /&gt;
through Security Server. Refer to [[#Job submission considerations|Job submission considerations]] for a description of how the Security Server group is used when submitting jobs. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;DEFPASS defines the default PASSWORD for the default user ID if the user is not directly logged in through Security Server. Refer to [[#Job submission considerations|Job submission considerations]] for a description of how the Security Server password is used when submitting jobs. &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The DLMCHECK/NODLMCHECK argument specifies DLM processing options for jobs submitted through the internal reader using the USE command. The DLM parameter on a DD * or DD DATA statement allows a job to be submitted that can itself submit other jobs. This is a potential security compromise. The DLMCHECK/NODLMCHECK argument provides the ability to enforce certain rules when coding the DLM= parameter. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;DLM processing options are as follows: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;DLMCHECK enforces the rule that if a DLM= parameter is used in a JCL stream, it must be the only parameter supplied. In this case, only the following forms of these statements are correct:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//DDNAME DD *,DLM=&#039;;;&#039; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;or &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;//DDNAME DD DATA,DLM=&#039;&amp;amp;amp;&amp;amp;amp;&amp;amp;amp;&amp;amp;amp;&#039; &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In these statements, the DLM value follows the rules described in [http://www.ibm.com IBM] JCL documentation; any other parameters supplied result in an error. If there is a job statement following the offending statement, Model 204 appends the following to the job statement set as if it is an independent job: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;USER=...,PASSWORD=...GROUP=... &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;NODLMCHECK checks only the validity of the DLM= parameter and not the other optional parameters that can be specified on the JCL statement. All JCL statements after the DLM= parameter are sent to the internal reader without being checked. This argument does not guarantee that an error on the statement with the DLM= parameter is caught before it is submitted. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;DLMCHECK is the default. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The result from assembling the RACFGEN macro is link-edited to a library that is included in a Model 204 link-edit, or it can be optionally linked into a separate library and loaded at execution time. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If you link RACFPARM as a separate load module, use the SECRLINK job in the JCL library. Modify the job according to the comments. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;If you link RACFPARM with the Model 204 configuration, add the following line in SYSLIN for the link-edit steps of ONLINE, BATCH204, IFAM1, and IFAM4. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;INCLUDE OBJLIB(RACFPARM) &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Model 204 link-editing requirements===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
To support multiple Model 204 logins for different user IDs, Model 204 must be linked to an authorized library using the &lt;br /&gt;
appropriate Security Server services. This means that any Online configuration must be linked to an authorized library. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;BATCH204 or IFAM can be linked to a nonauthorized library, provided that the user logging in is the same user who starts the job and there is not a default login ID that prevents CCASTAT logins. Otherwise, the login fails or a System B7A ABEND occurs. &amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Defining Model 204 to Security Server===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Model 204 allows multiple users per address space and provides services to many users through its own processing, but Security Server is aware only of the maintask in the address space (in this instance, Model 204). Model 204 must be defined as having the appropriate Security Server privileges to perform services on behalf of a Model 204 control group. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;You can define an additional Security Server control group for nonshared resources as well as for resources shared between &lt;br /&gt;
multiple copies of Model 204.The first step in the definition process is to choose a name and define a profile for the Model 204 &lt;br /&gt;
control group and optionally the common group. For example: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;ADDGROUP M204RACF OWNER(SECURITY) DATA(&#039;MODEL 204 CONTROL GROUP&#039;) &lt;br /&gt;
ADDGROUP M204COM OWNER(SECURITY) DATA(&#039;MODEL 204 COMMON CONTROL GROUP&#039;) &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Defining Model 204 users in Security Server===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In Security Server, the user profile record contains all information for a defined user of a computer system. There are no special entries or any differences in the way a Security Server user is defined to the system. All authorization services are performed using the generic profiles for privileges. See [[#Defining corresponding generic profiles|Defining corresponding generic profiles]] for more information.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Security Server default user ID===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The default user ID limits the authorization of users that have not logged in directly to Security Server (that is, users still defined in CCASTAT). &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Each user not logged directly into Security Server is assigned the authorization provided by Security Server for the default user ID. The authorization includes all user resource requests, as described in [[#Running the Security Server Interface with Model 204|Running the Security Server Interface with Model 204]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The default user ID automatically is assigned the user ID M204USR with the password M204PASS and belongs to group &lt;br /&gt;
M204GRP. A user ID of this name must be defined to Security Server for CCASTAT-defined users to be able to log in. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;For security reasons, the system manager cannot modify this group, user ID, and password. If different data is required or if the installation would like to change defaults, the parameter module RACFPARM must be modified by the Security Server security &lt;br /&gt;
administrator or systems programmer. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;RACFPARM provides the mechanism to supply overrides to the default group, user ID, and password. This module can be made available during the Model 204 link-edit. Otherwise, Model 204 attempts to load it at the time the interface is initialized. If the module is loaded dynamically, it must be made available in the STEPLIB containing Model 204 or in a system load library. The RACFPARM module is generated with the RACFGEN macro. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; All LOADLIBs concatenated in one STEPLIB must be APF-authorized or you lose your APF authorization for that job step. &amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Setting up the SECTRLOG parameter for trusted login===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The SECTRLOG user parameter defines which CRAM thread applications are allowed to log in to Model 204 with a trusted user ID. The CRAM threads for which trusted login applications are allowed are: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
IODEV11 (CRFSCHNL) &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
IODEV29 (CRIOCHNL) &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
IODEV23 (IFAMCHNL) &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;SECTRLOG must be set on the first IODEV line for each trusted CRAM thread, because it is picked up during the initialization of each CRAM channel.&amp;lt;/p&amp;gt; &lt;br /&gt;
&amp;lt;p&amp;gt;The following settings are valid: &amp;lt;/p&amp;gt;&lt;br /&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;Setting&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;Meaning&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;X&#039;00&#039;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Trusted Login not allowed (default)&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;X&#039;01&#039;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;CICS applications (CRFS, CRIO, IFAM)&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;X&#039;02&#039;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;TSO applications (CRIO, CRFS)&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;X&#039;04&#039;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Batch applications (CRIO, IFAM)&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Conversion tasks and considerations===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following table identifies the general tasks that must be completed to install and activate the Security Server Interface. Before conversion, you also might want to review the RACFPARM module definitions and link a separate copy of Model 204 for testing and production. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Conversion checklist for Security Server &amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Step&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;Task&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&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;Define a Security Server GROUP control profile for Model 204.&amp;lt;/td&amp;gt; &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&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;Define a Security Server GROUP common profile for Model 204. &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&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;Define Security Server generic profiles for user privileges, and specify the users who have PERMIT access to have those 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;&amp;lt;td&amp;gt;4.&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Define Security Server generic profiles for: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Model 204 login authority related to the control group if the VALIDAT LOGIN option is specified in the RACFPARM&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Authorized account code profiles related to the common group if the VALIDAT ACCOUNT option is specified in the RACFPARM&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Authorized PRIORITY profiles if the VALIDAT PRIORITY option is specified to assign individual priorities to users and specify which users have PERMIT access for those privileges&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;5.&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Run RACFGEN to assemble the RACFPARM 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;&amp;lt;td&amp;gt;6.&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Link RACFOS into Model 204.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&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;Link RACFPARM$ into Model 204 directly or use SECRLINK to create a separate LOAD module to be used for dynamic linking at initialization.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&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;Add a new parameter in the user zero input stream called SECPLIST=&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;parametername&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;&amp;lt;td&amp;gt;9.&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Delete Model 204 users from CCASTAT to turn on Security Server authorization checking.&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;
[[Category:Security interfaces]]&lt;/div&gt;</summary>
		<author><name>Teagan</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Release_notes_for_Model_204_version_7.5&amp;diff=74429</id>
		<title>Release notes for Model 204 version 7.5</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Release_notes_for_Model_204_version_7.5&amp;diff=74429"/>
		<updated>2015-01-02T21:08:13Z</updated>

		<summary type="html">&lt;p&gt;Teagan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These release notes list the enhancements and other changes contained in Model 204 version 7.5.&lt;br /&gt;
 &lt;br /&gt;
==Overview==&lt;br /&gt;
These release notes describe features and system requirements for Rocket Model 204 version 7.5. &amp;lt;br /&amp;gt;Read through this information before beginning your 7.5 installation.&lt;br /&gt;
&lt;br /&gt;
==New in this release==&lt;br /&gt;
This section summarizes the new features and enhancements for Model 204 version 7.5.&lt;br /&gt;
 &lt;br /&gt;
===SOUL (User Language)===&lt;br /&gt;
The significantly enhanced, object-oriented, version of User Language is now called [[#SOUL (User Language) enhancements|SOUL]]. All existing User Language programs will continue to work under SOUL, so User Language can be considered to be a subset of SOUL, though the name &amp;quot;User Language&amp;quot; is now deprecated.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;integration of [[#Object-oriented programming|object-oriented language extensions]] from the Janus SOAP User Language Interface&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Release notes for Model 204 version 7.5 (DRAFT)#External Call Facility .28ECF.29|ECF]] CALL statements can pass up to 60 parameters&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===System management===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[#Writing records to the SMF data set|Writing records to the SMF data set]] without an SVC installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Performance===&lt;br /&gt;
GTBL, NTBL, and QTBL can be stored [[#64-bit addressing and Above The Bar (ATB) storage|above the bar]]&lt;br /&gt;
===Application flexibility===&lt;br /&gt;
[[Release notes for Model 204 version 7.5 (DRAFT)#Support for physical field groups|Support for physical field groups]]&lt;br /&gt;
&lt;br /&gt;
==Operating system support and requirements==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/OS&amp;lt;/b&amp;gt; &lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Latest version supported:&amp;lt;/b&amp;gt; z/OS Version 2 Release 1.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Version required:&amp;lt;/b&amp;gt; z/OS Version 1 Release 7 or later.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;p&amp;gt;V1R7 is sufficient for all new functionality except for the following&lt;br /&gt;
features:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Large (1 MB) page support requires Version 1 Release 9.&lt;br /&gt;
&amp;lt;li&amp;gt;Extended address volumes (EAV) requires Version 1 Release 12.&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;/ul&amp;gt; &lt;br /&gt;
Authorization under APF is required to run Model 204 V750 under any z/OS operating system.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/VM&amp;lt;/b&amp;gt; &lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Latest version supported:&amp;lt;/b&amp;gt; z/VM version 6 Release 3. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Version required:&amp;lt;/b&amp;gt; z/VM version 5 Release 4.0 or later. &lt;br /&gt;
  &amp;lt;/ul&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;IBM z/VSE&amp;lt;/b&amp;gt;&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Latest version supported:&amp;lt;/b&amp;gt; z/VSE Version 5 Release 2.&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Version required:&amp;lt;/b&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Version 5 Release 2 or&lt;br /&gt;
&amp;lt;li&amp;gt;Version 5 Release 1&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
=== Hardware requirements ===&lt;br /&gt;
 &lt;br /&gt;
Model 204 version 7.4 requires the IBM z/890 or above processor, except for the following feature:&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The large (1 MB) page support feature requires the IBM z10 or above processor. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Model 204 compatibility with operating systems===&lt;br /&gt;
&lt;br /&gt;
For information on Model 204 certification with IBM operating systems, see:&lt;br /&gt;
http://www.rocketsoftware.com/products/rocket-model-204/technical-information&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div id=&amp;quot;Connect* compatibility with Model 204&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; compatibility with Model 204===&lt;br /&gt;
Connect&amp;lt;span class=&amp;quot;superstar&amp;quot;&amp;gt;&amp;amp;#9733;&amp;lt;/span&amp;gt; version 7.5 is compatible with all versions of Model 204.&lt;br /&gt;
&lt;br /&gt;
===Upgrading requirements===&lt;br /&gt;
Model 204 version 7.4 is required to [[#Upgrading instructions for version 7.5|upgrade]] to Model 204 version 7.5.&lt;br /&gt;
&lt;br /&gt;
==SOUL (User Language) enhancements==&lt;br /&gt;
Much of the substantial new and enhanced functionality described in the following subsections is available as a result of the acquisition of Sirius Software. The functionality that is the subject of the initial subsection, &amp;quot;Object-oriented programming,&amp;quot; motivates the new name for User Language, &#039;&#039;&#039;SOUL&#039;&#039;&#039; (Simple Objective User Language).&lt;br /&gt;
 &lt;br /&gt;
===Object-oriented programming===&lt;br /&gt;
As of version 7.5 of Model 204 (and backward compatible with existing User Language applications), the SOUL language is equipped with [http://en.wikipedia.org/wiki/Object-oriented Object-Oriented Programming](sometimes abbreviated OO) capabilities comparable or superior to other contemporary object-oriented languages. The OO features were formerly contained in the [[Janus SOAP User Language Interface]], and you can use [[Object oriented programming in SOUL]] as an entry point to the extensive SOUL OO documentation. In particular, you might want to begin with the [[Getting started with OOP for User Language programmers|OOP tutorial]].&lt;br /&gt;
&lt;br /&gt;
===Record capacity increase===&lt;br /&gt;
In this version of Model 204, the record limit is increased from sixteen million records to forty-eight million records per file.&lt;br /&gt;
 &lt;br /&gt;
===New SOUL statements===&lt;br /&gt;
{{Template:User Language statements}}&lt;br /&gt;
 &lt;br /&gt;
===Non-OO enhancements in SOUL===&lt;br /&gt;
{{Template:User Language syntax enhancements}}&lt;br /&gt;
 &lt;br /&gt;
===SOUL support for field groups===&lt;br /&gt;
 &lt;br /&gt;
====ADD (or INSERT or DELETE) FIELDGROUP statements====&lt;br /&gt;
The &amp;lt;var&amp;gt;ADD FIELDGROUP&amp;lt;/var&amp;gt; statement and the &amp;lt;var&amp;gt;INSERT FIELDGROUP&amp;lt;/var&amp;gt; statement behavior parallels the behavior of the &amp;lt;var&amp;gt;ADD&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;INSERT&amp;lt;/var&amp;gt; statements for simple fields. The &amp;lt;var&amp;gt;DELETE FIELDGROUP&amp;lt;/var&amp;gt; statement handles more situations and is therefore more complex.&lt;br /&gt;
See [[Data maintenance#Updating field groups|Updating field groups]] for details.&lt;br /&gt;
 &lt;br /&gt;
====Statements for handling field groups====&lt;br /&gt;
SOUL now provides several statements for handling field groups:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;FOR FIELDGROUP&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;FOR ALL OCCURRENCES OF FIELDGROUP (FAO FIELDGROUP)&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;FOR EACH OCCURRENCE OF FIELDGROUP (FEO FIELDGROUP)&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
See [[Processing multiply occurring fields and field groups#Working with field groups|Working with field groups]] for details.&lt;br /&gt;
&lt;br /&gt;
====Output statements for field groups====&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The following SOUL statements provide display output for Model 204 field groups:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;AUDIT ALL FIELDGROUP INFORMATION (AAFGI)&lt;br /&gt;
PRINT ALL FIELDGROUP INFORMATION (PAFGI)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
See [[Basic SOUL statements and commands#Output statements for fields and field groups|Output statements for fields and field groups]] for details.&lt;br /&gt;
 &lt;br /&gt;
====Field group SORT support====&lt;br /&gt;
You can now use field groups in [[Sorting#Field group SORT support|sorted sets]]. &amp;lt;var&amp;gt;SORT&amp;lt;/var&amp;gt; statement support for field groups lets you sort records with field groups as well as reference field groups in the sorted sets. For example, you can issue a &amp;lt;code&amp;gt;FAO FIELDGROUP&amp;lt;/code&amp;gt; statement or &amp;lt;code&amp;gt;FEO FIELDGROUP&amp;lt;/code&amp;gt; statement against the sorted set.&lt;br /&gt;
&lt;br /&gt;
===EQ VALUE retrieval condition===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
SOUL now provides the &amp;lt;var&amp;gt;EQ VALUE&amp;lt;/var&amp;gt; clause to support expressions in &amp;lt;var&amp;gt;FIND&amp;lt;/var&amp;gt; statements.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
See [[Record retrievals#Using expressions in FIND statements|Using expressions in FIND statements]] for details.&lt;br /&gt;
 &lt;br /&gt;
===EQ WITH retrieval condition for concatenated fields===&lt;br /&gt;
SOUL now provides the &amp;lt;var&amp;gt;EQ WITH&amp;lt;/var&amp;gt; clause for retrieving &amp;lt;var&amp;gt;CONCATENATION-OF&amp;lt;/var&amp;gt; fields. Model 204 automatically builds the concatenated value.&lt;br /&gt;
 &lt;br /&gt;
See [[Record retrievals#Using expressions in FIND statements|Using expressions in FIND statements]]  and [[Record retrievals#EQ WITH retrieval condition for concatenated fields|EQ with retrieval condition for concatenated fields]] for details.&lt;br /&gt;
 &lt;br /&gt;
===External Call Facility (ECF)===&lt;br /&gt;
&amp;lt;var&amp;gt;EXTERNAL CALL&amp;lt;/var&amp;gt; statements can now pass more parameters.&lt;br /&gt;
The maximum number of parameters that can be passed in an &amp;lt;var&amp;gt;EXTERNAL CALL&amp;lt;/var&amp;gt; statement has been increased from 40 to 60.&lt;br /&gt;
The maximum value setting for &amp;lt;var&amp;gt;[[ECPSIZE parameter|ECPSIZE]]&amp;lt;/var&amp;gt; is increased from 1310680 to 1966020 to accommodate the extra parameters.&lt;br /&gt;
 &lt;br /&gt;
ECF is available only on z/OS systems. For more information about the External Call Facility and the &amp;lt;var&amp;gt;EXTERNAL CALL&amp;lt;/var&amp;gt; statement, see the [[External Call Facility]] topic.&lt;br /&gt;
&lt;br /&gt;
===REPEAT statement UNTIL option===&lt;br /&gt;
The &amp;lt;var&amp;gt;REPEAT&amp;lt;/var&amp;gt; statement now supports the &amp;lt;var&amp;gt;UNTIL&amp;lt;/var&amp;gt; option. In previous releases, only &amp;lt;var&amp;gt;REPEAT WHILE&amp;lt;/var&amp;gt; was supported.&lt;br /&gt;
 &lt;br /&gt;
A &amp;lt;var&amp;gt;[[Flow of control in User Language#REPEAT UNTIL statement|REPEAT UNTIL]]&amp;lt;/var&amp;gt; statement enters the loop body prior to checking the condition.&lt;br /&gt;
 &lt;br /&gt;
===New and changed classes and methods===&lt;br /&gt;
&lt;br /&gt;
====New InvalidBitNumber class====&lt;br /&gt;
Objects of the [[InvalidBitNumber class|InvalidBitNumber exception class]] are thrown when an invalid bit number is requested by a bit manipulation function. It is currently thrown only by the &amp;lt;var&amp;gt;[[BitClearString (String function)|BitClearString]]&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;[[BitFlipString (String function)|BitFlipString]]&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;[[BitSetString (String function)|BitSetString]]&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;[[BitValueString (String function)|BitValueString]]&amp;lt;/var&amp;gt; functions. &lt;br /&gt;
&lt;br /&gt;
====New InvalidTranslateTable class====&lt;br /&gt;
Objects of the [[InvalidTranslateTable class|InvalidTranslateTable exception class]] are thrown when a requested system translate table cannot be found. It is currently thrown only by the &amp;lt;var&amp;gt;[[TranslateTable (HttpRequest property)|TranslateTable]]&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;HttpRequest&amp;lt;/var&amp;gt; property.&lt;br /&gt;
 &lt;br /&gt;
====New bit manipulation String functions====&lt;br /&gt;
New bit manipulation functions &amp;lt;var&amp;gt;[[BitClearString (String function)|BitClearString]]&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;[[BitCountString (String function)|BitCountString]]&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;[[BitFlipString (String function)|BitFlipString]]&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;[[BitSetString (String function)|BitSetString]]&amp;lt;/var&amp;gt;, and &amp;lt;var&amp;gt;[[BitValueString (String function)|BitValueString]]&amp;lt;/var&amp;gt; make it easier to manipulate the bits in a string.&lt;br /&gt;
 &lt;br /&gt;
====New String processing functions====&lt;br /&gt;
New &amp;lt;var&amp;gt;String&amp;lt;/var&amp;gt; functions &amp;lt;var&amp;gt;[[Before (String function)|Before]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[After (String function)|After]]&amp;lt;/var&amp;gt; return the parts of a string before or after a user-specified delimiter string.&lt;br /&gt;
&lt;br /&gt;
====New Stringlist subroutine====&lt;br /&gt;
New &amp;lt;var&amp;gt;Stringlist&amp;lt;/var&amp;gt; subroutine &amp;lt;var&amp;gt;[[AppendPemData (Stringlist subroutine)|AppendPemData]]&amp;lt;/var&amp;gt;&lt;br /&gt;
appends a PEM encode string to a &amp;lt;var&amp;gt;Stringlist&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====New System methods TODClock and UUIDTime====&lt;br /&gt;
New System class methods [[TODClock (System function)|TODCLOCK]] and [[UUIDTime (System function)|UUIDTime]] have been created to facilitate generation of version 1 universal unique identifiers and to provide high precision time stamps for SOUL applications. These methods were actually added as a ZAP update to Model 204 7.5 (75Z109).&lt;br /&gt;
&lt;br /&gt;
====New HttpRequest TranslateTable property====&lt;br /&gt;
The &amp;lt;var&amp;gt;[[TranslateTable (HttpRequest property)|TranslateTable]]&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;HttpRequest&amp;lt;/var&amp;gt; property makes it possible to set the translate table to be used for EBCDIC to ASCII translation of data in an &amp;lt;var&amp;gt;HttpRequest&amp;lt;/var&amp;gt; object.&lt;br /&gt;
 &lt;br /&gt;
====Disable base64 encoding in LoadFromRecord and related methods====&lt;br /&gt;
The &amp;lt;var&amp;gt;Base64Encode&amp;lt;/var&amp;gt;=&amp;lt;var&amp;gt;False&amp;lt;/var&amp;gt; argument can be used with the &amp;lt;var&amp;gt;[[LoadFromRecord (XmlDoc/XmlNode subroutine)|LoadFromRecord]]&amp;lt;/var&amp;gt; method to disable any base64 encoding of field values.&lt;br /&gt;
 &lt;br /&gt;
Alternatively, the &amp;lt;var&amp;gt;CharacterMap&amp;lt;/var&amp;gt; argument (with a non-null value) can be used to disable any base64 encoding of field values, and to specify translations, which can avoid request translation due to X&#039;00&#039; and/or untranslatable characters in field values.&lt;br /&gt;
 &lt;br /&gt;
These arguments are also added to the &amp;lt;var&amp;gt;[[NewFromRecord (XmlDoc function)|NewFromRecord]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[ToXmlDoc (Record function)|ToXmlDoc]]&amp;lt;/var&amp;gt; methods.&lt;br /&gt;
 &lt;br /&gt;
====New parameter for AppendJournalData====&lt;br /&gt;
The &amp;lt;var&amp;gt;QT&amp;lt;/var&amp;gt; option is added to the &amp;lt;var&amp;gt;[[AppendJournalData (Stringlist function)#Options parameter|AppendJournalData]]&amp;lt;/var&amp;gt; method, to include QT type audit entries.&lt;br /&gt;
 &lt;br /&gt;
====New parameter for AddField====&lt;br /&gt;
The &amp;lt;var&amp;gt;Strip&amp;lt;/var&amp;gt; option is added to the &amp;lt;var&amp;gt;Screen&amp;lt;/var&amp;gt; class method &amp;lt;var&amp;gt;[[AddField (Screen function)|AddField]]&amp;lt;/var&amp;gt; to allow suppression of leading and trailing blank removal from input fields.&lt;br /&gt;
&lt;br /&gt;
===New and changed $functions===&lt;br /&gt;
 &lt;br /&gt;
====Former Sirius $functions====&lt;br /&gt;
The $functions referred to by the link below are added to SOUL as a result of the acquisition of Sirius Software:&lt;br /&gt;
:[[List of $functions|Sirius $functions]]&lt;br /&gt;
Among these $functions are integrated [[List_of_mathematical_$functions|math $functions]]: high-performance, high-precision versions of the IBM mathematical functions. These functions eliminate the need to use external math libraries.&lt;br /&gt;
 &lt;br /&gt;
====$SndMail attachment ASCII translation====&lt;br /&gt;
The &amp;lt;var&amp;gt;[[SOUL_$functions#Sending_email_messages_via_$Sndmail|$SndMail]]&amp;lt;/var&amp;gt; function can now translate an attachment to ASCII before sending it.&lt;br /&gt;
This translation is useful if the &amp;lt;var&amp;gt;$SndMail&amp;lt;/var&amp;gt; attachment is a &amp;lt;var&amp;gt;CLOB&amp;lt;/var&amp;gt; (&amp;lt;var&amp;gt;CHARACTER-LARGE-OBJECT&amp;lt;/var&amp;gt;) such as a text document.&lt;br /&gt;
 &lt;br /&gt;
The &amp;lt;var&amp;gt;$SndMail&amp;lt;/var&amp;gt; function now accepts an optional parameter after the name of the attached object. If this parameter is set to &#039;C&#039; (or to a percent variable with the value &#039;C&#039;), the object in the buffer is translated to ASCII before being attached to the email.&lt;br /&gt;
 &lt;br /&gt;
If this parameter is not specified, the object in the buffer is sent as a binary object.&lt;br /&gt;
 &lt;br /&gt;
In this example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%RC = $SNDMAIL(%SUBJECT,,%BODY,%FROM,%TO,,,,&#039;CLOB.TXT&#039;,&#039;C&#039;)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
the &amp;lt;code&amp;gt;CLOB.TXT&amp;lt;/code&amp;gt; attachment will be translated to ASCII before being attached to the email.&lt;br /&gt;
&lt;br /&gt;
====New function calls for field groups====&lt;br /&gt;
When a field group is added, a [[Data maintenance#Updating field groups|field group ID]] is assigned to the field group.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[$FieldgroupId]]&amp;lt;/var&amp;gt; returns the ID of the current field group.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;[[$FieldgroupOccurrence]]&amp;lt;/var&amp;gt; returns the current occurrence number of the field group.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sirius products and product enhancements==&lt;br /&gt;
[[Sirius Software product list|The former-Sirius products]] are now available to Model 204 customers as separately purchased items as a result of the acquisition of Sirius Software.&lt;br /&gt;
 &lt;br /&gt;
===Changes to Janus SSL support===&lt;br /&gt;
Under Model 204 version 7.5, Janus products:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Drop version 2 of Secure Sockets Layer (SSL V2); add versions 1.1 and 1.2 of Transport Layer Security (TLS 1.1 and 1.2)&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
You can use the &amp;lt;var&amp;gt;[[SSLPROT (JANUS DEFINE parameter)|SSLPROT]]&amp;lt;/var&amp;gt; parameter on the &amp;lt;var&amp;gt;JANUS DEFINE&amp;lt;/var&amp;gt; command for a port to explicitly specify, or limit, the SSL/TLS protocols available for a connection. The &amp;lt;var&amp;gt;SSLPROT&amp;lt;/var&amp;gt; documentation describes the SSL/TLS protocols that Janus supports. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Janus support for SSL V2 also included an option to specify a larger than &amp;quot;legal&amp;quot; input buffer for connections not strictly conforming to the V2 standard. You specify that buffer size with the &amp;lt;var&amp;gt;JANUS DEFINE&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;[[SSLIBSIZE (JANUS DEFINE parameter)|SSLIBSIZE]]&amp;lt;/var&amp;gt; parameter, and the &amp;lt;var&amp;gt;SSLIBSIZE&amp;lt;/var&amp;gt; maximum value as of Model 204 V7.5 is reduced (from 32767 bytes) to the SSL maximum allowed size of 16384. &amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;Add support for new ciphers&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
You can use the &amp;lt;var&amp;gt;[[SSLCIPH (JANUS DEFINE parameter)|SSLCIPH]]&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;JANUS DEFINE&amp;lt;/var&amp;gt; parameter to specify the SSL ciphers available for a connection. &amp;lt;var&amp;gt;SSLCIPH&amp;lt;/var&amp;gt; bits X&#039;3F8&#039; are all new in version 7.5 of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt;. &amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===WEBOPT parameter change===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[WEBOPT parameter|WEBOPT]]&amp;lt;/var&amp;gt; parameter default value is changed to X&#039;03&#039; from 0. &amp;lt;var&amp;gt;WEBOPT&amp;lt;/var&amp;gt; affects the interaction of Model 204 and RACF security.&lt;br /&gt;
 &lt;br /&gt;
==File-related enhancements==&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; These features are not supported in Dictionary/204 version 7.5.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Support for physical field groups===&lt;br /&gt;
Model 204 supports non-relational, de-normalized data structures. Many Model 204 sites have enjoyed significant cost and performance benefits from efficiently processing multiply occurring fields. This concept has been enhanced to introduce physical field groups that let you view and process groups of fields as a logical entity.&lt;br /&gt;
 &lt;br /&gt;
You can define a physical field group only for files with the &amp;lt;var&amp;gt;[[#FILEORG (new settings)|FILEORG X&#039;100&#039;]]&amp;lt;/var&amp;gt; setting. To take advantage of field groups in files defined before Model 204 version 7.5, you must reorganize the files with a &amp;lt;var&amp;gt;FILEORG&amp;lt;/var&amp;gt; setting that includes the X&#039;100&#039; bit.&lt;br /&gt;
 &lt;br /&gt;
Files with &amp;lt;var&amp;gt;FILEORG&amp;lt;/var&amp;gt; X&#039;100&#039; can have up to 32,000 fields.&lt;br /&gt;
 &lt;br /&gt;
For more information, see [[Field group design]].&lt;br /&gt;
&lt;br /&gt;
===Increased Table B record number capacity===&lt;br /&gt;
[[Table B (File architecture)|Table B]] can now contain up to 48M possible record numbers. (The previous limit was 16M.)&lt;br /&gt;
 &lt;br /&gt;
Set the [[#FILEORG (new settings)|FILEORG X&#039;200&#039; bit]] at file creation time to allow for the increased record numbers.&lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Notes: &amp;lt;/b&amp;gt;  &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The limit for &amp;lt;var&amp;gt;BSIZE&amp;lt;/var&amp;gt; remains at 16M.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;BSIZE * BRECPPG&amp;lt;/code&amp;gt; must be less than or equal to 48M (actually decimal 50,331,648 to be exact).  &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
For example, if &amp;lt;var&amp;gt;BSIZE&amp;lt;/var&amp;gt; is 16M, &amp;lt;var&amp;gt;BRECPPG&amp;lt;/var&amp;gt; cannot be more than 3.  &amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;FILEORG&amp;lt;/var&amp;gt; X&#039;200&#039; bit cannot be set for files with hash key or sorted file organization.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Automatic fields===&lt;br /&gt;
&amp;lt;p&amp;gt;Model 204 now lets you define a field whose value is [[Field design#Automatic fields|automatically maintained]].&amp;lt;br/&amp;gt;A field can count occurrences of another field so that every store or delete of the field occurrence changes the count in the automatic field. The following automatically maintained field attributes are available for files defined with the FILEORG x&#039;100&#039; setting:&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;COUNT-OCCURRENCES-OF&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;CREATE-TIME&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;CREATE-TIMEUTC&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;CREATE-USER&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;UPDATE-TIME&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;UPDATE-TIMEUTC&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;var&amp;gt;UPDATE-USER&amp;lt;/var&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
The value of an automatic field is updated at the start of a transaction by Model 204 and you cannot set it explicitly by a program. Any valid update statement causes the appropriate time and user stamps to be updated. For example, the time and user stamps will be updated when &amp;lt;code&amp;gt;DELETE FOO(8)&amp;lt;/code&amp;gt; is processed, even if there are no occurrences of FOO in the record and an actual update does not take place.&lt;br /&gt;
 &lt;br /&gt;
Once you define an automatic value for a field, you cannot redefine the automatic value.&lt;br /&gt;
&lt;br /&gt;
===Concatenated fields===&lt;br /&gt;
Model 204 now lets you define [[Field design#Concatenated fields|concatenated fields]].&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Fields that make up concatenated field values must be &amp;lt;var&amp;gt;AT-MOST-ONE&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;EXACTLY-ONE&amp;lt;/var&amp;gt;, or &amp;lt;var&amp;gt;OCCURS&amp;lt;/var&amp;gt; 1 and must all be in the same field group context (or not in a field group). Fields that occur in all field groups (&amp;lt;var&amp;gt;FIELDGROUP *&amp;lt;/var&amp;gt;) cannot be used in a concatenation.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
If a concatenated field becomes longer than 255 bytes after adding separator and escape characters, the update request is cancelled.&lt;br /&gt;
 &lt;br /&gt;
===New field attributes===				&lt;br /&gt;
&amp;lt;p&amp;gt;Model 204 version 7.5 introduces the new &amp;lt;var&amp;gt;[[DEFINE FIELD command|DEFINE FIELD]]&amp;lt;/var&amp;gt; attributes described in this section. These attributes apply to all fields in Model 204. &amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; These attributes &amp;lt;strong&amp;gt;all&amp;lt;/strong&amp;gt; require that the &amp;lt;var&amp;gt;[[FILEORG parameter|FILEORG]]&amp;lt;/var&amp;gt; parameter X&#039;100&#039; bit be set on the file containing the fields.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Changes in the new field attributes are detected during the redefinition of an existing field. When such a change is detected, the following messages might be issued:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.1260: [FIELD | FIELDGROUP] WAS PREVIOUSLY DEFINED WITH DIFFERENT ATTRIBUTES,&lt;br /&gt;
NEW [FIELD | FIELDGROUP] OPTIONS IGNORED&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
or&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.2884: [FIELD WAS PREVIOUSLY DEFINED AS A FIELDGROUP | FIELDGROUP WAS PREVIOUSLY&lt;br /&gt;
DEFINED AS A FIELD], NEW DEFINITION IGNORED&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The table below lists the new field attributes. For details on each attribute, click its name. For more information on how related attributes work together, see the [[Field design]] topic.&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;Attribute&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Abbreviation&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Description&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;[[DEFINE_FIELD_command#Ordered_index_CHUNK_attribute|CHUNK]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;CNK&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Defines &amp;quot;OI chunks&amp;quot; of data in ORDERED NUMERIC fields to enable more efficient range searching.&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;[[Field design#CONCATENATION-OF .28CAT.29 attribute|CONCATENATION-OF]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(CAT)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Lists the fields that make up a concatenated field, and provides a concatenated value based upon the values of the constituent fields.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td nowrap&amp;gt;[[Field design#Counting occurrences of a field|COUNT-OCCURRENCES-OF]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(CTO)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Automatically maintains a count of the number of occurrences of the specified field.&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;[[Field design#Automatic Fields|CREATE-TIME]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(CRTM)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Captures the time when the record was created, as of the start of the transaction.&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;[[Field design#Automatic Fields|CREATE-TIMEUTC]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(CRTMU)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Captures the Coordinated Universal Time when the record was created, as of the start of the transaction.&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;[[Field design#Automatic Fields|CREATE-USER]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(CRUS)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Captures the user ID of the user who created the record.&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;[[Field design#DATETIME-GE .28DTGE.29.2C DATETIME-GT .28DTGT.29.2C DATETIME-LE .28DTLE.29.2C and DATETIME-LT .28DTLT.29 attributes|DATETIME]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(DT)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies the format of the date and time data stored in Table B. The default is YYYYMMDDHHMMSSXXXXXX, i.e. to the nearest millionth of a second.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Field design#DATETIME-GE .28DTGE.29.2C DATETIME-GT .28DTGT.29.2C DATETIME-LE .28DTLE.29.2C and DATETIME-LT .28DTLT.29 attributes|DATETIME-GE]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(DTGE)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;With DATETIME-GT, DATETIME-LE, and DATETIME-LT, used to establish a range for date/time values. Specifies that the date/time value must be later than or the same as the date/time value that follows. &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;[[Field design#DATETIME-GE .28DTGE.29.2C DATETIME-GT .28DTGT.29.2C DATETIME-LE .28DTLE.29.2C and DATETIME-LT .28DTLT.29 attributes|DATETIME-GT]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(DTGT)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies that the date/time value must be later than the date/time value that follows.&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;[[Field design#DATETIME-GE .28DTGE.29.2C DATETIME-GT .28DTGT.29.2C DATETIME-LE .28DTLE.29.2C and DATETIME-LT .28DTLT.29 attributes|DATETIME-LE]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(DTLE)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies that the date/time value must be earlier than or the same as the date/time value that follows.&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;[[Field design#DATETIME-GE .28DTGE.29.2C DATETIME-GT .28DTGT.29.2C DATETIME-LE .28DTLE.29.2C and DATETIME-LT .28DTLT.29 attributes|DATETIME-LT]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(DELT)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies that the date/time value must be earlier than the date/time value that follows.&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;[[Field design#DEFAULT-VALUE .28DV.29 attribute|DEFAULT-VALUE]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(DV)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies the value to use for the field when the record is created and no value has been assigned to the field.&lt;br /&gt;
 &lt;br /&gt;
(The value of the STORE-DEFAULT setting determines whether the DEFAULT-VALUE is physically stored on the record or if it is just used as the default value when the field is missing.)&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;[[Field design#ESCAPE .28ESC.29 attribute|ESCAPE]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(ESC)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies an escape character to insert before separator and escape characters in a concatenated field, differentiating those characters from real data. The default value is X&#039;01&#039;.&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;[[Field design#AT-MOST-ONE.2C REPEATABLE and EXACTLY-ONE attributes|EXACTLY-ONE]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(EXONE)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies that a field always has exactly one occurrence in its record or field group context.&lt;br /&gt;
&amp;lt;p&amp;gt;EXACTLY-ONE fields always appear first when output by a Print All Information (PAI) statement.&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;&amp;lt;td&amp;gt;[[Field design#FIELDGROUP attribute|FIELDGROUP]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(FG)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies the name of the field group that the defined field is associated with (contained within).&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;[[Field design#FLOAT-GE .28FLTGE.29.2C FLOAT-GT .28FLTGT.29.2C FLOAT-LE .28FLTLE.29 and FLOAT-LT .28FLTLT.29 attributes|FLOAT-GE]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(FLTGE)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;With FLOAT-GT, FLOAT-LE, and FLOAT-LT, used to establish a range for float values when defining a field. Specifies that the float value must be greater than or equal to the value that follows.&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;[[Field design#FLOAT-GE .28FLTGE.29.2C FLOAT-GT .28FLTGT.29.2C FLOAT-LE .28FLTLE.29 and FLOAT-LT .28FLTLT.29 attributes|FLOAT-GT]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(FLTGT)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies that the float value must be greater than the value that follows.&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;[[Field design#FLOAT-GE .28FLTGE.29.2C FLOAT-GT .28FLTGT.29.2C FLOAT-LE .28FLTLE.29 and FLOAT-LT .28FLTLT.29 attributes|FLOAT-LE]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(FLTLE)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies that the float value must be less than or equal to the value that follows.&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;[[Field design#FLOAT-GE .28FLTGE.29.2C FLOAT-GT .28FLTGT.29.2C FLOAT-LE .28FLTLE.29 and FLOAT-LT .28FLTLT.29 attributes|FLOAT-LT]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(FLTLT)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies that the float value must be less than the value that follows.&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;[[Field design#INTEGER-GE .28INTGE.29.2C INTEGER-GT .28INTGT.29.2C INTEGER-LE .28INTLE.29 and INTEGER-LT .28INTLT.29 attributes|INTEGER-GE]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(INTGE)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;With INTEGER-GT, INTEGER-LE, and INTEGER-LT, used to establish a range for integer values when defining a field. Specifies that the integer value must be greater than or equal to the value that follows.&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;[[Field design#INTEGER-GE .28INTGE.29.2C INTEGER-GT .28INTGT.29.2C INTEGER-LE .28INTLE.29 and INTEGER-LT .28INTLT.29 attributes|INTEGER-GT]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(INTGT)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies that the integer value must be greater than the value that follows.&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;[[Field design#INTEGER-GE .28INTGE.29.2C INTEGER-GT .28INTGT.29.2C INTEGER-LE .28INTLE.29 and INTEGER-LT .28INTLT.29 attributes|INTEGER-LE]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(INTLE)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies that the integer value must be less than or equal to the value that follows.&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;[[Field design#INTEGER-GE .28INTGE.29.2C INTEGER-GT .28INTGT.29.2C INTEGER-LE .28INTLE.29 and INTEGER-LT .28INTLT.29 attributes|INTEGER-LT]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(INTLT)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies that the integer value must be less than the value that follows.&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;[[Field design#LENGTH-EQ .28LEQ.29 attribute|LENGTH-EQ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(LEQ)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Used to set a length constraint when defining a field. Specifies the required length of a field value.&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;[[Field design#LENGTH-GE .28LGE.29 attribute|LENGTH-GE]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(LGE)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies the minimum length of a field value.&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;[[Field design#LENGTH-LE .28LLE.29 attribute|LENGTH-LE]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(LLE)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies the maximum length of a field value.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[Field design#Setting a pattern for a field value: the LIKE attribute|LIKE]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(LK)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Sets a pattern that to which a field value must conform.&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;[[Field design#BLOB.2C CLOB.2C and MINLOBE attributes|MINLOBE]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(MLBE)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Defines the minimum size of a BLOB or CLOB field value that will be stored in Table E. This avoids wasting Table E pages on small values that could be stored in Table B (or Table X). The default is 0.&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;NO-DOMAIN-CONSTRAINTS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td/&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies that the field has no [[Field design#Content constraints|content constraint]] attributes. Useful with &amp;lt;var&amp;gt;[[REDEFINE command|REDEFINE]]&amp;lt;/var&amp;gt; to remove existing constraints on a field.&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;NO-DEFAULT-VALUE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(NDV)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies that the field has no default value. Useful with &amp;lt;var&amp;gt;[[REDEFINE command|REDEFINE]]&amp;lt;/var&amp;gt; to remove an existing default value on a field.&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;[[Field design#SEPARATOR .28SEP.29 attribute|SEPARATOR]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(SEP)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies a separator character used between field values in concatenated fields. The default is X&#039;00&#039;.&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;[[Field design#STORE-DEFAULT .28SD.29 and STORE-NULL .28SN.29 attributes|STORE-DEFAULT]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(SD)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies whether to physically store the default value for the field in each record, if no field value has been supplied and a default is required. The default option is LITERAL (LIT), which stores a literal string.&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;[[Field design#STORE-DEFAULT .28SD.29 and STORE-NULL .28SN.29 attributes|STORE-NULL]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(SN)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Specifies whether to physically store the null value for the field in each record, if no field value has been supplied, and a default is required. The default option is LITERAL (LIT), which stores a literal string.&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;[[Field design#Automatic Fields|UPDATE-TIME]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(UPTM)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Captures the time when the record was updated, as of the start of the transaction.&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;[[Field design#Automatic Fields|UPDATE-TIMEUTC]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(UPTMU)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Captures the Coordinated Universal Time when the record was updated, as of the start of the transaction.&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;[[Field design#Automatic Fields|UPDATE-USER]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(UPUS)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Captures the user ID of the user who updated the record.&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;[[Field design#UTF-8 and UTF-16 attributes|UTF-8]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(UTF8)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Data is stored in UTF-8 format and is treated as unicode data inside SOUL programs. The default is EBCDIC.&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;[[Field design#UTF-8 and UTF-16 attributes|UTF-16]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(UTF16)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Data is stored in UTF-16 format and is treated as unicode data inside SOUL programs. The default is EBCDIC.&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;
==System management enhancements==&lt;br /&gt;
 &lt;br /&gt;
===Writing records to the SMF data set===&lt;br /&gt;
Having Model 204 write records to the SMF data set no longer requires the installation of an SVC.&lt;br /&gt;
 &lt;br /&gt;
Therefore, the &amp;lt;var&amp;gt;[[SMFSVC parameter|SMFSVC]]&amp;lt;/var&amp;gt; parameter is no longer required and, if present, will be ignored and flagged with the following informational message:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;M204.0204: PARAMETER SMFSVC OBSOLETE AND NOT RESET&amp;lt;/p&amp;gt;&lt;br /&gt;
However, the &amp;lt;var&amp;gt;[[SMFLORN parameter|SMFLORN]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[SMFSLRN parameter|SMFSLRN]]&amp;lt;/var&amp;gt; parameters must still be present in CCAIN to specify the types of SMF record to be written.&lt;br /&gt;
&lt;br /&gt;
===Providing a common CCAIN configuration with PRECCAIN===&lt;br /&gt;
A new feature in version 7.5 is the ability to [[PRECCAIN|provide a common configuration]] for all &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; jobs by linking &amp;lt;code&amp;gt;PRECCAIN&amp;lt;/code&amp;gt; into your ONLINE, IFAM1, and/or IFAM4 load modules. &amp;lt;code&amp;gt;PRECCAIN&amp;lt;/code&amp;gt;, an assembler module which you modify and link into the load modules, contains &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; commands and parameters set and executed, respectively, during &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; initialization.&lt;br /&gt;
&lt;br /&gt;
==Performance enhancements==&lt;br /&gt;
 &lt;br /&gt;
===64-bit addressing and Above The Bar (ATB) storage===&lt;br /&gt;
Model 204 moves above the (2G) bar to increase scalability, performance, and growth potential. With this release of Model 204, 64-bit addressing becomes the de facto standard for all subsequent versions.&lt;br /&gt;
 &lt;br /&gt;
In addition to the ATB support for FTBL released with Model 204 version 7.4, version 7.5 adds ATB support for GTBL, NTBL, and QTBL, using the same &amp;lt;var&amp;gt;[[SERVNSA parameter|SERVNSA]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[SERVNSSZ parameter|SERVNSSZ]]&amp;lt;/var&amp;gt; parameters used for FTBL.&lt;br /&gt;
 &lt;br /&gt;
When using non-swappable ATB server space, each user will get SERVNSSZ bytes of ATB space, even if the thread is logged out or running resident requests. &lt;br /&gt;
&lt;br /&gt;
For greater efficiency, Model 204 version 7.5 also provides swappable ATB server areas that can supplement or replace the non-swappable areas. NTBL and QTBL can be stored in these swappable ATB server areas, which are controlled by the &amp;lt;var&amp;gt;[[SERVGA parameter|SERVGA]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[SERVGSZ parameter|SERVGSZ]]&amp;lt;/var&amp;gt; parameters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Any assembler language functions that you have written for use within Model 204 version 7.5 must be 64-bit compliant. Contact Technical Support if you need help with conversion of your functions.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
====GTBL, NTBL, QTBL in above the bar storage====&lt;br /&gt;
GTBL, NTBL and QTBL can now be placed into server storage above the bar.&lt;br /&gt;
&amp;lt;p&amp;gt;In order to store a table in ATB storage:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Increase the &amp;lt;var&amp;gt;[[SERVNSSZ parameter|SERVNSSZ]]&amp;lt;/var&amp;gt; parameter by the corresponding table size.&lt;br /&gt;
&amp;lt;li&amp;gt;Set the proper bit in &amp;lt;var&amp;gt;[[SERVNSA parameter|SERVNSA]]&amp;lt;/var&amp;gt;:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;for GTBL set the second byte to &amp;lt;code&amp;gt;X&#039;80&#039;&amp;lt;/code&amp;gt;, so the value of &amp;lt;var&amp;gt;SERVNSA&amp;lt;/var&amp;gt; is &amp;lt;code&amp;gt;X&#039;00800000&#039;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;for NTBL set the third byte to &amp;lt;code&amp;gt;X&#039;40&#039;&amp;lt;/code&amp;gt;, so the value of &amp;lt;var&amp;gt;SERVNSA&amp;lt;/var&amp;gt; is &amp;lt;code&amp;gt;X&#039;00004000&#039;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;for QTBL set the third byte to &amp;lt;code&amp;gt;X&#039;20&#039;&amp;lt;/code&amp;gt;, so the value of &amp;lt;var&amp;gt;SERVNSA&amp;lt;/var&amp;gt; is &amp;lt;code&amp;gt;X&#039;00002000&#039;&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
The settings for each server table above the bar are independent of each other.&lt;br /&gt;
So if GTBL, NTBL, and QTBL are all placed above the bar, then &amp;lt;var&amp;gt;SERVNSA&amp;lt;/var&amp;gt; should be set to &amp;lt;code&amp;gt;X&#039;00806000&#039;&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====XmlDoc pages in above the bar buffer pool====&lt;br /&gt;
With this release, the CCATEMP pages used for &amp;lt;var&amp;gt;XmlDoc&amp;lt;/var&amp;gt; objects use the above the bar buffer pool, which may allow the below the bar buffer pool to be reduced, perhaps providing more storage for server areas. It also may provide a reduction in CPU utilization, especially when the &amp;lt;var&amp;gt;[[TEMPPAGE parameter|TEMPPAGE]]&amp;lt;/var&amp;gt; parameter is used to allocate CCATEMP in memory.&lt;br /&gt;
&lt;br /&gt;
===Improved range searching by Ordered Index (OI) chunk===&lt;br /&gt;
The new &amp;lt;var&amp;gt;[[DEFINE FIELD command#Ordered index CHUNK attribute|CHUNK]]&amp;lt;/var&amp;gt; attribute for the &amp;lt;var&amp;gt;DEFINE FIELD&amp;lt;/var&amp;gt; command enables more efficient range searching on Ordered Index numeric  (&amp;lt;var&amp;gt;ORDERED NUMERIC&amp;lt;/var&amp;gt;) fields. &amp;lt;var&amp;gt;CHUNK&amp;lt;/var&amp;gt; improves performance of  the &amp;lt;var&amp;gt;FIND&amp;lt;/var&amp;gt; statement &amp;lt;var&amp;gt;RANGE&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;BETWEEN&amp;lt;/var&amp;gt; terms. The &amp;lt;var&amp;gt;CHUNK&amp;lt;/var&amp;gt; field attribute defines a subrange (&amp;quot;OI chunk&amp;quot;) of the data range. Searching by OI chunks on a range of data requires fewer scans of the ordered index entries to find the desired data. Once OI chunk fields are defined, they are automatically used by FIND processing, so no application code needs to be changed.&lt;br /&gt;
 &lt;br /&gt;
After defining an &amp;lt;var&amp;gt;ORDERED NUMERIC&amp;lt;/var&amp;gt; field, you define one or more related OI chunk fields containing data from the original base field rounded down by a specified &amp;lt;var&amp;gt;CHUNK&amp;lt;/var&amp;gt; size.&lt;br /&gt;
 &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;p class=&amp;quot;syntax&amp;quot;&amp;gt;DEFINE FIELD YYYYMMDD WITH ORDERED NUMERIC&lt;br /&gt;
DEFINE FIELD YYYYMM   WITH ORDERED NUMERIC INVISIBLE CHUNK 100 FOR YYYYMMDD&lt;br /&gt;
DEFINE FIELD YYYY     WITH ORDERED NUMERIC INVISIBLE CHUNK 10000 FOR YYYYMMDD&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;var&amp;gt;CHUNK&amp;lt;/var&amp;gt; requires the &amp;lt;var&amp;gt;[[#FILEORG (new settings)|FILEORG]]&amp;lt;/var&amp;gt; X&#039;100&#039; bit setting and the &amp;lt;var&amp;gt;INVISIBLE&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;ORDERED NUMERIC&amp;lt;/var&amp;gt; field attributes.&lt;br /&gt;
 &lt;br /&gt;
==Debugging and testing enhancements==&lt;br /&gt;
The SoftSpy debugging, testing, and performance tuning product is now included as part of the Model&amp;amp;nbsp;204 core product. For more information about SoftSpy version 7.5, see the [[Release notes for SoftSpy V7.5]].&lt;br /&gt;
 &lt;br /&gt;
==Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; enhancements==&lt;br /&gt;
The 7.5 version of Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; for JDBC, Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; for .NET, and Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; for ODBC is now available. Each interface contains the latest fixes and enhancements and is compatible with Model 204 version 7.5. &lt;br /&gt;
&lt;br /&gt;
Additionally, Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; for JDBC and Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; for .NET contain the enhancements described below.&lt;br /&gt;
&lt;br /&gt;
===Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; for JDBC===&lt;br /&gt;
Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; 7.5 for JDBC offers a &amp;quot;connection pooling&amp;quot; class to interface with other pooling infrastructures provided by pooling packages and web application servers. This new feature allows for a pool of connections that remain active and open during execution of an SQL and RCL (SOUL) statement.&lt;br /&gt;
Using connection pooling helps eliminate the overhead of creating initial connections from scratch or trying to&lt;br /&gt;
manage each connection using the JDBC API.&lt;br /&gt;
 &lt;br /&gt;
Each Connection Pool can create a pool of active connections maintainable throughout the connection cycle of the pooling service.&lt;br /&gt;
 &lt;br /&gt;
For a sample program, see the &amp;quot;Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; for JDBC&amp;quot; chapter of the &amp;lt;var class=&amp;quot;book&amp;quot;&amp;gt;Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; Installation and Programming Guide&amp;lt;/var&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; 7.5 for JDBC has been tested with the JNDI, Apache DBCP&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt;, BoneCP and C3PO pooling packages.&lt;br /&gt;
&lt;br /&gt;
===Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; for .NET===&lt;br /&gt;
Connect&amp;lt;sup&amp;gt;&amp;amp;#9733;&amp;lt;/sup&amp;gt; 7.5 for .NET offers both 32-bit and 64-bit drivers that can be used with any Web or GUI-driven application.&lt;br /&gt;
&lt;br /&gt;
==MQ/204 enhancements==&lt;br /&gt;
 &lt;br /&gt;
===Freeing MQ/204 subtasks and associated storage===&lt;br /&gt;
The new &amp;lt;var&amp;gt;MQDELDTP&amp;lt;/var&amp;gt; PST (pseudo subtask)  checks for MQ/204 subtasks that are in a delayed detach state. &amp;lt;var&amp;gt;MQDELDTP&amp;lt;/var&amp;gt; detaches MQ/204 subtasks that have finished their work and releases their associated storage areas.&lt;br /&gt;
==Dictionary/204==&lt;br /&gt;
Dictionary/204 version 7.5 is compatible with Model 204 7.5 but does not include new features such as support for the version 7.5 [[#File-related enhancements|file-related enhancements]].&lt;br /&gt;
&lt;br /&gt;
==Other features==&lt;br /&gt;
===AT-MOST-ONE and field groups===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The &amp;lt;var&amp;gt;AT-MOST-ONE&amp;lt;/var&amp;gt; attribute is now applicable to a field group definition.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Storing and updating LOBs===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
All large object data (LOBs) in a &amp;lt;var&amp;gt;FILEORG&amp;lt;/var&amp;gt; X&#039;100&#039; file are chained. There are four bytes per Table E page overhead for chained LOBs, used to maintain a queue of pages available for reuse after LOBs are deleted. The pages used by a chained LOB are not necessarily contiguous.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Handling LOBs in &amp;lt;var&amp;gt;FILEORG&amp;lt;/var&amp;gt; X&#039;100&#039; files also has the following effects:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;LOBs can be changed as needed. The &amp;lt;var&amp;gt;RESERVE&amp;lt;/var&amp;gt; clause is ignored in a LOB field &amp;lt;var&amp;gt;ADD&amp;lt;/var&amp;gt; statement processing, as well as the &amp;lt;var&amp;gt;STORE RECORD&amp;lt;/var&amp;gt; statement processing of fieldname=value pairs. Consequently, the &amp;lt;var&amp;gt;CHANGE&amp;lt;/var&amp;gt; statement does not fail because of insufficient reserved space. If the &amp;lt;var&amp;gt;CHANGE&amp;lt;/var&amp;gt; statement requires that a LOB field be extended, it is.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;The value of the &amp;lt;var&amp;gt;[[EHIGHPG parameter|EHIGHPG]]&amp;lt;/var&amp;gt; parameter is always one less than the high water mark of the number of pages used to hold LOBs. (Unless none were ever added, in which case it is zero, not -1).&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;The value of the &amp;lt;var&amp;gt;[[EPGSUSED parameter|EPGSUSED]]&amp;lt;/var&amp;gt; parameter is always the number of pages currently being used to hold LOBs.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;COMPACTE&amp;lt;/var&amp;gt; command does not process &amp;lt;var&amp;gt;FILEORG&amp;lt;/var&amp;gt; X&#039;100&#039; files, just as it does not process a file created in V6R1 or earlier. Thus, issuing a &amp;lt;var&amp;gt;COMPACTE&amp;lt;/var&amp;gt; command for a &amp;lt;var&amp;gt;FILEORG&amp;lt;/var&amp;gt; X&#039;100&#039; file produces an error message.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;TABLEE&amp;lt;/var&amp;gt; command is effectively executing a &amp;lt;code&amp;gt;VIEW ESIZE EHIGHPG EPGSUSED&amp;lt;/code&amp;gt; command for a &amp;lt;var&amp;gt;FILEORG&amp;lt;/var&amp;gt; X&#039;100&#039; file. Consequently there are no &amp;lt;var&amp;gt;TABLEE&amp;lt;/var&amp;gt; overhead pages in a &amp;lt;var&amp;gt;FILEORG&amp;lt;/var&amp;gt; X&#039;100&#039; file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Constraint attributes===&lt;br /&gt;
You can set range constraints on fields using the constraint attributes. Each set of range attributes is comprised of four attributes (&amp;lt;var&amp;gt;GE&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;GT&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;LE&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;LT&amp;lt;/var&amp;gt;) that you can use to establish a range for integer values, float values, or date-time stamp values. The types of range attributes are mutually exclusive. For example, you cannot define a field with the &amp;lt;var&amp;gt;FLOAT-GE&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;INTEGER-LE&amp;lt;/var&amp;gt; attributes.&lt;br /&gt;
 &lt;br /&gt;
If a range constraint is redefined, it replaces the existing field constraint.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt; &amp;lt;b&amp;gt;Note: &amp;lt;/b&amp;gt;&lt;br /&gt;
The range constraints do not have to match the data type of the stored field. That is, you could have a date-time constraint for a &amp;lt;var&amp;gt;STRING&amp;lt;/var&amp;gt; field or an integer constraint for a &amp;lt;var&amp;gt;FLOAT&amp;lt;/var&amp;gt; field, and so on.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
You can set the following constraint attributes:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;date-time value&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;pattern for a field value&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;length&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;floating point value&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
See [[Field design#Content constraints|Content constraints]] for details.&lt;br /&gt;
&lt;br /&gt;
===Changes to journal record layouts===&lt;br /&gt;
Four bytes have been added to the journal record header for user statistic entries:&lt;br /&gt;
1 byte to hold the &amp;lt;var&amp;gt;IODEV&amp;lt;/var&amp;gt; number and 3 bytes for future use.&lt;br /&gt;
 &lt;br /&gt;
All user since-last statistics (LAST=) lines will now show the &amp;lt;var&amp;gt;IODEV&amp;lt;/var&amp;gt; value:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;ST $$$ USERID=&#039;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;userid&amp;lt;/var&amp;gt;&#039; ACCOUNT=&#039;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;accountname&amp;lt;/var&amp;gt;&#039; IODEV=&#039;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;devicetype&amp;lt;/var&amp;gt;&#039; LAST=&#039;&amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;acty&amp;lt;/var&amp;gt;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
For more information on journal records and user statistics, see the [[Using system statistics]] topic.&lt;br /&gt;
&lt;br /&gt;
==Compatibility issues==&lt;br /&gt;
This section describes any compatibility issues between V7.5 and prior versions of Model 204.&lt;br /&gt;
An incompatibility arises if an operation that was previously performed without any indication of error, now operates (given the same inputs and conditions) in a different manner.&lt;br /&gt;
 &lt;br /&gt;
A normal bug fix resolving behavior that, although not indicating an error, was &amp;quot;clearly and obviously&amp;quot; incorrect, also introduces an incompatibility, but it might &amp;lt;i&amp;gt;not&amp;lt;/i&amp;gt; be included below.&lt;br /&gt;
 &lt;br /&gt;
===Change to the Ordered Index layout===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Formerly all ORDERED NUMERIC fields came after all ORDERED CHARACTER fields in the Ordered Index. Now, the fields are interspersed in field code order.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===ZFIELD Image===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The [[ZFIELD image detail as of Model 204 V7.5|ZFIELD image]] has been updated for this release. The image is used with $LSTFLD and $FDEF function calls. One change is that FDEF is now longer (to accommodate FDEF1, LOOPVAR, and FDEF2).&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===INTERCOMM is no longer supported===&lt;br /&gt;
The INTERCOMM interface supports the use of Teletype and 3270 terminals in line-at-a-time mode, using the Model 204 IODEV=29 thread type.&lt;br /&gt;
 &lt;br /&gt;
INTERCOMM is no longer supported as of Model 204 version 7.5.&lt;br /&gt;
 &lt;br /&gt;
See the &amp;lt;var class=&amp;quot;book&amp;quot;&amp;gt;Rocket Model 204 Terminal User&#039;s Guide&amp;lt;/var&amp;gt; for a discussion of terminal interfaces.&lt;br /&gt;
 &lt;br /&gt;
===User PDL overflow===&lt;br /&gt;
The new &amp;lt;var&amp;gt;[[Release notes for Model 204 version 7.5 (DRAFT)#SEQPDL parameter|SEQPDL]]&amp;lt;/var&amp;gt; parameter might require you to increase the size of the user Push Down List (using UTABLE LPDLST) by up to 3072 bytes, or more if you specify a value for SEQPDL that is larger than the 4096 default value.&lt;br /&gt;
 &lt;br /&gt;
===LPDLST parameter maximum value===&lt;br /&gt;
The maximum value for the &amp;lt;var&amp;gt;[[LPDLST parameter|LPDLST]]&amp;lt;/var&amp;gt; parameter has been increased from 32760 to 65536.&lt;br /&gt;
The minimum value is now 10000. &lt;br /&gt;
 &lt;br /&gt;
===SSLIBSIZE parameter maximum value===&lt;br /&gt;
The maximum value for the &amp;lt;var&amp;gt;JANUS DEFINE&amp;lt;/var&amp;gt; command &amp;lt;var&amp;gt;[[SSLIBSIZE (JANUS DEFINE parameter)|SSLIBSIZE]]&amp;lt;/var&amp;gt; parameter has been decreased from 32767 to 16384.&lt;br /&gt;
&lt;br /&gt;
===Mixed case messages by default===&lt;br /&gt;
As of version 7.5, all Model 204 messages are issued with mixed case text by default unless &amp;lt;var&amp;gt;[[UPCASMSG parameter|UPCASMSG]]&amp;lt;/var&amp;gt; is set.&lt;br /&gt;
&lt;br /&gt;
==New and changed commands==&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; The [[Sirius Mods]] commands are merged with the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; base as of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; version 7.5, and they are available to version 7.5 customers. Sirius Mods commands with the same name as Model 204 commands are used with Sirius Mods features. Some Sirius commands are only available or useful at sites authorized for specific products. For details, see each individual command description on the [[List of Model 204 commands]] page. &amp;lt;/p&amp;gt;&lt;br /&gt;
===Sirius Mods commands===&lt;br /&gt;
Sirius Mods commands now available in Model 204 7.5 are: &lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[APPDATE command|APPDATE]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[BUMPSNAP command|BUMPSNAP]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[DUMP and DUMPX command|DUMP and DUMPX]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[DUMPG and DUMPGX command|DUMPG and DUMPGX]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[FILELOAD and FILELOADX command|FILELOAD and FILELOADX]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[FLOD and FLODX command|FLOD and FLODX]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[FNADDR command|FNADDR]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[FUDAEMON command|FUDAEMON]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[JANUS command|JANUS]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[JANUSDEBUG command|JANUSDEBUG]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MONITOR operator command]]&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;[[RESTART operator command|RESTART operator]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[RESTAUTH command|RESTAUTH]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[RESTORE and RESTOREX command|RESTORE and RESTOREX]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SAMPLE command|SAMPLE]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SIRAPSY command|SIRAPSY]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SIRFACT command|SIRFACT]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SIRFIELD command|SIRFIELD]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SIRIUS command|SIRIUS]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SIRIUS DEBUG, SIRDEBUG, or SIRIUSDEBUG command|SIRIUS DEBUG, SIRDEBUG, or SIRIUSDEBUG]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SIRMETH command|SIRMETH]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[STATUS command|STATUS]]&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;[[STOP command|STOP]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[UNICODE command|UNICODE]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     ******************************************************************&lt;br /&gt;
     Please keep the following subsections alphabetized by command name&lt;br /&gt;
     ******************************************************************&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DECREASE (new option: DYNAMIC)===&lt;br /&gt;
The DYNAMIC option on the &amp;lt;var&amp;gt;[[DECREASE command|DECREASE]]&amp;lt;/var&amp;gt; command lets you decrease Table B dynamically, even if the file is open by others or has requests compiled against it.&lt;br /&gt;
 &lt;br /&gt;
===DEFINE DATASET (new parameter: GDGRECNT)===&lt;br /&gt;
The GDGRECNT parameter for the &amp;lt;var&amp;gt;[[DEFINE DATASET command|DEFINE DATASET]]&amp;lt;/var&amp;gt; command causes Model 204 to check the catalog information for the latest relative GDG generation number whenever allocating a GDG data set.&lt;br /&gt;
 &lt;br /&gt;
===DEFINE FIELD (new or changed attributes)===&lt;br /&gt;
In Model 204 version 7.5, the &amp;lt;var&amp;gt;[[DEFINE FIELD command|DEFINE FIELD]]&amp;lt;/var&amp;gt; command has new attributes information:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;the new &amp;lt;var&amp;gt;[[#Improved range searching by Ordered Index .28OI.29 chunk|CHUNK]]&amp;lt;/var&amp;gt; attribute, which improves the efficiency of range finds using ordered index processing&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;many other &amp;lt;var&amp;gt;[[FILEORG parameter|FILEORG=X&#039;100&#039;]]&amp;lt;/var&amp;gt; related new or changed [[Release notes for Model 204 version 7.5 (DRAFT)#New field attributes|field attributes]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===DEFINE FIELDGROUP (new in V7.5)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[DEFINE FIELDGROUP command|DEFINE FIELDGROUP]]&amp;lt;/var&amp;gt; command establishes the contents of a field group, including the fields and field groups associated with the field group being defined.&lt;br /&gt;
 &lt;br /&gt;
===DELETE FIELD (changed to handle CAT and CTO fields)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[DELETE command: Field|DELETE FIELD]]&amp;lt;/var&amp;gt; command has been changed to take [[Field design#CONCATENATION-OF (CAT) attribute|CONCATENATION-OF (CAT)]] and [[Field design#Counting occurrences of a field|COUNT-OCCURRENCES-OF (CTO)]] fields into account. DELETE FIELD does not allow deletion of fields referred to by an existing CAT or CTO field.&lt;br /&gt;
 &lt;br /&gt;
===DELETE FIELDGROUP (new in V7.5)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[DELETE FIELDGROUP command|DELETE FIELDGROUP]]&amp;lt;/var&amp;gt; command deletes a field group from a Model 204 file.&lt;br /&gt;
 &lt;br /&gt;
===DISPLAY FIELD (new option: COMMA)===&lt;br /&gt;
In Model 204 version 7.5, the &amp;lt;var&amp;gt;[[DISPLAY FIELD command|DISPLAY FIELD]]&amp;lt;/var&amp;gt; command has added&lt;br /&gt;
the &amp;lt;var&amp;gt;COMMA&amp;lt;/var&amp;gt; option, which uses commas to separate displayed field attributes.&lt;br /&gt;
 &lt;br /&gt;
===DISPLAY MODMAP (new in V7.5)===&lt;br /&gt;
&amp;lt;var&amp;gt;[[DISPLAY MODMAP command|DISPLAY MODMAP]]&amp;lt;/var&amp;gt; displays the Model 204 link map in address order. System manager privileges are required.&lt;br /&gt;
&lt;br /&gt;
===LOGFILE and LOGGRP (output format change)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[LOGFILE command|LOGFILE]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[LOGGRP command|LOGGRP]]&amp;lt;/var&amp;gt; command output format has been changed so that:&lt;br /&gt;
&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;File names in the &amp;lt;var&amp;gt;LOGFILE&amp;lt;/var&amp;gt; command output are preceded by colons (as they are in &amp;lt;var&amp;gt;LOGCTL&amp;lt;/var&amp;gt; commands for files). &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Group names are preceded by commas (as they are for &amp;lt;var&amp;gt;LOGCTL&amp;lt;/var&amp;gt; commands for groups). &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;********&amp;lt;/code&amp;gt; is displayed as a password placeholder &amp;amp;mdash; the password is actually displayed for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SirSafe&amp;lt;/var&amp;gt;-controlled passwords. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MSGCTL (new options: UP/UPPER, NOUP/NOUPPER)===&lt;br /&gt;
The &amp;lt;var&amp;gt;UP&amp;lt;/var&amp;gt; (or &amp;lt;var&amp;gt;UPPER&amp;lt;/var&amp;gt;) option on the &amp;lt;var&amp;gt;[[MSGCTL command|MSGCTL]]&amp;lt;/var&amp;gt; command indicates that the specified message should be converted to uppercase before display. Similarly, the &amp;lt;var&amp;gt;NOUP&amp;lt;/var&amp;gt; (or &amp;lt;var&amp;gt;NOUPPER&amp;lt;/var&amp;gt;) option on the &amp;lt;var&amp;gt;MSGCTL&amp;lt;/var&amp;gt; command undoes the effects of &amp;lt;var&amp;gt;UP&amp;lt;/var&amp;gt; or &amp;lt;var&amp;gt;UPPER&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===REGENERATE and REGENERATE ONEPASS (improved TO UPDATE option)===&lt;br /&gt;
The &amp;lt;var&amp;gt;TO UPDATE&amp;lt;/var&amp;gt; option of the &amp;lt;var&amp;gt;[[REGENERATE command|REGENERATE]]&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;[[REGENERATE ONEPASS command|REGENERATE ONEPASS]]&amp;lt;/var&amp;gt; commands can now handle multiple files.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If &amp;lt;code&amp;gt;TO UPDATE &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;nn&amp;lt;/var&amp;gt; OF &amp;lt;var class=&amp;quot;term&amp;quot;&amp;gt;id&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt; is specified, it must appear only on the first &amp;lt;var&amp;gt;FILE&amp;lt;/var&amp;gt; statement, and no other &amp;lt;var&amp;gt;TO&amp;lt;/var&amp;gt; options are allowed on subsequent files.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
All additional files are recovered as though they each specified the same &amp;lt;var&amp;gt;TO UPDATE&amp;lt;/var&amp;gt; option. Once the &amp;quot;end of transaction&amp;quot; is reached, further processing stops and all inflight transactions are backed out.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===RENAME FIELDGROUP (new in V7.5)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[RENAME FIELDGROUP command|RENAME FIELDGROUP]]&amp;lt;/var&amp;gt; command changes the name of a field group.&lt;br /&gt;
 &lt;br /&gt;
===UNICODE (new codepage: 1154)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[UNICODE command|UNICODE]]&amp;lt;/var&amp;gt; command now accepts 1154 as a codepage name.  This codepage has 92 Unicode characters in the range U+0400 through U+045F, representing the Basic Russian alphabet and all of the Cyrillic extensions excepting the four which have grave accents.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     *************************************************************************************&lt;br /&gt;
     End of new/changed command subsections; please keep them alphabetized by command name&lt;br /&gt;
     *************************************************************************************&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reliability enhancements==&lt;br /&gt;
===SEQPDL parameter===&lt;br /&gt;
The new &amp;lt;var&amp;gt;[[SEQPDL parameter|SEQPDL]]&amp;lt;/var&amp;gt; parameter controls the amount of free space that must be present in the user&#039;s Push Down List (PDL) in order for the SOUL sequencer to proceed with the next quad code. The minimum and default value is 4096 bytes. The maximum value is 8192 bytes. &amp;lt;var&amp;gt;SEQPDL&amp;lt;/var&amp;gt; is a user resettable parameter and can be set on the user&#039;s parameter line or reset with the UTABLE command.&lt;br /&gt;
 &lt;br /&gt;
Formerly 1024 bytes of PDL free space were hardcoded internally in the Model 204 core. With 1024 bytes there were edge cases where abends would break files, resulting in ERROR 2126: &amp;lt;code&amp;gt;USER&#039;S PUSHDOWN LIST OVERFLOWED&amp;lt;/code&amp;gt;. &amp;lt;var&amp;gt;SEQPDL&amp;lt;/var&amp;gt; is provided to allow enough PDL space so that all of the lower level journaling routines can process error conditions without breaking files.&lt;br /&gt;
 &lt;br /&gt;
If your applications are using close to the amount of PDL space currently set by the LPDLST value, you might need to increase &amp;lt;var&amp;gt;[[LPDLST parameter|LPDLST]]&amp;lt;/var&amp;gt; to reflect &amp;lt;var&amp;gt;SEQPDL&amp;lt;/var&amp;gt;&#039;s increase in free space.&lt;br /&gt;
 &lt;br /&gt;
==New and changed parameters==&lt;br /&gt;
In addition to the following specific parameter changes, &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; parameter descriptions, for example as displayed by the &amp;lt;var&amp;gt;VIEW&amp;lt;/var&amp;gt; command, are now in mixed case (unless translated to uppercase due to &amp;lt;var&amp;gt;[[#UPCASMSG (new in V7.5)|UPCASMSG]]&amp;lt;/var&amp;gt;.)&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;blockquote class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The [[Sirius Mods]] parameters are merged with the &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; base as of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; version 7.5, and they are available to all version 7.5 customers. The combined set of parameters is displayed on the [[List of Model 204 parameters]] page. The former Sirius parameters in that listing are marked with an &amp;lt;sup&amp;gt;(S)&amp;lt;/sup&amp;gt;. &lt;br /&gt;
&amp;lt;li&amp;gt;A new feature in version 7.5 is the ability to [[PRECCAIN|provide a common configuration]] for all &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; jobs by linking &amp;lt;code&amp;gt;PRECCAIN&amp;lt;/code&amp;gt; into your ONLINE, IFAM1, and/or IFAM4 load modules. &amp;lt;code&amp;gt;PRECCAIN&amp;lt;/code&amp;gt;, an assembler module which you modify and link into the load modules, contains &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; commands and parameters set and executed, respectively, during &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; initialization.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
     ********************************************************************&lt;br /&gt;
     Please keep the following subsections alphabetized by parameter name&lt;br /&gt;
     ********************************************************************&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===CUSTOM (additional settings)===&lt;br /&gt;
The CUSTOM parameter enables special modifications to Model 204. 17 new settings have been added to &amp;lt;var&amp;gt;[[CUSTOM parameter|CUSTOM]]&amp;lt;/var&amp;gt; in V7.5.&lt;br /&gt;
&lt;br /&gt;
===DEFCNTX and APDFCNTX (for $View function only, new in V7.5)===&lt;br /&gt;
The string&lt;br /&gt;
&amp;lt;code&amp;gt;DEFCNTX&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;APDFCNTX&amp;lt;/code&amp;gt; can be used as an&lt;br /&gt;
argument to the &amp;lt;var&amp;gt;[[$VIEW|$View]]&amp;lt;/var&amp;gt; function to&lt;br /&gt;
get the default file or group context. Using these strings is better than using &amp;lt;code&amp;gt;$View(&#039;CURFILE&#039;)&amp;lt;/code&amp;gt; because:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;CURFILE&amp;lt;/code&amp;gt; returns a null string if the default context is a group.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;CURFILE&amp;lt;/code&amp;gt; is affected by the &amp;lt;var&amp;gt;IN&amp;lt;/var&amp;gt; clause prior to a &amp;lt;var&amp;gt;Begin&amp;lt;/var&amp;gt; command and&lt;br /&gt;
can be affected by the &amp;lt;var&amp;gt;In&amp;lt;/var&amp;gt; clause prior to many SOUL statements.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
If there is no default context, &amp;lt;code&amp;gt;$View(&#039;DEFCNTX&#039;)&amp;lt;/code&amp;gt; returns a null&lt;br /&gt;
string.&lt;br /&gt;
 &lt;br /&gt;
Otherwise &amp;lt;code&amp;gt;$View(&#039;DEFCNTX&#039;)&amp;lt;/code&amp;gt; returns the type of context (&amp;lt;code&amp;gt;FILE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TEMP GROUP&amp;lt;/code&amp;gt;, or&lt;br /&gt;
&amp;lt;code&amp;gt;PERM GROUP&amp;lt;/code&amp;gt;) followed by the file or group name, with trailing blanks&lt;br /&gt;
removed.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;$View(&#039;APDFCNTX&#039;)&amp;lt;/code&amp;gt; returns the same information based on the default&lt;br /&gt;
context when the APSY was entered, unless that is the same as one of the files or groups in the subsystem&#039;s definition; in that case, the null string is returned.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; These &amp;lt;code&amp;gt;$View&amp;lt;/code&amp;gt; arguments were implemented as part of&lt;br /&gt;
maintenance to version 7.5 (through zap number 54). They are not available as ordinary parameters on the &amp;lt;var&amp;gt;VIEW&amp;lt;/var&amp;gt; command.&lt;br /&gt;
In version 7.6 of Model 204,&lt;br /&gt;
they will also be available with the &amp;lt;var&amp;gt;VIEW&amp;lt;/var&amp;gt; command.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===DSPOPT (change to default setting)===&lt;br /&gt;
The default setting for &amp;lt;var&amp;gt;[[DSPOPT parameter|DSPOPT]]&amp;lt;/var&amp;gt; has been changed from X&#039;00&#039; to X&#039;01&#039;. The X&#039;01&#039; setting allocates space for servers in memory in chunks of 4K pages, not as a permanent contiguous area. This allocation lets you move fewer 4K pages, keeping the virtual storage allocated for servers in memory less fragmented and possibly using fewer paging tables.&lt;br /&gt;
&lt;br /&gt;
===ECPSIZE (change to max value)===&lt;br /&gt;
The maximum value setting for &amp;lt;var&amp;gt;[[ECPSIZE parameter|ECPSIZE]]&amp;lt;/var&amp;gt; has been increased from 1310680 to 1966020 to accommodate more [[Release notes for Model 204 version 7.5 (DRAFT)#External Call Facility .28ECF.29|External Call Facility]] parameters.&lt;br /&gt;
&lt;br /&gt;
===FILEORG (new settings)===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
The &amp;lt;var&amp;gt;[[FILEORG parameter|FILEORG]] X&#039;100&#039;&amp;lt;/var&amp;gt; setting for enhanced data handling files is now available.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p&amp;gt;X&#039;100&#039; enables a number of enhancements to the file structure, including: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Release notes for Model 204 version 7.5 (DRAFT)#Support for physical field groups|Support for physical field groups]] &amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;The definition of as many as 32000 fields in a file &amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;System maintained [[Field design#Automatic Fields|Automatic fields]] &amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;[[Field design#Field constraints|Field constraints]] providing content validation &amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;Improved space management of fields containing [[Field design#BLOB, CLOB, and MINLOBE attributes|Large Objects]] &amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;[[#New field attributes|New DEFINE FIELD attributes]], such as &amp;lt;var&amp;gt;CHUNK&amp;lt;/var&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If X&#039;100&#039; is selected, the X&#039;80&#039; bit (optimized field extraction files) is automatically set.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;lt;var&amp;gt;FILEORG X&#039;200&#039;&amp;lt;/var&amp;gt; setting for large file support is now available. &amp;lt;/li&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p&amp;gt;X&#039;200&#039; allows files to hold up to 48 million records.&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;
===FISTAT (change to X&#039;08&#039; setting)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[FISTAT parameter|FISTAT]] X&#039;08&#039;&amp;lt;/var&amp;gt; (file full) setting is now automatically cleared in a transaction back out file if table D is increased enough so that DSIZE is greater than or equal to DPGSRES+DPGSUSED.&lt;br /&gt;
 &lt;br /&gt;
===LRETBL (setting increase may be necessary)===&lt;br /&gt;
Because there might be a slight increase in record locking table usage in V7.5, an increase in the value of the &amp;lt;var&amp;gt;[[LRETBL parameter|LRETBL]]&amp;lt;/var&amp;gt; parameter is advised. The amount of the increase is best estimated by multiplying by 16 the &amp;lt;code&amp;gt;HWM HEADERS&amp;lt;/code&amp;gt; value (from a &amp;lt;var&amp;gt;[[MONITOR ENQ command|MONITOR ENQ]]&amp;lt;/var&amp;gt; report), then dividing by the value of the &amp;lt;var&amp;gt;NUSERS&amp;lt;/var&amp;gt; parameter. For example, if &amp;lt;code&amp;gt;HWM HEADERS = 100000&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NUSERS=2000&amp;lt;/code&amp;gt;, the recommended &amp;lt;var&amp;gt;LRETBL&amp;lt;/var&amp;gt; increase is &amp;lt;code&amp;gt;16*100000/2000&amp;lt;/code&amp;gt;, or 800.&lt;br /&gt;
 &lt;br /&gt;
===MISCOPT (obsolete)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[MISCOPT parameter|MISCOPT]]&amp;lt;/var&amp;gt; parameter is now obsolete. In Model 204 version 7.5, MISCOPT is still viewable but is not resettable.&lt;br /&gt;
 &lt;br /&gt;
===MODTIM (new in V7.5)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[MODTIM parameter|MODTIM]]&amp;lt;/var&amp;gt; system parameter displays the most recent assembly date and time of the Model 204 load module.&lt;br /&gt;
 &lt;br /&gt;
===OUTPUT (change to allow OUTPUT=DUMMY)===&lt;br /&gt;
IODEV=3 threads definitions now allow OUTPUT=DUMMY.&lt;br /&gt;
When defining IODEV=3 threads, if output is not required, the OUTPUT parameter can be coded as OUTPUT=DUMMY.&lt;br /&gt;
&amp;lt;p&amp;gt;For example:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;IODEV=3,INPUT=IOD3IN1,OUTPUT=DUMMY&lt;br /&gt;
IODEV=3,INPUT=IOD3IN2,OUTPUT=DUMMY&lt;br /&gt;
IODEV=3,INPUT=IOD3IN3,OUTPUT=DUMMY&amp;lt;/p&amp;gt;&lt;br /&gt;
and so on.&lt;br /&gt;
 &lt;br /&gt;
This means that no DD statement is required for the output data set, and in cases where many&lt;br /&gt;
IODEV=3 threads are defined to simulate a large number of users, this enhancement will reduce the number of DD statements required by one half.&lt;br /&gt;
 &lt;br /&gt;
===RECLOCKO (X&#039;04&#039; bit now ignored)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[RECLOCKO parameter|RECLOCKO]]&amp;lt;/var&amp;gt; X&#039;04&#039; bit is now ignored, and the extra information of the conflicting user number and lock time are now always available.&lt;br /&gt;
 &lt;br /&gt;
===RESPAGE (new in V7.5)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[RESPAGE parameter|RESPAGE]]&amp;lt;/var&amp;gt; parameter activates the APSY Precompiled Procedures in storage feature using above the bar pages by specifying a number of 4K operating system pages.&lt;br /&gt;
&lt;br /&gt;
Specifying RESPAGE stores precompiled procedures as resident requests above the bar in the RESPAGE area. Using RESPAGE allows you to substantially increase the resident request area and decrease server swapping of QTBL and NTBL pages.&lt;br /&gt;
&lt;br /&gt;
Also, when RESPAGE is used, RESSIZE is reset and the storage below the bar specified by RESSIZE is no longer used. &lt;br /&gt;
&lt;br /&gt;
Storing resident requests above the bar is independent of tables above the bar. You can use a combination of  resident request and swappable servers ATB to reduce below the bar server sizes and thus increase the number of servers.&lt;br /&gt;
&lt;br /&gt;
===RETRVKEY (change to allow forward retrieve PF key)===&lt;br /&gt;
New in this release, if you specify a non-zero setting of &amp;lt;var&amp;gt;[[RETRVKEY parameter|RETRVKEY]]&amp;lt;/var&amp;gt;:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you have set the &amp;lt;code&amp;gt;X&#039;01&#039;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;X&#039;10&#039;&amp;lt;/code&amp;gt; bits of the &amp;lt;var&amp;gt;[[RETRVOPT parameter|RETRVOPT]]&amp;lt;/var&amp;gt; parameter, you can use a&lt;br /&gt;
&amp;lt;i&amp;gt;forward&amp;lt;/i&amp;gt; retrieve PF key, in addition to the &amp;lt;i&amp;gt;backward&amp;lt;/i&amp;gt; retrieve PF key specified by &amp;lt;var&amp;gt;RETRVKEY&amp;lt;/var&amp;gt;.&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
If either of these bits is set, the &amp;lt;code&amp;gt;X&#039;02&#039;&amp;lt;/code&amp;gt; bit is strongly recommended as well.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The size of the allocated storage area, and hence the number and length of input lines available for retrieval, is specified&lt;br /&gt;
by the value of the &amp;lt;var&amp;gt;[[RETRVBUF parameter|RETRVBUF]]&amp;lt;/var&amp;gt; parameter.&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===SEQPDL (new in V7.5)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[Release notes for Model 204 version 7.5 (DRAFT)#SEQPDL parameter|SEQPDL]]&amp;lt;/var&amp;gt; parameter controls the amount of free space that must be present in the user&#039;s Push Down List in order for the SOUL sequencer to proceed with the next quad code. SEQPDL allows enough PDL space for the lower level journaling routines to handle error conditions properly without breaking files and causing ERROR 2126 USER&#039;S PUSHDOWN LIST OVERFLOWED.&lt;br /&gt;
 &lt;br /&gt;
===SESMAXTO (new in V7.5)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[SESMAXTO parameter|SESMAXTO]]&amp;lt;/var&amp;gt; parameter can be used limit the maximum [[Sessions|session]] timeout value or to cause all current closed sessions to be immediately discarded.&lt;br /&gt;
 &lt;br /&gt;
===SMFSVC (obsolete)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[SMFSVC parameter|SMFSVC]]&amp;lt;/var&amp;gt; parameter is [[Release notes for Model 204 version 7.5 (DRAFT)#Writing records to the SMF data set|obsolete]] as of Model 204 version 7.5.&lt;br /&gt;
===SNAPCTL (change to default setting)===&lt;br /&gt;
The default setting for &amp;lt;var&amp;gt;[[SNAPCTL parameter|SNAPCTL]]&amp;lt;/var&amp;gt; has been changed from X&#039;41&#039; (X&#039;44&#039; under CMS) to X&#039;28&#039;. The X&#039;28&#039; setting results in smart snaps &amp;amp;ndash; relatively small snaps with all the information that is likely to be required to diagnose the cause of the snap. This setting allows snaps to be taken quickly, and for those snaps being easily sent to Rocket support with little or no adverse effect on the possibility of diagnosing the cause of the snap.&lt;br /&gt;
&lt;br /&gt;
===UPCASMSG (new in V7.5)===&lt;br /&gt;
The &amp;lt;var&amp;gt;[[UPCASMSG parameter|UPCASMSG]]&amp;lt;/var&amp;gt; parameter can be used to translate messages issued by &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; to uppercase; otherwise (depending on the message being issued) they are displayed in mixed (upper and lower) case.&lt;br /&gt;
&amp;lt;!-- ***************************************************************************************** --&amp;gt;&lt;br /&gt;
&amp;lt;!-- End of new/changed parameter subsections; please keep them alphabetized by parameter name --&amp;gt;&lt;br /&gt;
&amp;lt;!-- ***************************************************************************************** --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notes for system manager and installer==&lt;br /&gt;
===Upgrading instructions for version 7.5===&lt;br /&gt;
&amp;lt;b&amp;gt;Model 204 version 7.5 is an upgrade&amp;lt;/b&amp;gt; to Model 204 version 7.4.&lt;br /&gt;
&lt;br /&gt;
In order to upgrade to version 7.5, &amp;lt;b&amp;gt;you must have version 7.4 and Autofix release EW3044 installed&amp;lt;/b&amp;gt; on your system. &lt;br /&gt;
&lt;br /&gt;
Autofix release EW3044 includes:&lt;br /&gt;
&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;Early Warnings for Model 204 through 740EW172&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;Early Warnings for Dictionary/204 through 740DI016&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt; &lt;br /&gt;
&lt;br /&gt;
For detailed instructions, see the [[Model 204 installation]] pages.&lt;br /&gt;
&lt;br /&gt;
===PRECCAIN: sharing configuration for all Model 204 jobs===&lt;br /&gt;
A new feature in version 7.5 is the ability to [[PRECCAIN|provide a common configuration]] for all &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; jobs by linking &amp;lt;code&amp;gt;PRECCAIN&amp;lt;/code&amp;gt; into your ONLINE, IFAM1, and/or IFAM4 load modules. &amp;lt;code&amp;gt;PRECCAIN&amp;lt;/code&amp;gt;, an assembler module which you modify and link into the load modules, contains &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; commands and parameters set and executed, respectively, during &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; initialization.&lt;br /&gt;
&lt;br /&gt;
===Extended attribute volume (EAV) support for Fast/Reload===&lt;br /&gt;
In version 7.5, the Fast/Reload product now functions correctly when a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model 204&amp;lt;/var&amp;gt; file is stored, or partially stored, on an Extended Attribute Volume (EAV).&lt;br /&gt;
&lt;br /&gt;
==Documentation conversion to wiki format==&lt;br /&gt;
Rocket Model 204 documentation is being converted from individual manuals in PDF format to a set of cross-linked HTML articles in this integrated wiki, M204wiki.&lt;br /&gt;
 &lt;br /&gt;
As of Model 204 release 7.5, several manuals are now in wiki format and the rest remain in PDF format, available in the M204 folder of the [http://docs.rocketsoftware.com/nxt/gateway.dll?f=templates$fn=default.htm  Rocket Software Documentation Library].&lt;br /&gt;
 &lt;br /&gt;
For details, see [[Model 204 documentation]].&lt;br /&gt;
&lt;br /&gt;
==New and updated messages==&lt;br /&gt;
 &lt;br /&gt;
Many messages have been updated and added in this release. See [[New and updated messages in Model 204 version 7.5]] for details.&lt;br /&gt;
 &lt;br /&gt;
[[Category: Release notes]]&lt;/div&gt;</summary>
		<author><name>Teagan</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Mixed-case_SOUL&amp;diff=69810</id>
		<title>Mixed-case SOUL</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Mixed-case_SOUL&amp;diff=69810"/>
		<updated>2014-06-19T16:07:16Z</updated>

		<summary type="html">&lt;p&gt;Teagan: Moved mention of &amp;#039;introducing mixed case in Model 204 7.5&amp;#039; from paragraph three in background to opening paragraph below title. Tweaked wording from what would have been an incomplete sentence.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can compose a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;User Language&amp;lt;/var&amp;gt; (now &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt;) request in case-insensitive mode.&lt;br /&gt;
When in this mode, all elements of a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; program excepting &#039;&#039;literal strings&#039;&#039; are processed after converting lowercase letters to uppercase. &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; includes enhanced support for mixed case as of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Model&amp;amp;nbsp;204&amp;lt;/var&amp;gt; V7.5.&lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
One of the principles generally accepted in object-oriented programming is that variable&lt;br /&gt;
names and method names should be meaningful, that is, be full words or phrases&lt;br /&gt;
rather than abbreviations or shorthands.&lt;br /&gt;
For example, it is generally considered better to call a variable &amp;lt;code&amp;gt;%FIRSTNAME&amp;lt;/code&amp;gt; rather than &amp;lt;code&amp;gt;%FN&amp;lt;/code&amp;gt;.&lt;br /&gt;
The reason for this is that most programmers spend much more time reading code&lt;br /&gt;
than writing it, and meaningful variable names make reading much easier than&lt;br /&gt;
terse abbreviations.&lt;br /&gt;
And even when writing code, programmers will typically spend more time&lt;br /&gt;
thinking about what they are writing than actually typing it and, here again,&lt;br /&gt;
the thinking process is facilitated with meaningful names.&lt;br /&gt;
                                                                              &lt;br /&gt;
Meaningful names often involve creation of compound words as variable names such as &amp;lt;code&amp;gt;%OLDESTCHILDBIRTHDATE&amp;lt;/code&amp;gt;.&lt;br /&gt;
As this example illustrates, however, these names can become difficult to read as they become more descriptive.&lt;br /&gt;
One way to deal with this problem is with the use of separator characters such as underscores or periods, as in &amp;lt;code&amp;gt;%OLDEST_CHILD_BIRTH_DATE&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;%OLDEST.CHILD.BIRTH.DATE&amp;lt;/code&amp;gt;.&lt;br /&gt;
The problem with this approach, however, is that it can make code look like &amp;quot;special-character soup&amp;quot; with a mish-mash of inter- and&lt;br /&gt;
intra-variable separator characters which makes visual parsing difficult.&lt;br /&gt;
The approach most commonly used in object-oriented programming is to use case to separate words in a compound word variable name, for example, &amp;lt;code&amp;gt;%OldestChildBirthDate&amp;lt;/code&amp;gt;.&lt;br /&gt;
There are basically two standards for compound word capitalization:&lt;br /&gt;
the [http://en.wikipedia.org/wiki/Camel_case camel case] format, where the first word is not capitalized as in &amp;lt;code&amp;gt;%oldestChildBirthDate&amp;lt;/code&amp;gt;, and the [http://en.wikipedia.org/wiki/Pascal_%28programming_language%29 Pascal] format (after the programming language) where the first word is capitalized, as in &amp;lt;code&amp;gt;%OldestChildBirthDate&amp;lt;/code&amp;gt;.&lt;br /&gt;
                                                                              &lt;br /&gt;
Regardless of the chosen scheme for capitalizing, mixed case is useful for providing code readability.&lt;br /&gt;
This is true not just for compound variable names, but for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt;&lt;br /&gt;
statements in general &amp;amp;mdash; imagine if books were written entirely in uppercase.&lt;br /&gt;
Mixed case facilitates the use of a coding style common to most object-oriented languages. &lt;br /&gt;
&lt;br /&gt;
Historically, &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; was actually a case-sensitive&lt;br /&gt;
language with uppercase keywords.&lt;br /&gt;
This means that keywords such as IF, THEN, FOR, ADD, etc. had to be&lt;br /&gt;
written in uppercase.&lt;br /&gt;
There are basically three approaches to providing support for mixed case:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Case-sensitive with lowercase or mixed-case keywords. This is the approach used in languages such as [http://en.wikipedia.org/wiki/C_%28programming_language%29 C] and [http://en.wikipedia.org/wiki/Java_%28programming_language%29 Java]. Unfortunately, it was too late for this approach in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;User Language&amp;lt;/var&amp;gt; as the language already has case-sensitivity with uppercase keywords. While it might have been possible to use this approach with lowercase variants of all keywords, such an approach would have been complex, and the case-sensitivity for variable names would make migration to mixed-case code extremely difficult as explained in the next item.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Case-insensitive for keywords but case-sensitive for variable names. A few languages use this approach, but it is quite complex to implement because it makes case-insensitivity of tokens depend upon context. Furthermore, it makes code migration extremely difficult &amp;amp;mdash; all references to a variable must be changed to the correct mixed-case variant at once before any of them can be changed. This can be very difficult to do, especially for &#039;&#039;Common&#039;&#039; variables that are used in many different pieces of code, so it is likely that any case-sensitive approach would result in some variables remaining indefinitely in uppercase.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Case-insensitivity for keywords and variable names. Because this seemed to provide the best migration path to using mixed case in existing applications, this approach was taken in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt;. It is probably for these very reasons that many other languages with uppercase keyword roots such as [http://en.wikipedia.org/wiki/Visual_Basic Visual Basic], [http://en.wikipedia.org/wiki/COBOL Cobol], [http://en.wikipedia.org/wiki/Fortran Fortran], and many others have taken the same approach toward providing support for mixed case.&lt;br /&gt;
&amp;lt;/ol&amp;gt;                                                                           &lt;br /&gt;
It is worth noting that, at least in theory, case-insensitive &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;User Language&amp;lt;/var&amp;gt; is a major backward compatibility problem.&lt;br /&gt;
Before the mixed-case support, &#039;&#039;%customer&#039;&#039; was a different variable from &amp;lt;code&amp;gt;%Customer&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;%CUSTOMER&amp;lt;/code&amp;gt;.&lt;br /&gt;
Fortunately, because of &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;User Language&amp;lt;/var&amp;gt;&#039;s requirement for uppercase-only keywords, few people took advantage of this case-sensitivity&lt;br /&gt;
because it just looked &amp;quot;funny&amp;quot; to have mixed-case variables afloat in a sea of uppercase keywords:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;IF %status = &#039;new&#039; THEN&lt;br /&gt;
    READ SCREEN newCustomer&lt;br /&gt;
    IF %newCustomer:PFKEY EQ 3 THEN&lt;br /&gt;
       STOP&lt;br /&gt;
    END IF&lt;br /&gt;
END IF&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
So, &#039;&#039;probably&#039;&#039; most existing &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;User Language&amp;lt;/var&amp;gt; applications will work&lt;br /&gt;
fine in case-insensitive mode with no modifications.&lt;br /&gt;
However, since there is no way for &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; to know that this is the case,&lt;br /&gt;
programmers must indicate that programs are to be case-insensitive.&lt;br /&gt;
                                                                                   &lt;br /&gt;
Perhaps somewhat counter-intuitively, case-insensitivity is achieved&lt;br /&gt;
by internally translating all unquoted tokens to uppercase.&lt;br /&gt;
That is, &amp;lt;code&amp;gt;%customer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;%Customer&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;%CUstOMer&amp;lt;/code&amp;gt; all refer to the same&lt;br /&gt;
variable because they all get internally translated to &amp;lt;code&amp;gt;%CUSTOMER&amp;lt;/code&amp;gt; before being processed.&lt;br /&gt;
Similarly, &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;If&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;IF&amp;lt;/code&amp;gt; all get translated to &amp;lt;code&amp;gt;IF&amp;lt;/code&amp;gt; before being compiled.&lt;br /&gt;
This translation is useful in allowing reference to existing uppercase fieldnames&lt;br /&gt;
in mixed case.&lt;br /&gt;
For example, field &amp;lt;code&amp;gt;RECTYPE&amp;lt;/code&amp;gt; could be referred to as &amp;lt;code&amp;gt;recType&amp;lt;/code&amp;gt; when&lt;br /&gt;
case-insensitive &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; is enabled.&lt;br /&gt;
Translation of tokens to uppercase also means that compiler error&lt;br /&gt;
messages will sometimes indicate names or keywords in uppercase, even though&lt;br /&gt;
they were entered in mixed case.&lt;br /&gt;
                                                                                   &lt;br /&gt;
The following sections summarize the entities affected by uppercase translation&lt;br /&gt;
and describe how to invoke it.&lt;br /&gt;
&lt;br /&gt;
===What is affected===&lt;br /&gt;
If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; case-insensitivity is enabled, these entities become case-insensitive:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;SOUL keywords&#039;&#039;&#039;. For example: &amp;lt;var&amp;gt;For&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;If&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;Then&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;eq&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Names of members of SOUL classes&#039;&#039;&#039;. For example: [[XmlDoc API]], [[File classes|File class]], and [[HTTP Helper]] methods and variables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Variable elements&#039;&#039;&#039;. For example: %variables, Screen/Image names and items, Class/Structure members. Note, however, that in this mode you cannot define two variable elements whose names differ only because some letters have different case.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Labels and subroutine names&#039;&#039;&#039;. &amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note: &amp;lt;/b&amp;gt;In this mode, you cannot define two labels whose names differ only because some letters are different case. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Field names&#039;&#039;&#039;. &amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note: &amp;lt;/b&amp;gt;In this mode, you cannot access field names containing lowercase letters. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;$functions&#039;&#039;&#039;. &amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note: &amp;lt;/b&amp;gt;In this mode, you cannot access $functions containing lowercase letters. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Procedure names&#039;&#039;&#039; (on the Include statement). &amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note: &amp;lt;/b&amp;gt;In this mode, you cannot include procedures whose names contain lowercase letters. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;SOUL object documentation&#039;&#039;&#039;. Keywords and variable name references use mixed case. Keywords will generally be indicated by an uppercase first letter.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===What is not affected===&lt;br /&gt;
If &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; case-insensitivity is enabled, these entities &#039;&#039;&#039;do not&#039;&#039;&#039; become case-insensitive:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Model 204 commands&#039;&#039;&#039; (except for Begin, which is discussed below). Command processing usually works well, however, if you use *UPPER for command input, and let the modifications to the Model 204 editor (including the &amp;lt;var&amp;gt;[[SIREDIT parameter|SIREDIT]]&amp;lt;/var&amp;gt; parameter and the editor &#039;&#039;CASE&#039;&#039; command) be in effect for working on &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Quoted strings&#039;&#039;&#039; (in a &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; request). For example: &amp;lt;code&amp;gt;&#039;Caps help with veryLongNames&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Literal contents of a Text/Html block&#039;&#039;&#039;. In a Text/Html block, case is preserved for all elements except those enclosed in the evaluation brackets (curly braces). In the following example, &amp;lt;code&amp;gt;empName&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;empAddress&amp;lt;/code&amp;gt; are references to fields named EMPNAME and ADDRESS, respectively:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;Html&lt;br /&gt;
Name: {empName}&lt;br /&gt;
Address: {empAddress}&lt;br /&gt;
End Html &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&#039;&#039;&#039;Non-compilation elements&#039;&#039;&#039;. Case-insensitive processing applies only to program elements encountered during compilation. For example, when setting a value for a fieldname variable or for Screen or Image indirection, the value must exactly match the name. If you have a field named EMPNAME and you reference it with a fieldname variable, the value used must be all uppercase:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;Begin&lt;br /&gt;
%x String Len 20&lt;br /&gt;
%x = &#039;EMPNAME&#039;&lt;br /&gt;
FR&lt;br /&gt;
   Print %%x&lt;br /&gt;
End For&lt;br /&gt;
End &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to enable and disable===                                       &lt;br /&gt;
You can enable case-insensitive &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; in one of these ways:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start a program with a mixed-case or lowercase &amp;lt;var&amp;gt;Begin&amp;lt;/var&amp;gt; statement.            &lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Use the &amp;lt;code&amp;gt;Sirius Case ToUpper&amp;lt;/code&amp;gt; compiler directive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Use the &amp;lt;var&amp;gt;[[COMPOPT parameter|COMPOPT]]&amp;lt;/var&amp;gt; system parameter to globally enable case-insensitive &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt;. &lt;br /&gt;
Because the following programs begin with mixed-case &amp;lt;var&amp;gt;Begin&amp;lt;/var&amp;gt; statements,&lt;br /&gt;
they are compiled with case-insensitivity:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;b&lt;br /&gt;
  print &#039;Mixed case UL is easy&#039;&lt;br /&gt;
end &amp;lt;/p&amp;gt;&lt;br /&gt;
Or:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;Begin&lt;br /&gt;
  Print &#039;Style is everything&#039;&lt;br /&gt;
End &amp;lt;/p&amp;gt;&lt;br /&gt;
                                                                           &lt;br /&gt;
Sometimes, however, one might be working on &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; that is Included&lt;br /&gt;
in many outer programs, some of which might not have been converted to&lt;br /&gt;
case-insensitivity yet.&lt;br /&gt;
&lt;br /&gt;
In such a case, it is possible to enable internal translation to uppercase&lt;br /&gt;
(and so case-insensitivity) with the &amp;lt;code&amp;gt;Sirius Case&amp;lt;/code&amp;gt; compiler directive:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;Sirius Case {ToUpper | Leave} &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Specifying &amp;lt;code&amp;gt;ToUpper&amp;lt;/code&amp;gt; requests internal uppercase translation; &amp;lt;code&amp;gt;Leave&amp;lt;/code&amp;gt; means no such translation.&lt;br /&gt;
&lt;br /&gt;
If procedure &#039;&#039;P&#039;&#039; contains a complex subroutine that might&lt;br /&gt;
be included in outer procedures, some of which might not have been converted&lt;br /&gt;
to use case-sensitivity, you can insert a &amp;lt;var&amp;gt;Sirius Case&amp;lt;/var&amp;gt; directive&lt;br /&gt;
at the top of procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;sirius case toUpper&lt;br /&gt;
subroutine mixedUp(%confusion is float)&lt;br /&gt;
  ...&lt;br /&gt;
end subroutine &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;var&amp;gt;Sirius Case&amp;lt;/var&amp;gt; directive affects case translation in Included&lt;br /&gt;
procedures unless explicitly overridden in those procedures.&lt;br /&gt;
The &amp;lt;var&amp;gt;Sirius Case&amp;lt;/var&amp;gt; setting does &#039;&#039;&#039;not&#039;&#039;&#039; affect the procedure&lt;br /&gt;
that Included the procedure with the setting&lt;br /&gt;
(so, case-sensitivity in a procedure can never be changed by an Included procedure).&lt;br /&gt;
&lt;br /&gt;
Because the &amp;lt;var&amp;gt;Sirius Case&amp;lt;/var&amp;gt; directive is a compiler directive, it is not&lt;br /&gt;
affected by any programming block structures (such as &amp;lt;var&amp;gt;For&amp;lt;/var&amp;gt; loops).&lt;br /&gt;
It simply affects all lines of code physically after the directive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Sirius Case Leave&amp;lt;/code&amp;gt; can be used to turn off case-insensitivity in&lt;br /&gt;
cases where case-sensitivity is required or desired.&lt;br /&gt;
Note, though, that in such cases, all &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; keywords must be in uppercase.&lt;br /&gt;
 &lt;br /&gt;
====The COMPOPT system parameter====&lt;br /&gt;
The system parameter &amp;lt;var&amp;gt;[[COMPOPT parameter|COMPOPT]]&amp;lt;/var&amp;gt; facilitates migration to mixed-case &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt;.&lt;br /&gt;
&amp;lt;var&amp;gt;COMPOPT&amp;lt;/var&amp;gt; is a Model 204 bitmask parameter that must be set in the CCAIN (User 0 input) stream.&lt;br /&gt;
The bits in &amp;lt;var&amp;gt;COMPOPT&amp;lt;/var&amp;gt; have the following meanings:&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;If on, all procedures start out in &amp;lt;code&amp;gt;Sirius Case ToUpper&amp;lt;/code&amp;gt; mode,&lt;br /&gt;
whether or not they begin with a mixed-case &amp;lt;var&amp;gt;Begin&amp;lt;/var&amp;gt; statement.&lt;br /&gt;
&amp;lt;code&amp;gt;Sirius Case ToUpper&amp;lt;/code&amp;gt; mode translates all unquoted tokens to uppercase, so&lt;br /&gt;
&amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; statements, keywords, variable names, etc. may be written in mixed case.&lt;br /&gt;
By setting the &amp;lt;var&amp;gt;COMPOPT&amp;lt;/var&amp;gt; X&#039;01&#039; bit, a site is essentially enabling mixed-case &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; almost everywhere.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;02&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;If on, &amp;lt;code&amp;gt;Sirius Case Leave&amp;lt;/code&amp;gt; compiler directives are to be ignored:&lt;br /&gt;
if &amp;lt;code&amp;gt;Sirius Case ToUpper&amp;lt;/code&amp;gt; is in effect, it remains in effect even&lt;br /&gt;
if a &amp;lt;code&amp;gt;Sirius Case Leave&amp;lt;/code&amp;gt; directive is encountered.&lt;br /&gt;
Setting the &amp;lt;var&amp;gt;COMPOPT&amp;lt;/var&amp;gt; X&#039;02&#039; bit along with the X&#039;01&#039; bit enables mixed-case &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt;&lt;br /&gt;
everywhere, thus ensuring consistent language processing throughout an Online.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;X&#039;04&#039;&lt;br /&gt;
&amp;lt;dd&amp;gt;If on, image or image-item names, either literal or in variables,&lt;br /&gt;
are to be automatically converted to uppercase before being used in methods or&lt;br /&gt;
$functions.&lt;br /&gt;
Since mixed-case &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; is accomplished by translating unquoted tokens to&lt;br /&gt;
uppercase, this case conversion for image or image-item names is the runtime&lt;br /&gt;
equivalent of the compiler mixed-case support.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Setting the &amp;lt;var&amp;gt;COMPOPT&amp;lt;/var&amp;gt; X&#039;04&#039; bit enables image and image-item names that&lt;br /&gt;
appear as literals in &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;SOUL&amp;lt;/var&amp;gt; programs to be entered in mixed case.&lt;br /&gt;
The only time this might be a problem is if there are true mixed-case image&lt;br /&gt;
or image-item names in an application. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
A true mixed-case image or image-item name is one written in mixed case,&lt;br /&gt;
either inside quotation marks (image and image-item names can &#039;&#039;indeed&#039;&#039;&lt;br /&gt;
be put in quotes) or without &amp;lt;code&amp;gt;Sirius Case ToUpper&amp;lt;/code&amp;gt; in effect.&lt;br /&gt;
In general, neither of these is too likely, so true mixed-case image or&lt;br /&gt;
image-item names are not likely in most applications. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teagan</name></author>
	</entry>
</feed>