Release notes for Model 204 version 7.5: Difference between revisions

From m204wiki
Jump to navigation Jump to search
 
(232 intermediate revisions by 10 users not shown)
Line 1: Line 1:
These release notes list the enhancements and other changes contained in Model 204 version 7.5, <b><i>which is still in development</i></b>.
Until the commercial release of the software, Rocket reserves the right to add to, remove, or change anything described herein.
==Overview==
==Overview==
These release notes contain installation and features information for the Rocket Model 204 version 7.5.0 release.
These release notes describe new features, enhancements, and other changes contained in Rocket Model 204 version 7.5, generally available in December, 2014.  
Before beginning your installation, please read through this information about product installation and changes.
<p>
Read through this information before beginning your 7.5 installation.  A brief installation overview and a link to the 7.5 installation pages can be found in one of the [[#m204Inst|sections for the system administrator/installer]].</p>


==New in this release==
==New in this release==
This section summarizes the new features and enhancements for Model 204 version 7.5.0.
This section highlights the major new features and enhancements for Model&nbsp;204 version 7.5, which integrates the newly acquired Sirius Software products into the Model&nbsp;204 nucleus.
<table>
<tr class="head"><th>Category</th>
<th>Feature</th>
<tr>
<td nowrap>SOUL (User Language)</td>
<td>
A significantly [[#SOUL (User Language) enhancements|enhanced, object-oriented]] version of User Language, called [[SOUL]], is now available.</td>
</tr>


===SOUL (User Language)===
<tr>
The significantly enhanced, object-oriented, version of User Language is now called 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 "User Language" is now deprecated.
<td>Performance</td>
<td>
<ul>
<ul>
<li>Sirius object-oriented language extensions integration</li>
<li>The Model 204 infrastructure is 64-bit enabled. GTBL, NTBL, and QTBL can be stored [[#Performance enhancements|above the bar]].</li>
<li>[[Release notes for Model 204 version 7.5 (DRAFT)#External Call Facility .28ECF.29|ECF]] statements can pass up to 60 parameters</li>
<li>The new [[#Improved range searching by Ordered Index (OI) chunk|CHUNK attribute]] for the <var>DEFINE FIELD</var> command enables more efficient range searching on Ordered Index numeric (<var>ORDERED NUMERIC</var>) fields.</li>
</ul>
</ul>
</td>
</tr>


===System Management===
<tr>
<td>File management</td>
<td>
<ul>
<ul>
<li>Writing records to the SMF data set without an SVC installed</li>
<li>Files can now hold forty-eight million records.</li>
<li>The <var>DEFINE FIELD</var> command supports many [[#New field attributes|new (FILEORG X'100') attributes]].</li>
<li>You can now define [[#Concatenated fields|concatenated]] and [[#Automatic fields|automatic]] fields.</li>
</ul>
</ul>
</td>
</tr>


===Performance===
<tr>
<td>System management</td>
<td>
<ul>
<ul>
<li>GTBL can be stored above the bar</li>
<li>You can provide a common configuration for all ONLINE (IFAM1/IFAM4) jobs by linking [[PRECCAIN]] into your Model 204 ONLINE (IFAM1/IFAM4) load module.</li>
<li>[[Release notes for Model 204 version 7.5 (DRAFT)#Support for physical field groups|Support for physical field groups]]</li>
<li>You can [[#Writing records to the SMF data set|write records to the SMF data set]] without an SVC installed.</li>
</ul>
</ul>
</td>
</tr>


==Operating system requirements==
<tr>
<p style="color:red">Requirements for Model 204 version 7.5 are still being determined.</p>
<td>Application flexibility</td>
<td>
<ul>
<li>[[Release notes for Model 204 version 7.5#Support for physical field groups|Physical field groups]] enable you to view and process groups of fields as logical entities.</li>


Model 204 version 7.4 required the following operating system support:
<li>The Sirius Mods [[#Sirius Mods commands|commands]] and [[#New and changed parameters|parameters]] are merged with the Model 204 base and are available to all version 7.5 customers.</li>
<ul>
<li>For IBM z/OS: Version 1 Release 7 is sufficient for all new functionality except for the following
features:
<ul>
<li>Large (1 MB) page support requires Version 1 Release 9.
<li>Extended address volumes (EAV) requires Version 1 Release 12.
</ul>
</ul>
<li>For IBM z/VM: Version 5 Release 4.0 or later
</td>
<li>For IBM z/VSE:
</tr>
<ul>
</table>
<li>Version 5 Release 1 or
 
<li>Version 4 Release 3 or
==Operating system and hardware requirements==
<li>Version 4 Release 2.1 or
===Operating system requirements===
<li>Version 4 Release 2.0, with these program temporary fixes (PTFs) installed:
<ul>
<ul>
<li>UD53436
<li><b>IBM z/OS</b>
<li>UD53437
  <ul>
<li>UD53438
<li>All IBM supported releases up to and including z/OS 2.3. <br />(For z/OS 2.2, see [[IBM z/OS 2.2 PTF requirement]].)<br />
<li>UD53439
(For z/OS 2.1, see [[IBM_z/OS_2.1_compatibility_issue|IBM z/OS 2.1 compatibility issue]].)</li>
</ul>
  <p>Version 1.07 is sufficient for all functionality except for the following features:</p>
    <ul>
    <li>Large (1 MB) page support requires version 1.9.</li>
    <li>Extended address volumes (EAV) requires version 1.12.</li>
    </ul>
  </li>
</ul>
</ul>
On z/OS, Model 204 release 7.5 operates as an APF authorized load module, as required by many 7.5 features. <br />
To run Model 204 unauthorized, [[Contacting Rocket Software Technical Support|contact Technical Support]].
<li><b>IBM z/VM</b>
  <ul>
  <li>Versions supported: z/VM version 5.4 through 6.3.</li>
  </ul>
</li>
<li><b>IBM z/VSE</b>
  <ul>
  <li>Versions supported: z/VSE version 5.1 and 5.2.</li>
  </ul>
</li>
</ul>
</ul>


=== Hardware requirements ===
=== Hardware requirements ===
<p style="color:red">Requirements for Model 204 version 7.5 are still being determined.</p>
Model 204 version 7.5 requires the IBM z/890 or above processor, except for the following feature:
 
Model 204 version 7.4 required the IBM z/890 or above processor, except for the following feature:
<p>
<p>
The large (1 MB) page support feature requires the IBM z10 or above processor. </p>
The large (1 MB) page support feature requires the IBM z10 or above processor. </p>


===Model 204 compatibility with operating systems===
===Model 204 certification with IBM operating systems===
<p style="color:red">Content for version 7.5 is still to be determined.</p>
For information on Model 204 certification with IBM operating systems, see:
http://www.rocketsoftware.com/products/rocket-model-204/technical-information


===Model 204 compatibility with Connect*===
To find the operating system environments that Model 204 has been certified with, see [[Model 204 system requirements]].
All supported versions of Connect* are compatible with Model 204 version 7.5.0.
 
<p>However, CLOB/BLOB support requires Connect* version 7.4.0 or higher. Use of Connect* versions earlier than version 7.4.0 to SELECT, UPDATE, or INSERT CLOB/BLOB data will fail and might produce unexpected application behavior and/or return an error.</p>
This page is updated when Rocket certifies Model 204 releases in different environments. If you have questions about an environment that is not listed, [[Contacting Rocket Software Technical Support|contact Technical Support]].
Connect* version 7.5.0 is compatible with versions of Model 204 that are earlier than version 7.5.0.
<div id="Connect* compatibility with Model 204"></div>
 
===Connect<sup>&#9733;</sup> compatibility with Model 204===
Connect<span class="superstar">&#9733;</span> version 7.5 is compatible with all versions of Model 204.  
 
For more information on Connect<span class="superstar">&#9733;</span> installation, see the [[:Category:Connect*|Connect<span class="superstar">&#9733;</span> wiki pages]]. See also [[#Connect* enhancements|Connect<span class="superstar">&#9733;</span> enhancements]].


==SOUL (User Language) enhancements==
==SOUL (User Language) enhancements==
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, "Object oriented programming," motivates the new name for User Language, '''SOUL''', often thought of as Simple Objective User Language.
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, "Object-oriented programming," motivates the new name for User Language, '''SOUL''' (Simple Objective User Language).
 
<p>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 "User Language" is now deprecated.</p>
===Object oriented programming===
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|OO tutorial]].
===Object-oriented programming===
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]].


===Record capacity increase===
===Record capacity increase===
In this version of Model 204, the record limit is increased from sixteen million records to forty-eight million records per file.
In this version of Model 204, the record limit is increased from sixteen million records to forty-eight million records per file.
 
===New SOUL statements===
===New SOUL statements===
{{Template:User Language statements}}
{{Template:User Language statements}}
 
===Non-OO enhancements in SOUL===
===Non-OO enhancements in SOUL===
{{Template:User Language syntax enhancements}}
{{Template:User Language syntax enhancements}}
 
===SOUL support for field groups===
===SOUL support for field groups===
 
====ADD (or INSERT or DELETE) FIELDGROUP statements====  
====ADD (or INSERT or DELETE) FIELDGROUP statements====
The <var>ADD FIELDGROUP</var> statement and the <var>INSERT FIELDGROUP</var> statement behavior parallels the behavior of the <var>ADD</var> and <var>INSERT</var> statements for simple fields. The <var>DELETE FIELDGROUP</var> statement handles more situations and is therefore more complex.
The <var>ADD FIELDGROUP</var> statement and the <var>INSERT FIELDGROUP</var> statement behavior parallels the behavior of the <var>ADD</var> and <var>INSERT</var> statements for simple fields. The <var>DELETE FIELDGROUP</var> statement handles more situations and is therefore more complex.
See [[Data maintenance#Updating field groups|Updating field groups]] for details.
See [[Data maintenance#Updating field groups|Updating field groups]] for details.
 
====Statements for handling field groups====
====Statements for handling field groups====
SOUL now provides several statements for handling field groups:
SOUL now provides several statements for handling field groups:
Line 99: Line 135:
<li><var>FOR EACH OCCURRENCE OF FIELDGROUP (FEO FIELDGROUP)</var></li>
<li><var>FOR EACH OCCURRENCE OF FIELDGROUP (FEO FIELDGROUP)</var></li>
</ul>
</ul>
 
See [[Operations on multiply occurring fields#Special statements for multiply occurring fields and field groups|Special statements for multiply occurring fields and field groups]] for details.
See [[Processing multiply occurring fields and field groups#Working with field groups|Working with field groups]] for details.


====Output statements for field groups====
====Output statements for field groups====
<p>
<p>
The following SOUL statements provide display output for Model 204 field groups:</p>
The following SOUL statements provide display output for Model 204 field groups:</p>
<p class="code">AUDIT ALL FIELDGROUP INFORMATION (AAFGI)  
<p class="code">AUDIT ALL FIELDGROUP INFORMATION (AAFGI)
PRINT ALL FIELDGROUP INFORMATION (PAFGI)  
PRINT ALL FIELDGROUP INFORMATION (PAFGI)
</p>
</p>
 
See [[Basic SOUL statements and commands#Output statements|Output statements]] for details.
See [[Basic SOUL statements and commands#Output statements for fields and field groups|Output statements for fields and field groups]] for details.
 
====Field group SORT support====
====Field group SORT support====
You can use field groups in [[Sorting#Field group SORT support|sorted sets]]. <var>SORT</var> 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 <code>FAO FIELDGROUP</code> statement or <code>FEO FIELDGROUP</code> statement against the sorted set.
You can now use field groups in [[Sorting#Field group SORT support|sorted sets]]. <var>SORT</var> 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 <code>FAO FIELDGROUP</code> statement or <code>FEO FIELDGROUP</code> statement against the sorted set.


===EQ VALUE retrieval condition===
===EQ VALUE retrieval condition===
<p>
<p>
SOUL now provides the <var>EQ VALUE</var> clause to support expressions in <var>FIND</var> statements.</p>
SOUL now provides the <var>EQ VALUE</var> clause to support expressions in <var>FIND</var> statements.</p>
 
See [[Record retrievals#Using expressions in FIND statements|Using expressions in FIND statements]] for details.
See [[Record retrievals#Using expressions in FIND statements|Using expressions in FIND statements]] for details.
 
===EQ WITH retrieval condition for concatenated fields===
===EQ WITH retrieval condition for concatenated fields===
SOUL now provides the <var>EQ WITH</var> clause for retrieving <var>CONCATENATION-OF</var> fields. Model 204 automatically builds the concatenated value.
SOUL now provides the <var>EQ WITH</var> clause for retrieving <var>CONCATENATION-OF</var> fields. Model 204 automatically builds the concatenated value.
 
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.
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.
 
===External Call Facility (ECF)===
===External Call Facility (ECF)===
<var>EXTERNAL CALL</var> statements can now pass more parameters.
<var>EXTERNAL CALL</var> statements can now pass more parameters.
The maximum number of parameters that can be passed in an <var>EXTERNAL CALL</var> statement has been increased from 40 to 60.
The maximum number of parameters that can be passed in an <var>EXTERNAL CALL</var> statement has been increased from 40 to 60.
The maximum value setting for <var>[[ECPSIZE parameter|ECPSIZE]]<var> is increased from 1310680 to 1966020 to accommodate the extra parameters.
The maximum value setting for <var>[[ECPSIZE parameter|ECPSIZE]]</var> is increased from 1310680 to 1966020 to accommodate the extra parameters.
 
ECF is available only on z/OS systems. For more information about the External Call Facility and the <var>EXTERNAL CALL</var> statement, see the <var class="book">Rocket Model 204 System Manager's Guide</var>.
ECF is available only on z/OS systems. For more information about the External Call Facility and the <var>EXTERNAL CALL</var> statement, see the [[External Call Facility]] topic.


===REPEAT statement UNTIL option===
===REPEAT statement UNTIL option===
The <var>REPEAT</var> statement now supports the <var>UNTIL</var> option. In previous releases, only <var>REPEAT WHILE</var> was supported.   
The <var>REPEAT</var> statement now supports the <var>UNTIL</var> option. In previous releases, only <var>REPEAT WHILE</var> was supported.
             
   
A <var>[[Flow of control in User Language#REPEAT UNTIL statement|REPEAT UNTIL]]</var> statement enters the loop body prior to checking the condition.
A <var>[[Flow of control in User Language#REPEAT UNTIL statement|REPEAT UNTIL]]</var> statement enters the loop body prior to checking the condition.
 
===New and changed classes and methods===
===New and changed classes and methods===


====New HttpRequest TranslateTable property====
====New InvalidBitNumber class====
The <var>[[TranslateTable (HttpRequest property)|TranslateTable]]</var> <var>HttpRequest</var> property makes it possible to set the translate table to be used for EBCDIC to ASCII translation of data in an <var>HttpRequest</var> object.
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 <var>[[BitClearString (String function)|BitClearString]]</var>, <var>[[BitFlipString (String function)|BitFlipString]]</var>, <var>[[BitSetString (String function)|BitSetString]]</var>, and <var>[[BitValueString (String function)|BitValueString]]</var> functions.  


====New InvalidTranslateTable class====
====New InvalidTranslateTable class====
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 <var>[[TranslateTable (HttpRequest property)|TranslateTable]]</var> <var>HttpRequest</var> property.
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 <var>[[TranslateTable (HttpRequest property)|TranslateTable]]</var> <var>HttpRequest</var> property.
 
====New bit manipulation String functions====
====New bit manipulation String functions====
New bit manipulation functions <var>[[BitClearString (String function)|BitClearString]]</var>, <var>[[BitCountString (String function)|BitCountString]]</var>, <var>[[BitFlipString (String function)|BitFlipString]]</var>, <var>[[BitSetString (String function)|BitSetString]]</var>, and <var>[[BitValueString (String function)|BitValueString]]</var> make it easier to manipulate the bits in a string.
New bit manipulation functions <var>[[BitClearString (String function)|BitClearString]]</var>, <var>[[BitCountString (String function)|BitCountString]]</var>, <var>[[BitFlipString (String function)|BitFlipString]]</var>, <var>[[BitSetString (String function)|BitSetString]]</var>, and <var>[[BitValueString (String function)|BitValueString]]</var> make it easier to manipulate the bits in a string.
====New string processing functions====
New <var>String</var> and <var>Unicode</var> functions <var>[[Before (String function)|Before]]</var> and <var>[[After (String function)|After]]</var>, and <var>[[UnicodeBefore (Unicode function)|UnicodeBefore]]</var> and <var>[[UnicodeAfter (Unicode function)|UnicodeAfter]]</var>, return the parts of a string before or after a user-specified delimiter string.
====New Stringlist subroutine====
New <var>Stringlist</var> subroutine <var>[[AppendPemData (Stringlist subroutine)|AppendPemData]]</var>
appends a PEM encoded string to a <var>Stringlist</var>.


====New InvalidBitNumber class====
====New System methods TODClock and UUIDTime====
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 <var>[[BitClearString (String function)|BitClearString]]</var>, <var>[[BitFlipString (String function)|BitFlipString]]</var>, [[BitSetString (String function)|BitSetString]], and <var>[[BitValueString (String function)|BitValueString]]</var> functions.
New System class methods <var>[[TODClock (System function)|TODCLOCK]]</var> and <var>[[UUIDTime (System function)|UUIDTime]]</var> facilitate generation of version 1 universal unique identifiers and provide high precision time stamps for SOUL applications. These methods were added as a ZAP update to Model&nbsp;204 7.5 (75Z109).


====New HttpRequest TranslateTable property====
The <var>[[TranslateTable (HttpRequest property)|TranslateTable]]</var> <var>HttpRequest</var> property makes it possible to set the translate table to be used for EBCDIC to ASCII translation of data in an <var>HttpRequest</var> object.
====Disable base64 encoding in LoadFromRecord and related methods====
====Disable base64 encoding in LoadFromRecord and related methods====
The <var>Base64Encode</var>=<var>False</var> argument can be used with the <var>[[LoadFromRecord (XmlDoc/XmlNode subroutine)|LoadFromRecord]]</var> method to disable any base64 encoding of field values.
The <var>Base64Encode</var>=<var>False</var> argument can be used with the <var>[[LoadFromRecord (XmlDoc/XmlNode subroutine)|LoadFromRecord]]</var> method to disable any base64 encoding of field values.
 
Alternatively, the <var>CharacterMap</var> 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'00' and/or untranslatable characters in field values.
Alternatively, the <var>CharacterMap</var> 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'00' and/or untranslatable characters in field values.
 
These arguments are also added to the <var>[[NewFromRecord (XmlDoc function)|NewFromRecord]]</var> and <var>[[ToXmlDoc (Record function)|ToXmlDoc]]</var> methods.
These arguments are also added to the <var>[[NewFromRecord (XmlDoc function)|NewFromRecord]]</var> and <var>[[ToXmlDoc (Record function)|ToXmlDoc]]</var> methods.
 
====New option for AppendJournalData====
====New parameter for AppendJournalData====
The <var>QT</var> option is added to the <var>[[AppendJournalData (Stringlist function)#Options parameter|AppendJournalData]]</var> method, to include QT type audit entries.
The <var>QT</var> option is added to the <var>[[AppendJournalData (Stringlist function)#Options parameter|AppendJournalData]]</var> method, to include QT type audit entries.
 
====New parameter for AddField====
====New parameter for AddField====
The <var>Strip</var> option is added to the <var>Screen</var> class method <var>[[AddField (Screen function)|AddField]]</var> to allow suppression of leading and trailing blank removal from input fields.
The <var>Strip</var> option is added to the <var>Screen</var> class method <var>[[AddField (Screen function)|AddField]]</var> to allow suppression of leading and trailing blank removal from input fields.
===New default certificate-signing algorithm===
[[Janus Network Security]] as well as the <var>[[Stringlist_class|StringList]]</var> methods <var>[[AppendSignedCertificate (Stringlist function)|AppendSignedCertificate]]</var> and <var>[[AppendSignedClientCertificate (Stringlist function)|AppendSignedClientCertificate]]</var> methods have changed their default signature algorithm from SHA-1 to SHA-256.
This change is initially provided by zap maintenance.


===New and changed $functions===
===New and changed $functions===
 
====Former Sirius $functions====
====Former Sirius $functions====
The $functions referred to by the link below are added to SOUL as a result of the acquisition of Sirius Software:
The $functions referred to by the link below are added to SOUL as a result of the acquisition of Sirius Software:
:[[List of $functions|Sirius $functions]]
:[[:Category:$Functions|Sirius $functions]]
 
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.
====$SNDMAIL attachment ASCII translation====
The <var>$SNDMAIL</var> function can now translate an attachment to ASCII before sending it.
This translation is useful if the <var>$SNDMAIL</var> attachment is a <var>CLOB</var> (<var>CHARACTER-LARGE-OBJECT</var>) such as a text document.
 
The <var>$SNDMAIL</var> function now accepts an optional parameter after the name of the attached object. If this parameter is set to 'C' (or to a percent variable with the value 'C'), the object in the buffer is translated to ASCII before being attached to the email.


====$SndMail attachment ASCII translation====
The <var>[[SOUL_$functions#Sending_email_messages_via_$Sndmail|$SndMail]]</var> function can now translate an attachment to ASCII before sending it.
This translation is useful if the <var>$SndMail</var> attachment is a <var>CLOB</var> (<var>CHARACTER-LARGE-OBJECT</var>) such as a text document.
The <var>$SndMail</var> function now accepts an optional parameter after the name of the attached object. If this parameter is set to 'C' (or to a percent variable with the value 'C'), the object in the buffer is translated to ASCII before being attached to the email.
If this parameter is not specified, the object in the buffer is sent as a binary object.
If this parameter is not specified, the object in the buffer is sent as a binary object.
 
In this example:
In this example:
<p class="code">%RC = $SNDMAIL(%SUBJECT,,%BODY,%FROM,%TO,,,,'CLOB.TXT','C')
<p class="code">%RC = $SNDMAIL(%SUBJECT,,%BODY,%FROM,%TO,,,,'CLOB.TXT','C')
Line 184: Line 236:


====New function calls for field groups====
====New function calls for field groups====
When a field group is added, a [[Data maintenance#Updating field groups|field group ID]] is assigned to the field group.  
When a field group is added, a [[Data maintenance#Updating field groups|field group ID]] is assigned to the field group.
<ul>
<ul>
<li><var>[[$FIELDGROUPID]]</var> returns the ID of the current field group.</li>
<li><var>[[$FieldgroupId]]</var> returns the ID of the current field group.</li>
<li><var>[[$FIELDGROUPOCCURRENCE]]</var> returns the current occurrence number of the field group.</li>
<li><var>[[$FieldgroupOccurrence]]</var> returns the current occurrence number of the field group.</li>
</ul>
</ul>


==Sirius products and product enhancements==
==Sirius products and product enhancements==
[[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.
[[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.
 
===Changes to Janus SSL support===
===Changes to Janus SSL support===
Under Model 204 version 7.5, Janus products:  
Under Model 204 version 7.5, Janus products:
 
<ul>
<ul>
<li>Drop support for version 2 of the Secure Sockets Layer encryption protocol (SSL V2)
<li>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)
<p>
<p>
You can use the <var>[[SSLPROT parameter|SSLPROT]]</var> parameter on the <var>JANUS DEFINE</var> command for a port to explicitly specify, or limit, the SSL protocols available for a connection. The <var>SSLPROT</var> documentation describes the SSL protocols that Janus supports. </p>
You can use the <var>[[SSLPROT (JANUS DEFINE parameter)|SSLPROT]]</var> parameter on the <var>JANUS DEFINE</var> command for a port to explicitly specify, or limit, the SSL/TLS protocols available for a connection. The <var>SSLPROT</var> documentation describes the SSL/TLS protocols that Janus supports. </p>
<p>
<p>
Janus support for SSL V2 also included an option to specify a larger than "legal" input buffer for connections not strictly conforming to the V2 standard. You specify that buffer size with the <var>JANUS DEFINE</var> <var>[[SSLIBSIZE (JANUS DEFINE parameter)|SSLIBSIZE]]</var> parameter, and the <var>SSLIBSIZE</var> maximum value as of Model 204 V7.5 is reduced (from 32767 bytes) to the SSL maximum allowed size of 16384. </p></li>
Janus support for SSL V2 also included an option to specify a larger than "legal" input buffer for connections not strictly conforming to the V2 standard. You specify that buffer size with the <var>JANUS DEFINE</var> <var>[[SSLIBSIZE (JANUS DEFINE parameter)|SSLIBSIZE]]</var> parameter, and the <var>SSLIBSIZE</var> maximum value as of Model 204 V7.5 is reduced (from 32767 bytes) to the SSL maximum allowed size of 16384. </p></li>
 
<li>Add support for new ciphers and TLS levels
<li>Add support for new ciphers including [http://en.wikipedia.org/wiki/Advanced_Encryption_Standard AES] and [http://en.wikipedia.org/wiki/Data_Encryption_Standard DES].
<p>
<p>
You can use the <var>[[SSLCIPH parameter|SSLCIPH]]</var> <var>JANUS DEFINE</var> parameter to specify the SSL ciphers available for a connection. The <var>SSLCIPH</var> documentation describes the SSL ciphers that Janus supports. </p></li>
You can use the <var>[[SSLCIPH (JANUS DEFINE parameter)|SSLCIPH]]</var> <var>JANUS DEFINE</var> parameter to specify the SSL ciphers available for a connection. <var>SSLCIPH</var> bits X'3F8' are all new in version 7.5 of <var class="product">Model 204</var>. </p></li>
</ul>
</ul>


Line 211: Line 263:
The <var>[[WEBOPT parameter|WEBOPT]]</var> parameter default value is changed to X'03' from 0. <var>WEBOPT</var> affects the interaction of Model 204 and RACF security.
The <var>[[WEBOPT parameter|WEBOPT]]</var> parameter default value is changed to X'03' from 0. <var>WEBOPT</var> affects the interaction of Model 204 and RACF security.


===SirZap becomes RockZap===
The name of the <var class="product">SirZap</var> product is changed to <b>RockZap</b> as of version 7.5 of Model 204.
In addition, the <var>[[RockZap#MODULE|MODULE]]</var> option (PARM parameter) is added to RockZap. <var>MODULE</var> lets you apply the same set of VERs and REPs to different load modules without making global changes to the <var>NAME</var> statements.
==File-related enhancements==
==File-related enhancements==
 
<p class="note"><b>Note:</b> These features are not supported in Dictionary/204 version 7.5.</p>
===Support for physical field groups===
===Support for physical field groups===
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.  
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.
 
You can define a physical field group only for files with the [[#FILEORG (new settings)|FILEORG X'100' setting]]. To take advantage of field groups in files defined before Model 204 version 7.5, you must reorganize the files with a <var>FILEORG</var> setting that includes the X'100' bit.
You can define a physical field group only for files with the <var>[[#FILEORG (new settings)|FILEORG X'100']]</var> setting. To take advantage of field groups in files defined before Model 204 version 7.5, you must reorganize the files with a <var>FILEORG</var> setting that includes the X'100' bit.
 
Files with <var>FILEORG</var> X'100' can have up to 32,000 fields.
Files with <var>FILEORG</var> X'100' can have up to 32,000 fields.
 
For more information, see [[Field group design (File management)|field group design]].
For more information, see [[Field group design]].


===Increased Table B record number capacity===
===Increased Table B record number capacity===
[[Table B (File architecture)|Table B]] can now contain up to 48M possible record numbers. (The previous limit was 16M.)
[[Table B (File architecture)|Table B]] can now contain up to 48M possible record numbers. (The previous limit was 16M.)
 
Set the [[#FILEORG (new settings)|FILEORG X'200' bit]] at file creation time to allow for the increased record numbers.
Set the [[#FILEORG (new settings)|FILEORG X'200' bit]] at file creation time to allow for the increased record numbers.
<blockquote class="note">
<blockquote class="note">
<p><b>Notes: </b>  </p>
<p><b>Notes: </b>  </p>
<ul>
<ul>
<li>The limit for <var>BSIZE</var> remains at 16M.  
<li>The limit for <var>BSIZE</var> remains at 16M.
<p>
<p>
<code>BSIZE * BRECPPG</code> must be less than or equal to 48M (actually decimal 50,331,648 to be exact).  </p>
<code>BSIZE * BRECPPG</code> must be less than or equal to 48M (actually decimal 50,331,648 to be exact).  </p>
<p>
<p>
For example, if <var>BSIZE</var> is 16M, <var>BRECPPG</var> cannot be more than 3.  </p></li>
For example, if <var>BSIZE</var> is 16M, <var>BRECPPG</var> cannot be more than 3.  </p></li>
 
<li>The <var>FILEORG</var> X'200' bit cannot be set for files with hash key or sorted file organization.</li>
<li>The <var>FILEORG</var> X'200' bit cannot be set for files with hash key or sorted file organization.</li>
</ul>
</ul>
</blockquote>
</blockquote>
 
===Automatic fields===
===Automatic fields===
<p>Model 204 now lets you define a field whose value is [[Field design (File management)#Automatic fields|automatically maintained]].<br/>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. Automatic fields are defined with the following attributes:</p>
<p>Model 204 now lets you define a field whose value is [[Field design#Automatic fields|automatically maintained]].<br/>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'100' setting:</p>
<ul>
<ul>
<li><var>COUNT-OCCURRENCES-OF</var></li>
<li><var>COUNT-OCCURRENCES-OF</var></li>
<li><var>CREATE-TIME</var></li>
<li><var>CREATE-TIME</var></li>
<li><var>CREATE-TIMEUTC</var></li>  
<li><var>CREATE-TIMEUTC</var></li>
<li><var>CREATE-USER</var></li>
<li><var>CREATE-USER</var></li>
<li><var>UPDATE-TIME</var></li>
<li><var>UPDATE-TIME</var></li>
Line 250: Line 308:
<li><var>UPDATE-USER</var></li>
<li><var>UPDATE-USER</var></li>
</ul>
</ul>
 
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 undated when <code>DELETE FOO(8)</code> is processed, even if there are no occurrences of FOO in the record and an actual update does not take place.
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 <code>DELETE FOO(8)</code> is processed, even if there are no occurrences of FOO in the record and an actual update does not take place.
 
Once you define an automatic value for a field, you cannot redefine the automatic value.
Once you define an automatic value for a field, you cannot redefine the automatic value.


===Concatenated fields===
===Concatenated fields===
Model 204 now lets you define [[Field design (File management)#Concatenated fields|concatenated fields]].
Model 204 now lets you define [[Field design#Concatenated fields|concatenated fields]].
<p>
<p>
Fields that make up concatenated field values must be <var>AT-MOST-ONE</var>, <var>EXACTLY-ONE</var>, or <var>OCCURS</var> 1 and must all be in the same field group context (or not in a field group). Fields that occur in all field groups (<var>FIELDGROUP *</var>) cannot be used in a concatenation.</p>
Fields that make up concatenated field values must be <var>AT-MOST-ONE</var>, <var>EXACTLY-ONE</var>, or <var>OCCURS</var> 1 and must all be in the same field group context (or not in a field group). Fields that occur in all field groups (<var>FIELDGROUP *</var>) cannot be used in a concatenation.</p>
 
If a concatenated field becomes longer than 255 bytes after adding separator and escape characters, the update request is cancelled.
If a concatenated field becomes longer than 255 bytes after adding separator and escape characters, the update request is cancelled.
 
===New field attributes===
===New field attributes===
<p>Model 204 version 7.5 introduces the new <var>[[DEFINE FIELD command|DEFINE FIELD]]</var> attributes described in this section. These attributes apply to all fields in Model 204. </p>
<p>
 
Model 204 version 7.5 introduces the new <var>[[DEFINE FIELD command|DEFINE FIELD]]</var> attributes described in this section. These attributes apply to all fields in Model 204. </p>
<p class="note"><b>Note:</b> These attributes all require that the <var>[[FILEORG parameter|FILEORG]]</var> parameter X'100' bit must be set on the file containing the fields.</p>
<p class="note"><b>Note:</b> These attributes <strong>all</strong> require that the <var>[[FILEORG parameter|FILEORG]]</var> parameter X'100' bit be set on the file containing the fields.</p>
<p>
<p>
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:</p>
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:</p>
<p class="code">M204.1260: [FIELD | FIELDGROUP] WAS PREVIOUSLY DEFINED WITH DIFFERENT ATTRIBUTES,  
<p class="code">M204.1260: [FIELD | FIELDGROUP] WAS PREVIOUSLY DEFINED WITH DIFFERENT ATTRIBUTES,
NEW [FIELD | FIELDGROUP] OPTIONS IGNORED</p>
NEW [FIELD | FIELDGROUP] OPTIONS IGNORED</p>
<p>
<p>
or</p>
or</p>
<p class="code">M204.2884: [FIELD WAS PREVIOUSLY DEFINED AS A FIELDGROUP | FIELDGROUP WAS PREVIOUSLY  
<p class="code">M204.2884: [FIELD WAS PREVIOUSLY DEFINED AS A FIELDGROUP | FIELDGROUP WAS PREVIOUSLY
DEFINED AS A FIELD], NEW DEFINITION IGNORED</p>
DEFINED AS A FIELD], NEW DEFINITION IGNORED</p>
 
<p>
<p>
The table below lists the new field attributes. </p>
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.</p>
<table>
<table class="thJustBold">
<tr class="head">
<tr class="head">
<th>Attribute</th><th>Abbreviation</th><th>Description</th>
<th>Attribute</th><th>Abbreviation</th><th>Description</th>
</tr>
</tr>
 
<tr>
<tr>
<td>[[DEFINE_FIELD_command#Ordered_index_CHUNK_attribute|CHUNK]]</td>
<th>[[DEFINE_FIELD_command#Ordered_index_CHUNK_attribute|CHUNK]]</th>
<td>CNK</td>
<td>CNK</td>
<td>Defines "OI chunks" of data in Ordered Index numeric range fields to enable more efficient searching.</td>
<td>Defines "OI chunks" of data in <var>ORDERED NUMERIC</var> fields to enable more efficient range searching.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#CONCATENATION-OF .28CAT.29 attribute|CONCATENATION-OF]]</td>
<th>[[Field design#CONCATENATION-OF .28CAT.29 attribute|CONCATENATION-OF]]</th>
<td>(CAT)</td>
<td>(CAT)</td>
<td>Lists the fields that make up a concatenated field</td>
<td>Lists the fields that make up a concatenated field, and provides a concatenated value based upon the values of the constituent fields.</td>
</tr>
</tr>
 
<tr>
<tr>
<td nowrap>[[Field design (File management)#Counting occurrences of a field|COUNT-OCCURRENCES-OF]]</td>
<th nowrap>[[Field design#Counting occurrences of a field|COUNT-OCCURRENCES-OF]]</th>
<td>(CTO)</td>
<td>(CTO)</td>
<td>Automatically maintains a count of the number of occurrences of the specified field.</td>
<td>Automatically maintains a count of the number of occurrences of the specified field.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#Automatic Fields|CREATE-TIME]]</td>
<th>[[Field design#Automatic Fields|CREATE-TIME]]</th>
<td>(CRTM)</td>
<td>(CRTM)</td>
<td>Captures the time when the field was created, as of the start of the transaction.</td>
<td>Captures the time when the record was created, as of the start of the transaction.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#Automatic Fields|CREATE-TIMEUTC]]</td>
<th>[[Field design#Automatic Fields|CREATE-TIMEUTC]]</th>
<td>(CRTMU)</td>
<td>(CRTMU)</td>
<td>Captures the Coordinated Universal Time when the field was created, as of the start of the transaction.</td>
<td>Captures the Coordinated Universal Time when the record was created, as of the start of the transaction.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#Automatic Fields|CREATE-USER]]</td>
<th>[[Field design#Automatic Fields|CREATE-USER]]</th>
<td>(CRUS)</td>
<td>(CRUS)</td>
<td>Captures the user ID of the user who created the field.</td>
<td>Captures the user ID of the user who created the record.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#DATETIME-GE .28DTGE.29.2C DATETIME-GT .28DTGT.29.2C DATETIME-LE .28DTLE.29.2C and DATETIME-LT .28DTLT.29 attributes|DATETIME]]</td>
<th>[[Field design#DATETIME (DT) attribute|DATETIME]]</th>
<td>(DT)</td>
<td>(DT)</td>
<td>Specifies the format of the date and time data stored in Table B. The default is YYYYMMDDHHMISSXXXXXX.</td>
<td>Specifies the format of the date and time data stored in the file. The default is YYYYMMDDHHMMSSXXXXXX, that is, to the nearest millionth of a second.</td>
</tr>
</tr>
 
<tr><td>[[Field design (File management)#DATETIME-GE .28DTGE.29.2C DATETIME-GT .28DTGT.29.2C DATETIME-LE .28DTLE.29.2C and DATETIME-LT .28DTLT.29 attributes|DATETIME-GE]]</td>
<tr><th>[[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]]</th>
<td>(DTGE)</td>
<td>(DTGE)</td>
<td>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. </td>
<td>With <var>DATETIME-GT</var>, <var>DATETIME-LE</var>, and <var>DATETIME-LT</var>, 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. </td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#DATETIME-GE .28DTGE.29.2C DATETIME-GT .28DTGT.29.2C DATETIME-LE .28DTLE.29.2C and DATETIME-LT .28DTLT.29 attributes|DATETIME-GT]]</td>
<th>[[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]]</th>
<td>(DTGT)</td>
<td>(DTGT)</td>
<td>Specifies that the date/time value must be later than the date/time value that follows.</td>
<td>Specifies that the date/time value must be later than the date/time value that follows.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#DATETIME-GE .28DTGE.29.2C DATETIME-GT .28DTGT.29.2C DATETIME-LE .28DTLE.29.2C and DATETIME-LT .28DTLT.29 attributes|DATETIME-LE]]</td>
<th>[[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]]</th>
<td>(DTLE)</td>
<td>(DTLE)</td>
<td>Specifies that the date/time value must be earlier than or the same as the date/time value that follows.</td>
<td>Specifies that the date/time value must be earlier than or the same as the date/time value that follows.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#DATETIME-GE .28DTGE.29.2C DATETIME-GT .28DTGT.29.2C DATETIME-LE .28DTLE.29.2C and DATETIME-LT .28DTLT.29 attributes|DATETIME-LT]]</td>
<th>[[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]]</th>
<td>(DELT)</td>
<td>(DELT)</td>
<td>Specifies that the date/time value must be earlier than or the same as the date/time value that follows.</td>
<td>Specifies that the date/time value must be earlier than the date/time value that follows.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#DEFAULT-VALUE .28DV.29 attribute|DEFAULT-VALUE]]</td>
<th>[[Field design#DEFAULT-VALUE .28DV.29 attribute|DEFAULT-VALUE]]</th>
<td>(DV)</td>
<td>(DV)</td>
<td>Specifies the value to use for the field when the record is created and no value has been assigned to the field.
<td>Specifies the value to use for the field when the record is created and no value has been assigned to the field.
 
<p>
(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.)</td>
(The value of the <var>STORE-DEFAULT</var> setting determines whether the <var>DEFAULT-VALUE</var> is physically stored on the record, or if it is just used as the default value when the field is missing.)</p></td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#ESCAPE .28ESC.29 attribute|ESCAPE]]</td>
<th>[[Field design#ESCAPE .28ESC.29 attribute|ESCAPE]]</th>
<td>(ESC)</td>
<td>(ESC)</td>
<td>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’01’.</td>
<td>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'01'.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#AT-MOST-ONE.2C REPEATABLE and EXACTLY-ONE attributes|EXACTLY-ONE]]</td>
<th>[[Field design#AT-MOST-ONE.2C REPEATABLE and EXACTLY-ONE attributes|EXACTLY-ONE]]</th>
<td>(EXONE)</td>
<td>(EXONE)</td>
<td>Specifies that a field always has exactly one occurrence in its record or field group context. The default value is 1.</td>
<td>Specifies that a field always has exactly one occurrence in its record or field group context.
<p><var>EXACTLY-ONE</var> fields always appear first when output by a <var>Print All Information</var> (<var>PAI</var>) statement.</p></td>
</tr>
</tr>
 
<tr><td>[[Field design (File management)#FIELDGROUP attribute|FIELDGROUP]]</td>
<tr><th>[[Field design#FIELDGROUP attribute|FIELDGROUP]]</th>
<td>(FG)</td>
<td>(FG)</td>
<td>Specifies the name of the field group that the defined field is associated with (contained in).</td>
<td>Specifies the name of the field group that the defined field is associated with (contained within).</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#FLOAT-GE .28FLTGE.29.2C FLOAT-GT .28FLTGT.29.2C FLOAT-LE .28FLTLE.29 and FLOAT-LT .28FLTLT.29 attributes|FLOAT-GE]]</td>
<th>[[Field design#FLOAT-GE .28FLTGE.29.2C FLOAT-GT .28FLTGT.29.2C FLOAT-LE .28FLTLE.29 and FLOAT-LT .28FLTLT.29 attributes|FLOAT-GE]]</th>
<td>(FLTGE)</td>
<td>(FLTGE)</td>
<td>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.</td>
<td>With <var>FLOAT-GT</var>, <var>FLOAT-LE</var>, and <var>FLOAT-LT</var>, 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.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#FLOAT-GE .28FLTGE.29.2C FLOAT-GT .28FLTGT.29.2C FLOAT-LE .28FLTLE.29 and FLOAT-LT .28FLTLT.29 attributes|FLOAT-GT]]</td>
<th>[[Field design#FLOAT-GE .28FLTGE.29.2C FLOAT-GT .28FLTGT.29.2C FLOAT-LE .28FLTLE.29 and FLOAT-LT .28FLTLT.29 attributes|FLOAT-GT]]</th>
<td>(FLTGT)</td>
<td>(FLTGT)</td>
<td>Specifies that the float value must be greater than the value that follows.</td>
<td>Specifies that the float value must be greater than the value that follows.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#FLOAT-GE .28FLTGE.29.2C FLOAT-GT .28FLTGT.29.2C FLOAT-LE .28FLTLE.29 and FLOAT-LT .28FLTLT.29 attributes|FLOAT-LE]]</td>
<th>[[Field design#FLOAT-GE .28FLTGE.29.2C FLOAT-GT .28FLTGT.29.2C FLOAT-LE .28FLTLE.29 and FLOAT-LT .28FLTLT.29 attributes|FLOAT-LE]]</th>
<td>(FLTLE)</td>
<td>(FLTLE)</td>
<td>Specifies that the float value must be less than or equal to the value that follows.</td>
<td>Specifies that the float value must be less than or equal to the value that follows.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#FLOAT-GE .28FLTGE.29.2C FLOAT-GT .28FLTGT.29.2C FLOAT-LE .28FLTLE.29 and FLOAT-LT .28FLTLT.29 attributes|FLOAT-LT]]</td>
<th>[[Field design#FLOAT-GE .28FLTGE.29.2C FLOAT-GT .28FLTGT.29.2C FLOAT-LE .28FLTLE.29 and FLOAT-LT .28FLTLT.29 attributes|FLOAT-LT]]</th>
<td>(FLTLT)</td>
<td>(FLTLT)</td>
<td>Specifies that the float value must be less than the value that follows.</td>
<td>Specifies that the float value must be less than the value that follows.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#INTEGER-GE .28INTGE.29.2C INTEGER-GT .28INTGT.29.2C INTEGER-LE .28INTLE.29 and INTEGER-LT .28INTLT.29 attributes|INTEGER-GE]]</td>
<th>[[Field design#INTEGER-GE .28INTGE.29.2C INTEGER-GT .28INTGT.29.2C INTEGER-LE .28INTLE.29 and INTEGER-LT .28INTLT.29 attributes|INTEGER-GE]]</th>
<td>(INTGE)</td>
<td>(INTGE)</td>
<td>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.</td>
<td>With <var>INTEGER-GT</var>, <var>INTEGER-LE</var>, and <var>INTEGER-LT</var>, 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.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#INTEGER-GE .28INTGE.29.2C INTEGER-GT .28INTGT.29.2C INTEGER-LE .28INTLE.29 and INTEGER-LT .28INTLT.29 attributes|INTEGER-GT]]</td>
<th>[[Field design#INTEGER-GE .28INTGE.29.2C INTEGER-GT .28INTGT.29.2C INTEGER-LE .28INTLE.29 and INTEGER-LT .28INTLT.29 attributes|INTEGER-GT]]</th>
<td>(INTGT)</td>
<td>(INTGT)</td>
<td>Specifies that the integer value must be greater than the value that follows.</td>
<td>Specifies that the integer value must be greater than the value that follows.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#INTEGER-GE .28INTGE.29.2C INTEGER-GT .28INTGT.29.2C INTEGER-LE .28INTLE.29 and INTEGER-LT .28INTLT.29 attributes|INTEGER-LE]]</td>
<th>[[Field design#INTEGER-GE .28INTGE.29.2C INTEGER-GT .28INTGT.29.2C INTEGER-LE .28INTLE.29 and INTEGER-LT .28INTLT.29 attributes|INTEGER-LE]]</th>
<td>(INTLE)</td>
<td>(INTLE)</td>
<td>Specifies that the integer value must be less than or equal to the value that follows.</td>
<td>Specifies that the integer value must be less than or equal to the value that follows.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#INTEGER-GE .28INTGE.29.2C INTEGER-GT .28INTGT.29.2C INTEGER-LE .28INTLE.29 and INTEGER-LT .28INTLT.29 attributes|INTEGER-LT]]</td>
<th>[[Field design#INTEGER-GE .28INTGE.29.2C INTEGER-GT .28INTGT.29.2C INTEGER-LE .28INTLE.29 and INTEGER-LT .28INTLT.29 attributes|INTEGER-LT]]</th>
<td>(INTLT)</td>
<td>(INTLT)</td>
<td>Specifies that the integer value must be less than the value that follows.</td>
<td>Specifies that the integer value must be less than the value that follows.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#LENGTH-EQ .28LEQ.29 attribute|LENGTH-EQ]]</td>
<th>[[Field design#LENGTH-EQ .28LEQ.29 attribute|LENGTH-EQ]]</th>
<td>(LEQ)</td>
<td>(LEQ)</td>
<td>Used to set a length constraint when defining a field. Specifies the required length of a field.</td>
<td>Used to set a length constraint when defining a field. Specifies the required length of a field value.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#LENGTH-GE .28LGE.29 attribute|LENGTH-GE]]</td>
<th>[[Field design#LENGTH-GE .28LGE.29 attribute|LENGTH-GE]]</th>
<td>(LGE)</td>
<td>(LGE)</td>
<td>Specifies the minimum length of a field.</td>
<td>Specifies the minimum length of a field value.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#LENGTH-LE .28LLE.29 attribute|LENGTH-LE]]</td>
<th>[[Field design#LENGTH-LE .28LLE.29 attribute|LENGTH-LE]]</th>
<td>(LLE)</td>
<td>(LLE)</td>
<td>Specifies the maximum length of a field.</td>
<td>Specifies the maximum length of a field value.</td>
</tr>
</tr>
 
<tr><td>[[Field design (File management)#Setting a pattern for a field value: the LIKE attribute|LIKE]]</td>
<tr><th>[[Field design#Setting a pattern for a field value: the LIKE attribute|LIKE]]</th>
<td>(LK)</td>
<td>(LK)</td>
<td>Sets a pattern that a field value must conform to.</td>
<td>Sets a pattern that to which a field value must conform.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#BLOB.2C CLOB.2C and MINLOBE attributes|MINLOBE]]</td>
<th>[[Field design#BLOB.2C CLOB.2C and MINLOBE attributes|MINLOBE]]</th>
<td>(MLBE)</td>
<td>(MLBE)</td>
<td>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.</td>
<td>Defines the minimum size of a <var>BLOB</var> or <var>CLOB</var> 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.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>NO-DOMAIN-CONSTRAINTS</td>
<th>NO-DEFAULT-VALUE</th>
<td/>
<td>(NDV)</td>
<td>Specifies that the field has no [[Field design (File management)#Content constraints|content constraint]] attributes. Useful with <var>[[REDEFINE command|REDEFINE]]</var> to remove existing constraints on a field.</td>
<td>Specifies that the field has no default value. Useful with <var>[[REDEFINE command|REDEFINE]]</var> to remove an existing default value on a field.</td>
</tr>
</tr>


<tr>
<tr>
<td>NO-DEFAULT-VALUE</td>
<th>NO-DOMAIN-CONSTRAINTS</th>
<td>(NDV)</td>
<td/>
<td>Specifies that the field has no default value. Useful with <var>[[REDEFINE command|REDEFINE]]</var> to remove an existing default value on a field.</td>
<td>Specifies that the field has no [[Field design#Content constraints|content constraint]] attributes. Useful with <var>[[REDEFINE command|REDEFINE]]</var> to remove existing constraints on a field.</td>
</tr>
</tr>


<tr>
<tr>
<td>[[Field design (File management)#SEPARATOR .28SEP.29 attribute|SEPARATOR]]</td>
<th>[[Field design#SEPARATOR .28SEP.29 attribute|SEPARATOR]]</th>
<td>(SEP)</td>
<td>(SEP)</td>
<td>Specifies a separator character used between field values in concatenated fields. The default is X’00’.</td>
<td>Specifies a separator character used between field values in concatenated fields. The default is X'00'.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#STORE-DEFAULT .28SD.29 and STORE-NULL .28SN.29 attributes|STORE-DEFAULT]]</td>
<th>[[Field design#STORE-DEFAULT .28SD.29 and STORE-NULL .28SN.29 attributes|STORE-DEFAULT]]</th>
<td>(SD)</td>
<td>(SD)</td>
<td>Specifies whether to physically store the default value for the field in each record. The default option is LITERAL (LIT), which stores a literal string.</td>
<td>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 <var>LITERAL</var> (<var>LIT</var>), which stores only a field value that was added as a literal string.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#STORE-DEFAULT .28SD.29 and STORE-NULL .28SN.29 attributes|STORE-NULL]]</td>
<th>[[Field design#STORE-DEFAULT .28SD.29 and STORE-NULL .28SN.29 attributes|STORE-NULL]]</th>
<td>(SN)</td>
<td>(SN)</td>
<td>Specifies whether to physically store the null value for the field in each record. The default option is LITERAL (LIT), which stores a literal string.</td>
<td>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 <var>LITERAL</var> (<var>LIT</var>), which stores only a null that was added as a literal string.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#Automatic Fields|UPDATE-TIME]]</td>
<th>[[Field design#Automatic Fields|UPDATE-TIME]]</th>
<td>(UPTM)</td>
<td>(UPTM)</td>
<td>Captures the time when the field was updated, as of the start of the transaction.</td>
<td>Captures the time when the record was updated, as of the start of the transaction.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#Automatic Fields|UPDATE-TIMEUTC]]</td>
<th>[[Field design#Automatic Fields|UPDATE-TIMEUTC]]</th>
<td>(UPTMU)</td>
<td>(UPTMU)</td>
<td>Captures the Coordinated Universal Time when the field was updated, as of the start of the transaction.</td>
<td>Captures the Coordinated Universal Time when the record was updated, as of the start of the transaction.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#Automatic Fields|UPDATE-USER]]</td>
<th>[[Field design#Automatic Fields|UPDATE-USER]]</th>
<td>(UPUS)</td>
<td>(UPUS)</td>
<td>Captures the user ID of the user who updated the field.</td>
<td>Captures the user ID of the user who updated the record.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#UTF-8 and UTF-16 attributes|UTF-8]]</td>
<th>[[Field design#UTF-8 and UTF-16 attributes|UTF-8]]</th>
<td>(UTF8)</td>
<td>(UTF8)</td>
<td>Data is stored in UTF-8 format and is treated as unicode data inside SOUL programs. The default is EBCDIC.</td>
<td>Data is stored in UTF-8 format and is treated as Unicode data inside SOUL programs. The default is EBCDIC.</td>
</tr>
</tr>
 
<tr>
<tr>
<td>[[Field design (File management)#UTF-8 and UTF-16 attributes|UTF-16]]</td>
<th>[[Field design#UTF-8 and UTF-16 attributes|UTF-16]]</th>
<td>(UTF16)</td>
<td>(UTF16)</td>
<td>Data is stored in UTF-16 format and is treated as unicode data inside SOUL programs. The default is EBCDIC.</td>
<td>Data is stored in UTF-16 format and is treated as Unicode data inside SOUL programs. The default is EBCDIC.</td>
</tr>
</tr>
</table>
</table>


==System management enhancements==
==System management enhancements==
 
===Writing records to the SMF data set===
===Writing records to the SMF data set===
Having Model 204 write records to the SMF data set no longer requires the installation of an SVC.
Having Model 204 write records to the SMF data set no longer requires the installation of an SVC.
 
Therefore, the <var>[[SMFSVC parameter|SMFSVC]]</var> parameter is no longer required and, if present, will be ignored and flagged with the following informational message:
Therefore, the <var>[[SMFSVC parameter|SMFSVC]]</var> parameter is no longer required and, if present, will be ignored and flagged with the following informational message:
<p class="code">M204.0204: PARAMETER SMFSVC OBSOLETE AND NOT RESET</p>
<p class="code">M204.0204: PARAMETER SMFSVC OBSOLETE AND NOT RESET</p>
However, the <var>[[SMFLORN parameter|SMFLORN]]</var> and <var>[[SMFSLRN parameter|SMFSLRN]]</var> parameters must still be present in CCAIN if SMF records are required.
However, the <var>[[SMFLORN parameter|SMFLORN]]</var> and <var>[[SMFSLRN parameter|SMFSLRN]]</var> parameters must still be present in CCAIN to specify the types of SMF record to be written.
 
===Model 204 version number added to SMF records===
A one byte, hexadecimal representation of the Model 204 version number has been added to both [[Using system statistics#System Management Facility record layout and statistics|SMF records]] (logout and since-last) at offset X'39'.  For V740, the value is X'4A', and requires zap 74Z4169.  For V750, the value is X'4B' and requires zap 75Z326.
 
===Providing a common CCAIN configuration with PRECCAIN===
A new feature in version 7.5 is the ability to [[PRECCAIN|provide a common configuration]] for all <var class="product">Model 204</var> jobs by linking <code>PRECCAIN</code> into your ONLINE, IFAM1, and/or IFAM4 load modules. <code>PRECCAIN</code>, an assembler module which you modify and link into the load modules, contains <var class="product">Model 204</var> commands and parameters set and executed, respectively, during <var class="product">Model 204</var> initialization.
 
===New Welcome screen to replace > prompt===
The system parameter, <var>[[VTLAPSY parameter|VTLAPSY]]</var>, allows each site to configure an ASPY subsystem with a full screen interface for logging a user into Model 204.  This optional interface can be used to replace the ">" prompt when a full-screen user connects to a Model 204 online.


==Performance enhancements==
==Performance enhancements==
 
===64-bit addressing and Above The Bar (ATB) storage===
===64-bit addressing and Above The Bar (ATB) storage===
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.  
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.
 
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 <var>[[SERVNSA parameter|SERVNSA]]</var> and <var>[[SERVNSSZ parameter|SERVNSSZ]]</var> parameters used for FTBL.
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 <var>[[SERVNSA parameter|SERVNSA]]</var> and <var>[[SERVNSSZ parameter|SERVNSSZ]]</var> parameters used for FTBL.
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.


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. For greater efficiency, Model 204 version 7.5 also provides swappable ATB server areas that can supplement or replace the non-swappable areas. These swappable ATB server areas are controlled by the <var>[[SERVGA parameter|SERVGA]]</var> and <var>[[SERVGSZ parameter|SERVGSZ]]</var> parameters.
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 <var>[[SERVGA parameter|SERVGA]]</var> and <var>[[SERVGSZ parameter|SERVGSZ]]</var> parameters.


====GTBL in above the bar storage====
<p class="note"><b>Note:</b> 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.</p>
GTBL can now be placed into non-swappable server storage area above the bar.
In order to store GTBL in ATB storage:
====GTBL, NTBL, QTBL in above the bar storage====
GTBL, NTBL and QTBL can now be placed into server storage above the bar.
<p>In order to store a table in ATB storage:</p>
<ul>
<ul>
<li>Increase the <var>[[SERVNSSZ parameter|SERVNSSZ]]</var> parameter by the GTBL size.
<li>Increase the <var>[[SERVNSSZ parameter|SERVNSSZ]]</var> parameter by the corresponding table size.
<li>Set the second byte of the <var>[[SERVNSA parameter|SERVNSA]]</var> parameter to <code>X’80’</code>, so the value of <var>SERVNSA</var> is <code>X'00800000'</code>.
<li>Set the proper bit in <var>[[SERVNSA parameter|SERVNSA]]</var>:
<ul>
<li>for GTBL set the second byte to <code>X'80'</code>, so the value of <var>SERVNSA</var> is <code>X'00800000'</code></li>
<li>for NTBL set the third byte to <code>X'40'</code>, so the value of <var>SERVNSA</var> is <code>X'00004000'</code></li>
<li>for QTBL set the third byte to <code>X'20'</code>, so the value of <var>SERVNSA</var> is <code>X'00002000'</code></li>
</ul>
</ul>
</ul>
<p class="note">'''Note:'''
<p class="note">'''Note:'''
The settings for each server table above the bar are independent of each other.
The settings for each server table above the bar are independent of each other.
So if both FTBL and GTBL are placed above the bar, then <var>SERVNSA</var> should be set to <code>X'02800000'</code>.</p>
So if GTBL, NTBL, and QTBL are all placed above the bar, then <var>SERVNSA</var> should be set to <code>X'00806000'</code>.</p>
 
====NTBL and QTBL  in above the bar storage====
<p style="color:red">Needs details . . .</p>


====XmlDoc pages in above the bar buffer pool====
====XmlDoc pages in above the bar buffer pool====
With this release, the CCATEMP pages used for <var>XmlDoc</var> 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 <var>[[TEMPPAGE parameter|TEMPPAGE]]</var> parameter is used to allocate CCATEMP in memory.
With this release, the CCATEMP pages used for <var>XmlDoc</var> 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 <var>[[TEMPPAGE parameter|TEMPPAGE]]</var> parameter is used to allocate CCATEMP in memory.


===Improved range searching by Ordered Index (OI) chunk===
===<b id="chunk"></b>Improved range searching by Ordered Index (OI) chunk===
The new <var>[[DEFINE FIELD command#Ordered index CHUNK attribute|CHUNK]]</var> attribute for the <var>DEFINE FIELD</var> command enables more efficient range searching on Ordered Index numeric  (<var>ORDERED NUMERIC</var>) fields. <var>CHUNK</var> improves performance of  the <var>FIND</var> statement <var>RANGE</var> and <var>BETWEEN</var> terms. The <var>CHUNK</var> field attribute defines a subrange ("OI chunk") 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.
The new <var>[[DEFINE FIELD command#Ordered index CHUNK attribute|CHUNK]]</var> attribute for the <var>DEFINE FIELD</var> command enables more efficient range searching on Ordered Index numeric  (<var>ORDERED NUMERIC</var>) fields. <var>CHUNK</var> improves performance of  the <var>FIND</var> statement <var>RANGE</var> and <var>BETWEEN</var> terms. The <var>CHUNK</var> field attribute defines a subrange ("OI chunk") 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.
   
   
After defining an <var>ORDERED NUMERIC</var> field, you define one or more related OI chunk fields containing data from the original base field rounded down by a specified <var>CHUNK</var> size.  
After defining an <var>ORDERED NUMERIC</var> field, you define one or more related OI chunk fields containing data from the original base field rounded down by a specified <var>CHUNK</var> size.
   
   
Example:
Example:
Line 557: Line 632:
   
   
<var>CHUNK</var> requires the <var>[[#FILEORG (new settings)|FILEORG]]</var> X'100' bit setting and the <var>INVISIBLE</var> and <var>ORDERED NUMERIC</var> field attributes.
<var>CHUNK</var> requires the <var>[[#FILEORG (new settings)|FILEORG]]</var> X'100' bit setting and the <var>INVISIBLE</var> and <var>ORDERED NUMERIC</var> field attributes.
==Debugging and testing enhancements==
The code for SoftSpy, the debugging, testing, and performance-tuning product, is now included in the Model&nbsp;204 nucleus, significantly simplifying SoftSpy installation. SoftSpy remains a separately licensed Model 204 add-on product. For more information about SoftSpy version 7.5, see the [[Release notes for SoftSpy V7.5]].
<div id="Connect* enhancements"></div>
==Connect<sup>&#9733;</sup> enhancements==
The 7.5 version of Connect<sup>&#9733;</sup> for JDBC, Connect<sup>&#9733;</sup> for .NET, and Connect<sup>&#9733;</sup> for ODBC is now available. <br />
For more information on Connect<sup>&#9733;</sup> installation, see [[Connect* installation requirements]].
Each Connect<sup>&#9733;</sup> interface contains the latest fixes and enhancements and is compatible with Model 204 version 7.5.
Additionally, Connect<sup>&#9733;</sup> for JDBC and Connect<sup>&#9733;</sup> for .NET contain the enhancements described below.
===Connect<sup>&#9733;</sup> for JDBC===
Connect<sup>&#9733;</sup> 7.5 for JDBC offers a "connection pooling" 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.
Using connection pooling helps eliminate the overhead of creating initial connections from scratch or trying to
manage each connection using the JDBC API.
Each Connection Pool can create a pool of active connections maintainable throughout the connection cycle of the pooling service.
For a sample program, see [[Connect* for JDBC#Connection_pooling|Connection pooling]].
Connect<sup>&#9733;</sup> 7.5 for JDBC has been tested with the JNDI, Apache DBCP<sup>TM</sup>, BoneCP and C3PO pooling packages.
===Connect<sup>&#9733;</sup> for .NET===
Connect<sup>&#9733;</sup> 7.5 for .NET offers both 32-bit and 64-bit drivers that can be used with any Web or GUI-driven application.
===Connect<sup>&#9733;</sup> for ODBC===
Connect<sup>&#9733;</sup> 7.5 for ODBC contains the latest fixes and enhancements and is compatible with Model&nbsp;204 version 7.5.


==MQ/204 enhancements==
==MQ/204 enhancements==
 
===Freeing MQ/204 subtasks and associated storage===
===Freeing MQ/204 subtasks and associated storage===
The new <var>MQDELDTP</var> PST (pseudo subtask)  checks for MQ/204 subtasks that are in a delayed detach state. <var>MQDELDTP</var> detaches MQ/204 subtasks that have finished their work and releases their associated storage areas.
The new <var>MQDELDTP</var> PST (pseudo subtask)  checks for MQ/204 subtasks that are in a delayed detach state. <var>MQDELDTP</var> detaches MQ/204 subtasks that have finished their work and releases their associated storage areas.
==Dictionary/204==
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]].


==Other features==
==Other features==
Line 567: Line 674:
<p>
<p>
The <var>AT-MOST-ONE</var> attribute is now applicable to a field group definition.</p>
The <var>AT-MOST-ONE</var> attribute is now applicable to a field group definition.</p>
 
===Storing and updating LOBs===
===Storing and updating LOBs===
<p>
<p>
All large object data (LOBs) in a <var>FILEORG</var> X'100' file are chained. There are four bytes per Table E page overhead for chained LOBs. The pages used by a chained LOB are not contiguous.</p>
All large object data (LOBs) in a <var>FILEORG</var> X'100' 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.</p>
 
<p>
<p>
Handling LOBs in <var>FILEORG</var> X'100' files also has the following effects:</p>
Handling LOBs in <var>FILEORG</var> X'100' files also has the following effects:</p>
<ul>
<ul>
<li>LOBs can be changed as needed. The <var>RESERVE</var> clause is ignored in a LOB field <var>ADD</var> statement processing, as well as the <var>STORE RECORD</var> statement processing of fieldname=value pairs. Consequently, the <var>CHANGE</var> statement does not fail because of insufficient reserved space. If the <var>CHANGE</var> statement requires that a LOB field be extended, it is.</li>
<li>LOBs can be changed as needed. The <var>RESERVE</var> clause is ignored in a LOB field <var>ADD</var> statement processing, as well as the <var>STORE RECORD</var> statement processing of fieldname=value pairs. Consequently, the <var>CHANGE</var> statement does not fail because of insufficient reserved space. If the <var>CHANGE</var> statement requires that a LOB field be extended, it is.</li>
 
<li>The value of the <var>[[EHIGHPG parameter|EHIGHPG]]</var> 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).</li>
<li>The value of the <var>[[EHIGHPG parameter|EHIGHPG]]</var> 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).</li>
 
<li>The value of the <var>[[EPGSUSED parameter|EPGSUSED]]</var> parameter is always the number of pages currently being used to hold LOBs.</li>
<li>The value of the <var>[[EPGSUSED parameter|EPGSUSED]]</var> parameter is always the number of pages currently being used to hold LOBs.</li>
 
<li>The <var>COMPACTE</var> command does not process <var>FILEORG</var> X'100' files, just as it does not process a file created in V6R1 or earlier. Thus, issuing a <var>COMPACTE</var> command for a <var>FILEORG</var> X'100' file produces an error message.</li>
<li>The <var>COMPACTE</var> command does not process <var>FILEORG</var> X'100' files, just as it does not process a file created in V6R1 or earlier. Thus, issuing a <var>COMPACTE</var> command for a <var>FILEORG</var> X'100' file produces an error message.</li>
 
<li>The <var>TABLEE</var> command is effectively executinga  <code>VIEW ESIZE EHIGHPG EPGSUSED</code> command for a <var>FILEORG</var> X'100' file. Consequently there are no <var>TABLEE</var> overhead pages in a <var>FILEORG</var> X'100' file.</li>
<li>The <var>TABLEE</var> command is effectively executing a <code>VIEW ESIZE EHIGHPG EPGSUSED</code> command for a <var>FILEORG</var> X'100' file. Consequently there are no <var>TABLEE</var> overhead pages in a <var>FILEORG</var> X'100' file.</li>
</ul>
</ul>


===Constraint attributes===
===Constraint attributes===
You can set range constraints on fields using the constraint attributes. Each set of range attributes is comprised of four attributes (<var>GE</var>, <var>GT</var>, <var>LE</var>, <var>LT</var>) 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 <var>FLOAT-GE</var> and <var>INTEGER-LE</var> attributes.  
You can set range constraints on fields using the constraint attributes. Each set of range attributes is comprised of four attributes (<var>GE</var>, <var>GT</var>, <var>LE</var>, <var>LT</var>) 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 <var>FLOAT-GE</var> and <var>INTEGER-LE</var> attributes.
 
If a range constraint is redefined, it replaces the existing field constraint.
If a range constraint is redefined, it replaces the existing field constraint.
 
<p class="note"> <b>Note: </b>
<p class="note"> <b>Note: </b>
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 <var>STRING</var> field or an integer constraint for a <var>FLOAT</var> field, and so on.</p>
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 <var>STRING</var> field or an integer constraint for a <var>FLOAT</var> field, and so on.</p>
 
You can set the following constraint attributes:
You can set the following constraint attributes:
<ul>
<ul>
Line 600: Line 707:
<li>length</li>
<li>length</li>
<li>integer value</li>
<li>integer value</li>
<li>floating point value</li>
</ul>
</ul>
 
See [[Field design (File management)#Content constraints|Content constraints]] for details.
See [[Field design#Content constraints|Content constraints]] for details.


===Changes to journal record layouts===
===Changes to journal record layouts===
Four bytes have been added to the journal record header for user statistic entries:  
Four bytes have been added to the journal record header for user statistic entries:
1 byte to hold the <var>IODEV</var> number and 3 bytes for future use.  
1 byte to hold the <var>IODEV</var> number and 3 bytes for future use.
 
All user since-last statistics (LAST=) lines will now show the <var>IODEV</var> value:
All user since-last statistics (LAST=) lines will now show the <var>IODEV</var> value:
<p class="code">ST $$$ USERID='<var class="term">userid</var>' ACCOUNT='<var class="term">accountname</var>' IODEV='<var class="term">devicetype</var>' LAST='<var class="term">acty</var>'</p>
<p class="code">ST $$$ USERID='<var class="term">userid</var>' ACCOUNT='<var class="term">accountname</var>' IODEV='<var class="term">devicetype</var>' LAST='<var class="term">acty</var>'</p>
For more information on journal records and user statistics, see the [[Using system statistics]] topic.
===MODEL 6 screen size and back-paging===
A large <var>[[LOUTPB parameter|LOUTPB]]</var> value for [[Terminal MODEL 6 support|MODEL 6]] geometries is now allowed, even if screen back-paging has been enabled.
In previous releases, during initialization, if back-paging was enabled for the IODEV, <var>LOUTPB</var> was automatically reset to the limit that supported back-paging.


For more information on journal records and user statistics, see the <var class="book">Rocket Model 204 System Manager's Guide</var>.
Back-paging will now be disabled for any terminal with a <code>MODEL 6</code> screen geometry that requires more than 6142 bytes.
 
This change was introduced as zap maintenance in version 7.5 and 7.6 of Model 204.


==Compatibility issues==
==Compatibility issues==
This section describes any compatibility issues between V7.5 and prior versions of Model 204.
This section describes any compatibility issues between V7.5 and prior versions of Model 204.
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.  
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.
 
A normal bug fix resolving behavior that, although not indicating an error, was "clearly and obviously" incorrect, also introduces an incompatibility, but it might <i>not</i> be included below.
A normal bug fix resolving behavior that, although not indicating an error, was "clearly and obviously" incorrect, also introduces an incompatibility, but it might <i>not</i> be included below.
 
===Change to the Ordered Index layout===
===<b id="ordLayout"></b>Change to the Ordered Index layout===
<p>Formerly all ORDERED NUMERIC fields came after all ORDERED CHARACTER fields in the Ordered Index. Now, the fields are interspersed in field code order.</p>
<p>
Formerly all ORDERED NUMERIC fields came after all ORDERED CHARACTER fields in the Ordered Index. Now, the fields are interspersed in field code order.</p>


===ZFIELD Image===
===ZFIELD Image===
<p>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).</p>
<p>
 
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).</p>
===INTERCOMM is no longer supported===
===INTERCOMM is no longer supported===
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.
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.
 
INTERCOMM is no longer supported as of Model 204 version 7.5.
INTERCOMM is no longer supported as of Model 204 version 7.5.
 
See the <var class="book">Rocket Model 204 Terminal User's Guide</var> for a discussion of terminal interfaces.
See the <var class="book">Rocket Model 204 Terminal User's Guide</var> for a discussion of terminal interfaces.
 
===User PDL overflow===
===User PDL overflow===
The new <var>[[Release notes for Model 204 version 7.5 (DRAFT)#SEQPDL parameter|SEQPDL]]</var> 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.
The new <var>[[Release notes for Model 204 version 7.5#SEQPDL parameter|SEQPDL]]</var> 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.
 
===LPDLST parameter maximum value===
===LPDLST parameter minimum and maximum values===
The maximum value for the <var>[[LPDLST parameter|LPDLST]]</var> parameter has been increased from 32760 to 65536.
The minimum value for the <var>[[LPDLST parameter|LPDLST]]</var> parameter has been increased from 5000 to 10000.
The maximum value has been increased from 32760 to 65536.


===SSLIBSIZE parameter maximum value===
===SSLIBSIZE parameter maximum value===
The maximum value for the <var>JANUS DEFINE</var> command <var>[[SSLIBSIZE (JANUS DEFINE parameter)|SSLIBSIZE]]</var> parameter has been decreased from 32767 to 16384.
The maximum value for the <var>JANUS DEFINE</var> command <var>[[SSLIBSIZE (JANUS DEFINE parameter)|SSLIBSIZE]]</var> parameter has been decreased from 32767 to 16384.
===Mixed case messages by default===
As of version 7.5, all Model 204 messages are issued with mixed case text by default unless <var>[[UPCASMSG parameter|UPCASMSG]]</var> is set.
===Unlabeled FDV statement compilation errors===
Version 7.5 introduces an edge case incompatibility by disallowing code which is very questionable or clearly wrong; that is, previously the compiler allowed pretty much any statements between the label and the FDV. Such statements are no longer allowed. For example, the following was allowed in older versions of Model 204:
<p class="code">  a: audit 'About to FDV'
    fdv foo
  b: frv in a </p>
Inserting SOUL code between a label and an FDV statement is no longer allowed, and so the result of the above is now:
<p class="code">M204.0311 Unacceptable statement reference</p>
This change was introduced as maintenance in both version 7.5 (as zaps 75Z408 and 75Z414) and version 7.6.
===User-written $functions (FUNU)===
As of version 7.5, all $functions are entered in AMODE 64. You will need to modify the ENTER macro for each $function, and you might need to modify the code for proper addressing in AMODE 64.
<p>For details, see the [[Model 204 installation on IBM z/OS#Assemble FUNU and optional MSGU|FUNU section of the 7.5 installation page]].</p>
===$ListNew cannot be used in Initial clause===
<var>$ListNew</var> cannot be used in the <var>Initial</var> clause of a [[Using_variables_and_values_in_computation#Declare_statements_for_.25variables|declaration statement]].
<p>This change was introduced as zap maintenance in versions 7.5, 7.6, and 7.7 of Model 204.</p>


==New and changed commands==
==New and changed commands==
<!--  
<p class="note"><b>Note:</b> The [[Sirius Mods]] commands are merged with the <var class="product">Model 204</var> base as of <var class="product">Model 204</var> 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. </p>
===Sirius Mods commands===
Sirius Mods commands now available in Model 204 7.5 are:
<ul>
<li>[[APPDATE command|APPDATE]]</li>
<li>[[BUMPSNAP command|BUMPSNAP]]</li>
<li>[[DUMP and DUMPX command|DUMP and DUMPX]]</li>
<li>[[DUMPG and DUMPGX command|DUMPG and DUMPGX]]</li>
<li>[[FILELOAD and FILELOADX command|FILELOAD and FILELOADX]]</li>
<li>[[FLOD and FLODX command|FLOD and FLODX]]</li>
<li>[[FNADDR command|FNADDR]]</li>
<li>[[FUDAEMON command|FUDAEMON]]</li>
<li>[[JANUS command|JANUS]]</li>
<li>[[JANUSDEBUG command|JANUSDEBUG]]</li>
<li>[[MONITOR operator command]]</li>
<li>[[RESTART operator command|RESTART operator]]</li>
<li>[[RESTAUTH command|RESTAUTH]]</li>
<li>[[RESTORE and RESTOREX command|RESTORE and RESTOREX]]</li>
<li>[[SAMPLE command|SAMPLE]]</li>
<li>[[SIRAPSY command|SIRAPSY]]</li>
<li>[[SIRFACT command|SIRFACT]]</li>
<li>[[SIRFIELD command|SIRFIELD]]</li>
<li>[[SIRIUS command|SIRIUS]]</li>
<li>[[SIRIUS DEBUG, SIRDEBUG, or SIRIUSDEBUG command|SIRIUS DEBUG, SIRDEBUG, or SIRIUSDEBUG]]</li>
<li>[[SIRMETH command|SIRMETH]]</li>
<li>[[STATUS command|STATUS]]</li>
<li>[[STOP command|STOP]]</li>
<li>[[UNICODE command|UNICODE]]</li>
</ul>
<!--
     ******************************************************************
     ******************************************************************
     Please keep the following subsections alphabetized by command name
     Please keep the following subsections alphabetized by command name
     ******************************************************************
     ******************************************************************
-->
-->
===DECREASE (new option: DYNAMIC)===
===DECREASE (new option: DYNAMIC)===
The DYNAMIC option on the <var>[[DECREASE command|DECREASE]]</var> command lets you decrease Table B dynamically, even if the file is open by others or has requests compiled against it.
The DYNAMIC option on the <var>[[DECREASE command|DECREASE]]</var> command lets you decrease Table B dynamically, even if the file is open by others or has requests compiled against it.
 
===DEFINE DATASET (new parameter: GDGRECNT)===
===DEFINE DATASET (new parameter: GDGRECNT)===
The GDGRECNT parameter for the <var>[[DEFINE DATASET command|DEFINE DATASET]]</var> command causes Model 204 to check the catalog information for the latest relative GDG generation number whenever allocating a GDG data set.
The GDGRECNT parameter for the <var>[[DEFINE DATASET command|DEFINE DATASET]]</var> command causes Model 204 to check the catalog information for the latest relative GDG generation number whenever allocating a GDG data set.
 
===DEFINE FIELD (new or changed attributes)===
===DEFINE FIELD (new or changed attributes)===
In Model 204 version 7.5, the <var>[[DEFINE FIELD command|DEFINE FIELD]]</var> command has new attributes information:
In Model 204 version 7.5, the <var>[[DEFINE FIELD command|DEFINE FIELD]]</var> command has new attributes information:
<ul>
<ul>
<li>the new <var>[[#Improved range searching by Ordered Index .28OI.29 chunk|CHUNK]]</var> attribute, which improves the efficiency of range finds using ordered index processing</li>
<li>the new <var>[[#Improved range searching by Ordered Index .28OI.29 chunk|CHUNK]]</var> attribute, which improves the efficiency of range finds using ordered index processing</li>
<li>many other <var>[[FILEORG parameter|FILEORG=x'100']]</var> related new or changed [[Release notes for Model 204 version 7.5 (DRAFT)#New field attributes|field attributes]]</li>
<li>many other <var>[[FILEORG parameter|FILEORG=X'100']]</var> related new or changed [[Release notes for Model 204 version 7.5#New field attributes|field attributes]]</li>
</ul>
</ul>
 
===DEFINE FIELDGROUP (new in V7.5)===
===DEFINE FIELDGROUP (new in V7.5)===
The <var>[[DEFINE FIELDGROUP command|DEFINE FIELDGROUP]]</var> command establishes the contents of a field group, including the fields and field groups associated with the field group being defined.
The <var>[[DEFINE FIELDGROUP command|DEFINE FIELDGROUP]]</var> command establishes the contents of a field group, including the fields and field groups associated with the field group being defined.
 
===DELETE FIELD (changed to handle CAT and CTO fields)===
===DELETE FIELD (changed to handle CAT and CTO fields)===
The <var>[[DELETE FIELD command|DELETE FIELD]]</var> command has been changed to take [[Field design (File management)#CONCATENATION-OF .28CAT.29 attribute|CONCATENATION-OF (CAT)]] and [[Field design (File management)#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.
The <var>[[DELETE command: Field|DELETE FIELD]]</var> 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.
 
===DELETE FIELDGROUP (new in V7.5)===
===DELETE FIELDGROUP (new in V7.5)===
The <var>[[DELETE FIELDGROUP command|DELETE FIELDGROUP]]</var> command deletes a field group from a Model 204 file.
The <var>[[DELETE FIELDGROUP command|DELETE FIELDGROUP]]</var> command deletes a field group from a Model 204 file.
 
===DISPLAY FIELD (new option: COMMA)===
===DISPLAY FIELD (new option: COMMA)===
In Model 204 version 7.5, the <var>[[DISPLAY FIELD command|DISPLAY FIELD]]</var> command has added
In Model 204 version 7.5, the <var>[[DISPLAY FIELD command|DISPLAY FIELD]]</var> command has added
the <var>COMMA</var> option, which uses commas to separate displayed field attributes.
the <var>COMMA</var> option, which uses commas to separate displayed field attributes.
 
===DISPLAY MODMAP (new in V7.5)===
===DISPLAY MODMAP (new in V7.5)===
<var>[[DISPLAY MODMAP command|DISPLAY MODMAP]]</var> displays the Model 204 link map in address order. System manager privileges are required.
<var>[[DISPLAY MODMAP command|DISPLAY MODMAP]]</var> displays the Model 204 link map in address order. System manager privileges are required.
===DISPLAY ZAPS (new in V7.5)===
<var>[[DISPLAY ZAPS command|DISPLAY ZAPS]]</var> displays the numbers of the zaps that have been applied to the current Model 204 ONLINE and BATCH204 modules (z/OS and z/VSE) or Online module or saved segment (z/VM). You can display all zaps or a particular zap.
<var>DISPLAY ZAPS</var> replaces the <var>DISPLAY EW</var> command and does not require system administrator privileges.
===LOGFILE and LOGGRP (output format change)===
The <var>[[LOGFILE command|LOGFILE]]</var> and <var>[[LOGGRP command|LOGGRP]]</var> command output format has been changed so that:
<ul>
<li>File names in the <var>LOGFILE</var> command output are preceded by colons (as they are in <var>LOGCTL</var> commands for files). </li>
<li>Group names are preceded by commas (as they are for <var>LOGCTL</var> commands for groups). </li>
<li><code>********</code> is displayed as a password placeholder &mdash; the password is actually displayed for <var class="product">SirSafe</var>-controlled passwords. </li>
</ul>
===MSGCTL (new options: UP/UPPER, NOUP/NOUPPER)===
The <var>UP</var> (or <var>UPPER</var>) option on the <var>[[MSGCTL command|MSGCTL]]</var> command indicates that the specified message should be converted to uppercase before display. Similarly, the <var>NOUP</var> (or <var>NOUPPER</var>) option on the <var>MSGCTL</var> command undoes the effects of <var>UP</var> or <var>UPPER</var>.


===REGENERATE and REGENERATE ONEPASS (improved TO UPDATE option)===
===REGENERATE and REGENERATE ONEPASS (improved TO UPDATE option)===
The TO UPDATE option of the <var>[[REGENERATE command|REGENERATE]]</var> and <var>[[REGENERATE ONEPASS command|REGENERATE ONEPASS]]</var> commands can now handle multiple files.  
The <var>TO UPDATE</var> option of the <var>[[REGENERATE command|REGENERATE]]</var> and <var>[[REGENERATE ONEPASS command|REGENERATE ONEPASS]]</var> commands can now handle multiple files.
<p>If TO UPDATE <var class="term">nn</var> OF <var class="term">id</var> is specified, it must appear only on the first FILE statement, and no other ‘TO’ options are allowed on subsequent files.</p>
<p>
<p>All additional files will be recovered as though they each specified the same 'TO UPDATE' option. Once the 'end of transaction' is reached, further processing will stop and all inflight transactions will be backed out.</p>
If <code>TO UPDATE <var class="term">nn</var> OF <var class="term">id</var></code> is specified, it must appear only on the first <var>FILE</var> statement, and no other <var>TO</var> options are allowed on subsequent files.</p>
 
<p>
All additional files are recovered as though they each specified the same <var>TO UPDATE</var> option. Once the "end of transaction" is reached, further processing stops and all inflight transactions are backed out.</p>
===RENAME FIELDGROUP (new in V7.5)===
===RENAME FIELDGROUP (new in V7.5)===
The <var>[[RENAME FIELDGROUP command|RENAME FIELDGROUP]]</var> command changes the name of a field group.
The <var>[[RENAME FIELDGROUP command|RENAME FIELDGROUP]]</var> command changes the name of a field group.
 
===UNICODE (new codepage: 1154)===
===UNICODE (new codepage: 1154)===
The <var>[[UNICODE command|UNICODE]]</var> 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.
The <var>[[UNICODE command|UNICODE]]</var> 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.
Line 694: Line 885:
==Reliability enhancements==
==Reliability enhancements==
===SEQPDL parameter===
===SEQPDL parameter===
The new <var>[[SEQPDL parameter|SEQPDL]]</var> parameter controls the amount of free space that must be present in the user'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. SEQPDL is a user resettable parameter and can be set on the user's parameter line or reset with the UTABLE command.   
The new <var>[[SEQPDL parameter|SEQPDL]]</var> parameter controls the amount of free space that must be present in the user'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. <var>SEQPDL</var> is a user resettable parameter and can be set on the user's parameter line or reset with the UTABLE command.
         
   
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 USER'S PUSHDOWN LIST OVERFLOWED. SEQPDL is provided to allow enough PDL space so that all of the lower level journaling routines can process error conditions without breaking files.  
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: <code>USER'S PUSHDOWN LIST OVERFLOWED</code>. <var>SEQPDL</var> is provided to allow enough PDL space so that all of the lower level journaling routines can process error conditions without breaking files.
 
If your applications are using close to the amount of PDL space currently set by the LPDLST value, you might need to increase LPDLST to reflect SEQPDL's increase in free space.
If your applications are using close to the amount of PDL space currently set by the LPDLST value, you might need to increase <var>[[LPDLST parameter|LPDLST]]</var> to reflect <var>SEQPDL</var>'s increase in free space.
 
==New and changed parameters==
==New and changed parameters==
In addition to the following specific parameter changes, <var class="product">Model 204</var> parameter descriptions, for example as displayed by the <var>VIEW</var> command, are now in mixed case (unless translated to uppercase due to <var>[[#UPCASMSG (new in V7.5)|UPCASMSG]]</var>.)
In addition to the following specific parameter changes, <var class="product">Model 204</var> parameter descriptions, for example as displayed by the <var>VIEW</var> command, are now in mixed case (unless translated to uppercase due to <var>[[#UPCASMSG (new in V7.5)|UPCASMSG]]</var>.)
 
<p class="note"><b>Note:</b> The [[Sirius Mods]] parameters are merged with the <var class="product">Model 204</var> base as of <var class="product">Model 204</var> 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 <sup>(S)</sup>. </p>
<blockquote class="note"><b>Notes:</b>
<!--  
<ul>
<li>The [[Sirius Mods]] parameters are merged with the <var class="product">Model 204</var> base as of <var class="product">Model 204</var> 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 <sup>(S)</sup>.  
<li>A new feature in version 7.5 is the ability to [[PRECCAIN|provide a common configuration]] for all <var class="product">Model 204</var> jobs by linking <code>PRECCAIN</code> into your ONLINE, IFAM1, and/or IFAM4 load modules. <code>PRECCAIN</code>, an assembler module which you modify and link into the load modules, contains <var class="product">Model 204</var> commands and parameters set and executed, respectively, during <var class="product">Model 204</var> initialization.
</ul>
</blockquote>
<!--
     ********************************************************************
     ********************************************************************
     Please keep the following subsections alphabetized by parameter name
     Please keep the following subsections alphabetized by parameter name
     ********************************************************************
     ********************************************************************
-->
-->
===CUSTOM (additional settings)===
The CUSTOM parameter enables special modifications to Model 204. Many new settings have been added to <var>[[CUSTOM parameter|CUSTOM]]</var> in V7.5.


===DEFCNTX and APDFCNTX ($View only, new in V7.5)===
===DEFCNTX and APDFCNTX (for $View function only, new in V7.5)===
The string
The string
<code>DEFCNTX</code> or <code>APDFCNTX</code> may be used as an
<code>DEFCNTX</code> or <code>APDFCNTX</code> can be used as an
argument to the<var>[[$VIEW|$View]]</var> function, to
argument to the <var>[[$VIEW|$View]]</var> function to
get the default file or group context; these are better than
get the default file or group context. Using these strings is better than using <code>$View('CURFILE')</code> because:
<code>$View('CURFILE')</code> because:
<ul>
<ul>
<li><code>CURFILE</code> returns a null string if the default context is a group.
<li><code>CURFILE</code> returns a null string if the default context is a group.
   
   
<li><code>CURFILE</code> is affected by the <var>IN</var> clause prior to a <var>Begin</var> command, and
<li><code>CURFILE</code> is affected by the <var>IN</var> clause prior to a <var>Begin</var> command and
can be affected by the <var>In</var> clause prior to many SOUL statements.
can be affected by the <var>In</var> clause prior to many SOUL statements.
</ul>
</ul>
Line 726: Line 924:
string.
string.
   
   
Otherwise it returns the type of context (<code>FILE</code>, <code>TEMP GROUP</code>, or
Otherwise <code>$View('DEFCNTX')</code> returns the type of context (<code>FILE</code>, <code>TEMP GROUP</code>, or
<code>PERM GROUP</code>) followed by the file or group name, with trailing blanks
<code>PERM GROUP</code>) followed by the file or group name, with trailing blanks
removed.
removed.
   
   
<code>$View('APDFCNTX')</code> returns the same information, based on the default
<code>$View('APDFCNTX')</code> returns the same information based on the default
context when the APSY was entered.
context when the APSY was entered, unless that is the same as one of the files or groups in the subsystem's definition; in that case, the null string is returned.
   
   
<p class="note"><b>Note:</b> These <code>$View</code> arguments were implemented as part of
<p class="note"><b>Note:</b> These <code>$View</code> arguments were implemented as part of
maintenance to version 7.5 (via zap number 54); they are not available as ordinary parameters on the <var>VIEW</var>
maintenance to version 7.5 (through zap number 54). They are not available as ordinary parameters on the <var>VIEW</var> command.
command.
In version 7.6 of Model 204,
In version 7.6 of Model 204,
they will also be available with the <var>VIEW</var> command.
they will also be available with the <var>VIEW</var> command.
Line 741: Line 938:


===DSPOPT (change to default setting)===
===DSPOPT (change to default setting)===
The default setting for [[DSPOPT parameter|DSPOPT]] has been changed from X'00' to X'01'. The X'01' 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.
The default setting for <var>[[DSPOPT parameter|DSPOPT]]</var> has been changed from X'00' to X'01'. The X'01' 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.


===ECPSIZE (change to max value)===
===ECPSIZE (change to max value)===
The maximum value setting for [[ECPSIZE parameter|ECPSIZE]] 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.
The maximum value setting for <var>[[ECPSIZE parameter|ECPSIZE]]</var> has been increased from 1310680 to 1966020 to accommodate more [[Release notes for Model 204 version 7.5#External Call Facility .28ECF.29|External Call Facility]] parameters.


===FILEORG (new settings)===
===FILEORG (new settings)===
<ul>
<ul>
<li>
<li>
The <var>[[FILEORG parameter|FILEORG]] X'100'</var> setting for enhanced data handling files is now available.  
The <var>[[FILEORG parameter|FILEORG]] X'100'</var> setting for enhanced data handling files is now available.
 
<p>X'100' enables a number of enhancements to the file structure, including: </p>
<p>X'100' enables a number of enhancements to the file structure, including: </p>
<ul>
<ul>
<li>[[Release notes for Model 204 version 7.5 (DRAFT)#Support for physical field groups|Support for physical field groups]] </li>
<li>[[Release notes for Model 204 version 7.5#Support for physical field groups|Support for physical field groups]] </li>
 
<li>The definition of as many as 32000 fields in a file </li>
<li>The definition of as many as 32000 fields in a file </li>
 
<li>System maintained [[Field design (File management)#Automatic Fields|Automatic fields]] </li>
<li>System maintained [[Field design#Automatic Fields|Automatic fields]] </li>
 
<li>[[Field design (File management)#Field constraints|Field constraints]] providing content validation </li>
<li>[[Field design#Field constraints|Field constraints]] providing content validation </li>
 
<li>Improved space management of fields containing [[Field design (File management)#BLOB, CLOB, and MINLOBE attributes|Large Objects]] </li>
<li>Improved space management of fields containing [[Field design#BLOB, CLOB, and MINLOBE attributes|Large Objects]] </li>
 
<li>[[#New field attributes|New DEFINE FIELD attributes]], such as <var>CHUNK</var>
<li>[[#New field attributes|New DEFINE FIELD attributes]], such as <var>CHUNK</var>
</ul>  
</ul>
<p>
<p>
If X'100' is selected, the X'80' bit (optimized field extraction files) is automatically set.</p></li>
If X'100' is selected, the X'80' bit (optimized field extraction files) is automatically set.</p></li>
 
<li>The <var>FILEORG X'200'</var> setting for large file support is now available. </li>
<li>The <var>[[FILEORG parameter#large_files|FILEORG X'200']]</var> setting for large file support is now available. </li>
 
<p>X'200' allows files to hold up to 48 million records.</p>  
<p>X'200' allows files to hold up to 48 million records.</p>
<p>For information on <var>FILEORG X'200'</var> and deferred updates, see [[Deferred update feature#Deferred updates and large .28FILEORG_X.27200.27.29 files|Deferred updates]].</p>
</li>
</li>
</ul>
</ul>
Line 776: Line 974:
===FISTAT (change to X'08' setting)===
===FISTAT (change to X'08' setting)===
The <var>[[FISTAT parameter|FISTAT]] X'08'</var> (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.
The <var>[[FISTAT parameter|FISTAT]] X'08'</var> (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.
 
===LRETBL (setting increase may be necessary)===
===LRETBL (setting increase may be necessary)===
Because there might be a slight increase in record locking table usage in V7.5, an increase in the value of the <var>[[LRETBL parameter|LRETBL]]</var> parameter is advised. The amount of the increase is best estimated by multiplying by 16 the <code>HWM HEADERS</code> value (from a <var>[[MONITOR ENQ command|MONITOR ENQ]]</var> report), then dividing by the value of the <var>NUSERS</var> parameter. For example, if <code>HWM HEADERS = 100000</code> and <code>NUSERS=2000</code>, the recommended <var>LRETBL</var> increase is <code>16*100000/2000</code>, or 800.
Because there might be a slight increase in record locking table usage in V7.5, an increase in the value of the <var>[[LRETBL parameter|LRETBL]]</var> parameter is advised. The amount of the increase is best estimated by multiplying by 16 the <code>HWM HEADERS</code> value (from a <var>[[MONITOR ENQ command|MONITOR ENQ]]</var> report), then dividing by the value of the <var>NUSERS</var> parameter. For example, if <code>HWM HEADERS = 100000</code> and <code>NUSERS=2000</code>, the recommended <var>LRETBL</var> increase is <code>16*100000/2000</code>, or 800.
 
===MISCOPT (obsolete)===
===MISCOPT (obsolete)===
The <var>[[MISCOPT parameter|MISCOPT]]</var> parameter is now obsolete. In Model 204 version 7.5, MISCOPT is still viewable but is not resettable.
The <var>[[MISCOPT parameter|MISCOPT]]</var> parameter is now obsolete. In Model 204 version 7.5, MISCOPT is still viewable but is not resettable.
 
===MODTIM (new in V7.5)===
===MODTIM (new in V7.5)===
The <var>[[MODTIM parameter|MODTIM]]</var> system parameter displays the most recent assembly date and time of the Model 204 load module.
The <var>[[MODTIM parameter|MODTIM]]</var> system parameter displays the most recent assembly date and time of the Model 204 load module.
 
===OUTPUT (change to allow OUTPUT=DUMMY)===
===OUTPUT (change to allow OUTPUT=DUMMY)===
IODEV=3 threads definitions now allow OUTPUT=DUMMY.
IODEV=3 threads definitions now allow OUTPUT=DUMMY.
When defining IODEV=3 threads, if output is not required, the OUTPUT parameter can be coded as OUTPUT=DUMMY.  
When defining IODEV=3 threads, if output is not required, the OUTPUT parameter can be coded as OUTPUT=DUMMY.
<p>For example:</p>
<p>For example:</p>
<p class="code">IODEV=3,INPUT=IOD3IN1,OUTPUT=DUMMY
<p class="code">IODEV=3,INPUT=IOD3IN1,OUTPUT=DUMMY
Line 794: Line 992:
IODEV=3,INPUT=IOD3IN3,OUTPUT=DUMMY</p>
IODEV=3,INPUT=IOD3IN3,OUTPUT=DUMMY</p>
and so on.
and so on.
 
This means that no DD statement is required for the output data set, and in cases where many
This means that no DD statement is required for the output data set, and in cases where many
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.
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.
 
===RECLOCKO (X'04' bit now ignored)===
===RECLOCKO (X'04' bit now ignored)===
The <var>[[RECLOCKO parameter|RECLOCKO]]</var> X'04' bit is now ignored, and the extra information of the conflicting user number and lock time are now always available.
The <var>[[RECLOCKO parameter|RECLOCKO]]</var> X'04' bit is now ignored, and the extra information of the conflicting user number and lock time are now always available.
===RESPAGE (new in V7.5)===
The <var>[[RESPAGE parameter|RESPAGE]]</var> parameter activates the [[Performance monitoring and tuning#Resident Request feature for precompiled procedures|Resident Request feature for precompiled procedures]] using above the bar pages by specifying a number of 4K-byte operating system pages.
Specifying <var>RESPAGE</var> stores precompiled procedures as resident requests above the bar in the <var>RESPAGE</var> area. Using <var>RESPAGE</var> lets you substantially increase the resident request area and decrease server swapping of QTBL and NTBL pages.
Also, when <var>RESPAGE</var> is used, <var>[[RESSIZE parameter|RESSIZE]]</var> is reset to -1, and the storage below the bar specified by <var>RESSIZE</var> is no longer used.


===RESPAGE (new in V7.5)===
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.
The <var>[[RESPAGE parameter|RESPAGE]]</var> parameter activates the APSY Precompiled Procedures in storage feature using above the bar pages by specifying a number of 4K operating system pages.


===RETRVKEY (change to allow forward retrieve PF key)===
===RETRVKEY (change to allow forward retrieve PF key)===
Line 809: Line 1,013:
<li>If you have set the <code>X'01'</code> or <code>X'10'</code> bits of the <var>[[RETRVOPT parameter|RETRVOPT]]</var> parameter, you can use a
<li>If you have set the <code>X'01'</code> or <code>X'10'</code> bits of the <var>[[RETRVOPT parameter|RETRVOPT]]</var> parameter, you can use a
<i>forward</i> retrieve PF key, in addition to the <i>backward</i> retrieve PF key specified by <var>RETRVKEY</var>.
<i>forward</i> retrieve PF key, in addition to the <i>backward</i> retrieve PF key specified by <var>RETRVKEY</var>.
<p class="note">'''Note:'''  
<p class="note">'''Note:'''
If either of these bits is set, the <code>X'02'</code> bit is strongly recommended as well.</p>
If either of these bits is set, the <code>X'02'</code> bit is strongly recommended as well.</p>
<li>The size of the allocated storage area, and hence the number and length of input lines available for retrieval, is specified
<li>The size of the allocated storage area, and hence the number and length of input lines available for retrieval, is specified
by the value of the <var>[[RETRVBUF parameter|RETRVBUF]]</var> parameter.</ul>
by the value of the <var>[[RETRVBUF parameter|RETRVBUF]]</var> parameter.</ul>
===SEQPDL (new in V7.5)===
The <var>[[Release notes for Model 204 version 7.5#SEQPDL parameter|SEQPDL]]</var> parameter controls the amount of free space that must be present in the user's Push Down List in order for the SOUL sequencer to proceed with the next quad code. <var>SEQPDL</var> allows enough PDL space for the lower level journaling routines to handle error conditions properly without breaking files and causing error message 2126: <code>USER'S PUSHDOWN LIST OVERFLOWED</code>.
===SERVSIZE (new default/minimum value)===
The minimum value for <var>[[SERVSIZE parameter|SERVSIZE ]]</var> is changed from zero to 65536. If <var>SERVSIZE</var> is explicitly set in CCAIN and its value is less than 64K, the following message is issued:
<p class="code">M204.1149: SERVSIZE has been set to its minimum value: 65536
</p>


===SEQPDL (new in V7.5)===
If <var>SERVSIZE</var> was not set but was [[Defining the runtime environment (CCAIN)#Sizing user server areas|calculated by the system]] to a value less than 64K, the following message is issued:
The <var>[[Release notes for Model 204 version 7.5 (DRAFT)#SEQPDL parameter|SEQPDL]]</var> parameter controls the amount of free space that must be present in the user'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'S PUSHDOWN LIST OVERFLOWED.
<p class="code">M204.0163: SERVSIZE increased to 65536
</p>
<p>
This change was introduced as zap maintenance in version 7.4, 7.5, and 7.6 of Model&nbsp;204.
</p>


===SESMAXTO (new in V7.5)===
===SESMAXTO (new in V7.5)===
The <var>[[SESMAXTO parameter|SESMAXTO]]</var> parameter can be used limit the maximum [[Sessions|session]] timeout value or to cause all current closed sessions to be immediately discarded.
The <var>[[SESMAXTO parameter|SESMAXTO]]</var> parameter can be used limit the maximum [[Sessions|session]] timeout value or to cause all current closed sessions to be immediately discarded.
 
===SMFSVC (obsolete)===
===SMFSVC (obsolete)===
The <var>[[SMFSVC parameter|SMFSVC]]</var> 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.
The <var>[[SMFSVC parameter|SMFSVC]]</var> parameter is [[Release notes for Model 204 version 7.5#Writing records to the SMF data set|obsolete]] as of Model 204 version 7.5.
===SNAPCTL (change to default setting)===
The default setting for <var>[[SNAPCTL parameter|SNAPCTL]]</var> has been changed from X'41' (X'44' under CMS) to X'28'. The X'28' setting results in smart snaps &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.


===UPCASMSG (new in V7.5)===
===UPCASMSG (new in V7.5)===
Line 829: Line 1,047:
<!-- ***************************************************************************************** -->
<!-- ***************************************************************************************** -->


==Documentation conversion==
==Notes for system manager and installer==
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.
 
<div id="m204Inst"></div>
===Upgrading instructions for version 7.5===
<!--Caution: <div> above-->
 
<b>Model 204 version 7.5 is an upgrade</b> to Model 204 version 7.4.
 
In order to upgrade to version 7.5, <b>you must have version 7.4 and Autofix release EW3044 installed</b> on your system.
 
Autofix release EW3044 includes:
<ul>
<li>Early Warnings for Model 204 through 740EW172</li>
<li>Early Warnings for Dictionary/204 through 740DI016</li>
</ul>
 
For detailed instructions, see the [[Model 204 installation#7.5|7.5 installation]] pages.
 
===PRECCAIN: sharing configuration for all Model 204 jobs===
A new feature in version 7.5 is the ability to [[PRECCAIN|provide a common configuration]] for all <var class="product">Model 204</var> jobs by linking <code>PRECCAIN</code> into your ONLINE, IFAM1, and/or IFAM4 load modules. <code>PRECCAIN</code>, an assembler module which you modify and link into the load modules, contains <var class="product">Model 204</var> commands and parameters set and executed, respectively, during <var class="product">Model 204</var> initialization.
 
===Extended attribute volume (EAV) support for Fast/Reload===
In version 7.5, the Fast/Reload product now functions correctly when a <var class="product">Model 204</var> file is stored, or partially stored, on an Extended Attribute Volume (EAV).
 
===IBM z/VM CMS systems: No need to allocate 205 minidisk===
 
For version 7.5, you only need to allocate five minidisks, not six as in previous releases. You do not need to allocate the 205 minidisk. Model 204 now works with the Dignus Systems/C compiler instead of SAS/C, and archive file DISK205 containing the SAS/C runtime library is no longer included in the installation.


As of Model 204 release 7.5, several manuals are now in wiki format and the rest remain in PDF format, available from the [http://docs.rocketsoftware.com/nxt/gateway.dll?f=templates$fn=default.htm  Rocket Software Documentation Library].
===CRAM SVC installation is deprecated===
The CRAM SVC installation has been deprecated as of version 7.5. <br />Installation of CRAM-XDM is described as part of the [[Model 204 installation]].


For details, see [[Model 204 and Sirius documentation]].
==Documentation conversion to wiki format==
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.
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].
For details, see [[Model 204 documentation]].


==New and updated messages==
==New and updated messages==
 
Many messages have been updated and added in this release. See [[New and updated messages in Model 204 version 7.5]] for details.
Many messages have been updated and added in this release. See [[New and updated messages in Model 204 version 7.5]] for details.
 
[[Category: Release notes]]
[[Category: Release notes|Model 204 version 7.5]]

Latest revision as of 17:57, 22 August 2018

Overview

These release notes describe new features, enhancements, and other changes contained in Rocket Model 204 version 7.5, generally available in December, 2014.

Read through this information before beginning your 7.5 installation. A brief installation overview and a link to the 7.5 installation pages can be found in one of the sections for the system administrator/installer.

New in this release

This section highlights the major new features and enhancements for Model 204 version 7.5, which integrates the newly acquired Sirius Software products into the Model 204 nucleus.

Category Feature
SOUL (User Language) A significantly enhanced, object-oriented version of User Language, called SOUL, is now available.
Performance
  • The Model 204 infrastructure is 64-bit enabled. GTBL, NTBL, and QTBL can be stored above the bar.
  • The new CHUNK attribute for the DEFINE FIELD command enables more efficient range searching on Ordered Index numeric (ORDERED NUMERIC) fields.
File management
System management
  • You can provide a common configuration for all ONLINE (IFAM1/IFAM4) jobs by linking PRECCAIN into your Model 204 ONLINE (IFAM1/IFAM4) load module.
  • You can write records to the SMF data set without an SVC installed.
Application flexibility
  • Physical field groups enable you to view and process groups of fields as logical entities.
  • The Sirius Mods commands and parameters are merged with the Model 204 base and are available to all version 7.5 customers.

Operating system and hardware requirements

Operating system requirements

  • IBM z/OS
    • All IBM supported releases up to and including z/OS 2.3.
      (For z/OS 2.2, see IBM z/OS 2.2 PTF requirement.)
      (For z/OS 2.1, see IBM z/OS 2.1 compatibility issue.)
    • Version 1.07 is sufficient for all functionality except for the following features:

      • Large (1 MB) page support requires version 1.9.
      • Extended address volumes (EAV) requires version 1.12.

    On z/OS, Model 204 release 7.5 operates as an APF authorized load module, as required by many 7.5 features.
    To run Model 204 unauthorized, contact Technical Support.

  • IBM z/VM
    • Versions supported: z/VM version 5.4 through 6.3.
  • IBM z/VSE
    • Versions supported: z/VSE version 5.1 and 5.2.

Hardware requirements

Model 204 version 7.5 requires the IBM z/890 or above processor, except for the following feature:

The large (1 MB) page support feature requires the IBM z10 or above processor.

Model 204 certification with IBM operating systems

To find the operating system environments that Model 204 has been certified with, see Model 204 system requirements.

This page is updated when Rocket certifies Model 204 releases in different environments. If you have questions about an environment that is not listed, contact Technical Support.

Connect compatibility with Model 204

Connect version 7.5 is compatible with all versions of Model 204.

For more information on Connect installation, see the Connect wiki pages. See also Connect enhancements.

SOUL (User Language) enhancements

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, "Object-oriented programming," motivates the new name for User Language, SOUL (Simple Objective User Language).

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 "User Language" is now deprecated.

Object-oriented programming

As of version 7.5 of Model 204 (and backward compatible with existing User Language applications), the SOUL language is equipped with 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 OOP tutorial.

Record capacity increase

In this version of Model 204, the record limit is increased from sixteen million records to forty-eight million records per file.

New SOUL statements

Non-OO enhancements in SOUL

SOUL support for field groups

ADD (or INSERT or DELETE) FIELDGROUP statements

The ADD FIELDGROUP statement and the INSERT FIELDGROUP statement behavior parallels the behavior of the ADD and INSERT statements for simple fields. The DELETE FIELDGROUP statement handles more situations and is therefore more complex. See Updating field groups for details.

Statements for handling field groups

SOUL now provides several statements for handling field groups:

  • FOR FIELDGROUP
  • FOR ALL OCCURRENCES OF FIELDGROUP (FAO FIELDGROUP)
  • FOR EACH OCCURRENCE OF FIELDGROUP (FEO FIELDGROUP)

See Working with field groups for details.

Output statements for field groups

The following SOUL statements provide display output for Model 204 field groups:

AUDIT ALL FIELDGROUP INFORMATION (AAFGI) PRINT ALL FIELDGROUP INFORMATION (PAFGI)

See Output statements for fields and field groups for details.

Field group SORT support

You can now use field groups in sorted sets. SORT 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 FAO FIELDGROUP statement or FEO FIELDGROUP statement against the sorted set.

EQ VALUE retrieval condition

SOUL now provides the EQ VALUE clause to support expressions in FIND statements.

See Using expressions in FIND statements for details.

EQ WITH retrieval condition for concatenated fields

SOUL now provides the EQ WITH clause for retrieving CONCATENATION-OF fields. Model 204 automatically builds the concatenated value.

See Using expressions in FIND statements and EQ with retrieval condition for concatenated fields for details.

External Call Facility (ECF)

EXTERNAL CALL statements can now pass more parameters. The maximum number of parameters that can be passed in an EXTERNAL CALL statement has been increased from 40 to 60. The maximum value setting for ECPSIZE is increased from 1310680 to 1966020 to accommodate the extra parameters.

ECF is available only on z/OS systems. For more information about the External Call Facility and the EXTERNAL CALL statement, see the External Call Facility topic.

REPEAT statement UNTIL option

The REPEAT statement now supports the UNTIL option. In previous releases, only REPEAT WHILE was supported.

A REPEAT UNTIL statement enters the loop body prior to checking the condition.

New and changed classes and methods

New InvalidBitNumber class

Objects of the InvalidBitNumber exception class are thrown when an invalid bit number is requested by a bit manipulation function. It is currently thrown only by the BitClearString, BitFlipString, BitSetString, and BitValueString functions.

New InvalidTranslateTable class

Objects of the InvalidTranslateTable exception class are thrown when a requested system translate table cannot be found. It is currently thrown only by the TranslateTable HttpRequest property.

New bit manipulation String functions

New bit manipulation functions BitClearString, BitCountString, BitFlipString, BitSetString, and BitValueString make it easier to manipulate the bits in a string.

New string processing functions

New String and Unicode functions Before and After, and UnicodeBefore and UnicodeAfter, return the parts of a string before or after a user-specified delimiter string.

New Stringlist subroutine

New Stringlist subroutine AppendPemData appends a PEM encoded string to a Stringlist.

New System methods TODClock and UUIDTime

New System class methods TODCLOCK and UUIDTime facilitate generation of version 1 universal unique identifiers and provide high precision time stamps for SOUL applications. These methods were added as a ZAP update to Model 204 7.5 (75Z109).

New HttpRequest TranslateTable property

The TranslateTable HttpRequest property makes it possible to set the translate table to be used for EBCDIC to ASCII translation of data in an HttpRequest object.

Disable base64 encoding in LoadFromRecord and related methods

The Base64Encode=False argument can be used with the LoadFromRecord method to disable any base64 encoding of field values.

Alternatively, the CharacterMap 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'00' and/or untranslatable characters in field values.

These arguments are also added to the NewFromRecord and ToXmlDoc methods.

New parameter for AppendJournalData

The QT option is added to the AppendJournalData method, to include QT type audit entries.

New parameter for AddField

The Strip option is added to the Screen class method AddField to allow suppression of leading and trailing blank removal from input fields.

New default certificate-signing algorithm

Janus Network Security as well as the StringList methods AppendSignedCertificate and AppendSignedClientCertificate methods have changed their default signature algorithm from SHA-1 to SHA-256.

This change is initially provided by zap maintenance.

New and changed $functions

Former Sirius $functions

The $functions referred to by the link below are added to SOUL as a result of the acquisition of Sirius Software:

Sirius $functions

Among these $functions are integrated math $functions: high-performance, high-precision versions of the IBM mathematical functions. These functions eliminate the need to use external math libraries.

$SndMail attachment ASCII translation

The $SndMail function can now translate an attachment to ASCII before sending it. This translation is useful if the $SndMail attachment is a CLOB (CHARACTER-LARGE-OBJECT) such as a text document.

The $SndMail function now accepts an optional parameter after the name of the attached object. If this parameter is set to 'C' (or to a percent variable with the value 'C'), the object in the buffer is translated to ASCII before being attached to the email.

If this parameter is not specified, the object in the buffer is sent as a binary object.

In this example:

%RC = $SNDMAIL(%SUBJECT,,%BODY,%FROM,%TO,,,,'CLOB.TXT','C')

the CLOB.TXT attachment will be translated to ASCII before being attached to the email.

New function calls for field groups

When a field group is added, a field group ID is assigned to the field group.

Sirius products and product enhancements

The former-Sirius products are now available to Model 204 customers as separately purchased items as a result of the acquisition of Sirius Software.

Changes to Janus SSL support

Under Model 204 version 7.5, Janus products:

  • 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)

    You can use the SSLPROT parameter on the JANUS DEFINE command for a port to explicitly specify, or limit, the SSL/TLS protocols available for a connection. The SSLPROT documentation describes the SSL/TLS protocols that Janus supports.

    Janus support for SSL V2 also included an option to specify a larger than "legal" input buffer for connections not strictly conforming to the V2 standard. You specify that buffer size with the JANUS DEFINE SSLIBSIZE parameter, and the SSLIBSIZE maximum value as of Model 204 V7.5 is reduced (from 32767 bytes) to the SSL maximum allowed size of 16384.

  • Add support for new ciphers including AES and DES.

    You can use the SSLCIPH JANUS DEFINE parameter to specify the SSL ciphers available for a connection. SSLCIPH bits X'3F8' are all new in version 7.5 of Model 204.

WEBOPT parameter change

The WEBOPT parameter default value is changed to X'03' from 0. WEBOPT affects the interaction of Model 204 and RACF security.

SirZap becomes RockZap

The name of the SirZap product is changed to RockZap as of version 7.5 of Model 204.

In addition, the MODULE option (PARM parameter) is added to RockZap. MODULE lets you apply the same set of VERs and REPs to different load modules without making global changes to the NAME statements.

File-related enhancements

Note: These features are not supported in Dictionary/204 version 7.5.

Support for physical field groups

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.

You can define a physical field group only for files with the FILEORG X'100' setting. To take advantage of field groups in files defined before Model 204 version 7.5, you must reorganize the files with a FILEORG setting that includes the X'100' bit.

Files with FILEORG X'100' can have up to 32,000 fields.

For more information, see Field group design.

Increased Table B record number capacity

Table B can now contain up to 48M possible record numbers. (The previous limit was 16M.)

Set the FILEORG X'200' bit at file creation time to allow for the increased record numbers.

Notes:

  • The limit for BSIZE remains at 16M.

    BSIZE * BRECPPG must be less than or equal to 48M (actually decimal 50,331,648 to be exact).

    For example, if BSIZE is 16M, BRECPPG cannot be more than 3.

  • The FILEORG X'200' bit cannot be set for files with hash key or sorted file organization.

Automatic fields

Model 204 now lets you define a field whose value is automatically maintained.
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'100' setting:

  • COUNT-OCCURRENCES-OF
  • CREATE-TIME
  • CREATE-TIMEUTC
  • CREATE-USER
  • UPDATE-TIME
  • UPDATE-TIMEUTC
  • UPDATE-USER

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 DELETE FOO(8) is processed, even if there are no occurrences of FOO in the record and an actual update does not take place.

Once you define an automatic value for a field, you cannot redefine the automatic value.

Concatenated fields

Model 204 now lets you define concatenated fields.

Fields that make up concatenated field values must be AT-MOST-ONE, EXACTLY-ONE, or OCCURS 1 and must all be in the same field group context (or not in a field group). Fields that occur in all field groups (FIELDGROUP *) cannot be used in a concatenation.

If a concatenated field becomes longer than 255 bytes after adding separator and escape characters, the update request is cancelled.

New field attributes

Model 204 version 7.5 introduces the new DEFINE FIELD attributes described in this section. These attributes apply to all fields in Model 204.

Note: These attributes all require that the FILEORG parameter X'100' bit be set on the file containing the fields.

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:

M204.1260: [FIELD | FIELDGROUP] WAS PREVIOUSLY DEFINED WITH DIFFERENT ATTRIBUTES, NEW [FIELD | FIELDGROUP] OPTIONS IGNORED

or

M204.2884: [FIELD WAS PREVIOUSLY DEFINED AS A FIELDGROUP | FIELDGROUP WAS PREVIOUSLY DEFINED AS A FIELD], NEW DEFINITION IGNORED

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.

AttributeAbbreviationDescription
CHUNK CNK Defines "OI chunks" of data in ORDERED NUMERIC fields to enable more efficient range searching.
CONCATENATION-OF (CAT) Lists the fields that make up a concatenated field, and provides a concatenated value based upon the values of the constituent fields.
COUNT-OCCURRENCES-OF (CTO) Automatically maintains a count of the number of occurrences of the specified field.
CREATE-TIME (CRTM) Captures the time when the record was created, as of the start of the transaction.
CREATE-TIMEUTC (CRTMU) Captures the Coordinated Universal Time when the record was created, as of the start of the transaction.
CREATE-USER (CRUS) Captures the user ID of the user who created the record.
DATETIME (DT) Specifies the format of the date and time data stored in the file. The default is YYYYMMDDHHMMSSXXXXXX, that is, to the nearest millionth of a second.
DATETIME-GE (DTGE) 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.
DATETIME-GT (DTGT) Specifies that the date/time value must be later than the date/time value that follows.
DATETIME-LE (DTLE) Specifies that the date/time value must be earlier than or the same as the date/time value that follows.
DATETIME-LT (DELT) Specifies that the date/time value must be earlier than the date/time value that follows.
DEFAULT-VALUE (DV) Specifies the value to use for the field when the record is created and no value has been assigned to the field.

(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.)

ESCAPE (ESC) 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'01'.
EXACTLY-ONE (EXONE) Specifies that a field always has exactly one occurrence in its record or field group context.

EXACTLY-ONE fields always appear first when output by a Print All Information (PAI) statement.

FIELDGROUP (FG) Specifies the name of the field group that the defined field is associated with (contained within).
FLOAT-GE (FLTGE) 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.
FLOAT-GT (FLTGT) Specifies that the float value must be greater than the value that follows.
FLOAT-LE (FLTLE) Specifies that the float value must be less than or equal to the value that follows.
FLOAT-LT (FLTLT) Specifies that the float value must be less than the value that follows.
INTEGER-GE (INTGE) 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.
INTEGER-GT (INTGT) Specifies that the integer value must be greater than the value that follows.
INTEGER-LE (INTLE) Specifies that the integer value must be less than or equal to the value that follows.
INTEGER-LT (INTLT) Specifies that the integer value must be less than the value that follows.
LENGTH-EQ (LEQ) Used to set a length constraint when defining a field. Specifies the required length of a field value.
LENGTH-GE (LGE) Specifies the minimum length of a field value.
LENGTH-LE (LLE) Specifies the maximum length of a field value.
LIKE (LK) Sets a pattern that to which a field value must conform.
MINLOBE (MLBE) 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.
NO-DEFAULT-VALUE (NDV) Specifies that the field has no default value. Useful with REDEFINE to remove an existing default value on a field.
NO-DOMAIN-CONSTRAINTS Specifies that the field has no content constraint attributes. Useful with REDEFINE to remove existing constraints on a field.
SEPARATOR (SEP) Specifies a separator character used between field values in concatenated fields. The default is X'00'.
STORE-DEFAULT (SD) 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 only a field value that was added as a literal string.
STORE-NULL (SN) 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 only a null that was added as a literal string.
UPDATE-TIME (UPTM) Captures the time when the record was updated, as of the start of the transaction.
UPDATE-TIMEUTC (UPTMU) Captures the Coordinated Universal Time when the record was updated, as of the start of the transaction.
UPDATE-USER (UPUS) Captures the user ID of the user who updated the record.
UTF-8 (UTF8) Data is stored in UTF-8 format and is treated as Unicode data inside SOUL programs. The default is EBCDIC.
UTF-16 (UTF16) Data is stored in UTF-16 format and is treated as Unicode data inside SOUL programs. The default is EBCDIC.

System management enhancements

Writing records to the SMF data set

Having Model 204 write records to the SMF data set no longer requires the installation of an SVC.

Therefore, the SMFSVC parameter is no longer required and, if present, will be ignored and flagged with the following informational message:

M204.0204: PARAMETER SMFSVC OBSOLETE AND NOT RESET

However, the SMFLORN and SMFSLRN parameters must still be present in CCAIN to specify the types of SMF record to be written.

Model 204 version number added to SMF records

A one byte, hexadecimal representation of the Model 204 version number has been added to both SMF records (logout and since-last) at offset X'39'. For V740, the value is X'4A', and requires zap 74Z4169. For V750, the value is X'4B' and requires zap 75Z326.

Providing a common CCAIN configuration with PRECCAIN

A new feature in version 7.5 is the ability to provide a common configuration for all Model 204 jobs by linking PRECCAIN into your ONLINE, IFAM1, and/or IFAM4 load modules. PRECCAIN, an assembler module which you modify and link into the load modules, contains Model 204 commands and parameters set and executed, respectively, during Model 204 initialization.

New Welcome screen to replace > prompt

The system parameter, VTLAPSY, allows each site to configure an ASPY subsystem with a full screen interface for logging a user into Model 204. This optional interface can be used to replace the ">" prompt when a full-screen user connects to a Model 204 online.

Performance enhancements

64-bit addressing and Above The Bar (ATB) storage

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.

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 SERVNSA and SERVNSSZ parameters used for FTBL.

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.

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 SERVGA and SERVGSZ parameters.

Note: 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.

GTBL, NTBL, QTBL in above the bar storage

GTBL, NTBL and QTBL can now be placed into server storage above the bar.

In order to store a table in ATB storage:

  • Increase the SERVNSSZ parameter by the corresponding table size.
  • Set the proper bit in SERVNSA:
    • for GTBL set the second byte to X'80', so the value of SERVNSA is X'00800000'
    • for NTBL set the third byte to X'40', so the value of SERVNSA is X'00004000'
    • for QTBL set the third byte to X'20', so the value of SERVNSA is X'00002000'

Note: The settings for each server table above the bar are independent of each other. So if GTBL, NTBL, and QTBL are all placed above the bar, then SERVNSA should be set to X'00806000'.

XmlDoc pages in above the bar buffer pool

With this release, the CCATEMP pages used for XmlDoc 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 TEMPPAGE parameter is used to allocate CCATEMP in memory.

Improved range searching by Ordered Index (OI) chunk

The new CHUNK attribute for the DEFINE FIELD command enables more efficient range searching on Ordered Index numeric (ORDERED NUMERIC) fields. CHUNK improves performance of the FIND statement RANGE and BETWEEN terms. The CHUNK field attribute defines a subrange ("OI chunk") 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.

After defining an ORDERED NUMERIC field, you define one or more related OI chunk fields containing data from the original base field rounded down by a specified CHUNK size.

Example:

DEFINE FIELD YYYYMMDD WITH ORDERED NUMERIC DEFINE FIELD YYYYMM WITH ORDERED NUMERIC INVISIBLE CHUNK 100 FOR YYYYMMDD DEFINE FIELD YYYY WITH ORDERED NUMERIC INVISIBLE CHUNK 10000 FOR YYYYMMDD

CHUNK requires the FILEORG X'100' bit setting and the INVISIBLE and ORDERED NUMERIC field attributes.

Debugging and testing enhancements

The code for SoftSpy, the debugging, testing, and performance-tuning product, is now included in the Model 204 nucleus, significantly simplifying SoftSpy installation. SoftSpy remains a separately licensed Model 204 add-on product. For more information about SoftSpy version 7.5, see the Release notes for SoftSpy V7.5.

Connect enhancements

The 7.5 version of Connect for JDBC, Connect for .NET, and Connect for ODBC is now available.
For more information on Connect installation, see Connect* installation requirements.

Each Connect interface contains the latest fixes and enhancements and is compatible with Model 204 version 7.5.

Additionally, Connect for JDBC and Connect for .NET contain the enhancements described below.

Connect for JDBC

Connect 7.5 for JDBC offers a "connection pooling" 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. Using connection pooling helps eliminate the overhead of creating initial connections from scratch or trying to manage each connection using the JDBC API.

Each Connection Pool can create a pool of active connections maintainable throughout the connection cycle of the pooling service.

For a sample program, see Connection pooling.

Connect 7.5 for JDBC has been tested with the JNDI, Apache DBCPTM, BoneCP and C3PO pooling packages.

Connect for .NET

Connect 7.5 for .NET offers both 32-bit and 64-bit drivers that can be used with any Web or GUI-driven application.

Connect for ODBC

Connect 7.5 for ODBC contains the latest fixes and enhancements and is compatible with Model 204 version 7.5.

MQ/204 enhancements

Freeing MQ/204 subtasks and associated storage

The new MQDELDTP PST (pseudo subtask) checks for MQ/204 subtasks that are in a delayed detach state. MQDELDTP detaches MQ/204 subtasks that have finished their work and releases their associated storage areas.

Dictionary/204

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.

Other features

AT-MOST-ONE and field groups

The AT-MOST-ONE attribute is now applicable to a field group definition.

Storing and updating LOBs

All large object data (LOBs) in a FILEORG X'100' 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.

Handling LOBs in FILEORG X'100' files also has the following effects:

  • LOBs can be changed as needed. The RESERVE clause is ignored in a LOB field ADD statement processing, as well as the STORE RECORD statement processing of fieldname=value pairs. Consequently, the CHANGE statement does not fail because of insufficient reserved space. If the CHANGE statement requires that a LOB field be extended, it is.
  • The value of the EHIGHPG 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).
  • The value of the EPGSUSED parameter is always the number of pages currently being used to hold LOBs.
  • The COMPACTE command does not process FILEORG X'100' files, just as it does not process a file created in V6R1 or earlier. Thus, issuing a COMPACTE command for a FILEORG X'100' file produces an error message.
  • The TABLEE command is effectively executing a VIEW ESIZE EHIGHPG EPGSUSED command for a FILEORG X'100' file. Consequently there are no TABLEE overhead pages in a FILEORG X'100' file.

Constraint attributes

You can set range constraints on fields using the constraint attributes. Each set of range attributes is comprised of four attributes (GE, GT, LE, LT) 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 FLOAT-GE and INTEGER-LE attributes.

If a range constraint is redefined, it replaces the existing field constraint.

Note: 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 STRING field or an integer constraint for a FLOAT field, and so on.

You can set the following constraint attributes:

  • date-time value
  • pattern for a field value
  • length
  • integer value
  • floating point value

See Content constraints for details.

Changes to journal record layouts

Four bytes have been added to the journal record header for user statistic entries: 1 byte to hold the IODEV number and 3 bytes for future use.

All user since-last statistics (LAST=) lines will now show the IODEV value:

ST $$$ USERID='userid' ACCOUNT='accountname' IODEV='devicetype' LAST='acty'

For more information on journal records and user statistics, see the Using system statistics topic.

MODEL 6 screen size and back-paging

A large LOUTPB value for MODEL 6 geometries is now allowed, even if screen back-paging has been enabled.

In previous releases, during initialization, if back-paging was enabled for the IODEV, LOUTPB was automatically reset to the limit that supported back-paging.

Back-paging will now be disabled for any terminal with a MODEL 6 screen geometry that requires more than 6142 bytes.

This change was introduced as zap maintenance in version 7.5 and 7.6 of Model 204.

Compatibility issues

This section describes any compatibility issues between V7.5 and prior versions of Model 204. 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.

A normal bug fix resolving behavior that, although not indicating an error, was "clearly and obviously" incorrect, also introduces an incompatibility, but it might not be included below.

Change to the Ordered Index layout

Formerly all ORDERED NUMERIC fields came after all ORDERED CHARACTER fields in the Ordered Index. Now, the fields are interspersed in field code order.

ZFIELD Image

The 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).

INTERCOMM is no longer supported

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.

INTERCOMM is no longer supported as of Model 204 version 7.5.

See the Rocket Model 204 Terminal User's Guide for a discussion of terminal interfaces.

User PDL overflow

The new SEQPDL 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.

LPDLST parameter minimum and maximum values

The minimum value for the LPDLST parameter has been increased from 5000 to 10000. The maximum value has been increased from 32760 to 65536.

SSLIBSIZE parameter maximum value

The maximum value for the JANUS DEFINE command SSLIBSIZE parameter has been decreased from 32767 to 16384.

Mixed case messages by default

As of version 7.5, all Model 204 messages are issued with mixed case text by default unless UPCASMSG is set.

Unlabeled FDV statement compilation errors

Version 7.5 introduces an edge case incompatibility by disallowing code which is very questionable or clearly wrong; that is, previously the compiler allowed pretty much any statements between the label and the FDV. Such statements are no longer allowed. For example, the following was allowed in older versions of Model 204:

a: audit 'About to FDV' fdv foo b: frv in a

Inserting SOUL code between a label and an FDV statement is no longer allowed, and so the result of the above is now:

M204.0311 Unacceptable statement reference

This change was introduced as maintenance in both version 7.5 (as zaps 75Z408 and 75Z414) and version 7.6.

User-written $functions (FUNU)

As of version 7.5, all $functions are entered in AMODE 64. You will need to modify the ENTER macro for each $function, and you might need to modify the code for proper addressing in AMODE 64.

For details, see the FUNU section of the 7.5 installation page.

$ListNew cannot be used in Initial clause

$ListNew cannot be used in the Initial clause of a declaration statement.

This change was introduced as zap maintenance in versions 7.5, 7.6, and 7.7 of Model 204.

New and changed commands

Note: The Sirius Mods commands are merged with the Model 204 base as of Model 204 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.

Sirius Mods commands

Sirius Mods commands now available in Model 204 7.5 are:

DECREASE (new option: DYNAMIC)

The DYNAMIC option on the DECREASE command lets you decrease Table B dynamically, even if the file is open by others or has requests compiled against it.

DEFINE DATASET (new parameter: GDGRECNT)

The GDGRECNT parameter for the DEFINE DATASET command causes Model 204 to check the catalog information for the latest relative GDG generation number whenever allocating a GDG data set.

DEFINE FIELD (new or changed attributes)

In Model 204 version 7.5, the DEFINE FIELD command has new attributes information:

DEFINE FIELDGROUP (new in V7.5)

The DEFINE FIELDGROUP command establishes the contents of a field group, including the fields and field groups associated with the field group being defined.

DELETE FIELD (changed to handle CAT and CTO fields)

The DELETE FIELD command has been changed to take CONCATENATION-OF (CAT) and COUNT-OCCURRENCES-OF (CTO) fields into account. DELETE FIELD does not allow deletion of fields referred to by an existing CAT or CTO field.

DELETE FIELDGROUP (new in V7.5)

The DELETE FIELDGROUP command deletes a field group from a Model 204 file.

DISPLAY FIELD (new option: COMMA)

In Model 204 version 7.5, the DISPLAY FIELD command has added the COMMA option, which uses commas to separate displayed field attributes.

DISPLAY MODMAP (new in V7.5)

DISPLAY MODMAP displays the Model 204 link map in address order. System manager privileges are required.

DISPLAY ZAPS (new in V7.5)

DISPLAY ZAPS displays the numbers of the zaps that have been applied to the current Model 204 ONLINE and BATCH204 modules (z/OS and z/VSE) or Online module or saved segment (z/VM). You can display all zaps or a particular zap.

DISPLAY ZAPS replaces the DISPLAY EW command and does not require system administrator privileges.

LOGFILE and LOGGRP (output format change)

The LOGFILE and LOGGRP command output format has been changed so that:

  • File names in the LOGFILE command output are preceded by colons (as they are in LOGCTL commands for files).
  • Group names are preceded by commas (as they are for LOGCTL commands for groups).
  • ******** is displayed as a password placeholder — the password is actually displayed for SirSafe-controlled passwords.

MSGCTL (new options: UP/UPPER, NOUP/NOUPPER)

The UP (or UPPER) option on the MSGCTL command indicates that the specified message should be converted to uppercase before display. Similarly, the NOUP (or NOUPPER) option on the MSGCTL command undoes the effects of UP or UPPER.

REGENERATE and REGENERATE ONEPASS (improved TO UPDATE option)

The TO UPDATE option of the REGENERATE and REGENERATE ONEPASS commands can now handle multiple files.

If TO UPDATE nn OF id is specified, it must appear only on the first FILE statement, and no other TO options are allowed on subsequent files.

All additional files are recovered as though they each specified the same TO UPDATE option. Once the "end of transaction" is reached, further processing stops and all inflight transactions are backed out.

RENAME FIELDGROUP (new in V7.5)

The RENAME FIELDGROUP command changes the name of a field group.

UNICODE (new codepage: 1154)

The UNICODE 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.

Reliability enhancements

SEQPDL parameter

The new SEQPDL parameter controls the amount of free space that must be present in the user'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. SEQPDL is a user resettable parameter and can be set on the user's parameter line or reset with the UTABLE command.

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: USER'S PUSHDOWN LIST OVERFLOWED. SEQPDL is provided to allow enough PDL space so that all of the lower level journaling routines can process error conditions without breaking files.

If your applications are using close to the amount of PDL space currently set by the LPDLST value, you might need to increase LPDLST to reflect SEQPDL's increase in free space.

New and changed parameters

In addition to the following specific parameter changes, Model 204 parameter descriptions, for example as displayed by the VIEW command, are now in mixed case (unless translated to uppercase due to UPCASMSG.)

Notes:

  • The Sirius Mods parameters are merged with the Model 204 base as of Model 204 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 (S).
  • A new feature in version 7.5 is the ability to provide a common configuration for all Model 204 jobs by linking PRECCAIN into your ONLINE, IFAM1, and/or IFAM4 load modules. PRECCAIN, an assembler module which you modify and link into the load modules, contains Model 204 commands and parameters set and executed, respectively, during Model 204 initialization.

CUSTOM (additional settings)

The CUSTOM parameter enables special modifications to Model 204. Many new settings have been added to CUSTOM in V7.5.

DEFCNTX and APDFCNTX (for $View function only, new in V7.5)

The string DEFCNTX or APDFCNTX can be used as an argument to the $View function to get the default file or group context. Using these strings is better than using $View('CURFILE') because:

  • CURFILE returns a null string if the default context is a group.
  • CURFILE is affected by the IN clause prior to a Begin command and can be affected by the In clause prior to many SOUL statements.

If there is no default context, $View('DEFCNTX') returns a null string.

Otherwise $View('DEFCNTX') returns the type of context (FILE, TEMP GROUP, or PERM GROUP) followed by the file or group name, with trailing blanks removed.

$View('APDFCNTX') returns the same information based on the default context when the APSY was entered, unless that is the same as one of the files or groups in the subsystem's definition; in that case, the null string is returned.

Note: These $View arguments were implemented as part of maintenance to version 7.5 (through zap number 54). They are not available as ordinary parameters on the VIEW command. In version 7.6 of Model 204, they will also be available with the VIEW command.

DSPOPT (change to default setting)

The default setting for DSPOPT has been changed from X'00' to X'01'. The X'01' 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.

ECPSIZE (change to max value)

The maximum value setting for ECPSIZE has been increased from 1310680 to 1966020 to accommodate more External Call Facility parameters.

FILEORG (new settings)

  • The FILEORG X'100' setting for enhanced data handling files is now available.

    X'100' enables a number of enhancements to the file structure, including:

    If X'100' is selected, the X'80' bit (optimized field extraction files) is automatically set.

  • The FILEORG X'200' setting for large file support is now available.
  • X'200' allows files to hold up to 48 million records.

    For information on FILEORG X'200' and deferred updates, see Deferred updates.

FISTAT (change to X'08' setting)

The FISTAT X'08' (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.

LRETBL (setting increase may be necessary)

Because there might be a slight increase in record locking table usage in V7.5, an increase in the value of the LRETBL parameter is advised. The amount of the increase is best estimated by multiplying by 16 the HWM HEADERS value (from a MONITOR ENQ report), then dividing by the value of the NUSERS parameter. For example, if HWM HEADERS = 100000 and NUSERS=2000, the recommended LRETBL increase is 16*100000/2000, or 800.

MISCOPT (obsolete)

The MISCOPT parameter is now obsolete. In Model 204 version 7.5, MISCOPT is still viewable but is not resettable.

MODTIM (new in V7.5)

The MODTIM system parameter displays the most recent assembly date and time of the Model 204 load module.

OUTPUT (change to allow OUTPUT=DUMMY)

IODEV=3 threads definitions now allow OUTPUT=DUMMY. When defining IODEV=3 threads, if output is not required, the OUTPUT parameter can be coded as OUTPUT=DUMMY.

For example:

IODEV=3,INPUT=IOD3IN1,OUTPUT=DUMMY IODEV=3,INPUT=IOD3IN2,OUTPUT=DUMMY IODEV=3,INPUT=IOD3IN3,OUTPUT=DUMMY

and so on.

This means that no DD statement is required for the output data set, and in cases where many 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.

RECLOCKO (X'04' bit now ignored)

The RECLOCKO X'04' bit is now ignored, and the extra information of the conflicting user number and lock time are now always available.

RESPAGE (new in V7.5)

The RESPAGE parameter activates the Resident Request feature for precompiled procedures using above the bar pages by specifying a number of 4K-byte operating system pages.

Specifying RESPAGE stores precompiled procedures as resident requests above the bar in the RESPAGE area. Using RESPAGE lets you substantially increase the resident request area and decrease server swapping of QTBL and NTBL pages.

Also, when RESPAGE is used, RESSIZE is reset to -1, and the storage below the bar specified by RESSIZE is no longer used.

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.

RETRVKEY (change to allow forward retrieve PF key)

New in this release, if you specify a non-zero setting of RETRVKEY:

  • If you have set the X'01' or X'10' bits of the RETRVOPT parameter, you can use a forward retrieve PF key, in addition to the backward retrieve PF key specified by RETRVKEY.

    Note: If either of these bits is set, the X'02' bit is strongly recommended as well.

  • The size of the allocated storage area, and hence the number and length of input lines available for retrieval, is specified by the value of the RETRVBUF parameter.

SEQPDL (new in V7.5)

The SEQPDL parameter controls the amount of free space that must be present in the user'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 message 2126: USER'S PUSHDOWN LIST OVERFLOWED.

SERVSIZE (new default/minimum value)

The minimum value for SERVSIZE is changed from zero to 65536. If SERVSIZE is explicitly set in CCAIN and its value is less than 64K, the following message is issued:

M204.1149: SERVSIZE has been set to its minimum value: 65536

If SERVSIZE was not set but was calculated by the system to a value less than 64K, the following message is issued:

M204.0163: SERVSIZE increased to 65536

This change was introduced as zap maintenance in version 7.4, 7.5, and 7.6 of Model 204.

SESMAXTO (new in V7.5)

The SESMAXTO parameter can be used limit the maximum session timeout value or to cause all current closed sessions to be immediately discarded.

SMFSVC (obsolete)

The SMFSVC parameter is obsolete as of Model 204 version 7.5.

SNAPCTL (change to default setting)

The default setting for SNAPCTL has been changed from X'41' (X'44' under CMS) to X'28'. The X'28' setting results in smart snaps – 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.

UPCASMSG (new in V7.5)

The UPCASMSG parameter can be used to translate messages issued by Model 204 to uppercase; otherwise (depending on the message being issued) they are displayed in mixed (upper and lower) case.

Notes for system manager and installer

Upgrading instructions for version 7.5

Model 204 version 7.5 is an upgrade to Model 204 version 7.4.

In order to upgrade to version 7.5, you must have version 7.4 and Autofix release EW3044 installed on your system.

Autofix release EW3044 includes:

  • Early Warnings for Model 204 through 740EW172
  • Early Warnings for Dictionary/204 through 740DI016

For detailed instructions, see the 7.5 installation pages.

PRECCAIN: sharing configuration for all Model 204 jobs

A new feature in version 7.5 is the ability to provide a common configuration for all Model 204 jobs by linking PRECCAIN into your ONLINE, IFAM1, and/or IFAM4 load modules. PRECCAIN, an assembler module which you modify and link into the load modules, contains Model 204 commands and parameters set and executed, respectively, during Model 204 initialization.

Extended attribute volume (EAV) support for Fast/Reload

In version 7.5, the Fast/Reload product now functions correctly when a Model 204 file is stored, or partially stored, on an Extended Attribute Volume (EAV).

IBM z/VM CMS systems: No need to allocate 205 minidisk

For version 7.5, you only need to allocate five minidisks, not six as in previous releases. You do not need to allocate the 205 minidisk. Model 204 now works with the Dignus Systems/C compiler instead of SAS/C, and archive file DISK205 containing the SAS/C runtime library is no longer included in the installation.

CRAM SVC installation is deprecated

The CRAM SVC installation has been deprecated as of version 7.5.
Installation of CRAM-XDM is described as part of the Model 204 installation.

Documentation conversion to wiki format

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.

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 Rocket Software Documentation Library.

For details, see Model 204 documentation.

New and updated messages

Many messages have been updated and added in this release. See New and updated messages in Model 204 version 7.5 for details.