18.08.2013 Views

LINC Programming Reference Manual - Public Support Login - Unisys

LINC Programming Reference Manual - Public Support Login - Unisys

LINC Programming Reference Manual - Public Support Login - Unisys

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CRITICAL.POINT (CP)<br />

For files being written at the last Critical Point, Report Recovery will automatically restart<br />

writing the Report from the record written at the last Critical Point. For files being read at<br />

the last Critical Point, Report Recovery will restart reading at the beginning of the file. If<br />

you find that this is not what you require, you must save the current record number,<br />

GLB.RECORDx, in the Critical Point data block and restore the value of GLB.RECORDx if<br />

the Report is restarted.<br />

Where to include Critical Points<br />

The CRITICAL.POINT; command should be used at important points in the processing<br />

cycle of the Report, such as after a record is read, but before it is written. This means that<br />

data stored for recovery is the data about to be processed.<br />

For an MCP based <strong>LINC</strong> System, regular Critical Points should be included to avoid delays<br />

at sync points and control points, when other programs using the database may be<br />

suspended waiting for this Report.<br />

For a UNIX based <strong>LINC</strong> System, regular Critical Points should be included to avoid delays<br />

in committing the locked records, when other programs using this database may be<br />

suspended waiting for this Report.<br />

OLTP<br />

Use of this command with OLTP is described in your <strong>LINC</strong> Generate Operations Guide.<br />

Critical Points in Reports Using ROC<br />

Standard ROC Reports write output to the ROC tables in the <strong>LINC</strong> Database. For MCP and<br />

OS 2200 based <strong>LINC</strong> Systems, if the database is not in transaction state when data has to<br />

be written to a ROC data structure, a transaction state will be started for the database<br />

update, and then immediately end. For a UNIX <strong>LINC</strong> System, the database will stay in<br />

transaction state until a Critical Point.<br />

ROC database activity does not affect user database activity, and so CRITICAL.POINT;<br />

commands (or SLEEP; commands) are not required to avoid long database transactions<br />

due to ROC database activity.<br />

At a Critical Point, all output for a Report is written to the database so that it may be<br />

recovered. On resumption of the Report, output continues to the same database files. The<br />

current files are not released.<br />

On recovery, the System Data items GLB.FORMDEPTH, GLB.PITCH, GLB.LINECOUNT,<br />

GLB.PAGECOUNT, and GLB.STN are returned to their current values as at the last<br />

CRITICAL.POINT. All other System Data items are set to the values held at the time of first<br />

output to the current print file.<br />

Note: ROC is not available with LDA.<br />

1-70 v

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!