DB2 for z/OS talks to operators and job logs through DSN* messages. Utilities shout in DSNU, DDF in DSNL, TSO attach in DSNE, recovery in DSNR/DSNJ, and install/service in DSNT. This reference teaches the identifier format, the main prefix families, and the fields every message write-up should include so you can search and diagnose instead of guessing.
IBM documents Db2 message identifiers as roughly eight to ten characters:
12345678Example shape: DSNU123I ||| | | ||| | +-- type (I = information) ||| +----- numeric identifier ||+------- subcomponent U = utilities ++-------- DSN product prefix Optional: subsystem id / csect-name may appear with the message on the console.
Reason codes that travel with messages are four bytes: 00 + hex subcomponent id + numeric id (example style 00E50041). The second byte hex id maps to the same subcomponent story as the message letter—see IBM’s subcomponent identifier table in Messages and Codes.
| Prefix / family | Typical area |
|---|---|
| DSN… (general) | Any Db2 subcomponent — read the 4th character |
| DSNT | Service controller / install (T); DSNTIAR apps |
| DSNU | Utilities (U) — LOAD, REORG, COPY, … |
| DSNE | TSO attachment facility (E) |
| DSNL | Distributed data facility / DDF (L) |
| DSNX | Relational data system (X) |
| DSNJ | Recovery log manager (J) |
| DSNR | Recovery manager (R) |
| DSN7 | Group manager (data sharing) |
| DSN8 / DSN9 | Sample apps / general command processor families |
Other letters you will meet: B buffer manager, I data manager, H precompiler, P data space manager, V agent services, W instrumentation, Y initialization, Z system parameters. Subcomponents call each other, so a utility job can print a DSNU line that cites a reason code from another component.
Treat this as the searchable template for a message reference entry—the same checklist the Db2 tutorial map spells out under “each page”:
| Field | Capture |
|---|---|
| Message ID | Full DSN… id including type code |
| Message text | IBM short text with &tokens |
| Explanation | What happened in plain language |
| Severity / type | I info, W warning, E error, A action, … |
| Tokens | Filled-in names, DBID, reason codes, … |
| Cause | Underlying trigger when documented |
| Operator response | Console / ops actions |
| Programmer response | Application or utility JCL changes |
| DBA response | Catalog, space, auth, recovery actions |
| Related SQLCODE | If the message accompanies SQL failure |
| Related reason code | 00E… / 00C… style codes |
| Related abend | X′04E′ / X′04F′ or system completion |
LOAD, UNLOAD, REORG, COPY, MERGECOPY, RECOVER, RUNSTATS, CHECK, REPAIR, and friends write DSNU messages to SYSPRINT and often to the console. When a utility fails, start with the last DSNU*E message before the step RC, not only the JCL condition code. Utility messages frequently name database, space, partitions, and reason codes you need for RECOVER or RESTART.
12345//SYSIN DD * REORG TABLESPACE DB1.TS1 LOG YES /* //SYSPRINT DD SYSOUT=* * Read SYSPRINT bottom-up for DSNU*E / DSNU*I completion messages
Connection failures, secure port issues, and location problems often show as DSNL messages while applications see SQLCODEs like -904, -30081-class network failures, or driver errors. Correlate the DDF message timestamp with the application SQLCA. DISPLAY DDF and DISPLAY LOCATION are operator companions to DSNL text.
SPUFI, DSN command processor sessions, and TSO-attached work emit DSNE messages. If interactive SQL “mysteriously” fails before an SQLCODE appears, read the DSNE line—authorization, connection, or DSN command syntax may be the real story.
DSNT covers service controller and install-oriented messaging. Application programmers know DSNTIAR as the sample routine that formats SQLCA text— that name sits in the same T family even though your COBOL program is not “installing Db2.” Install CLISTs and migration panels also speak DSNT.
Many messages list more than one audience. Do not ignore the operator section because you are an application developer—the fix might be “start DB2” or “run RECOVER.”
A single incident can show all four:
1234Console: DSN… message with reason 00C9008E SQLCA: SQLCODE -911 / -913 (timeout/deadlock family) Dump: possible task abend if the failure escalates Action: look up message + reason + SQLCODE together
Search order that works: full message ID → reason code → SQLCODE → abend completion code. Paste all of them into the incident ticket.
Db2 messages are notes from different rooms in the same school. Every note starts with the school name DSN. The next letter says which room wrote it (utility room U, network room L, …). The number is which note. The last letter says how loud (info vs alarm). Read the whole note, including the fill-in-the-blank names, before you run to the principal (IBM support).
1. A Db2 message identifier always starts with:
2. DSNU messages are primarily from:
3. DSNL messages relate to:
4. When reading a message you should capture:
5. DSNT often points at: