Where allowed to run: All environments (*ALL) Threadsafe: Conditional |
Parameters Examples Error messages |
The Start Database Monitor (STRDBMON) command starts the collection of database performance statistics for a specified job, for all jobs on the system or for a selected set of jobs. The statistics are placed in a user-specified database file and member. If the file or member do not exist, one is created based on the QAQQDBMN file in library QSYS. If the file or member do exist, the record format of the specified file is verified to insure it is the same.
For each monitor started using the STRDBMON command, the system generates a monitor ID that can be used to uniquely identify each individual monitor. The monitor ID can be used on the ENDDBMON command to uniquely identify which monitor is to be ended. The monitor ID is returned in the informational message CPI436A which is generated for each occurrence of the STRDBMON command. The monitor ID can also be found in column QQC101 of the QQQ3018 database monitor record.
Restrictions:
Top |
Keyword | Description | Choices | Notes |
---|---|---|---|
OUTFILE | File to receive output | Qualified object name | Required, Positional 1 |
Qualifier 1: File to receive output | Name | ||
Qualifier 2: Library | Name, *LIBL, *CURLIB | ||
OUTMBR | Output member options | Element list | Optional |
Element 1: Member to receive output | Name, *FIRST | ||
Element 2: Replace or add records | *REPLACE, *ADD | ||
JOB | Job name | Single values: * Other values: Qualified job name |
Optional |
Qualifier 1: Job name | Generic name, name, *ALL | ||
Qualifier 2: User | Generic name, name, *ALL | ||
Qualifier 3: Number | 000000-999999, *ALL | ||
TYPE | Type of records | *BASIC, *DETAIL, *SUMMARY | Optional |
FRCRCD | Force record write | 0-32767, *CALC | Optional |
INLNBRRCD | Initial number of records | 0-2147483646, *NONE | Optional |
RUNTHLD | Run time threshold | 0-2147483647, *NONE | Optional |
STGTHLD | Storage threshold | 0-2147483647, *NONE | Optional |
INCSYSSQL | Include system SQL | *NO, *YES, *INI | Optional |
FTRFILE | Filter by database file | Single values: *NONE Other values (up to 10 repetitions): Qualified object name |
Optional |
Qualifier 1: Filter by database file | Generic name, name, *ALL | ||
Qualifier 2: Library | Generic name, name | ||
FTRUSER | Filter by user profile | Generic name, name, *NONE, *CURRENT | Optional |
FTRINTNETA | Filter by internet address | Character value, *NONE, *LOCAL | Optional |
FTRLCLPORT | Filter by local port number | 0-65535, *NONE | Optional |
FTRQRYGOVR | Filter by query governor | *NONE, *ALL, *COND | Optional |
FTRCLTACG | Filter by accounting string | Character value, *NONE | Optional |
FTRCLTAPP | Filter by application name | Character value, *NONE | Optional |
FTRCLTPGM | Filter by program name | Character value, *NONE | Optional |
FTRCLTUSR | Filter by client user ID | Character value, *NONE | Optional |
FTRCLTWS | Filter by work station | Character value, *NONE | Optional |
COMMENT | Comment | Character value, *BLANK | Optional |
Top |
Specifies the file to which the performance statistics are to be written. If the file does not exist, it is created based on model file QAQQDBMN in library QSYS.
This is a required parameter.
Qualifier 1: File to receive output
Qualifier 2: Library
Top |
Specifies the name of the database file member that receives the output of the command.
Element 1: Member to receive output
Element 2: Replace or add records
Top |
Specifies the job(s) for which the database monitor is to be started.
Single values
Qualifier 1: Job name
Qualifier 2: User
Qualifier 3: Number
Top |
Specifies the type of database records to place in the outfile.
Top |
Specifies the number of records to be held in the buffer before forcing the records to be written to the file when running with a private monitor.
Top |
Specifies the number of records that can be inserted into the monitor file before an automatic extension occurs.
Top |
Specifies a filtering threshold based on the estimated run time of the SQL statement as calculated by the query optimizer. Monitor records will be created only for those SQL statements whose estimated run time meets or exceeds the specified run time threshold. If the estimated run time of the SQL statement is less than the specified threshold then no monitor records will be created for that SQL statement.
Top |
Specifies a filtering threshold based on the estimated temporary storage usage of the SQL statement. Monitor records will be created only for those SQL statements whose estimated temporary storage meets or exceeds the specified storage threshold. If the estimated temporary storage of the SQL statement is less than the specified threshold then no monitor records will be created for that SQL statement.
Top |
Specifies whether or not monitor records will be created for system-generated SQL statements. Monitor records will always be created for user-specified SQL statements. This option determines if monitor records will also be created for SQL statements generated internally by the system.
Top |
Specifies a filter based on the name of the file and library used within the SQL statement. Monitor records will be created only for those SQL statements that use the qualified file. The specified file name can be either the 10-byte short name or the 256-byte long name.
Single values
Qualifier 1: Data base file
Qualifier 2: Library
Top |
Specifies a filter based on a user profile name. Monitor records will be created only for those SQL statements that are executed by the specified user. Monitor records will not be created for SQL statements executed by a different user.
Top |
Specifies filtering based on the client's TCP/IP address or client's TCP/IP host name. Monitor records will be created only for jobs running on behalf of the specified TCP/IP address or host name.
Top |
Specifies filtering based on the local TCP/IP port number. Monitor records will be created for TCP/IP database server jobs running on behalf of the specified local TCP/IP port. Jobs named QRWTSRVR and QZDASOINIT are examples of these server jobs.
Top |
Specifies filtering based on the query governor limits.
For more information on the query governor exit program, refer to the query governor exit program (QIBM_QQQ_QUERY_GOVR) documentation in the IBM i Information Center at http://www.ibm.com/systems/i/infocenter/.
Top |
Specifies a filter based on the client special register accounting string. Monitor records will be created for SQL statements executed where the client special register accounting string matches this filter value.
The value of the accounting string can be changed through four interfaces. The Set Client Information (SQLESETI) API can change the client special register. The SYSPROC.WLM_SET_CLIENT_INFO() procedure can change the client special register. In CLI, SQLSetConnectAttr() can be used to set the SQL_ATTR_INFO_ACCTSTR connection attribute. In JDBC, the setClientInfo connection method can be used to set the ClientAccounting connection property.
Top |
Specifies a filter based on the client special register application name. Monitor records will be created for SQL statements executed where the client special register application name matches this filter value.
The value of the accounting string can be changed through four interfaces. The Set Client Information (SQLESETI) API can change the client special register. The SYSPROC.WLM_SET_CLIENT_INFO() procedure can change the client special register. In CLI, SQLSetConnectAttr() can be used to set the SQL_ATTR_INFO_APPLNAME connection attribute. In JDBC, the setClientInfo connection method can be used to set the ApplicationName connection property.
Top |
Specifies a filter based on the client special register program ID. Monitor records will be created for SQL statements executed where the client special register program ID matches this filter value.
The value of the accounting string can be changed through four interfaces. The Set Client Information (SQLESETI) API can change the client special register. The SYSPROC.WLM_SET_CLIENT_INFO() procedure can change the client special register. In CLI, SQLSetConnectAttr() can be used to set the SQL_ATTR_INFO_PROGRAMID connection attribute. In JDBC, the setClientInfo connection method can be used to set the ClientProgramID connection property.
Top |
Specifies a filter based on the client special register user ID. Monitor records will be created for SQL statements executed where the client special register user ID matches this filter value.
The value of the accounting string can be changed through four interfaces. The Set Client Information (SQLESETI) API can change the client special register. The SYSPROC.WLM_SET_CLIENT_INFO() procedure can change the client special register. In CLI, SQLSetConnectAttr() can be used to set the SQL_ATTR_INFO_USERID connection attribute. In JDBC, the setClientInfo connection method can be used to set the ClientUser connection property.
Top |
Specifies a filter based on the client special register workstation name. Monitor records will be created for SQL statements executed where the client special register workstation name matches this filter value.
The value of the accounting string can be changed through four interfaces. The Set Client Information (SQLESETI) API can change the client special register. The SYSPROC.WLM_SET_CLIENT_INFO() procedure can change the client special register. In CLI, SQLSetConnectAttr() can be used to set the SQL_ATTR_INFO_WRKSTNNAME connection attribute. In JDBC, the setClientInfo connection method can be used to set the ClientHostName connection property.
Top |
User-specified description that is associated with the database monitor. The description is stored in the monitor record that has a record ID of 3018.
Top |
Example 1: Starting Public Monitoring
STRDBMON OUTFILE(QGPL/FILE1) OUTMBR(MEMBER1 *ADD) JOB(*ALL) FRCRCD(10)
This command starts database monitoring for all jobs on the system. The performance statistics are added to the member named MEMBER1 in the file named FILE1 in the QGPL library. Ten records will be held before being written to the file.
Example 2: Starting Private Monitoring
STRDBMON OUTFILE(*LIBL/FILE3) OUTMBR(MEMBER2) JOB(134543/QPGMR/DSP01) FRCRCD(20)
This command starts database monitoring for job number 134543. The job name is DSP01 and was started by the user named QPGMR. The performance statistics are added to the member named MEMBER2 in the file named FILE3. Twenty records will be held before being written to the file.
Example 3: Starting Private Monitoring to a File in a Library in an Independent ASP
STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(134543/QPGMR/DSP01)
This command starts database monitoring for job number 134543. The job name is DSP01 and was started by the user named QPGMR. The performance statistics are added to the member name DBMONFILE (since OUTMBR was not specified) in the file named DBMONFILE in the library named LIB41. This library may exist in more than one independent auxiliary storage pool (ASP); the library in the name space of the originator's job will always be used.
Example 4: Starting Public Monitoring For All Jobs That Begin With 'QZDA'
STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*ALL/*ALL/QZDA*)
This command starts database monitoring for all jobs that whose job name begins with 'QZDA'. The performance statistics (monitor records) are added to member DBMONFILE (since OUTMBR was not specified) in file DBMONFILE in library LIB41. This library may exist in more than one independent auxiliary storage pool (ASP); the library in the name space of the originator's job will always be used.
Example 5: Starting Public Monitoring and Filtering SQL Statements That Run Over 10 Seconds
STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*ALL) RUNTHLD(10)
This command starts database monitoring for all jobs. Monitor records are created only for those SQL statements whose estimated run time meets or exceeds 10 seconds.
Example 6: Starting Public Monitoring and Filtering SQL Statements That Have an Estimated Temporary Storage Over 200 Megabytes
STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*ALL) STGTHLD(200)
This command starts database monitoring for all jobs. Monitor records are created only for those SQL statements whose estimated temporary storage meets or exceeds 200 megabytes.
Example 7: Starting Private Monitoring and Filtering Over a Specific File
STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*) FTRFILE(LIB41/TABLE1)
This command starts database monitoring for the current job. Monitor records are created only for those SQL statements that use file LIB41/TABLE1.
Example 8: Starting Private Monitoring for the Current User
STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*) FTRUSER(*CURRENT)
This command starts database monitoring for the current job. Monitor records are created only for those SQL statements that are executed by the current user.
Example 9: Starting Public Monitoring For Jobs Beginning With 'QZDA' and Filtering Over Run Time and File
STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*ALL/*ALL/QZDA*) RUNTHLD(10) FTRUSER(DEVLPR1) FTRFILE(LIB41/TTT*)
This command starts database monitoring for all jobs whose job name begins with 'QZDA'. Monitor records are created only for those SQL statements that meet all of the following conditions:
Example 10: Starting Public Monitoring and Filtering SQL Statements That Have Internet Address 9.10.111.77.
STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*ALL) FTRINTNETA(9.10.111.77)
This command starts database monitoring for all jobs. Monitor records are created only for TCP/IP database server jobs that are using the client IP version 4 address of 9.10.111.77.
Example 11: Starting Public Monitoring and Filtering SQL Statements That Have a Port Number of 8471
STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*ALL) FTRLCLPORT(8471)
This command starts database monitoring for all jobs. Monitor records are created only for TCP/IP database server jobs that are using the local port number 8471.
Example 12: Starting Public Monitoring Based on Feedback from the Query Governor
CHGSYSVAL QQRYTIMLMT(200) STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*ALL) FTRQRYGOVR(*COND)
This commands starts database monitoring for all jobs whose estimated run time is expected to exceed 200 seconds, based on the response to the query governor. In this example data will be collected only if the query is cancelled or a return code of 2 is returned by a query governor exit program. The query can be cancelled by a user response to the inquiry message CPA4259 (that is issued because the query exceeded the query governor limits) or it can be cancelled by the program logic inside the registered query governor exit program.
Example 13: Starting Public Monitoring and Filtering SQL Statements Run From iNav Run SQL Scripts
STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*ALL) FTRCLTAPP(System i Navigator - Run SQL Scripts)
This command starts database monitoring for all jobs. Monitor records are created only for those statements where the client special register CLIENT APPLNAME is System i Navigator - Run SQL Scripts.
Example 14: Starting Public Monitoring and Filtering SQL Statements Run From iNav Run SQL Scripts
STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*ALL) FTRCLTPGM(cwbunnav.exe)
This command starts database monitoring for all jobs. Monitor records are created only for those statements where the client special register CLIENT_PROGRAMID is cwbunnav.exe.
Example 15: Starting Public Monitoring and Filtering for the client user dbmusr1. FTRCLTPGM
STRDBMON OUTFILE(LIB41/DBMONFILE) JOB(*ALL) FTRCLTUSR(dbmusr1)
This command starts database monitoring for all jobs. Monitor records are created only for those statements where the client special register CLIENT_USERID is dbmusr1.
Top |
*ESCAPE Messages
*STATUS Messages
Top |