Resetting the terminal identifier
When you write an autoinstall program, you must consider the algorithm which your control program uses to allocate alias TERMIDs.
You must consider the consequences of a definition being deleted
by the CICS® timeout delete mechanism, and subsequently
being re-shipped and re-installed. You must decide whether your autoinstall
program should allocate the same TERMID as before (which implies
a file mapping the name by which the terminal is known in the TOR
to the alias allocated by the AOR), or whether allocation of a different
TERMID is acceptable—in which case you could use the default
aliases generated by CICS. This decision may depend
on several factors. For example:
- How your application programs allocate temporary storage queue
names. If they derive them from the TERMID (so as to associate the
queue with a particular end-user), problems of data mismatch could
occur if the queue is not emptied by transaction end (possibly due
to a failure), and TERMIDs are not allocated to the same terminals
consistently.
The best solution is for your application programs always to check before creating a temporary storage queue whether a queue of the same name already exists, and, if so, to delete it. This dispenses with the need for your autoinstall program to allocate TERMIDs consistently.
However, if your application programs do not already implement this check, it may not be possible to correct them all. In this case, your autoinstall program may need to use a mapping file, as described.
- Whether your application programs record TERMIDs for later use. For example, an application might issue an EXEC CICS START TERMID command, with a time interval after which the transaction is to be initiated against the named terminal. If, during the delay interval, the terminal definition is deleted, re-shipped, and re-installed with a different local TERMID, the started transaction could fail because the TERMID no longer exists.
If your application programs record TERMIDs in this way, your autoinstall program may need to use a mapping file.