Integration Plumbers // Docs

Documentation for Integration Plumbers products.

IBM Db2 plug-in for Oracle Enterprise Manager: AI troubleshooting guide

This file is written to be loaded into an AI assistant, and to be read by a database administrator. It is self-contained: the assistant needs no other document to use it.

How to use this file

What the plug-in is. The IBM Db2 plug-in for Oracle Enterprise Manager, made by Integration Plumbers, monitors Db2 for Linux, UNIX and Windows (11.5 and 12.1) from an Enterprise Manager management agent. The agent connects to Db2 over JDBC with an ordinary monitoring user (CONNECT and SQLADM) and runs every collection. Nothing is installed in the database. Its plug-in ID is ip.em.xdb2.

The two target types.

Target type Internal name What it represents
IBM Db2 Database ip_db2_database One Db2 database: single-partition, partitioned (DPF), or pureScale (member and CF health only)
IBM Db2 Instance ip_db2_instance One Db2 instance (database manager) on one server

The Monitoring Readiness page. Both target types have a Monitoring Readiness page in the console. On an IBM Db2 Database target, each time the page opens and each time you press Check again, the agent runs the checks live under the target’s monitoring credentials (the readiness_detail metric; nothing is stored). For each check the page shows a status word, the label, what it needs, what is set now (current), a detail sentence, and, where a statement fixes it, the statement under Statement to run with a Copy to Clipboard button. The page never runs a statement itself.

To use this file with the page.

  1. Open the target’s Monitoring Readiness page and press Check again.
  2. Read the note under the button. Checked live on the agent at a time means the live check answered. Any other note means the panels show stored data (see “When the page shows stored data” below).
  3. Copy every item that is not OK: its panel, label, status word, current value, needs value, detail text and statement.
  4. Give this file and those results to your assistant, with the Db2 version, the Enterprise Manager version (24ai or 13.5), and whether the agent runs on the Db2 server.
  5. Find each item below by its section id and item id, which are in the headings. The page shows panel titles, not ids; the table under “Readiness checks” maps one to the other.

Every statement in this file is for an administrator to review and run. The plug-in changes nothing on the server. The monitoring user holds no authority to change configuration, so a fix statement fails if you run it as that user. Run SQL statements connected to the database as a user with the authority the statement needs; run UPDATE DB CFG and other command line processor (CLP) commands as the instance owner or a user with SYSADM, SYSCTRL or SYSMAINT. From a shell, prefix a CLP command with db2, for example db2 "UPDATE DB CFG FOR SAMPLE USING MON_REQ_METRICS BASE".

Remove secrets before you share anything. Passwords, licence keys, keytabs and Kerberos tickets must not appear in text you send to an assistant or to support.

Status words

Probe status Page word Meaning
ok OK The check ran and the requirement is met.
warn Attention The feature works with a limit, or an optional feature is not set up.
fail Not functional A required check ran and failed. The pages that depend on it are empty or wrong.
unknown Unknown The check did not run or could not decide. Unknown means not checked. It is never a pass.

Each item is either required or optional (the page shows an optional badge). An optional item that fails counts as Attention, never Not functional, and an optional item that is Unknown does not colour its panel. A panel shows the worst weight of its items in the order Not functional, Attention, Unknown, OK; a panel reads Unknown only when every item in it is Unknown.

The line above the panels reads one of: All checks pass., No check needs attention; N could not be judged yet., 1 check needs attention., N checks need attention., or No check could be judged yet. The Overview page’s Readiness row counts the same checks once an hour (the readiness_summary metric), so it can be up to an hour behind the page.

When the page shows stored data instead of the live check

While the live check runs, and when it does not answer, the page fills the panels from the latest stored collections in the Enterprise Manager repository: License, CollectorStatus, Monitor_Metrics and HADR_Readiness. The caption then reads Read from the latest stored collections when the page opened., sometimes with when Collector Status was collected.

