The portion of any MAGEC screen in which miscellaneous messages may be displayed, it is the rightmost half of the top line.
Secondary Key
A key for a record that is other than the Master (Primary) key and that needs not uniquely identify the record since it is used only in browse Functions in MAGEC MMP's. Alternate Index.
SERRMSG
The last three lines of any MAGEC screen. The area in which Error messages are usually displayed.
SFUNCT
The portion of the top line of any MAGEC screen in which the Function Code is entered/displayed.
SKEY
The portion of the top line of any MAGEC screen in which the key value is entered/displayed for the Function being done.
SQL
Structured Query Language. A database access language for relational databases.
Subordinate Key
See Secondary Key.
Supra
Cincom's relational database system.
TCP/IP
Transmission Control Protocol/Internet Protocol. A protocol used to communicate between networks of computers
TeraData
A database "back end machine" that is a relational SQL database system.
TP monitor
Any of the software products that is designed to support online processing against 3270-type devices and from Cobol (cont.)
applications programs in a multi-tasking environment. CICS, WESTI, or Datacom DC, etc.
TWA
Task Work Area. Main memory used by an MMP as work space and for passing data to other modules and for reading data (cont.)
into and writing from. Also used for saving data from task to task in a "pseudo-conversational" processing mode since (cont.)
it is saved and restored by the MAGEC Control Program as a service to the MMP's.
Undelete
To restore a pseudodeleted record to "undeleted" status by setting the Delete Flag in the Audit Stamp from X'FF' to blank.
Version Validation
The process of researching and comparing version numbers and creation/modification dates for all entities of an (cont.)
application to find possible sources of errors. Done using the VERZUN function of MAGEC.
VSAM
IBM's Virtual Sequential Access Method, including all its variations.
WESTI
A TP monitor that is a product of Westinghouse. No longer supported by MAGEC as of release 3.0
Workstation
A standalone computer, usually a PC, PS/2, or 9370 type machine, that is a functional replica of the main production (cont.)
system and that serves as a testing and development environment for analysts, designers, and programmers. Provides (cont.)
absolute separation of testing and production. MAGEC supports all of the workstation machines listed (cont.)
above.
#
Appendix C -- Networks
Distributed Databases
MAGEC allows for installation on a network with the ability to distribute database files across multiple servers, (cont.)
physical disk drives, and logical disk drives. When MAGEC is installed you must determine on which drive the MAGEC (cont.)
reposittory files and executable (.EXE, .DLL, .BAT, .CMD, etc.) modules are to reside. Then, for each of your (cont.)
applications' database files, you must decide where they are to reside. MAGEC provides an easy way for you to specify (cont.)
where each file resides by entering the drive ID on the KYF (Key Format) panel (refer to page 11 in this (cont.)
section).
MAGEC Software suggests the following configuration for LAN installations:
1. all of the MAGEC repository files (.DAT) should be installed on the same drive on the same server.
2. all nodes should refer to that drive using the same symbolic drive letter (i.e. G:).
3. all nodes should include the SET LANDRV=G statement in their AUTOEXEC.BAT files (assuming that G: is the correct drive ID).
4. each developer's node should have a local disk drive (usually C:) that has several megabytes available for work space and has the Cobol compiler installed in the \COBOL (MicroFocus) directory.
5. the SET LCLDRV=C (assuming that C: is the corrcet drive ID) statement should be included in each node's AUTOEXEC.BAT file.
6. as new application database files are added: if they reside on the same drive as is specified in the SET LANDRV= (cont.)
parameter, the KYF definition should leave the Drive ID specification blank. If they reside elsewhere, the Drive ID (cont.)
should be specified on the KYF panel.
7. end users must have authorization via the LAN operating system to access the servers and drives on which their applications' files reside.
8. If accessing via Windows, the SET statements must be done prior to entering Windows in order to apply to sessions within Windows.
9. It is permissable for any user to have multiple MAGEC sessions via Windows concurrently. A unique "terminal ID" is (cont.)
assigned to each session. Clipboard may be used to copy data from one window to another.
Also refer to the Networks section of your *Application User's Guide* for more about networks.
#
Appendix D -- Datacom DB
NonStandard Key & Element Names
MAGEC employs a standard for naming Data Classes, Keys, and Elements. Many of the features of MAGEC depend upon that (cont.)
standard. For Datacom DB users who have installed MAGEC at the time that they installed Datacom DB the MAGEC standard (cont.)
is a very useful one to follow when creating definitions into the Datacom dictionary; thus, the name Datacom knows each (cont.)
entity by is the same as the name MAGEC knows it by. This is the ideal configuration; however, for some users it is not (cont.)
possible.
MAGEC users who already had been using Datacom DB for some time prior to installing MAGEC will already have many Data (cont.)
Classes (Tables), Keys, and Elements defined to Datacom. These may not abide by the MAGEC standard. In order to provide (cont.)
compatibiliity for such situations, MAGEC allows you to specify the true Datacom name, if it is different from the (cont.)
MAGEC name, for each Key and Element.
Standard Names
The Data Class is given a 3-character name in MAGEC. Datacom DB requires that you define each table with a 3-character name. These names should be the same in MAGEC and Datacom.
The MAGEC standard requires that the Master key be named xxxK1(where xxx = the Data Class name). Subordinate Keys are (cont.)
named xxxK2, xxxK3, etc. Datacom permits you to give any 5-character name to your keys.
MAGEC requires that your Elements be named xxxnn (where xxx = the Data Class name, nn is any two characters, usually (cont.)
numerics). Further, special meaning is assigned to the Element names xxx00 and xxx99. The xxx00 name indicates a (cont.)
36-byte audit stamp Element. The xxx99 name indicates a 4-byte record descriptor word for variable-length (cont.)
records.
To handle situations in which your Datacom names do not match the MAGEC standard, you must define the Keys and Elements (cont.)
using the MAGEC standard names, but specify the true Datacom names in special fields within the MAGEC (cont.)
definitions.
If you have specified Datacom as the access method for a Data Class, there will appear on your KYFxxx screen and ELTxxx (cont.)
screen, special entry fields in which you can enter the true Datacom names. If you leave any of these entries blank, (cont.)
MAGEC assumes that the Datacom name is the same as the MAGEC name. These special entry fields have a prompt such as "CA (cont.)
DD Name".
Database ID's
Datacom DB permits you to define up to 999 Databases identified by 3-digit Database ID numbers. It also allows you to (cont.)
define tables with the same names in several Database numbers. For instance, you might have a CUS table in Database (cont.)
#101 and another CUS table in Database #367, et cetera.
The MAGEC DCLxxx definition provides for you to specify a test Database number and a production database number for (cont.)
each Data Class. If you do so, MAGEC's I/O module will automatically insert the appropriate Database ID into the I/O (cont.)
request based upon whether you are a test user or a production user (according to the User View you used to access (cont.)
MAGEC).
If you set the test and/or production Database number to 000 on the DCLxxx definition for a Data Class having the (cont.)
access method of Datacom, MAGEC's I/O module will not insert any Database number; rather, it will expect your (cont.)
application program to have set it (in TWA-DB-ID) as needed.
Datacom DB I/O accesses only require the Database ID to be set if SYNONYM=YES is specified in the User Requirement (cont.)
Table (URT) enabling your program to access more than one table of the same name. If not, Datacom will ingore the (cont.)
Database ID.
#
Appendix E -- MAGECSET
Setting addresses into pointers
There are numerous occasions when a programmer must load the address of some area of memeory into a pointer. One (cont.)
example of such occasion is when calling MAGEC's I/O module, refer to examples shown in "Sample Code" earlier in this (cont.)
*Database Administration* section.
If you are using Cobol II, or Cobol/370, or any other ANSI 85 standard Cobol compiler, you can set addresses into pointers using the SET verb, as:
SET MY-POINTER TO ADDRESS OF MY-DATA.
In this example, the data item named MY-POINTER must be defined as USAGE IS POINTER, though it may be redefined as PIC (cont.)
X(4) or PIC 9(9) COMP if necessary. The address of the data item named MY-DATA will be set into the 4-byte field named (cont.)
MY-POINTER.
Since not all MAGEC users are using ANSI 85 Cobol compilers, MAGEC provides a subroutine to accomplish the identical (cont.)
results as the SET statement shown above. The subroutine is named "MAGECSET", and it is used as (cont.)
follows:
CALL "MAGECSET" USING MY-POINTER MY-DATA.
In this case it does not matter whether MY-POINTER is defined as PIC X(4), PIC S9(9) COMP, or any other format. (cont.)
MAGECSET assumes that MY-POINTER is 4 bytes long and sets the address of MY-DATA into it. The above statement will work (cont.)
identically whether you are using Cobol II, Cobol/370, VS Cobol (ANSI 74), or any other Cobol compiler. It works on the (cont.)
mainframe, PC, or Unix systems identically. It is therefore more portable than the Cobol SET verb.
#
Appendix F -- Read-Ahead
TWA-DB-RETURN-CODE
The primary use for the field named TWA-DB-RETURN-CODE in the request area passed to MAGECIO is for the I/O module to (cont.)
pass a return code back to your program indicating the success or failure of your request. However, it is also possible (cont.)
for your program to pass commands to MAGECIO using TWA-DB-RETURN-CODE. One of the commands you can pass here is "RQ", (cont.)
indicating that you would like the I/O module to queue records for you since you intend to do a number of sequential (cont.)
reads (REDNX, REDPR, or REDBR commands).
If you are accessing a file that is local to you (not accessed via a Gateway), this command will be ignored by MAGECIO. (cont.)
If you are accessing a file that is remote using MAGEC's intrinsic TCP/IP networking capabilities, then MAGECIO will (cont.)
attempt to build a queue of records at the host machine and pass them as a block to the local I/O module. As your (cont.)
program requests subsequent read-nex or read-previous commands MAGECIO will satisfy them from the buffer of queued (cont.)
records until that buffer-load of records is expired, then will request another block of records from the Gateway (cont.)
machine. This reduces the number of messages transmitted between the client and host machines, and can also enhance the (cont.)
benefits of MAGEC's built-in compression of those transmissions.
Read-Ahead processing can greatly improve performance for sequential processing agains a remote file; however, its (cont.)
mis-use can impose a performance penalty. It is best to understand how read-ahead processing works in order to ensure (cont.)
optimum performance.
When your application program calls MAGECIO to access a remote file, MAGECIO in turn calls MGCLIENT. MGCLIENT formats a (cont.)
Remote I/O Command message and sends it to the appropriate Gateway (using the IP address defined for that Gateway in (cont.)
MAGEC Table #248). The message is received by the MAGEC Host program (we will assume a name of "MGHOST") which calls (cont.)
the MAGECIO module at its location to access the requested data. MAGECIO (at the remote site) returns the data to (cont.)
MGHOST which formats a Remote I/O Response message and then sends it back to the requesting MGCLIENT in your computer. (cont.)
MGCLIENT formats the data returned into your TWA and returns control back to your local MAGECIO, which returns control (cont.)
back to your program. All transmissions are compressed for improved performance.
The MGHOST running at the remote site checks whether you have set the "RQ" command into TWA-DB-RETURN-CODE, and are (cont.)
also doing one of the sequential read comamnds: REDNX, REDPR, or REDBR. If so, MGHOST will attempt to read several (cont.)
records and build a queue of records to send back to MGCLIENT, rather than sending only one record back. The number of (cont.)
records it will queue up is limited to either 16 records, or 16 KBytes of data, whichever is less.
MGCLIENT receives this transmission containing a record queue and formats the TWA using the first record from the (cont.)
queue. It holds the entire queue of records in memory, in the area into which it was received, anticipating that your (cont.)
program's next request will be for the next record from the queue. For these purposes, reqeusts to files that are not (cont.)
remote do not count; therefore, your program may read several local files in between doing REDNX's (or REDPR's, or (cont.)
REDBR's) against the remote file. If the next request is the anticipated command, MGCLIENT will simply format the TWA (cont.)
with the next record from the queue, eliminating all overhead associated with the two-way communication with MGHOST. If (cont.)
the next command is not the anticipated command, MGCLIENT will destroy the queue of records and satisfy the request by (cont.)
sending a message to MGHOST, as it normally does.
This means that any unused records in the queue are wasted. If your program then issues the next read-next request for (cont.)
the first file, it will have to be satisfied using the normal two-way communication.
As you can see, improper use of read-ahead can cause your application to do unnecessarily large transmissions and (cont.)
wasted I/O at the host site. Used properly it can greatly reduce both the number of messages sent over the network and (cont.)
the number of bytes sent (compression is more effective for the larger blocks).
It should be noted that for the read-ahead processing to work it is necessary that the TWA-DB-REQUEST area and the (cont.)
TWA-KEY-VALUE area be undisturbed from one request to the next. MAGECIO stores positioning information within these (cont.)
areas and checks for it on subsequent requests. If they have been altered MGCLIENT assumes that it cannot satisfy the (cont.)
request from its record queue and must pass the request on to MGHOST for processing. For this reason, your program (cont.)
should save both these areas after returning from MAGECIO, and restore them before the next request. This allows you to (cont.)
access other files in between. The default logic generated into your programs does the proper saving and restoring for (cont.)
your primary data class' data. The only exception to this is that the TWA-DB-RETURN-CODE will be returned to your (cont.)
program with the proper value to indicate the success of your request (usually spaces) and you will be (re)setting it (cont.)
to "RQ" prior to each call to MAGECIO.
Also refer to the Networks section of your *Application User's Guide* .
#
Appendix G -- File Opens & Closes
##
Implicit vs. Explicit Opens
When your programs access files using MAGECIO, whether in batch or online environemnts, they need never explicitly open (cont.)
the files unless they require a particular type of open different from the default which MAGECIO will use. For online (cont.)
program operating on a mainframe using CICS, your programs never issue explicit open commands and, if they do, the (cont.)
commands are ignored by MAGECIO and treated as a "no operation", exactly like the NOOPS command. For other (cont.)
environments. explicit open commands are honored, but if your program accesses a file using another command, such as a (cont.)
REDKY, prior to opening the file, an implicit open is automatically issued. SInce the file is then open, you must issue (cont.)
a close to the file before you can successfully re-open it differently. Therefore, it is usually easiest to issue your (cont.)
explicit open commands prior to your first file access to ensure that the file is opened properly.
The implicit open is done in all environments unless you explicitly issue an open command; however, in the CICS (cont.)
environment file open and close capabilities are restricted by the CICS DFHFCT parameters. Files used by MAGEC are (cont.)
normally defined to CICS to be either opened initially as CICS is started up, or enabled to open as they are accessed. (cont.)
In online programs in any environment, it is unusual for you to ever issue any open commands. Most online programs (cont.)
simply use the implicit opens. If you do need to issue explicit opens in online programs, remember that each (cont.)
transaction constitutes a complete process and all files are closed as the screen is sent back to the operator. If you (cont.)
need to use an explicit open, it will have to be repeated for every transaction, i.e. do the open command in the (cont.)
%PREINIT insertion point.
##
Default Opens
When your batch programs access files and invoke the implicit opens, a default open type is used by MAGECIO. The (cont.)
default open type is OPENU (open for input-output). This default open type is set when your program is initiated. You (cont.)
can alter the setting of the default open type, if you wish. If you alter the setting, the new setting will apply to (cont.)
next: db12.md.txt