This chapter discusses various installation and configuration settings required to monitor Ingres. This includes granting privileges for lesser-privileged users to monitor Ingres.
IPM provides powerful abilities to view information about any user session and the Ingres installation as a whole. It requires restricted system privileges to run.
You can install IPM so that less privileged users can use it. However, this type of installation permits any user to display large quantities of system and other user information. Users can display, for example, what other user sessions are running, what tables other users are accessing, whether a given user session is currently active, how much log file space any transaction is taking up, which user sessions are holding locks blocking which other sessions, and so on.
Note: Do not select this type of IPM installation unless you intend ordinary users to have the capability to display system and other user information.
Privileges are required to view queries or remove sessions or servers.
UNIX: By default, IPM can be run only by the Ingres system administrator. This is the account used for performing installations.
If needed, you can permit IPM to be run by less privileged users with the following command entered at the operating system prompt:
chmod 4711 ipm 
VMS: By default, IPM can be run only with operating system privileges that requires SYSPRV CMKRNL and WORLD privileges.
If needed, you can permit IPM to be run by less privileged users by installing it with enhanced privileges. To do this, type the following at the operating system prompt:
INSTALL :== $INSTALL/COMMAND
INSTALL REPLACE full_dir_spec:IPM.EXE -
$_ /OPEN/PRIV=(SYSPRV,CMKRNL,WORLD) 
IPM must be run on the same machine as the Ingres installation that is to be monitored and must be pointed at the desired installation just as any application or embedded user program.
Because IPM opens the master database (iidbdb) to get a list of databases and opens other databases to get table names, the installation must be in a state to allow database connections.
An exception is the stand-alone mode (the -s option). In stand-alone mode, IPM does not require DBMS servers to accept connections, but can show logging and locking information only, not server and session information.
The ipm command invokes IPM. If the ipm command is invoked with no options, IPM displays databases, open databases, relation and page resources, active transactions, and user lock lists for all databases in the current installation.
Some ipm command options are incompatible with other options. If you select options that are incompatible at start-up, a message is displayed that indicates the incompatibility.
Most options can be changed while running IPM from the Option Selection Screen.
The ipm command has the following format:
ipm [options]
where options are:
Reports on resources for database dbname only.
Displays system (NONPROTECT) lock lists as well as user lock lists. The -e option is the only option that affects the Lock List Display.
Displays inactive in addition to active transactions. The -i option affects the Log Transaction Display.
Reports on a specific resource type (page, table, database, and so on). If a resource type is not specified, all resource types are reported. For a list of valid resource types, see Resource Type.
Prints resources granted in null mode.
Sets refresh time for various screens. Specify a given number of seconds.
Runs IPM in stand-alone mode, in which it operates even if the DBMS server is down or not accepting connections.
Reports on a particular table. The -d option must also be used with this option.
The following resource types can be specified on the -l flag on the ipm command. These options affect only the Resource List Display:
Displays buffer manager locks. Each multiserver data buffer holds a buffer manager lock.
Displays a buffer manager database lock. This lock is used to determine the validity of cache contents. When a server opens a database, the value in this lock is used to determine if the cached information for the database is valid; therefore, it does not actually lock any resources.
Displays a buffer manager table lock. This lock type is the same as the buffer manager database lock, but operates on tables rather than databases.
Displays checkpoint resource locks. Each database that has online backup running holds a checkpoint resource lock on it.
Displays checkpoint resource locks for an Ingres cluster installation.
Displays configuration locks. This lock type is used when accessing a database config file. The config file holds database configuration information.
Displays a table control lock. It is requested to perform modify, modify to relocate, create index, create table, and drop SQL commands. This lock is also held by sessions reading a table with readlock=nolock set.
Displays createtable locks. Any user creating a table holds a createtable lock on that table.
Displays database locks. Any user connected to database holds a database lock on that database.
Displays locks of the type used to manage temporary table IDs. The lock value is used to store the next table id to use for temporary tables and does not actually lock any resource.
Displays event locks. This lock type is used by processes that use the locking system as a means to signal events. It does not actually lock any resource.
Displays extend locks. This lock type is used while extending (adding a new page to) a file. It prevents two processes from trying to add pages to the same file at the same time.
Displays journal locks. This lock type is used when accessing database journal files. It is held only by RCP (recovery process) and ACP (archiver process).
Displays open database resource locks. Each open database in a server holds this type of lock.
Displays page locks. Any user accessing a page in a table holds a page lock on that page.
Displays server database locks. Each database opened by a server holds a server database lock on it.
Displays server page locks. Each page touched by a server on behalf of a session in that server holds a server page lock.
Displays server table resource locks. Each table touched by a session in a server holds this type of lock.
Displays locks of the type used in conjunction with user defined abstract data types.
Displays table locks. Any user in a table holds a table lock on that table.
The release of IPM supplied with your current release package works only with that release. You cannot use the current release with any previous releases.