What the note says Meaning What to do
Checking live on the agent… The live check is running. Check again is disabled until it settles. Wait up to 30 seconds.
The live check is not available on this target (it needs plug-in metadata 4.6) or did not answer, so the panels show the latest stored collections. The target runs plug-in metadata older than 4.6, or the read failed or returned nothing. Deploy the current plug-in to the agent that monitors the target. Check that the target’s agent is up and reachable from the OMS (emctl status agent on the agent host). Press Check again.
The live check did not answer within 30 seconds, so the panels show the latest stored collections. Check again to retry. The agent did not answer in 30 seconds. Check that the agent host is not overloaded, then press Check again.

In stored mode some items are missing, because only the live check can answer them: the monitoring connection, the supported version and topology, the monitor authority, and the whole Deadlock Capture panel. A stored item that has no data yet reads Unknown with not collected yet and says how often its source is collected (License every 15 minutes, Collector Status every 5 minutes, Monitor_Metrics every 60 minutes, HADR_Readiness every 5 minutes). A source that could not be read says could not be read from the Enterprise Manager repository. Reload the page to try again.

The IBM Db2 Instance target has no live check. Its page always shows stored data, with two panels: Connection and Collection (licence and metric collection) and Diagnostic Log Monitoring. Check again re-reads the stored data.

Readiness checks

These are the items the live check emits on an IBM Db2 Database target, in page order. The section id is the panel; the item id identifies the row.

Panel (section id) Item label (item id) Required Live or stored
Connection and Collection (connection) Monitoring connection (connection) yes live only
Connection and Collection (connection) Plug-in license (license) yes both
Connection and Collection (connection) Supported Db2 version and topology (platform) yes live only
Connection and Collection (connection) Monitor authority (MON_GET_* functions) (monitor_authority) yes live only
Connection and Collection (connection) Metric collection (collection) yes both
Connection and Collection (connection) GroupName collection (group:<GroupName>), one per failing group yes, except four optional groups both
Connection and Collection (connection) Groups disabled (disabled), only when a group is disabled yes both
Connection and Collection (connection) Groups not collected yet (pending), only when a group has never collected optional both
Monitor Switches (monitor_switches) Request metrics (mon_req_metrics) (mon_req_metrics) yes both
Monitor Switches (monitor_switches) Activity metrics (mon_act_metrics) (mon_act_metrics) yes both
Monitor Switches (monitor_switches) Object metrics (mon_obj_metrics) (mon_obj_metrics) yes both
Deadlock Capture (deadlock_capture) Deadlock event monitor (event_monitor) optional live only
HADR (hadr) HADR configured or HADR checks (configured) optional both
HADR (hadr) Takeover ready - db / standby (takeover@<db>/<standby>) optional both
HADR (hadr) Standby connected - db / standby (connected@<db>/<standby>) optional both
Diagnostic Log Monitoring (diag_log) Management Agent on the Db2 server (local_agent) optional both

The OMS licence instance count is not a readiness check. When it fails it shows up as the group:License item (see “The OMS licence instance count” below).

In the fix statements below, <monitoring user> is the user the target connects as (the page prints the actual name, from Db2’s CURRENT USER), and <db> is the database name (the page prints it, from CURRENT SERVER).

How to read an Unknown reason

Current value Meaning
not checked with Not checked: the connection failed. The monitoring connection failed, so the checks that need it did not run. Fix connection first.
not checked with Not checked: an HADR standby accepts no connections. The database is an HADR standby without reads on standby. See connection below.
undetermined The check ran and failed for a reason other than the one it tests. The detail carries Db2’s message. Read it as the evidence.
not determined A target property the check needs has not resolved yet.
(not set) The value was empty.

A detail that ends in Driver reason: carries the JDBC driver’s message, as SQLSTATE <state>: <message> when there is an SQLSTATE.

Section connection, item connection: Monitoring connection

Section connection, item license: Plug-in license

Section connection, item platform: Supported Db2 version and topology

Section connection, item monitor_authority: Monitor authority (MON_GET_* functions)

Section connection, item collection: Metric collection

Section connection, item group:<GroupName>: GroupName collection

Section connection, item disabled: Groups disabled

Section connection, item pending: Groups not collected yet

Section monitor_switches, items mon_req_metrics, mon_act_metrics, mon_obj_metrics

