gtpi1m2rSystem Installation Support Reference

Selective Activate Exits

Selective activate exits allow you to limit the use of an E-type loader loadset to a specific ECB origin. An ECB origin can be a terminal address, communication line number, port number, user ID, NCP ALS, NCP name, and others.

To use the selective activate function you must:

Activating the Selective Activation Function

You can activate the selective activation function in the CONFIG macro or by using the ZSYSG command. When activated, selected ECBs can enter the programs in a selectively activated loadset. Otherwise, no ECBs can enter the programs in a selectively activated loadset. See TPF Operations for more information on ZSYSG.

Creating an Enable Command

To enable loadsets for specific ECB origins, create a command that builds two core-resident structures; a selective activation table and a selective activation index. The selective activation table should contain loadset names and selective activation numbers. The selective activation index should contain the ECB origins and pointers to the loadset names. Entries should be added to these structures using a user-defined enable message. To do this your command should do the following:

  1. Add the ECB origin to the selective activation index.
  2. If the loadset name is already in the selective activation table, update the index.
  3. If the loadset name is not in the selective activation table, add the entry and call the selective activate utility (COLW) to set the activation number. Update the index.
    Note:
    COLW returns an activation number of zero if the loadset has not been selectively activated.
  4. Update the file resident structure (if one exists) to allow enable requests to survive an IPL.

Figure 2 shows an example of a selective activation table. Figure 3 shows an example of a selective activation index.

Figure 2. Selective Activation Table Example

  Loadset Name                Selective Activation Number
  ------------                ---------------------------
  Joseph                      0
  Sally                       4
  Fred1                       8
Note:
In Figure 2, Joseph was enabled to be used from an ECB origin, but is not yet activated selectively. Loadsets Sally and Fred1 were selectively activated and were assigned activation numbers 4 and 8, respectively.

Figure 3. Selective Activation Index Example

  Terminal Addr              Index into Selective Activation Table
  -------------              ------------------
  020103                     0
  030567                     0, 1
  002203                     1
  292834                     1, 2
Note:
Figure 3 contains a list of ECB origins (terminal addresses) and the associated index into the selective activation table. In this example, ECBs originating on terminal 292834 can enter programs from loadsets Sally or Fred1.

Creating a Disable Command

The user-defined disable command should stop an ECB from using a loadset. This message should remove the index pointer for the selective activation index entry, and if there are no more index entries that reference the specified loadset, remove the associated selective activation table entry (if there are no more ECB origins that reference a loadset, there is no longer a need to maintain the activation number in the selective activation table). If there are no more loadsets enabled to be used by the specified ECB origin, then the index entry can be removed. By removing the table index from the index entry, ECBs originating from that origin will not have the specified loadset's activation number in their activation number list (which is used by Enter / Back to determine which version of a program to use). If a file copy of the mapping structure is maintained, then it will have to be updated to reflect the disable request.

Note:
It is entirely possible that the loadset name will not be found in either table. The user-written disable code should handle this condition. This can occur for 2 reasons:
  1. The loadset was selectively activated, but never enabled. Here, a table entry for the loadset was never created.
  2. It is possible that the loadset was enabled; however, the mapping structure is not recorded on file (for example, the enables do not survive an IPL). If an IPL were to occur after the enable and before the disable request, the disable code would not find the loadset in the tables.