128 lines
8.4 KiB
HTML
128 lines
8.4 KiB
HTML
|
<?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="Wait for more records when end of file is reached" />
|
||
|
<meta name="abstract" content="End-of-file delay is a method of continuing to read sequentially from a database file (logical or physical) after an end-of-file condition occurs." />
|
||
|
<meta name="description" content="End-of-file delay is a method of continuing to read sequentially from a database file (logical or physical) after an end-of-file condition occurs." />
|
||
|
<meta name="DC.subject" content="end-of-file, waiting for more records" />
|
||
|
<meta name="keywords" content="end-of-file, waiting for more records" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="rbaforddbf.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="../rzaks/rzaks1.htm" />
|
||
|
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
|
||
|
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
|
||
|
<meta name="DC.Format" content="XHTML" />
|
||
|
<meta name="DC.Identifier" content="rbafoefdel" />
|
||
|
<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>Wait for more records when end of file is reached</title>
|
||
|
</head>
|
||
|
<body id="rbafoefdel"><a name="rbafoefdel"><!-- --></a>
|
||
|
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
||
|
<h1 class="topictitle1">Wait for more records when end of file is reached</h1>
|
||
|
<div><p>End-of-file delay is a method of continuing to read sequentially
|
||
|
from a database file (logical or physical) after an end-of-file condition
|
||
|
occurs.</p>
|
||
|
<p>When an end-of-file condition occurs on a file being read sequentially
|
||
|
(for example, next/previous record) and you have specified an end-of-file
|
||
|
delay time (EOFDLY parameter on the Override with Database File (OVRDBF) command),
|
||
|
the system waits for the time you specified.</p>
|
||
|
<p>At the end of the delay time, another read is done to determine if any
|
||
|
new records were added to the file. If records were added, normal record processing
|
||
|
is done until an end-of-file condition occurs again. If records were not added
|
||
|
to the file, the system waits again for the time specified. Special consideration
|
||
|
should be taken when using end-of-file delay on a logical file with select/omit
|
||
|
specifications, opened so that the keyed sequence access path is not used.
|
||
|
In this case, after end-of-file is reached, the system retrieves only those
|
||
|
records added to a based-on physical file that meet the select/omit specifications
|
||
|
of the logical file.</p>
|
||
|
<p>Also, special consideration should be taken when using end-of-file delay
|
||
|
on a file with a keyed sequence access path, opened so that the keyed sequence
|
||
|
access path is used. In this case, after end-of-file is reached, the system
|
||
|
retrieves only those records added to the file or those records updated in
|
||
|
the file that meet the specification of the read operation using the keyed
|
||
|
sequence access path.</p>
|
||
|
<p>For example, end-of-file delay is used on a keyed file that has a numeric
|
||
|
key field in ascending order. An application program reads the records in
|
||
|
the file using the keyed sequence access path. The application program performs
|
||
|
a read next operation and gets a record that has a key value of 99. The application
|
||
|
program performs another read next and no more records are found in the file,
|
||
|
so the system attempts to read the file again after the specified end-of-file
|
||
|
delay time. If a record is added to the file or a record is updated, and the
|
||
|
record has a key value less than 99, the system does not retrieve the record.
|
||
|
If a record is added to the file or a record is updated and the record has
|
||
|
a key value greater than or equal to 99, the system retrieves the record.</p>
|
||
|
<p>For end-of-file delay times equal to or greater than 10 seconds, the job
|
||
|
is eligible to be removed from main storage during the wait time. If you do
|
||
|
not want the job eligible to be moved from main storage, specify PURGE(*NO)
|
||
|
on the Create Class (CRTCLS) command for the CLASS the job is using.</p>
|
||
|
<p>To
|
||
|
indicate which jobs have an end-of-file delay in progress, the status field
|
||
|
of the Work with Active Jobs (WRKACTJOB) display shows an end-of-file wait
|
||
|
or end-of-file activity level for jobs that are waiting for a record.</p>
|
||
|
<p>If a job uses end-of-file-delay and commitment control, it can hold its
|
||
|
record locks for a longer period of time. This increases the chances that
|
||
|
some other job can try to access those same records and be locked out. For
|
||
|
that reason, be careful when using end-of-file-delay and commitment control
|
||
|
in the same job.</p>
|
||
|
<p>If a file is shared, the OVRDBF command specifying an end-of-file delay
|
||
|
must be requested before the <em>first</em> open of the file because overrides
|
||
|
are ignored that are specified after the shared file is opened.</p>
|
||
|
<div class="p">There are several ways to end a job that is waiting for more records because
|
||
|
of an end-of-file-delay specified on the OVRDBF command: <ul><li>Write a record to the file with the end-of-file-delay that will be recognized
|
||
|
by the application program as a last record. The application program can then
|
||
|
specify a force-end-of-data (FEOD) operation. An FEOD operation allows the
|
||
|
program to complete normal end-of-file processing.</li>
|
||
|
<li>Do a controlled end of a job by specifying OPTION(*CNTRLD) on the End
|
||
|
Job (ENDJOB) command, with a DELAY parameter value time greater than the EOFDLY
|
||
|
time. The DELAY parameter time specified must allow time for the EOFDLY time
|
||
|
to run out, time to process any new records that have been put in the file,
|
||
|
and any end-of-file processing required in your application. After new records
|
||
|
are processed, the system signals end of file, and a normal end-of-file condition
|
||
|
occurs.</li>
|
||
|
<li>Specify OPTION(*IMMED) on the ENDJOB command. No end-of-file processing
|
||
|
is done.</li>
|
||
|
<li>If the job is interactive, press the System Request key to end the last
|
||
|
request.</li>
|
||
|
</ul>
|
||
|
</div>
|
||
|
<p>The following example shows an end-of-file delay operation:</p>
|
||
|
<br /><img src="rbafo541.gif" alt="Example of end-of-file delay operation" /><br /><p>The actual processing of the EOFDLY parameter is more complex than shown
|
||
|
because it is possible to force a true end-of-file if OPTION(*CNTRLD) on the
|
||
|
ENDJOB command is used with a long delay time.</p>
|
||
|
<div class="p">The job does not become active whenever a new record is added to the file.
|
||
|
The job becomes active after the specified end-of-file delay time ends. When
|
||
|
the job becomes active, the system checks for any new records. If new records
|
||
|
were added, the application program gets control and processes all new records,
|
||
|
then waits again. Because of this, the job takes on the characteristic of
|
||
|
a batch job when it is processing. For example, it normally processes a batch
|
||
|
of requests. When the batch is completed, the job becomes inactive. If the
|
||
|
delay is small, you can cause excessive system overhead because of the internal
|
||
|
processing required to start the job and check for new records. Normally,
|
||
|
only a small amount of overhead is used for a job waiting during end-of-file
|
||
|
delay. <div class="note"><span class="notetitle">Note:</span> When the job is inactive (waiting) it is in a long-wait status,
|
||
|
which means it was released from an activity level. After the long-wait status
|
||
|
is satisfied, the system reschedules the job in an activity level.</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div>
|
||
|
<div class="familylinks">
|
||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="rbaforddbf.htm" title="The iSeries system provides a number of ways to read database records.">Read database records</a></div>
|
||
|
</div>
|
||
|
<div class="relconcepts"><strong>Related concepts</strong><br />
|
||
|
<div><a href="../rzaks/rzaks1.htm">Work management</a></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</body>
|
||
|
</html>
|