entry is also required for MMP6H2 or MMP6H4, as appropriate.
The PCT entries are:
for Interlink: =
MGH1 MMP6H1
MGH2 MMP6H2
for OpenConnect:
MGH3 MMP6H3
MGHA thru MGHZ MMP6H3 (optional)
MGH4 MMP6H4
MGH5 MMP6H5
Multi tasking and multi-thread operation are supported in either implementation; however, they are handled differently. (cont.)
The Interlink version of MAGEC's TCP/IP includes built-in multi-thread capabilities. The OpenConnect solution is (cont.)
inherently multi-tasking, but accommodates multi-thread processing through a mechanism which allows you to control and (cont.)
monitor performance.
##
OpenConnect Multi-threading
The MGH4 transid is associated with the MMP6H4 program. It is the actual host processor for the mainframe. There may be (cont.)
one or more instances of MGH4 executing concurrently. The MGH3 transid is associated with the MMP6H3 program. It acts (cont.)
as a supervisor to manage traffic to the mainframe. There may be only one MGH3 executing at a time.
It is not necessary to have multiple MGH4's executing in order to support multiple clients; each will support an (cont.)
unlimited number of clients. The purpose for having multiple MGH4's executing is to share the workload and to permit (cont.)
several clients to be serviced at the same time. On a large network this can result in a significant increase in (cont.)
throughput. With only one MGH4 executing, client requests will be serviced serially. Because overhead is kept to a (cont.)
minimum, each request will be processed and completed very quickly, so several clients can easily be handled without (cont.)
any noticeable delay. This is called a single-thread operation since each request must wait for the preceding request (cont.)
to finish.
With several MGH4's executing concurrently, each can be processing a request for a different client at the same time. (cont.)
In order to have several MGH4's active, each must be "listening" on a different TCP/IP port.
On a TCP/IP network, messages are sent to a specific port# at a specific IP address. There will usually be only one IP (cont.)
address for a given computer (i.e. your mainframe), but different applications can distinguish which messages are for (cont.)
them by the port#. The port# might be imagined as analogous to an apartment number within an apartment building, the (cont.)
building address being the IP address.
The entry in Table #243 for TCPIP-PORT specifies the port# or range of port#'s to be used by MAGEC. Port#'s are 5-digit (cont.)
numbers not greater tha 65535. The specification in Table# 243 may be a single port# (i.e. 05998), or a range of (cont.)
port#'s (i.e. 05998-06008). The first (or only) port# specified is the primary port#, the remainder of numbers in the (cont.)
range (if given) are secondary port#'s.
If only one instance of MGH4 is desired, it can be started directly from a PLT entry, or by entering the transid MGH4 (cont.)
from any CICS terminal. In this case it will automatically listen on the primary port# from MAGEC Table #243's (cont.)
TCPIP-PORT specification.
If multiple instances are desired in order to support higher traffic levels, then you should not directly start MGH4 (cont.)
either from a PLT entry or from a terminal. Instead, you should start MMP6H3 (MGH3) (preferrably from a PLT entry). (cont.)
MMP6H3 is the MAGEC "Host Scheduler".
All client requests initially are addressed to the primary port#. If only one MGH4 is executing, it will receive and (cont.)
process those requests. If, instead, MGH3 is running, it will receive each client's initial request and will respond to (cont.)
the client with a message telling that client to use another port (a specific port# selected from the range of (cont.)
secondary port#'s) for all subsequent communications. If necessary, MGH3 will issue the start command to ensure that an (cont.)
MGH4 is actively listening on the assigned port#.
Through internal algorithms MGH3 balances the workload among all the active MGH4's and maintains statistics for each one. It dynamically re-tunes the network based upon current activity.
To control the maximum number of active MGH4's which MGH3 will initiate, simply increase or decrease the range of port#'s in Table #243's entry for TCPIP-PORT.
##
Dynamic Tuning
The third transid associated with MAGEC's OpenConnect solution is MGH5. It is a dynamic system monitor and tuner which (cont.)
executes periodically (perhaps every few minutes) to check on the several MGH4's which are executing and to gather (cont.)
statistics from each one. It compiles these statistics and reports them to the supervisor (MGH3). It also compares the (cont.)
recent workloads of all the MGH4's to determine whether some clients should be switched from a busy host processor to a (cont.)
less-busy one.
MGH5 occasionally issues commands to the busier MGH4's telling them to handoff clients to other MGH4's which have (cont.)
excess capacity. These handoffs occur without any interruption to the client's processing.
MGH5 is invoked by the supervisor, MGH3, periodically. If you are running a single-thread configuration, neither MGH3, (cont.)
nor MGH5 is needed, and only one port#(the primary port#) needs to be specified in Table #243's TCPIP-PORT entry. When (cont.)
MGH3 is used, there must be at least two ports, one primary and one secondary, provided in the Table #243 TCPIP-PORT (cont.)
entry.
##
Message Compression
In order to provide faster response and enable greater throughput over any network topology, MAGEC automatically (cont.)
compresses the TCP/IP messages it sends between the client and host. This compression is completely transparent to your (cont.)
applications as it is handled internally. The compression results in fewer bytes and fewer packets transmitted over the (cont.)
network; hence, lower overhead.
##
Read-Ahead Buffering
Typical application processing usually involves numerous browse operations. The MAGEC standard LOC..., SCN..., and (cont.)
FND... functions are examples of browse operations. A browse operation can also be called a pseudo-sequential read (cont.)
operation. That means that the program will be reading records in the sequence of a key, which may or may not be the (cont.)
physical sequence of records on the disk. These operations involve successive read-next accesses after having (cont.)
positioned to some point in the index using LOCKY, REDLE. Refer to the Database Administration* section of your (cont.)
Programmer's Reference for more about file accesses.
When an MMP is accessing a file which is remote, these read-next accesses would normally each involve a two-way (cont.)
communication between the client and the host. SInce the MMP can reasonably anticipate that it will do several (cont.)
succesive accesses, it would save much overhead if the MMP could signal the I/O module to try to read several records (cont.)
at a time, passing them back to the client in one larger message, into a buffer in anticipation of the MMP's future (cont.)
requests. The local I/O module would then hold the records in a buffer and return them to the MMP one at a time as they (cont.)
are requested.
That is exactly what MAGEC's read-ahead buffering capability does. The combination of the read-ahead buffering and (cont.)
message compression can make browses of remote files extremely fast and can reduce the number of bytes, number of (cont.)
packets, and number of messages sent across the network.
##
Synchronizing Data Definitions
In order for your network to support cross-system data access, it is necessary that the data definitions on the client (cont.)
systems and host systems be kept synchronized. That simply means that the DCL, KYF, ELT, and DIT definitions for any (cont.)
files you wish to access remotely should be the same on your system and on the gateway (host machine) on which those (cont.)
files reside.
The batch APUNLOAD / APLOAD processes could be used to copy the definitions from one system to another, or an online synchronize program called DCLSYNC can be used.
DCLSYNC is a program which can be executed from a Windows client machine. It can copy any Data Class' complete (cont.)
definition either to the host gateway you specify, of from the host to your local system.
You can execute DCLSYNC from an icon. It first asks you to specify the gateway you wish to copy from or to, and whether (cont.)
you wish to UPLOAD (copy to the fgateway), or DOWNLOAD (copy from the gateway to you local (cont.)
repository.
Next it dynamically builds a list box showing the DCL names defined on the source system and asks you to select the one you wish to copy.
If the Data Class you have selected is currently defined on the target system, you will be asked if you wish to overlay (cont.)
it or cancel the process. If you select OVERLAY, DCLSYNC will first copy all of the DCL, KYF, ELT, and DIT records from (cont.)
the target system to an UNDO file, then delete them all from the target system, then copy them from the source system (cont.)
and add them to the target system.
Also refer to the discussions about alias Data Class names (DC$, KY$, EL$, and DI$) in your MAGEC Installation Guide.
##
Alternate Ports
In some installations it may be desirable to have more than one MAGEC host listening for messages on different CICS (cont.)
systems running on the same mainframe. This might be done to enable accessing both a test and production CICS system (cont.)
concurrently, or perhaps an MVS and a VSE system.
If your installation includes multiple physical connections to the mainframe, then each connection will have a distinct (cont.)
IP address and there is no practical limit as to the number of connections you may have. If, however, you have only one (cont.)
physical connection to the mainframe, then there will be only one IP address and you must distinguish between multiple (cont.)
MAGEC hosts (at the same IP address) by using different Port numbers. Refer to the MAGEC Installation Guide discussion (cont.)
of TBL #243 parameters for TCPIP-PORT, etc.
MAGEC supports up to 27 MAGEC Host Schedulers (MMP6H3) listening on different ports on the same IP address. This means (cont.)
that at one mainframe, using one IP address (single connection), you could have 27 CICS regions (or partitions) (cont.)
concurrently being accessed through the network.
The basic TBL #243 parameter, TCPIP-PORT, defines a range of port numbers to be used by one instance of MMP6H3, the (cont.)
Host Scheduler. Additional ranges of port numbers can be specified using the TCPIP-PORTA thru TCPIP-PORTZ (cont.)
specifications in TBL #243. This gives you up to 26 ranges in addition to the basic range specified in (cont.)
TCPIP-PORT.
To tell each instance of MMP6H3 which range it should use, there are 26 CICS transid's defined which are synonyms for (cont.)
the basic MGH3 transid. The synonym transid's are MGHA thru MGHZ. MMP6H3 interrogates the transid used to invoke it and (cont.)
uses the corresponding range of port numbers--MGHA causes MMP6H3 to use the TCPIP-PORTA specification, etc. If you wish (cont.)
to manually initiate MMP6H3 from a CICS terminal, enter one of these transid's with no parameters following it and (cont.)
press ENTER. The program will sense that it has been invoked from a terminal and will automatically restart itself as (cont.)
an asynchronous task, freeing your terminal.
If you invoke MMP6H3 from the DFHPLT, you cannot associate any transid with it (a limitation of executing from the (cont.)
PLT); therefore, it is equivalent to executing using the transid MGH3. If the program is not initiated using ome of the (cont.)
MGHA thru MGHZ transid's it will serach for a PortID (A thru Z) to use by interrogating a special control record which (cont.)
is stored on the MAGEC MAL file. If the control record is not found, MMP6H3 will default to the setting given in the (cont.)
basic TCPIP-PORT (with no suffix) specification. If the control record is on the MAL file, MMP6H3 will use the PortID (cont.)
specified there (unless it is invalid, in which case it reverts to the basic PortID).
##
Gateways and PortID's
The range of actual port numbers associated with a PortID is defined on MAGEC Table #243 in the 27 TCPIP-PORT (thru (cont.)
TCPIP-PORTZ) settings. The assignment of a PortID to a Gateway name is made in MAGEC Table #248 (Gateway Name Table), (cont.)
which contains the IP address and PortID for each Gateway name.
Each machine which is to serve as a MAGEC Host should be associated with one Gateway name. From that it can determine (cont.)
the PortID, and range of actual port numbers, it is to listen on. The control record on the MAL file tells the Host its (cont.)
Gateway name. It uses the Gateway name to access Table #248 to obtain the Port ID setting, then uses the PortID setting (cont.)
to access Table #243 to get the actual numeric port numbers to use. If the control record is not on file it will use (cont.)
the default port numbers specified in TCPIP-PORT in Table #243.
To record the setting inthe MAL file control record you should use the GW#LOC function, which lists all the Gateway (cont.)
names defined in Table #248, then select the one which applies to this Host. To select one, point the cursor at it and (cont.)
press ENTER. A screen will be displayed showing you the result of having made this selection (the Gateway name, PortID, (cont.)
and acutal port numbers to be used)
Note that it is possible to have more than one Host on one physical machine (i.e.: a test and production region, (cont.)
etc.)with each of them known by a different Gateway name. Indeed, if they are to be running simultaneously, they must (cont.)
use different Gateway names so that they can be listening on different ports.
There should be no two Gateway names having the same IP address and the same PortID setting; but, there may well be several Gateway names having the same IP address with different PortID settings.
The MAL file (MAGEC Activity Logging file) must not be shared between two MAGEC systems. This is not only a requirement (cont.)
for the TCP/IP networking, it is a basic requirement of MAGEC. This means that the control record on the MAL file (cont.)
applies to only one MAGEC system, as it should.
MAGEC cannot determine if you have specified the same Gateway name for two Host systems. There may even be situations (cont.)
in which you intentionally do so; but those two systems' Host processors cannot be running at the same time. You should (cont.)
be careful to assign Gateway names to Host systems appropriately.
##
Synchronizing Definitions
The Gateway name is used by the Client processor to communicate with the Host, therefore the same definitions should be (cont.)
made on the Client systems and on the Host. Since thses definitions are made on the MAGEC Tables (TBL file), you may (cont.)
wish to use either the batch APUNLOAD/APLOAD jobs or the interactive Windows TBLSYNC program from a workstation to (cont.)
synchronize the definitions.
The TBLSYNC program can be executed from Windows and enables you to copy Tables from the local system to a remote Host (cont.)
system, or vice-versa. It also enables you to merge any missing entries from one ssytem to the other, leaving entries (cont.)
which are already present on the target system intact and undisturbed.
Any records whichare deleted or overlaid in any TBLSYNC process can be recovered from the archive where they were saved (cont.)
before being deleted/overlaid in the event of an error. To recover data from the archive you use the UNDOSYNC (cont.)
program.
##
Mainframe Sub-Tasks
Special considerations must be made when issuing a remote execution command from an application running on a network PC (cont.)
(using Windows) to invoke a program to be executed on the mainframe. You should first read the topic Remote Execution (cont.)
earlier in this chapter, then read this topic.
The 128-byte command within the REMOTE-XQT-REQUEST is redefined for mainframe executions as:
05 FILLER REDEFINES RXQT-COMMAND.
07 RXQT-TRANSID.
09 RXQT-MODE PIC X.
09 FILLER PIC XX.
09 RXQT-USER-VIEW PIC X.
07 RXQT-SFUNCT PIC X(6).
07 RXQT-SKEY PIC X(31).
07 RXQT-AID PIC X.
07 RXQT-DATE PIC X(8).
07 RXQT-TIME PIC X(6).
07 RXQT-INITIALS PIC X(2).
07 RXQT-EMP-NO PIC 9(9).
07 FILLER PIC X(67).
next: network04.md.txt