Section deadlock_capture, item event_monitor: Deadlock event monitor

Section hadr, item configured: HADR configured, or HADR checks

Section hadr, items takeover@<db>/<standby> and connected@<db>/<standby>

One pair per standby the primary reports, for example takeover@SAMPLE/1.

Section diag_log, item local_agent: Management Agent on the Db2 server

Collection failures and Enterprise Manager set-up

The OMS licence instance count

A licence key that names an instance count (not Unlimited) is checked against the number of IBM Db2 Database targets, which the plug-in counts by asking the OMS. IBM Db2 Instance targets never count and never contact the OMS.

TLS connections and the client truststore

The target’s Use SSL/TLS? property (ip_db2_database_use_secure) turns on TLS. The truststore is the credential set IBM DB2 Client Truststore Monitoring Credentials (DB2TruststoreMonitoringCreds): Client Truststore Location (an absolute path on the agent host), Client Truststore Type and Client Truststore Password. With no truststore set, the agent Java’s default cacerts is used. A TLS problem is never reported as the database being down.

The monitoring connection item’s detail names the TLS cause:

Detail Fix
the server’s TLS certificate is not trusted. Add its certificate, or the CA that signed it, to the truststore set on the target. Import the server certificate or its CA into the truststore file, or point the truststore credential set at a file that holds it.
the server’s TLS certificate does not name the host this target connects to (TLS hostname validation). Connect by a host name the certificate holds, or set TLS Hostname Validation (ip_db2_database_ssl_hostname_validation) to OFF to keep the trust check without the name check.
the TLS handshake failed: no TLS protocol version or cipher in common with the server. Compare the server’s SSL_VERSIONS and SSL_CIPHERSPECS with what the agent’s Java supports.

For Amazon RDS for Db2 over TLS, import every certificate in AWS’s CA bundle, not only the first.

Jobs on a TLS target. RUNSTATS, Force Application, Online Backup (including Back Up Database) and Explain SQL Statement use the same truststore credential set. On a target with Use SSL/TLS? = yes they need the set even when the target relies on the Java default cacerts. Without it Enterprise Manager fails the job at once with Unable to resolve credential reference or Default preferred credentials are not set. Point the set at <agent JDK>/jre/lib/security/cacerts (<agent JDK>/lib/security/cacerts on JDK 9 or later), with the type that keytool -list -keystore <that file> reports. The file must be readable by the agent owner. The jobs recognise yes, YES and Yes.

Kill: preferred host credentials and a local agent

Kill on the Sessions page and on a root blocker’s row on the Locks page submit the job Kill IBM Db2 Application (ip_db2_kill_application), which runs db2 force application on the Db2 server. It runs without asking for credentials, so the target needs preferred credentials.

Back Up Database and the remote admin jobs: admin and agent-owner credentials

Back Up Database on the Backup page submits IBM Db2 - Online Backup (remote) (ip_db2_admin_backup, job type 1.6). It runs BACKUP DATABASE … ONLINE through SYSPROC.ADMIN_CMD on the database connection, so it works from a local or a remote agent. It does not use the host credentials of the Kill job.

Explain Plan

Explain Plan in Statement Detail runs IBM Db2 - Explain SQL Statement (ip_db2_explain_statement) as the monitoring user, with the target’s preferred IBM DB2 Plug-in Agent Owner Credentials. Submitting it needs Operator privilege on the target.

Metrics that look wrong

Versions and platforms

Where to look

What to send support

Send these, with passwords, licence keys, keytabs and Kerberos tickets removed:

If a statement or log line contains a secret, replace it with <removed> first. Email helpdesk@integrationplumbers.io.

More help

The human-oriented troubleshooting page: https://docs.integrationplumbers.io/db2/troubleshooting.html

The console pages, including Monitoring Readiness: https://docs.integrationplumbers.io/db2/monitoring-pages.html

Prerequisites, including the monitoring user, TLS and credentials for jobs: https://docs.integrationplumbers.io/db2/prerequisites.html

↑ IBM DB2 Plug-in documentation