ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/qqqdsdbm.htm

440 lines
11 KiB
HTML
Raw Permalink Normal View History

2024-04-02 14:02:31 +00:00
<!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>Dump SQL Database Monitor (QQQDSDBM) 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. -->
<!-- File SCRIPT A converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
<!-- Change History: -->
<!--File Edited March 2001 -->
<!-- This file has undergone html cleanup on 9/20/01 by JET -->
<!--End Header Records -->
<!-- YYMMDD USERID Change description -->
<!-- 050220 ktrisko Add 3030 record -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="top_Of_Page"></a>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<h2>Dump SQL Database Monitor (QQQDSDBM) API</h2>
<div class="box" style="width: 80%;">
<br>
&nbsp;&nbsp;Required Parameter Group:<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="50%">Memory handle to dump</td>
<td align="left" valign="top" width="10%">Input</td>
<td align="left" valign="top" width="30%">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Job or memory handle name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(26)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">Number of types to dump</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Subtypes and files array</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Array(*) of Char(30)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Error code</td>
<td align="left" valign="top">I/O</td>
<td align="left" valign="top">Char(*)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Service Program Name: QQQDSDBM<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Conditional; see <a href="#usage_notes">Usage
Notes</a>.<br>
<!-- iddvc RMBR -->
<br>
</div>
<br>
<p>The Dump SQL Database Monitor (QQQDSDBM) API dumps the SQL database monitor
that has been gathered. The data that is gathered will be all data that has
been committed (if the job is under commitment control) or based on a 5-minute
timer. Associated APIs include the following:</p>
<ul>
<li>Clear SQL Database Monitor Statistics (QQQCSDBM)</li>
<li>End SQL Database Monitor (QQQESDBM)</li>
<li>Query SQL Database Monitor (QQQQSDBM)</li>
<li>Start SQL Database Monitor (QQQSSDBM)</li>
</ul>
<br>
<h3>Authorities and Locks</h3>
<dl compact>
<dt><em>Current User Profile</em></dt>
<dd>*JOBCTL</dd>
<dt><em>Library Authority for New File</em></dt>
<dd>*ADD and *READ</dd>
<dt><em>Library Authority for Existing File</em></dt>
<dd>*EXECUTE</dd>
<dt><em>Existing File</em></dt>
<dd>*CHANGE and *OBJALTER</dd>
</dl>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Memory area to dump</strong></dt>
<dd>INPUT; CHAR(10)
<p>Memory area to dump. The possible values are:</p>
<table>
<tr>
<td width="15%" valign="top"><em>*ALL</em></td>
<td width="85%" valign="top">Dump the monitor data associated with the *ALL
monitor (the monitor started against all jobs). The Start SQL Database Monitor
(QQQSSDBM) must have been started with job name *ALL.</td>
</tr>
<tr>
<td valign="top"><em>*NAMED</em></td>
<td valign="top">Dump the memory handle named by the job or memory handle name
parameter (and matches the name of a memory handle specified on the QQQSSDBM
API). Only the first 6 characters will be used for naming the memory handle. If
QQQSSDBM started the monitor with *JOB, you can also name the job to be dumped
with this parameter by giving the 6-character memory handle that contains the
job number.</td>
</tr>
<tr>
<td valign="top"><em>*JOB</em></td>
<td valign="top">Dump the job-specific data associated with the job named by
the job or memory handle name parameter.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Job or memory handle name</strong></dt>
<dd>INPUT; CHAR(26)
<p>This parameter depends on the value specified for the memory area to dump
parameter. If the value is:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td width="10%" valign="top"><em>*ALL</em></td>
<td width="90%" valign="top">This parameter is ignored.</td>
</tr>
<tr>
<td valign="top"><em>*NAMED</em></td>
<td valign="top">The CHAR(6) name of a memory handle whose data is to be
dumped. Only the first 6 characters will be used for naming the memory
handle.</td>
</tr>
<tr>
<td valign="top"><em>*JOB</em></td>
<td valign="top">The CHAR(26) qualified job name of a job-specific monitor to
dump. The qualified job name has three parts:<br>
<br>
<table>
<tr>
<td width="15%" valign="top"><em>Job name</em></td>
<td width="85%" valign="top">CHAR(10). A specific job name, a generic name, or
one of following special values:<br>
<table>
<tr>
<td width="30%" valign="top"><em>* or *CURRENT</em></td>
<td width="70%" valign="top">Only the job that this program is running in. The
rest of the qualified job name parameter must be blank.</td>
</tr>
<tr>
<td valign="top"><em>*ALL</em></td>
<td valign="top">All jobs. The rest of the job name parameter must be
blank.</td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top"><em>User name</em></td>
<td valign="top">CHAR(10). A specific user profile name.</td>
</tr>
<tr>
<td valign="top"><em>Job number</em></td>
<td valign="top">CHAR(6). A specific job number.</td>
</tr>
</table>
</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Number of types to dump</strong></dt>
<dd>INPUT; BINARY(4)
<p>The number of types passed in the subtypes and files array.</p>
</dd>
<dt><strong>Subtypes and files array</strong></dt>
<dd>INPUT; Array(*) of CHAR(30)
<p>The list of all subtypes to dump and their associated receiving files. The
format of each array element is:</p>
<dl>
<dt><em>CHAR(10). Key to Dump.</em></dt>
<dd>
<p>The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td width="15%" valign="top"><em>KEYT_3000</em></td>
<td width="85%" valign="top">Summary: Arrival sequence</td>
</tr>
<tr>
<td valign="top"><em>KEYT_3001</em></td>
<td valign="top">Summary: Index used</td>
</tr>
<tr>
<td valign="top"><em>KEYT_3002</em></td>
<td valign="top">Summary: Index created</td>
</tr>
<tr>
<td valign="top"><em>KEYT_3003</em></td>
<td valign="top">Summary: Sort</td>
</tr>
<tr>
<td valign="top"><em>KEYT_3004</em></td>
<td valign="top">Summary: Temporary file</td>
</tr>
<tr>
<td valign="top"><em>KEYT_3007</em></td>
<td valign="top">Summary: Optimizer time-out or all access paths
considered</td>
</tr>
<tr>
<td valign="top"><em>KEYT_3008</em></td>
<td valign="top">Summary: Subselect processing</td>
</tr>
<tr>
<td valign="top"><em>KEYT_3010</em></td>
<td valign="top">Summary: Host variable values</td>
</tr>
<tr>
<td valign="top"><img src="delta.gif" alt="Start of Change"><em>KEYT_3030</em></td>
<td valign="top">Summary: Materialized query tables considered<img src="deltaend.gif" alt="End of Change"></td>
</tr>
<tr>
<td valign="top"><em>KEYT_TEXT</em></td>
<td valign="top">SQL statement text</td>
</tr>
<tr>
<td valign="top"><em>KEYT_QRYI</em></td>
<td valign="top">Summary: General SQL information including statement count,
maximum runtime, time last used, and so forth.</td>
</tr>
<tr>
<td valign="top"></td>
<td valign="top">This subtype is always monitored because it is required for
monitoring all other subtypes. Although it is always monitored, it will not be
dumped unless requested.</td>
</tr>
</table>
</dd>
<dd><br>
</dd>
<dt><em>CHAR(20). File name.</em></dt>
<dd>
<p>The name of the file to receive the data. The first 10 characters contain
the file name, and the second 10 characters contain the library name. A member
name of *FIRST is assumed. The following special values can be used for the
library name:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td width="15%" valign="top"><em>*CURLIB</em></td>
<td width="85%" valign="top">The job's current library</td>
</tr>
<tr>
<td valign="top"><em>*LIBL</em></td>
<td valign="top">The library list</td>
</tr>
</table>
<p>If the file already exists, it will be cleared prior to dumping the data.
The files will be created with authority of owner(*ALL) and PUBLIC(*CHANGE),
and they are owned by the profile of the job calling QQQDSDBM.</p>
</dd>
</dl>
<br>
<p><strong>Note:</strong> If a subtype is specified multiple times, only the
first occurrence of the subtype and the associated file name is honored. The
duplicates are ignored.</p>
</dd>
<dt><strong>Error code</strong></dt>
<dd>I/O; CHAR(*)
<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="usage_notes">Usage Notes</a></h3>
<p>This function is threadsafe but not thread enabled. Database monitor data is
collected in the threaded process but summarized at the job level.</p>
<p>The QQQDSDBM API does not force a clear operation (QQQCSDBM) of the memory.
Data will continue to be added to memory until the QQQCSDBM or QQQESDBM API is
called.</p>
<br>
<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">CPD0172 D</td>
<td width="85%" valign="top">Parameters passed on CALL do not match those
required.</td>
</tr>
<tr>
<td valign="top">CPD222E E</td>
<td valign="top">&amp;1 special authority is required.</td>
</tr>
<tr>
<td valign="top">CPF3012 E</td>
<td valign="top">File &amp;1 in library &amp;2 not found.</td>
</tr>
<tr>
<td valign="top">CPF3084 E</td>
<td valign="top">Eror clearing member &amp;3 in file &amp;1.</td>
</tr>
<tr>
<td valign="top">CPF3130 E</td>
<td valign="top">Member &amp;2 already in use.</td>
</tr>
<tr>
<td valign="top">CPF3CF1 E</td>
<td valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td valign="top">CPF9822 E</td>
<td valign="top">Not authorized to file &amp;1 in library &amp;2.</td>
</tr>
</table>
<br>
<hr>
API introduced: V4R3
<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="aplist.htm">APIs by
category</a></td>
</tr>
</table>
</center>
<br>
</body>
</html>