ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzaks_5.4.0.1/rzaksprestartjobtips.htm

105 lines
9.0 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="concept" />
<meta name="DC.Title" content="Performance tips for prestart jobs" />
<meta name="abstract" content="The prestart job should do as much work as possible before it attempts to acquire an ICF program device or accept a CPI Communications conversation. The more work it does initially (allocating objects, opening database files, and so on), the less it will need to do when a program start request is received, therefore giving the transaction faster response time. The following are some additional performance considerations when using prestart jobs:" />
<meta name="description" content="The prestart job should do as much work as possible before it attempts to acquire an ICF program device or accept a CPI Communications conversation. The more work it does initially (allocating objects, opening database files, and so on), the less it will need to do when a program start request is received, therefore giving the transaction faster response time. The following are some additional performance considerations when using prestart jobs:" />
<meta name="DC.Relation" scheme="URI" content="rzaksprestarttype.htm" />
<meta name="DC.Relation" scheme="URI" content="rzaksprestartjobname.htm" />
<meta name="DC.Relation" scheme="URI" content="rzaksaboutprestartjobs.htm" />
<meta name="DC.Relation" scheme="URI" content="rzaksprestartentry.htm" />
<meta name="DC.Relation" scheme="URI" content="rzaksprestrtjobsecurity.htm" />
<meta name="DC.Relation" scheme="URI" content="rzaksprestjobspoolfile.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 2004-2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2004-2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rzaksprestartjobtips" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Performance tips for prestart jobs</title>
</head>
<body id="rzaksprestartjobtips"><a name="rzaksprestartjobtips"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Performance tips for prestart jobs</h1>
<div><p>The prestart job should do as much work as possible before it attempts
to acquire an ICF program device or accept a CPI Communications conversation.
The more work it does initially (allocating objects, opening database files,
and so on), the less it will need to do when a program start request is received,
therefore giving the transaction faster response time. The following are some
additional performance considerations when using prestart jobs:</p>
<div class="remember"><span class="remembertitle">Remember:</span> If an active prestart job entry is in the subsystem,
the subsystem periodically checks the number of prestart jobs in a pool that
are ready to service program start requests to determine if there are excessive
available prestart jobs. Excessive available prestart jobs are ended by the
subsystem gradually. However, the subsystem always leaves at least the number
of prestart jobs specified in the INLJOBS attribute in a pool.</div>
<ul><li>You should only deallocate resources specific to the transaction that
you want performed. Any resource that is commonly used for other transactions
performed by the prestart job program should remain allocated while the job
is waiting for its next request. You should leave files open and objects allocated
to save time when the next request is received.<div class="note"><span class="notetitle">Note:</span> Database files that are
left open in the prestart job generally require the same considerations as
database files that are shared in the same job. </div>
</li>
<li>Since the same QTEMP library is used for the entire life of a prestart
job, objects that are no longer needed should be deleted.<p></p>
</li>
<li>Since the same Local Data Area (LDA) is used for the entire life of a
prestart job, information can be kept and passed to the next transaction.<p></p>
</li>
<li>Since each prestart job can handle many program start requests, and has
only one job log, you may want your application to send messages to the job
log identifying the activity of the prestart job. This is also useful because
the job logs of batch prestart jobs are cleared between uses.<p></p>
</li>
<li>The job attributes of a prestart job are not changed by the subsystem
when a program start request attaches to a prestart job. The change Prestart
Job (<span class="cmdname">CHGPJ</span>) command allows the prestart job to change some
of the job attributes to those of the job description (specified in the job
description associated with the user profile of the program start request
or in the job description specified in the prestart job entry.)<p></p>
</li>
<li>If your system uses job accounting, the prestart job program should run
the <span class="cmdname">CHGPJ</span> command with the program start request value
for the accounting code parameter (<span class="cmdname">CHGPJ</span> ACGCDE(*PGMSTRRQS))
immediately after the program start request attaches to the prestart job.
This action changes the accounting code to the value specified in the user
profile associated with the program start request. Immediately before the
program finishes handling the program start request, the program should run
the <span class="cmdname">CHGPJ</span> command with the Prestart Job Entry value for
the accounting code parameter (<span class="cmdname">CHGPJ</span> ACGCDE(*PJE)). This
changes the accounting code back to the value specified in the job description
of the prestart job entry.<p></p>
</li>
<li>The class (CLS) parameter on the prestart job entry provides a way to
control the performance characteristics of two classes of prestart jobs per
prestart job entry. For example, you can provide a lower execution priority
for work that arrives when the system is already busy. </li>
</ul>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzaksprestarttype.htm" title="A prestart job is a batch job that starts running before a work request is received. The prestart jobs are started before any other types of jobs in a subsystem. Prestart jobs are different from other jobs because they use prestart job entries (part of the subsystem description) to determine which program, class, and storage pool to use when they are started.">Prestart jobs</a></div>
</div>
<div class="relconcepts"><strong>Related concepts</strong><br />
<div><a href="rzaksprestartjobname.htm" title="The fully qualified three-part name of the prestart job never changes once a prestart job is started. The user name of the fully qualified three-part job name always contains the user profile under which the prestart job is started.">Prestart job name</a></div>
<div><a href="rzaksaboutprestartjobs.htm" title="A prestart job is a job that is started before the work arrives. This allows the system to handle a request for work without the delay caused by starting a new job.">How prestart jobs work</a></div>
<div><a href="rzaksprestartentry.htm" title="You define the prestart job by using a prestart job entry. A prestart job entry does not affect the device allocation or program start request assignment.">Prestart job entries</a></div>
<div><a href="rzaksprestrtjobsecurity.htm" title="When a prestart job starts, it runs under the prestart job user profile. When a program start request attaches to a prestart job, the prestart job user profile is replaced by the program start request user profile. When the prestart job is finished handling a program start request, the program start request user profile is replaced by the prestart job user profile. If there is a group profile associated with the user profile, the group profile is also exchanged.">Security and prestart jobs</a></div>
<div><a href="rzaksprestjobspoolfile.htm" title="If a spool file is opened before a prestart job handles any program start request, the spool file is associated with the prestart job entry user profile; otherwise it is associated with the current program start request user profile.">Spooled file and the prestart job entry</a></div>
</div>
</div>
</body>
</html>