907 lines
26 KiB
HTML
907 lines
26 KiB
HTML
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||
|
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
|
||
|
<title>Replay Database Operation (QDBREPLAY) API</title>
|
||
|
<!-- Begin Header Records -->
|
||
|
<!-- 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. -->
|
||
|
<!-- Created by Mark Anderson for V5R1-->
|
||
|
<!-- Change History: -->
|
||
|
<!-- YYMMDD USERID Change description -->
|
||
|
<!-- 021022 JETAYLOR html and formatting cleanup -->
|
||
|
<!-- End Header Records -->
|
||
|
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
|
||
|
</head>
|
||
|
<body>
|
||
|
<a name="Top_Of_Page"></a>
|
||
|
<!--Java sync-link-->
|
||
|
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
|
||
|
</script>
|
||
|
|
||
|
<h2>Replay Database Operation (QDBRPLAY) API</h2>
|
||
|
|
||
|
<div class="box" style="width: 80%;">
|
||
|
<br>
|
||
|
Required Parameter Group:<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<table width="100%">
|
||
|
<tr>
|
||
|
<td align="center" valign="top" width="10%">1</td>
|
||
|
<td align="left" valign="top" width="50%">Input template</td>
|
||
|
<td align="left" valign="top" width="20%">Input</td>
|
||
|
<td align="left" valign="top" width="20%">Char(*)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">2</td>
|
||
|
<td align="left" valign="top">Length of input template</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Binary(4)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">3</td>
|
||
|
<td align="left" valign="top">Input template format name</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(8)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">4</td>
|
||
|
<td align="left" valign="top">Journal entry specific data</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(*)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">5</td>
|
||
|
<td align="left" valign="top">Length of journal entry specific data</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Binary(4)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">6</td>
|
||
|
<td align="left" valign="top" width="51%">Rename exit program scratchpad</td>
|
||
|
<td align="left" valign="top" width="20%">Input</td>
|
||
|
<td align="left" valign="top" width="20%">Char(*)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">7</td>
|
||
|
<td align="left" valign="top" width="51%">Error code</td>
|
||
|
<td align="left" valign="top" width="20%">I/O</td>
|
||
|
<td align="left" valign="top" width="20%">Char(*)</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
Default Public Authority: *USE<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
Threadsafe: No<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
</div>
|
||
|
|
||
|
<p>The Replay Database Operation (QDBRPLAY) API replays a database operation
|
||
|
from a single journal entry.</p>
|
||
|
|
||
|
<p>Only database journal entries are supported. Since these journal entries can
|
||
|
be quite large, the QjoRetrieveJournalEntries API should be used to retrieve
|
||
|
the journal entry. If a journal entry is passed to QDBRPLAY that is not
|
||
|
supported, the operation will fail. The following journal entries are
|
||
|
supported:</p>
|
||
|
|
||
|
<table width="75%" border="1">
|
||
|
<tr>
|
||
|
<th><strong>Journal Code</strong>
|
||
|
<th><strong>Entry Type</strong>
|
||
|
<th><strong>Description</strong>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td width="15%">D</td>
|
||
|
<td width="15%">AC</td>
|
||
|
<td width="70%">Add Constraint</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">F</td>
|
||
|
<td align="left" valign="top">CB</td>
|
||
|
<td align="left" valign="top">Change Member</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">D</td>
|
||
|
<td align="left" valign="top">CG</td>
|
||
|
<td align="left" valign="top">Change File</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">D</td>
|
||
|
<td align="left" valign="top">CT</td>
|
||
|
<td align="left" valign="top">Create File</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">D</td>
|
||
|
<td align="left" valign="top">DC</td>
|
||
|
<td align="left" valign="top">Remove Constraint</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">F</td>
|
||
|
<td align="left" valign="top">DM</td>
|
||
|
<td align="left" valign="top">Remove Member</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">D</td>
|
||
|
<td align="left" valign="top">DT</td>
|
||
|
<td align="left" valign="top">Delete File</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">D</td>
|
||
|
<td align="left" valign="top">FM</td>
|
||
|
<td align="left" valign="top">Move File</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">D</td>
|
||
|
<td align="left" valign="top">FN</td>
|
||
|
<td align="left" valign="top">Rename File</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">D</td>
|
||
|
<td align="left" valign="top">GC</td>
|
||
|
<td align="left" valign="top">Change Constraint</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">D</td>
|
||
|
<td align="left" valign="top">GO</td>
|
||
|
<td align="left" valign="top">Change Owner</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">D</td>
|
||
|
<td align="left" valign="top">GT</td>
|
||
|
<td align="left" valign="top">Grant File</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">F</td>
|
||
|
<td align="left" valign="top">MC</td>
|
||
|
<td align="left" valign="top">Add Member</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">F</td>
|
||
|
<td align="left" valign="top">MN</td>
|
||
|
<td align="left" valign="top">Rename Member</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">F</td>
|
||
|
<td align="left" valign="top">RM</td>
|
||
|
<td align="left" valign="top">Reorganize Member</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">D</td>
|
||
|
<td align="left" valign="top">RV</td>
|
||
|
<td align="left" valign="top">Revoke File</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">D</td>
|
||
|
<td align="left" valign="top">TC</td>
|
||
|
<td align="left" valign="top">Add Trigger</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">D</td>
|
||
|
<td align="left" valign="top">TD</td>
|
||
|
<td align="left" valign="top">Remove Trigger</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">D</td>
|
||
|
<td align="left" valign="top">TG</td>
|
||
|
<td align="left" valign="top">Change Trigger</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">D</td>
|
||
|
<td align="left" valign="top">TQ</td>
|
||
|
<td align="left" valign="top">Refresh Table</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p>You can use the QDBRPLAY API with database objects only. DDM files are not
|
||
|
supported. File overrides do not affect the specified object names. The API
|
||
|
does not run under commitment control even if the original journal entry was
|
||
|
performed as part of a commitable transaction. If the specified file does not
|
||
|
have the same File Level Identifier or Member Level Identifier as the file for
|
||
|
which the journal entry was originally written, a warning will sent to the job
|
||
|
log and the operation will continue.</p>
|
||
|
|
||
|
<br>
|
||
|
<h3>Authorities and Locks</h3>
|
||
|
|
||
|
<dl>
|
||
|
<dt><em> Object Library Authority</em></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>*EXECUTE</p>
|
||
|
</dd>
|
||
|
|
||
|
<dd>
|
||
|
<p><strong>Note:</strong> Additionally, the same authority is necessary as the
|
||
|
original operation. For example, if the journal entry is Create File, *ADD is
|
||
|
required.<br>
|
||
|
</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><em>Object Authorities</em></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>The same authority is necessary as was required for the original operation.
|
||
|
For example, if the journal entry is Delete File, *OBJEXIST is required.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><em>Object Lock</em></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>*EXCL or *EXCLRD for *FILE objects.</p>
|
||
|
|
||
|
<p><strong>Note:</strong> The same locks are necessary as were required during
|
||
|
the original operation. For example, if the journal entry is Delete File, *EXCL
|
||
|
is required. If the journal entry is Remove Member, *EXCLRD is required.
|
||
|
Because an exclusive lock is required, concurrent applications may not access
|
||
|
the file object identified by this API till the API has ended and any
|
||
|
concurrent applications that hold a conflicting lock cause the API to fail.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><em>Rename Exit Program Library Authority</em></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>*EXECUTE</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
<dl>
|
||
|
<dt><em>Rename Exit Program Authority</em></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>*EXECUTE</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3>Required Parameter Group</h3>
|
||
|
|
||
|
<dl>
|
||
|
<dt><strong>Input template</strong></dt>
|
||
|
|
||
|
<dd>INPUT;CHAR(*)<br>
|
||
|
|
||
|
|
||
|
<p>A structure that contains the input options used to replay the operation
|
||
|
from the journal entry. For the format of this parameter, see <a href=
|
||
|
"#SQLR0100">DBRR0100 Format</a>.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Length of input template</strong></dt>
|
||
|
|
||
|
<dd>INPUT; BINARY(4)<br>
|
||
|
|
||
|
|
||
|
<p>A variable that contains the length of the input template. The length must
|
||
|
be greater than zero and large enough to contain all the template fields up to
|
||
|
and including Disable Triggers. The length must not be larger than 32767.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Input template format name</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(8)<br>
|
||
|
|
||
|
|
||
|
<p>The format of the input template being used. The possible value is:</p>
|
||
|
|
||
|
<table>
|
||
|
<!-- cols="15 85" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>DBRR0100</em></td>
|
||
|
<td align="left" valign="top">Basic template</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p>For more information, see <a href="#SQLR0100">DBRR0100 Format</a>.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Journal entry specific data</strong></dt>
|
||
|
|
||
|
<dd>INPUT;CHAR(*)<br>
|
||
|
|
||
|
|
||
|
<p>The entry specific data from a database journal entry. If the original
|
||
|
journal entry contained any additional journal entry specific data that was
|
||
|
addressed by a pointer, that data must be moved so that the entry specific data
|
||
|
includes all the entry specific data immediately preceding the pointer
|
||
|
concatenated with the entry specific data that the pointer addresses. For
|
||
|
example, if a teraspace pointer is returned on the QjoRetrieveJournalEntries
|
||
|
API immediately after Entry Specific Data A and points to additional Entry
|
||
|
Specific Data B:</p>
|
||
|
</dd>
|
||
|
|
||
|
<dd>
|
||
|
<table width="26%" border="1" cellpadding="5">
|
||
|
<tr>
|
||
|
<td align="center">Entry Specific Data A</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center">Teraspace pointer to additional data B</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p>This must be passed to the API as:</p>
|
||
|
|
||
|
<table width="26%" border="1" cellpadding="5">
|
||
|
<tr>
|
||
|
<td align="center">Entry Specific Data A</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center">Additional Entry Specific Data B</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p><td align="left" valign="top"><img src="delta.gif" alt="Start of change">
|
||
|
</td>
|
||
|
|
||
|
<td align="left" valign="top">The teraspace pointer is in the last 16 bytes
|
||
|
of the Entry Specific Data of the retrieved journal entry. The length of
|
||
|
the data that the teraspace pointer addresses is equal to the sum of the
|
||
|
lengths of the external command length, apply information length, and the
|
||
|
remove information length. See member QDBJRNL in QSYSINC/H for more information.<img src=
|
||
|
"deltaend.gif" alt="End of change"></td>
|
||
|
<p></p>
|
||
|
|
||
|
<p>See the Journal management topic in the iSeries Information Center for
|
||
|
information on Entry Specific Data and Additional Entry Specific Data.</p>
|
||
|
|
||
|
<p><strong>Note:</strong> The entry specific data for the database operations
|
||
|
may be quite large, but is never larger than what will fit in a 16 megabyte
|
||
|
space.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Length of journal entry specific data</strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>INPUT;BINARY(4)</p>
|
||
|
|
||
|
<p>The length of the entry specific data from a database journal entry. The
|
||
|
length must be greater than zero and must be the length of the actual entry
|
||
|
specific data provided when the journal entry was originally written (including
|
||
|
any additional journal entry specific data). The length must not be larger than
|
||
|
16 773 120.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Rename exit program scratchpad</strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>INPUT; CHAR(*)</p>
|
||
|
|
||
|
<p>An area which is passed to the rename exit program. The area can contain any
|
||
|
information that the caller of the API wishes to pass on to the rename exit
|
||
|
program. A rename exit program scratchpad must be passed even if the rename
|
||
|
exit program is not specified.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Error code</strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>I/O; CHAR(*)</p>
|
||
|
|
||
|
<p>The structure in which to return error information. For the format of the
|
||
|
structure, see <a href="../apiref/error.htm#hdrerrcod">Error Code
|
||
|
Parameter</a>.</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3><a name="SQLR0100">DBRR0100 Format</a></h3>
|
||
|
|
||
|
<p>The following table shows the format of the input template parameter for the
|
||
|
DBRR0100 format. For detailed descriptions of the fields in the table, see <a
|
||
|
href="#FieldDESCR">Field Descriptions</a>.</p>
|
||
|
|
||
|
<table border width="80%">
|
||
|
<tr>
|
||
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
||
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
||
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<th align="center" valign="bottom">Dec</th>
|
||
|
<th align="center" valign="bottom">Hex</th>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top" width="10%">0</td>
|
||
|
<td align="center" valign="top" width="10%">0</td>
|
||
|
<td align="left" valign="top" width="20%">CHAR(1)</td>
|
||
|
<td align="left" valign="top" width="60%">Journal code</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">1</td>
|
||
|
<td align="center" valign="top">1</td>
|
||
|
<td align="left" valign="top">CHAR(2)</td>
|
||
|
<td align="left" valign="top">Entry type</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">3</td>
|
||
|
<td align="center" valign="top">3</td>
|
||
|
<td align="left" valign="top">CHAR(10)</td>
|
||
|
<td align="left" valign="top">Rename exit program name</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">13</td>
|
||
|
<td align="center" valign="top">D</td>
|
||
|
<td align="left" valign="top">CHAR(10)</td>
|
||
|
<td align="left" valign="top">Rename exit program library name</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">23</td>
|
||
|
<td align="center" valign="top">17</td>
|
||
|
<td align="left" valign="top">CHAR(1)</td>
|
||
|
<td align="left" valign="top">Disable triggers</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">24</td>
|
||
|
<td align="center" valign="top">18</td>
|
||
|
<td align="left" valign="top">CHAR(*)</td>
|
||
|
<td align="left" valign="top">Reserved</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3><a name="FieldDESCR">Field Descriptions</a></h3>
|
||
|
|
||
|
<p><strong>Disable triggers.</strong> The disable trigger indicator controls
|
||
|
whether new triggers that are added as a result of replaying a TC journal entry
|
||
|
should be automatically disabled.<img src="delta.gif" alt="Start of change"> The disable trigger indicator does not apply to Instead Of triggers.<img src="deltaend.gif" alt="End of change"></p>
|
||
|
|
||
|
<dl>
|
||
|
<dt><em>0</em></dt>
|
||
|
|
||
|
<dd>Do not disable new triggers.</dd>
|
||
|
|
||
|
<dt><em>1</em></dt>
|
||
|
|
||
|
<dd>Disable new triggers.</dd>
|
||
|
</dl>
|
||
|
|
||
|
<p><strong>Entry type.</strong> The journal entry type from the journal entry
|
||
|
of the operation to replay. See the Journal management topic for more
|
||
|
information on Entry type.</p>
|
||
|
|
||
|
<p>Note that a journal entry with an entry type of MN is written to the journal
|
||
|
for both a rename member operation and for the internal operations performed as
|
||
|
part of a rename file. If a journal entry type of MN that was written to the
|
||
|
journal as part of a rename file operation is passed to this API, it will be
|
||
|
ignored and no error will be returned.</p>
|
||
|
|
||
|
<p><strong>Journal code.</strong> The journal code from the journal entry of
|
||
|
the operation to replay. See the Journal management topic for more information
|
||
|
on journal codes.</p>
|
||
|
|
||
|
<dl>
|
||
|
<dt><em>D</em></dt>
|
||
|
|
||
|
<dd>Database file operation.</dd>
|
||
|
|
||
|
<dt><em>F</em></dt>
|
||
|
|
||
|
<dd>Database file member operation.</dd>
|
||
|
</dl>
|
||
|
|
||
|
<p><strong>Rename exit program name.</strong> The name of the rename exit
|
||
|
program.</p>
|
||
|
|
||
|
<dl>
|
||
|
<dt><em>*NONE</em></dt>
|
||
|
|
||
|
<dd>A rename exit program is not provided. The names of any objects referenced
|
||
|
during the replay of the operation will be the same as the object names that
|
||
|
were referenced when the journal entry was originally written to the
|
||
|
journal.</dd>
|
||
|
|
||
|
<dt><em>program-name</em></dt>
|
||
|
|
||
|
<dd>The name of the program to call which may provide a different name for any
|
||
|
object referenced in the journal entry. When a rename exit program is
|
||
|
specified, each name referenced during the replay of the operation will be
|
||
|
passed to the rename exit program. The names passed to the rename exit program
|
||
|
may be short names or long SQL names. The same name may be passed to the exit
|
||
|
program more than once if it is referenced in the internal journal entry
|
||
|
specific data more than once. If the names are changed by the rename exit
|
||
|
program, the names are case sensitive and must conform to any i5/OS and SQL
|
||
|
rules for object names. For example, if the new name of the object should be
|
||
|
"a", it must be returned from the rename exit program with the quote delimiters
|
||
|
and a lower case a. If the new name of the object should be A, it must be
|
||
|
returned from the rename exit program in upper case without redundant quote
|
||
|
delimiters. The following restrictions apply to referenced objects:
|
||
|
|
||
|
<ul>
|
||
|
<li>The library name of an SQL type or an SQL function can be changed. The SQL
|
||
|
type name or SQL function name cannot be changed.</li>
|
||
|
|
||
|
<li>Any references to objects in the body of a program object or trigger are
|
||
|
not renamed.</li>
|
||
|
|
||
|
<li>Any references to objects in the body of an SQL view other than the based
|
||
|
on files themselves are not renamed.</li>
|
||
|
|
||
|
<li>The name of a data dictionary must be the same name as its containing
|
||
|
library.</li>
|
||
|
|
||
|
<li>The library name of a constraint must be the same as the library name of
|
||
|
its file.</li>
|
||
|
</ul>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
<p>Two parameters are passed to the rename exit program. The first parameter is
|
||
|
the Rename Exit Program Parameter Template. The second parameter is the Rename
|
||
|
Exit Program Scratchpad. For more information, see <a href="#RenameDESCR">
|
||
|
Rename Exit Program Parameter</a>. The exit program may inspect the name passed
|
||
|
and leave the name as is, or it may change the name in the Rename Exit Program
|
||
|
Parameter to an alternate name.</p>
|
||
|
|
||
|
<p>For example, the journal entry contains the create of an SQL table that
|
||
|
contains a primary key constraint. The exit program will be called twice. The
|
||
|
first call will pass the table name and library. The second call will pass the
|
||
|
constraint name and library. If the name is a reference to another object and
|
||
|
is changed to reference an object that does not exist, the replay of the
|
||
|
operation will fail.</p>
|
||
|
|
||
|
<p>If the rename exit program returns an exception, the replay operation will
|
||
|
fail.</p>
|
||
|
|
||
|
<p><strong>Rename exit program library name.</strong> The library that contains
|
||
|
the rename exit program, if any. The rename exit program library name must be
|
||
|
blank if the value of the rename exit program name is *NONE.</p>
|
||
|
|
||
|
<dl compact>
|
||
|
<dt><em>library-name</em></dt>
|
||
|
|
||
|
<dd>The library name of the rename exit program.</dd>
|
||
|
</dl>
|
||
|
|
||
|
<p><strong>Reserved.</strong> A reserved field. It must contain hexadecimal
|
||
|
zeroes.</p>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3><strong><a name="RenameDESCR">Rename Exit Program Parameter</a></strong></h3>
|
||
|
|
||
|
<table border width="80%">
|
||
|
<tr>
|
||
|
<th align="center" valign="bottom" colspan="2">Offset</th>
|
||
|
<th align="left" valign="bottom" rowspan="2">Type</th>
|
||
|
<th align="left" valign="bottom" rowspan="2">Field</th>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<th align="center" valign="bottom">Dec</th>
|
||
|
<th align="center" valign="bottom">Hex</th>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top" width="10%">0</td>
|
||
|
<td align="center" valign="top" width="10%">0</td>
|
||
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
||
|
<td align="left" valign="top" width="60%">Length of rename exit
|
||
|
program parameter</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top" width="10%">4</td>
|
||
|
<td align="center" valign="top" width="10%">4</td>
|
||
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
||
|
<td align="left" valign="top" width="60%">Length of object
|
||
|
name</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top" width="10%">8</td>
|
||
|
<td align="center" valign="top" width="10%">8</td>
|
||
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
||
|
<td align="left" valign="top" width="60%">Length of object
|
||
|
library</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top" width="10%">12</td>
|
||
|
<td align="center" valign="top" width="10%">C</td>
|
||
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
||
|
<td align="left" valign="top" width="60%">Object type</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top" width="10%">16</td>
|
||
|
<td align="center" valign="top" width="10%">10</td>
|
||
|
<td align="left" valign="top" width="20%">CHAR(258)</td>
|
||
|
<td align="left" valign="top" width="60%">Object name</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">274</td>
|
||
|
<td align="center" valign="top">112</td>
|
||
|
<td align="left" valign="top">CHAR(258)</td>
|
||
|
<td align="left" valign="top">Object library name</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">538</td>
|
||
|
<td align="center" valign="top">21A</td>
|
||
|
<td align="left" valign="top">CHAR(*)</td>
|
||
|
<td align="left" valign="top">Reserved</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3><a name="FieldDESCR2">Field Descriptions</a></h3>
|
||
|
|
||
|
<p><strong>Length of rename exit program parameter.</strong> The length of the
|
||
|
structure passed to the rename exit program. The rename exit program must not
|
||
|
modify this value.</p>
|
||
|
|
||
|
<p><strong>Length of object library name.</strong> The length of the library
|
||
|
name of the referenced object. If the rename exit program modifies this length,
|
||
|
it must be greater than zero and not greater than 10. It must reflect the
|
||
|
number of characters in the new object library name.</p>
|
||
|
|
||
|
<p><strong>Length of object name.</strong> The length of the name of the
|
||
|
referenced object. If the rename exit program modifies this length, it must be
|
||
|
greater than zero and must reflect the number of bytes in the new object
|
||
|
name.</p>
|
||
|
|
||
|
<p>If the value that was passed to the rename exit program is less than or
|
||
|
equal to 10 and the rename exit program modifies this length, the new length
|
||
|
must also be less than or equal to 10 (a short system name cannot be renamed to
|
||
|
a long SQL name). If the value that was passed to the rename exit program is
|
||
|
greater than 10 the rename exit program must not modify this length (a long SQL
|
||
|
name cannot be renamed to a short name or a long SQL name of a different
|
||
|
length).</p>
|
||
|
|
||
|
<p><strong>Object library name.</strong> The library name of the referenced
|
||
|
object. If the rename exit program modifies the library name, it must be a
|
||
|
valid library name.</p>
|
||
|
|
||
|
<dl compact>
|
||
|
<dt><em>library-name</em></dt>
|
||
|
|
||
|
<dd>The library name of the referenced object.</dd>
|
||
|
</dl>
|
||
|
|
||
|
<p><strong>Object name.</strong> The name of the referenced object. If the
|
||
|
rename exit program modifies the object name, it must be a valid short object
|
||
|
name or a valid long SQL object name.</p>
|
||
|
|
||
|
<p>If the name passed to the exit program is not a long SQL object name, the
|
||
|
rename exit program must not rename the object to a long SQL object name. If
|
||
|
the name passed to the exit program is a long SQL object name, the rename exit
|
||
|
program may rename the long SQL name to another long SQL name, but the length
|
||
|
of the new long SQL name must be the same as the long SQL name passed to the
|
||
|
rename exit program.</p>
|
||
|
|
||
|
<dl compact>
|
||
|
<dt><em>object-name</em></dt>
|
||
|
|
||
|
<dd>The name of the referenced object. The name may be either a short (10
|
||
|
character) object name or a long (258 character) SQL object name.</dd>
|
||
|
</dl>
|
||
|
|
||
|
<p><strong>Object type.</strong> The type of the referenced object. The
|
||
|
following values may be passed to the exit program for the object type:</p>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
<tr>
|
||
|
<td width="5%">1</td>
|
||
|
<td width="95%">The object attribute is a constraint.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">2</td>
|
||
|
<td align="left" valign="top">The object is an SQL function (*PGM or *SRVPGM).</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">3</td>
|
||
|
<td align="left" valign="top">The object is a file (*FILE).</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">4</td>
|
||
|
<td align="left" valign="top">The object is a program object (*PGM).</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">5</td>
|
||
|
<td align="left" valign="top">The object attribute is a trigger.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">6</td>
|
||
|
<td align="left" valign="top">The object is an SQL type (*SQLUDT).</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">7</td>
|
||
|
<td align="left" valign="top">The object is an data dictionary (*DTADCT).</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">8</td>
|
||
|
<td align="left" valign="top">The object is a sort sequence or translate table (*TBL).</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">9</td>
|
||
|
<td align="left" valign="top">The object is a node group (*NODGRP).</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">10</td>
|
||
|
<td align="left" valign="top">The object is a journal (*JRN).</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p>The rename exit program must not modify this value.</p>
|
||
|
|
||
|
<p>While the rename exit program will be called for referenced journals, data
|
||
|
dictionaries, and SQL types, these objects themselves cannot cannot be renamed.
|
||
|
Furthermore, a library that contains one of these object types cannot be
|
||
|
renamed.</p>
|
||
|
|
||
|
<p><strong>Reserved.</strong> A reserved field. The rename exit program must
|
||
|
not modify this value.</p>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3><a name="Usage_Notes">Usage Notes</a></h3>
|
||
|
|
||
|
<p>If a file is created as a result of replaying a Create File (CT) entry:</p>
|
||
|
|
||
|
<ul>
|
||
|
<li>If journaling was implicitly started when an SQL table was originally
|
||
|
created, the replay operation will also implicitly start journaling to the same
|
||
|
journal.</li>
|
||
|
|
||
|
<li>The File level identifier for the created file will be the same as the File
|
||
|
level identifier of the file when it was originally created.</li>
|
||
|
|
||
|
<li>Any public authority that was specified by the AUT keyword when a file is
|
||
|
created via a CL command will be granted when the file is created.</li>
|
||
|
</ul>
|
||
|
|
||
|
<p>If a member is added as a result of replaying an Add Member operation (MC),
|
||
|
the Member level identifier for the added member will be the same as the Member
|
||
|
level identifier of the member when it was originally added.</p>
|
||
|
|
||
|
<h3>Error Messages</h3>
|
||
|
|
||
|
<table width="100%">
|
||
|
<tr>
|
||
|
<th align="left" valign="top">Message ID</th>
|
||
|
<th align="left" valign="top">Error Message Text</th>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td width="15%" valign="top">CPF24B4 E</td>
|
||
|
<td width="85%" valign="top">Severe error while addressing parameter list.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top">CPF3C21 E</td>
|
||
|
<td valign="top">Format name &1 is not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top">CPF3C39 E</td>
|
||
|
<td valign="top">Value for reserved field not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top">CPF3C3A E</td>
|
||
|
<td valign="top">Value for parameter &2 for API &1 not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top">CPF3C3B E</td>
|
||
|
<td valign="top">Value for parameter &2 for API &1 not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top">CPF3C90 E</td>
|
||
|
<td valign="top">Literal value cannot be changed.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top">CPF3CF1 E</td>
|
||
|
<td valign="top">Error code parameter not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top">CPF3200 E</td>
|
||
|
<td valign="top">All CPF32xx messages could be returned. xx is from 01 to
|
||
|
FF.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top">CPF8100 E</td>
|
||
|
<td valign="top">All CPF81xx messages could be returned. xx is from 01 to
|
||
|
FF.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top">CPF9800 E</td>
|
||
|
<td valign="top">All CPF98xx messages could be signaled. xx is from 01 to
|
||
|
FF.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td valign="top">SQL0113 E</td>
|
||
|
<td valign="top">Name is not valid.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
|
||
|
|
||
|
<hr>
|
||
|
API introduced: V5R3
|
||
|
|
||
|
<hr>
|
||
|
<center>
|
||
|
<table cellpadding="2" cellspacing="2">
|
||
|
<tr align="center">
|
||
|
<td valign="middle" align="center"><a href="#top_Of_Page">Top</a> | <a href=
|
||
|
"file1.htm">Database and File APIs</a> | <a href=
|
||
|
"jc1.htm">Journal and Commit APIs</a>| <a href="aplist.htm">APIs by
|
||
|
category</a> </td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</center>
|
||
|
</body>
|
||
|
</html>
|
||
|
|