Guardian Procedure Calls Reference Manual

DEFINE Considerations
DEFINEs are propagated to the new process from the process context of the caller, from a
caller-supplied buffer containing DEFINEs collected by calls to DEFINESAVE, or from both of
these. DEFINEs are propagated to the new process according to the DEFINE mode of the new
process and the propagation option specified in create-options. If both sets of DEFINEs
are propagated and both sets contain a DEFINE with the same name, the DEFINE in the
caller-supplied buffer is used. When a caller is creating its backup, the caller's DEFINEs are
always propagated, regardless of the options chosen.
The =_DEFAULTS DEFINE is always propagated, regardless of the options chosen. If the
DEFINE buffer contains a =_DEFAULTS DEFINE, that one is propagated; otherwise, the
=_DEFAULTS DEFINE in the caller's context is propagated.
Buffer space for DEFINEs being propagated to a new process is limited to 2 MB whether the
process is local or remote. However, the caller can propagate only as many DEFINEs as the
child's PFS can accommodate in the buffer space for the DEFINEs themselves and in the
operational buffer space needed to do the propagation. The maximum number of DEFINEs
that can be propagated varies depending upon the size of the DEFINEs being passed.
When a process is created, its DEFINE working set is initialized with the default attributes of
CLASS MAP.
The program-file , library-file, swap-file, or ext-swap-file can be DEFINE
names; PROCESS_CREATE_ uses the disk volume or file given in the DEFINE. If program-file
is a DEFINE name but no such DEFINE exists, an error is returned. If any of the other names
is a DEFINE name but no such DEFINE exists, the procedure behaves as if no name were
specified. This feature of accepting names of nonexistent DEFINEs as input gives the
programmer a convenient mechanism that allows, but does not require, user specification of
the location of the library file, the swap file, or the extended swap file.
For each process, a count is kept of the changes to that process' DEFINEs. This count is always
0 for newly-created processes. The count is incremented each time the procedures DEFINEADD,
DEFINEDELETE, DEFINESETMODE, and DEFINEDELETEALL are invoked and a consequent
change to the process context occurs. In the case of DEFINEDELETE and DEFINEDELETEALL,
the count is incremented by one even if more than one DEFINE is deleted. The count is also
incremented if the DEFINE mode of the process is changed. If a call to CHECKDEFINE causes
a DEFINE in the backup to be altered, deleted, or added, then the count for the backup process
is incremented.
Batch Processing Considerations
NOTE: The job ancestor facility is intended for use by the NetBatch product. Other applications
that use this facility might be incompatible with the NetBatch product.
When the process being created is part of a batch job, PROCESS_CREATE_ sends a job
process creation message to the job ancestor of the batch job. (See the discussion of job
ancestor in the Guardian Programmer's Guide.) The message identifies the new process and
contains the job ID as originally assigned by the job ancestor. This enables the job ancestor
to keep track of all the processes belonging to a given job.
For the format of the job process creation message, see the Guardian Procedure Errors and
Messages Manual.
PROCESS_CREATE_ can create a new process and establish that process as a member of the
caller's batch job. In that case the caller's job ID is propagated to the new process. If the
caller is part of a batch job, to start a new process that is part of the caller's batch job, omit
jobid or set it to -1.
PROCESS_CREATE_ Procedure (Superseded by PROCESS_LAUNCH_ Procedure) 995