**(DOM)//nnnnnn** is the key thatuniquely identifies the Domain. The prefix of "(DOM)" is constant. The two slashes (cont.) indicate that the second component of the key is null. The nnnnnn is the sequence number, that is the actual unique ID (cont.) of the Domain. The numbers 000000 through 000100 are reserved for *figurative constant Domains*, thatwe will discuss (cont.) later. The remaining numbers are for your use in defining your own Domains. **Level** must be a numeric value from 50 thru 65. These are not valid level numbers to the Cobol compiler; they merely (cont.) help you to identify this item as a Domain, not a Data Item. In a planned future release of MAGEC you may be allowed to (cont.) define structures (group items with subordinates) in your Domains--as of the current version, only elementary (cont.) definitions are supported. You should probably always specify a level number of 50 until such time as structures are (cont.) supported for Domains. **Dom. Name** is the one-to-twenty character Domain name. It is similar to a Cobol dataname and follows the same rules (cont.) for format except that you are limited to twenty characters. This is *not* a Cobol dataname, it is the Domain name. You (cont.) do not specify a Cobol dataname for a Domain since it is not the definition of any particular Data Item (field), but (cont.) rather the definition of a category of Data Items. **Lgth** has the same meaning as for a Data Item definition, except that if the Domain is a figurative constant Domain the length will be ignored (may be set to 00001). **Pattern** is the edit pattern associated with Edit Types "P" or "#", just as it is for Data Item definitions. In the (cont.) Data Item definitions, however, this field on the screen is also used for the value associated with a condition name (cont.) (88 level item). There can be no 88 level items among your Domain definitions, therefore, the prompt on the screen (cont.) omits any mention of "88-Val/". **PF6** is specified on this screen to invoke a Where-used display showing a list of Data Items thatbelong to this Domain. **Note:** The definitions of all the Data Items belonging to a given Domain need not be identical, they must simply be (cont.) compatible. As a rule-of-thumb, you should be able to do a Cobol MOVE from any one Data Item to any other Data Item (cont.) belonging to the same Domain and the resulting value should remain intact. It is permissible for some of the Data Items (cont.) to be numeric binary (COMP) while others are zoned decimal or packed (COMP-3). Certain other differences will be (cont.) permitted, but with a warning message. For example: having some of the Data Items signed numeric while some are (cont.) unsigned numeric would be accepted, but you would be given a warning that a sign could be lost. ** DOMxxx (DOM)//nnnnnn M A G E C D o m a i n Field Seq#: ...... Mode :. Level: Dom. Name: Sig Dec Sign: Usage: __ ____________________ PIC 9( __ )V9( __ ) _ _ EditType: _ Tbl: ___ Req: _ Lgth: PIC X( _____ ) Just: _ Occurs: _____ Depending On: ____________________ Redefines: ____________________ Pattern: ____________________ Prompt: ____________________ Data Item Narrative: ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ Press PF4 for browse (LOC) screen Press PF6 for Where-used Summary Press PF16 to Copy field to buffer Press PF17 to Paste data from buffer Press PF2 for field-level HELP ** Figure 05 — Domain Definition Screen ## Figurative Constants Domains defined with a sequence number less than 000101 are considered to be figurative constant Domains by MAGEC. (cont.) These have meaning in the fully-automated logical join process. A figurative constant Domain name must be one of the (cont.) valid Cobol figurative constants (e.g.: ZERO, SPACES, etc.), or a standard MAGEC-defined constant (e.g.: ONE, TWO, (cont.) etc.) . In the fully-automated logical join matching process MAGEC knows that it does not need to find a matching (cont.) Domain in order to fill in a Data Item (which is part of the primary key of a target joined Element) if it is specified (cont.) with a Domain that is a figurative constant. This gives your developers the advantage of being able to automatically join to Data Classes whose keys include some (cont.) constant prefix or suffix. For example, the SIF Data Class (Security Information File) has a key that is composed of (cont.) two component fields: a key prefix that is always valued ZERO, plus an employee number. MAGEC knows that by moving ZERO (cont.) to the key prefix and moving an employee number into the employee number portion of the key it can construct a full-key (cont.) read of the SIF data. Imagine, for example, a purchase order file with the header records having a key prefix of ONE, (cont.) the detail records having a prefix of TWO, and the trailer records having a prefix of THREE. Each of these record types (cont.) could be defined as a separate Data Class with individual KYF (key), ELT ( Element), and DIT (Data Item) (cont.) definitions. The length or number of digits (significant or decimal places) have no real meaning for figurative constant Domains. (cont.) When you define the Domain you can specify any value greater than zero. When you define Data Items belonging to such a (cont.) Domain, MAGEC will not care whether the length of the Data Item matches the length of the Domain (cont.) definition. # Compressed Data MAGEC includes the ability to compress data files in order to save disk space. This feature is included in the PC and (cont.) UNIX versions of MAGEC as of release 2.6; it is planned for inclusion into the mainframe versions in a future (cont.) release. To define and use a compressed file : On the DCL definition screen specify MAGCMPRS access method. specify fixed-length (F) mode. In programs read and write the records as if they were fixed-length. When loading the file use MAGINIT to initialize the file before loading records use either an online program, or a batch program you have written thatcalls the MAGEC I/O module. The mainframe MAGEC system will accept the MAGCMPRS specification as an access method, but will treat it as equivalent to VSAM--records will be store in their full size, uncompressed. # Appendix A -- Error Codes and Messages ## CICS Abend Codes In testing and using MAGEC applications you might encounter a Transaction Failure with an accompanying Abend Code. If (cont.) there is an error in the MMP itself or in the MAGEC software then the Abend Code might be one of CICS's standard ones, (cont.) such as ASRA or AICA. If you have attempted to execute a program that has not yet been installed then you might receive (cont.) the APCT code. These are standard codes that are documented in IBM manuals. MAGEC will, in certain situations, deliberately abort the task with a MAGEC-specified Abend Code. In PC MAGEC these (cont.) codes are displayed on the top line of the screen, much as they are in CICS. Most of the conditions which will cause (cont.) MAGEC to do this regard database or related problems. The MAGEC Abend Codes which you might encounter (cont.) are: DBGM A Getmain command has failed (MAGECCP) DBVS A fatal VSAM return code was received (possible incorrect definition to TP monitor) The following Abend Codes consist of the prefix "DB" plus a two-digit number. These two-digit numbers are consistent with the error return codes placed into the MAGECIO Request area. DB01 Invalid I/O request attempted DB02 No such file defined DB03 No such key name defined (path) DB04 Invalid Record ID DB05 File is Closed (or Open Failure) DB06 File Opened Read-Only, Update attempted DB07 File is Full, cannot add records DB08 Index is Full DB09 Prerequisite for this command not met DB10 Attempt to add Duplicate record DB11 Attempt to alter Primary Key Value in record DB12 Internal record problem DB13 Internal record problem DB14 No Record Found, or End of List DB16 Exclusive Control Interlock -or- Record updated by another task DB17 Hardware Failure or File or Index Corrupted DB22 Element not defined DB23 Security violation DB24 Too many exclusive controls DB30 Bad Command for file DB35 Open/Close failure DB36 Database not Open DB81 Error retrieving repository definitions for file (PC) DB82 Error retrieving repository definitions for file (PC) DB83 Error retrieving repository definitions for file (PC) DB8E No Element record found for Data Class DB8F Table overflow - internal KYF/ELT table DB90 Unsupported command DB92 Commit/Rollback failed DB93 Inconsistent Element/Key Name DB94 Unknown access method DB95 Invalid Element List (not terminated by Spaces) DB96 Too many Exclusive Control requests DB97 Attempt to Update an Audit-Stamp DB98 No Exclusive Control Data (MAGECIO) DB99 ELT or KYF definition not found (MAGECIO) DB9G Incorrect Gateway for file (TCP/IP) DB9H MAGEC Host not responding (TCP/IP) DB9I MGCLIENT not installed / inaccessible (TCP/IP) DBCE Critical file Error DBCL Bad concurrent load DBCM Critical file missing DBDC Data Class missing DBDK Index error on duplicate key of alternate index DBET Enqueue table error DBNS No dynamic storage DBPK Prime Key missing DBTO Table Load timeout DBTS No more table space DB1S Invalid command against a sequential file DBRL Incorrect record length (LRECL) MUxx MAGEC User-requested abend (via ABEND command to MAGEC I/O) ** Note ** The CICS abend codes are normally constructed using the standard MAGECIO return codes prefixed by "DB". ## Error Messages MAGEC or the MAGEC-generated MMP's might occasionally issue an error message that is displayed in either SCOMPL (top (cont.) line of screen) or SERRMSG (bottom lines of screen) because they have detected an error associated with the database or (cont.) files. This section will list the messages possible and suggested corrective actions where (cont.) appropriate. TWA area clobbered by I/O The MMP has probably read (into TWA-DB-DATA) more data than is defined in the copybook(s) or data definition(s). The (cont.) file data has overlayed the VARIABLE-STORAGE area that is below TWA-DB-DATA in the TWA. io ERROR has occurred The MMP has issued an UPDAT, or DELET command for a record which it (is supposed to have) read with intent to update (cont.) and the specified record can not now be found. This might be a coding error in customization logic which destroys the (cont.) TWA-DB-REQ-SAV area in the TWA or it may be a legitimate I/O error or the specified record may have been deleted from (cont.) another region/partition/machine. DUP RECORD Pending Delete The MMP has tried to add a record having a key value that is a duplicate of the key value for a record which has been (cont.) "pseudodeleted" and has not yet been purged from the file. This error should occur only on Data Classes having Audit (cont.) Stamps specified. If it occurs on other Data Classes then it might mean that an actual duplicate record was added by (cont.) another task while the operator was keying onto the screen and therefore this message should be interpreted as meaning (cont.) the same thing as DUPLICATE RECORD ON FILE in that case. Error retrieving MSKnnn -or- MSK652 The MMP issued a command to read its Mask initialization record from the MSK file and the command failed. The contents (cont.) of the field TWA-DB-RETURN-CODE will indicate the type of error, see Abend Codes above. MMPnnn illegally entered The MMP was entered either from the MAGEC Control Program or from another MMP via FTHFUNCT command and it detected that (cont.) the Function Code in SFUNCT (top line of screen) is not one of its valid Functions. It may be that the wrong MMP number (cont.) is specified for that Function on the FCD file or that the %FUNCT customization logic is wrong for this (cont.) MMP. MSKnnn Altered - ReCompile MMPnnn The MMP has detected that its Mask has been changed (that MSKCREAT has been run for it) and that the version number on (cont.) the MSK file record for the Mask does not match the version number in the Mask copybook. Recompile (MMPCREAT) the MMP (cont.) and be sure the TP monitor recognizes that there is a NEW COPY of the program then retry. You may check the version (cont.) numbers by using the MSKSEE nnn Function and comparing the number shown against the version number shown in the (cont.) copybook. You may see the copybook using the LBRSEE MSKnnn-C//002 Function. ERR91A-Warning - Bad Data on File The MMP was generated (MMPCREAT) with the VERIFY option and it has detected non-numeric data in numeric fields of the (cont.) file. The bad fields will appear as asterisks (*) on the screen and may be corrected using the MMP's ...CHG Function if (cont.) desired. attempt to FALL THRU program The MMP contains a coding error in the customization logic that is causing it to "fall through" the end of the program. (cont.) Most likely cause is an incorrect PERFORM THRU or GO TO. Check the customization algorithms for such coding (cont.) errors. WARNING - MAL LOG FILE IS FULL The Activity Logging feature is generated in the MAGEC nucleus (TIMACCT = YES in ALAPARMS) and the MAL file has no more (cont.) room to add records. Execute the MALUTIL program to extract the statistics to a backup tape and then either increase (cont.) the file size or "clear" it by deleting all the records from it. This condition will not prevent the online Functions (cont.) from processing but will cause the Activity Log data to be incomplete. WARNING - LOGGING ERRnn - MAL FILE An I/O error (other than File Full) was detected in reading, adding to, or updating on the MAL file. The Error Return (cont.) Code will be in the TWA field and will also be displayed in this message, see Abend Codes above. This condition will (cont.) not prevent online processing but will cause the statistics to be incomplete. Next: https://magec.com/DOC/markdown/db12.md.txt