DB2 Version 9.7 for Linux, UNIX, and Windows

CREATE EVENT MONITOR (unit of work) statement

The CREATE EVENT MONITOR (unit of work) statement creates an event monitor that will record events when a unit of work completes.

Invocation

This statement can be embedded in an application program or issued interactively. It is an executable statement that can be dynamically prepared only if DYNAMICRULES run behavior is in effect for the package (SQLSTATE 42509).

Authorization

The privileges held by the authorization ID of the statement must include one of the following:
  • DBADM authority
  • SQLADM authority

Syntax

Read syntax diagramSkip visual syntax diagram
>>-CREATE EVENT MONITOR--event-monitor-name--------------------->

>----FOR UNIT OF WORK------------------------------------------->

>----WRITE TO UNFORMATTED EVENT TABLE--+-------------------------------------------+---->
                                       '-(--| unformatted-event-table-options |--)-'     

   .-AUTOSTART---.   
>--+-------------+---------------------------------------------><
   '-MANUALSTART-'   

unformatted-event-table-options

   .--------------------------------------------.   
   V  (1)   (2)                                 |   
|----------------+-TABLE--table name----------+-+---------------|
                 +-IN--tablespace name--------+     
                 | .-PCTDEACTIVATE--100-----. |     
                 '-+-PCTDEACTIVATE--integer-+-'     

Notes:
  1. Each unformatted event table option can be specified a maximum of one time (SQLSTATE 42613).
  2. Clauses can be separated with a space or a comma.

Description

event-monitor-name
Name of the event monitor. This is a one-part name. It is an SQL identifier (either ordinary or delimited). The event-monitor-name must not identify an event monitor that already exists in the catalog (SQLSTATE 42710).
FOR
Introduces the type of event to record.
UNIT OF WORK
Specifies that this passive event monitor will record an event whenever a unit of work is completed (that is, whenever there is a commit or rollback).

The creation of the unit of work event monitor does not indicate that the unit of work data will be collected immediately. The actual unit of work event of interest is controlled at the workload level.

WRITE TO
Specifies the target for the data.
UNFORMATTED EVENT TABLE
Specifies that the target for the event monitor is an unformatted event table. The unformatted event table is used to store collected unit of work event monitor data. Data is stored in its original binary format within an inlined BLOB column. The BLOB column can contain multiple binary records of different types. The data in the BLOB column is not in a readable format and requires conversion, through use of the db2evmonfmt Java™-based tool, EVMON_FORMAT_UE_TO_XML table function, or EVMON_FORMAT_UE_TO_TABLES procedure, into a consumable format such as an XML document or a relational table.
(unformatted-event-table-options)
Identifies the unformatted event table. If a value for unformatted-event-table-options is not specified, CREATE EVENT MONITOR processing proceeds as follows:
  • A derived table name is used (described below).
  • A default table space is chosen (described below).
  • PCTDEACTIVATE is set to 100.
TABLE table-name
Specifies the name of the unformatted event table. If a name is not provided, the unqualified name is equal to the event-monitor-name, that is, the unformatted event table will be named after the event monitor.

Note the following:

  • The unformatted event table is created when the CREATE EVENT MONITOR FOR UNIT OF WORK statement executes, if it doesn't already exist.
  • During CREATE EVENT MONITOR FOR UNIT OF WORK processing, if an unformatted event table is found to have already been defined for use by another event monitor, the CREATE EVENT MONITOR FOR UNIT OF WORK statement fails, and an error is passed back to the application program. An unformatted event table is defined for use by another event monitor if the unformatted event table name matches a value found in the SYSCAT.EVENTTABLES catalog view. If the unformatted event table exists and is not defined for use by another event monitor, then no table is created, any other table unformatted-event-table-options parameters are ignored, and processing continues. A warning is passed back to the application program.
  • Dropping the event monitor will not drop the unformatted event table. The associated unformatted event tables must be manually dropped after the event monitor is dropped.
  • The unformatted event tables must be manually pruned.
IN tablespace-name
Specifies the table space in which the unformatted event table is to be created. The CREATE EVENT MONITOR FOR UNIT OR WORK statement does not create table spaces.

If a table space name is not provided, the table space is chosen using the same process as when a table is created without a table space name using CREATE TABLE.

Since the page size affects the INLINE LOB lengths used, consider specifying a table space with as large a page size as possible in order to improve the INSERT performance of the event monitor.

PCTDEACTIVATE integer
If a unformatted event table is being created in a DMS table space, the PCTDEACTIVATE parameter specifies how full the table space must be before the event monitor automatically deactivates. The specified value, which represents a percentage, can range from 0 to 100. The default value is 100 (meaning that the event monitor deactivates when the table space becomes completely full). If the table space has auto-resize enabled, then it is suggested that PCTDEACTIVATE be set to 100. This option is ignored for SMS table spaces.
AUTOSTART
Specifies that the event monitor is to be automatically activated whenever the database partition on which the event monitor runs is activated. This is the default behavior of the unit of work event monitor.
MANUALSTART
Specifies that the event monitor must be activated manually using the SET EVENT MONITOR STATE statement. After a MANUALSTART event monitor has been activated, it can be deactivated only by using the SET EVENT MONITOR STATE statement or by stopping the instance.

Notes

Examples

Example 1: This example creates a unit of work event monitor UOWEVMON that will collect unit of work events that occur on the database of creation, but will write data to the default unformatted event table UOWEVMON.
   CREATE EVENT MONITOR UOWEVMON
     FOR UNIT OF WORK
     WRITE TO UNFORMATTED EVENT TABLE 
Example 2: This example creates a unit of work event monitor UOWEVMON that will collect unit of work events that occur on the database of creation and store it in the unformatted event table GREG.UOWEVENTS.
   CREATE EVENT MONITOR UOWEVMON
     FOR UNIT OF WORK
     WRITE TO UNFORMATTED EVENT TABLE (TABLE GREG.UOWEVENTS)
Example 3: This example creates a unit of work event monitor UOWEVMON that will collect unit of work events that occur on the database of creation and store it in the unformatted event table GREG.UOWEVENTS in table space APPSPACE. The event monitor will deactivate when the table space becomes 85% full.
   CREATE EVENT MONITOR UOWEVMON
     FOR UNIT OF WORK
     WRITE TO UNFORMATTED EVENT TABLE 
        (TABLE GREG.UOWEVENTS IN APPSPACE PCTDEACTIVATE 85)