cheat sheet
CICS CEMT
Drive the CICS Master Terminal transaction — INQUIRE, SET, and PERFORM verbs for programs, tasks, files, connections, and region-level operations like NEWCOPY refresh and SNAP dumps.
CICS CEMT — Master Terminal Operator Reference
What it is
CEMT (Customer Information Control System — Extended Master Terminal) is the IBM-supplied transaction that an authorised CICS operator types into a 3270 terminal (or web/REST equivalent) to inspect and control a running CICS region. It is the runtime control plane for CICS — the place to refresh a freshly compiled program with NEWCOPY, open/close a VSAM file, drop a hung task, restart an MRO/IPIC connection, snap a region for diagnostics, or shut a region cleanly. CEMT is paired with the resource definition transactions CEDA/CEDB (which edit the CSD definitions on disk) and the debugger CEDF (which traps EXEC CICS calls inside a single transaction); CEMT touches the active in-storage copies of resources, while CEDA/CEDB touch the definitions that will be installed on the next pickup.
The current supported releases are CICS TS 6.1 (2023), 6.2 (2024), and 6.3 (general availability September 2025; January 2026 update adds OpenTelemetry, AI-agent integration, and a config simplification tool). All CEMT verbs documented here are stable across the 6.x stream; 6.3 extends Zowe Explorer for CICS TS so the same INQUIRE/SET/PERFORM actions are now driveable from VS Code with alphabetically sorted resource trees, JVM-server Enable/Disable actions, TS-queue and Shared-TS-queue groupings, and the CICS Resource Inspector for any resource.
Install
CEMT is part of every IBM CICS Transaction Server installation — there is no separate install. Access depends on RACF/ESM permitting your userid to run the CEMT transaction (resource class TCICSTRN).
(* Verify your CEMT authority from a CICS terminal *)
CEMT INQUIRE TASK
Output:
STATUS: RESULTS - OVERTYPE TO MODIFY
Tas(0000041) Tra(CEMT) Sus Ter(L001) Use(ALICE ) Uow(...) Hty(ZCIOWAIT)
SYSID=CICA APPLID=CICSPRD1
RESPONSE: NORMAL TIME: 09.42.17 DATE: 05/25/26
If RACF blocks you, the terminal shows NOT AUTHORIZED. Ask the security admin for READ on TCICSTRN.CEMT and on each resource class you intend to manipulate.
Syntax
CEMT verbs follow a strict verb object [filter] [option=value...] pattern. Almost everything can be abbreviated to the shortest unique prefix — CEMT I PROG and CEMT INQUIRE PROGRAM are identical.
CEMT verb object[(filter)] [option(value)] [option(value)]...
CEMT INQUIRE PROGRAM(MYPGM*) INQUIRE / I — read-only listing
CEMT SET PROGRAM(MYPGM) NEWCOPY SET / S — change state
CEMT PERFORM SHUT[DOWN] PERFORM / P — region-wide action
CEMT DISCARD PROGRAM(MYPGM) DISCARD / D — remove from in-storage table
Output: (none — exits 0 on success)
Verbs can be issued from any CEMT-eligible terminal, from console (MODIFY cicsname,CEMT ...), from another program via EXEC CICS INQUIRE/SET/PERFORM, or via Zowe (zowe cics ...).
Essential verbs and abbreviations
| Verb | Abbrev | Purpose |
|---|---|---|
INQUIRE | I | Display current state of one or many resources |
SET | S | Change state of one or many resources (open, close, enable, newcopy) |
PERFORM | P | Region-wide action (SHUTDOWN, SNAP, STATISTICS, RESET, SECURITY REBUILD) |
DISCARD | D | Remove a resource definition from the active region |
RESYNC | RES | Resync in-doubt UOWs after a restart |
| Object | Abbrev | Resource family |
|---|---|---|
PROGRAM | PROG | Load modules + tables (PPT entries) |
TRANSACTION | TRA | Transaction definitions (PCT entries) |
TASK | TAS | Currently dispatched units of work |
FILE | FIL | VSAM/BDAM files + remote files |
CONNECTION | CONN | MRO/ISC/IPIC connections to other regions |
TDQUEUE | TDQ | Transient data queues |
TSQUEUE | TSQ | Temporary storage queues |
JOURNALNAME | JOU | Logger streams |
TCPIPSERVICE | TCPIPS | Sockets / web listeners |
DSNAME | DSN | Data set views of files |
TERMINAL | TER | VTAM and 3270 terminals |
URIMAP | URI | HTTP routing |
WEBSERVICE | WEBS | SOAP/REST pipeline bindings |
INQUIRE — read the running region
INQUIRE is read-only and the safest verb to learn first. The filter inside parentheses supports * and + wildcards (* = any chars, + = one char). With no filter CICS returns every resource of that type — fine for TASK, but I PROG() can list thousands of entries; always filter.
CEMT I PROG(MYPGM*)
Output:
STATUS: RESULTS - OVERTYPE TO MODIFY
Prog(MYPGM01 ) Len(00012480) Ass Pro Ena Pri Cob Ful
Prog(MYPGM02 ) Len(00008704) Ass Pro Ena Pri Cob Ful
Prog(MYPGMUT1) Len(00001536) Ass Pro Ena Pri Asm Ful
SYSID=CICA APPLID=CICSPRD1
RESPONSE: NORMAL TIME: 09.43.10 DATE: 05/25/26
Reading the abbreviated status flags:
| Flag | Meaning |
|---|---|
Ass | Assembled / resolved load module address |
Pro | Program (vs Map or Partitionset) |
Ena / Dis | Enabled / Disabled |
Pri / Sha | Private (CDSA) / Shared (RDSA) storage |
Cob / Asm / Pli / Le370 / Java | Language environment |
Ful / Stu | Fully resolved / Stub only |
Type any field over the abbreviation to flip state — e.g., type Dis over Ena and press Enter and CEMT issues the equivalent SET PROGRAM(...) DISABLED. This is the on-panel "overtype to modify" pattern unique to CEMT.
INQUIRE PROGRAM — language modules and tables
INQUIRE PROGRAM shows the active copy of any module CICS has loaded — application programs, map sets, partition sets, and user exits. Each entry has a load address, length, language family, and ENABLED/DISABLED flag; the USECOUNT column reveals whether anything is actively using the module right now.
CEMT I PROG(MYPGM01)
Output:
Prog(MYPGM01 ) Len(00012480) Ass Pro Ena Pri Cob Ful
Library(DFHRPL ) Lpa(No) Use(00000412) Sha(Sha) Ces(Ceds)
SYSID=CICA APPLID=CICSPRD1
RESPONSE: NORMAL TIME: 09.45.02 DATE: 05/25/26
Useful filter expansions:
CEMT I PROG(MYPGM*) ENABLED
CEMT I PROG(MYPGM*) LANGUAGE(COBOL)
CEMT I PROG(MYPGM*) USECOUNT(0) (* candidates for discard *)
CEMT I PROG(MYPGM*) NEWCOPY (* shows only modules awaiting refresh *)
CEMT I PROG(*) RESCOUNT(0) ENABLED (* loaded but currently inactive *)
Output: (filter narrows the listing; same column layout as above)
SET PROGRAM — hot deploy with NEWCOPY
SET PROGRAM(...) NEWCOPY re-reads the module from the DFHRPL concatenation and refreshes the in-storage copy without bouncing the region. This is the canonical zero-downtime application deploy on CICS: link-edit into a load library in DFHRPL, then issue NEWCOPY to swap the running version. CICS only completes the swap when no transaction currently has the module loaded (USECOUNT=0); active tasks finish on the old copy and any subsequent EXEC CICS LINK picks up the new one.
CEMT S PROG(MYPGM01) NEWCOPY
Output:
STATUS: RESULTS - OVERTYPE TO MODIFY
Prog(MYPGM01 ) Len(00012544) Ass Pro Ena Pri Cob Ful
SYSID=CICA APPLID=CICSPRD1
RESPONSE: NORMAL TIME: 09.46.18 DATE: 05/25/26
Other SET verbs against PROGRAM:
CEMT S PROG(MYPGM01) PHASEIN (* refresh, allow in-flight tasks on old copy *)
CEMT S PROG(MYPGM01) DISABLED (* prevent new LINKs without dropping it *)
CEMT S PROG(MYPGM01) ENABLED
CEMT S PROG(MYPGM01) CEDF (* enable CEDF debugger for this program *)
CEMT S PROG(MYPGM01) NOCEDF
CEMT S PROG(MYPGM*) NEWCOPY (* refresh a whole family in one shot *)
Output:
STATUS: RESULTS - OVERTYPE TO MODIFY
Prog(MYPGM01 ) Len(00012544) Ass Pro Ena
SYSID=CICA APPLID=CICSPRD1
RESPONSE: NORMAL TIME: 09.46.50 DATE: 05/25/26
NEWCOPY vs PHASEIN:
NEWCOPYrequiresUSECOUNT=0and fails withNOTAVAILABLEif anything is using the program.PHASEINalways succeeds — it loads the new copy alongside the old, lets active tasks complete on the old, and routes new entries to the new. UsePHASEINfor non-reentrant programs only after you have understood the dual-copy memory implications.
INQUIRE TASK — what's running right now
INQUIRE TASK lists every dispatched and suspended unit of work in the region. Each task has a Tas(nnn) task number, the transaction code that started it (Tra(....)), the terminal it owns (Ter(....)), the userid (Use(........)), state (Run/Sus/Dis), and — if suspended — the resource it is waiting on (Hty(...)).
CEMT I TASK
Output:
STATUS: RESULTS - OVERTYPE TO MODIFY
Tas(0000041) Tra(CEMT) Sus Ter(L001) Use(ALICE ) Pri( 1) Hty(ZCIOWAIT)
Tas(0000099) Tra(TRX1) Run Ter(L042) Use(BOB ) Pri( 1)
Tas(0000124) Tra(TRX2) Sus Ter(L055) Use(CAROL ) Pri( 1) Hty(FCIOWAIT)
SYSID=CICA APPLID=CICSPRD1
RESPONSE: NORMAL TIME: 09.47.30 DATE: 05/25/26
Common suspension types (HTYPE) and what they mean:
| HTYPE | Wait reason |
|---|---|
ZCIOWAIT | Terminal I/O — user has not pressed Enter |
FCIOWAIT | File control I/O (VSAM/CICS file) |
KCCOMPAT | Compatibility wait — older API path |
DBCTLWAIT | IMS DBCTL backend |
DB2EOT | Db2 thread wait |
EXCWAIT | External call (e.g. MQ, sockets) |
LOCKWAIT | Waiting on a CICS enqueue |
JCIOWAIT | Journal commit |
To target a single task and inspect or purge it:
CEMT I TASK(0000124)
CEMT S TASK(0000124) PURGE (* polite abend AICA *)
CEMT S TASK(0000124) FORCEPURGE (* stronger abend ASRD, skips some cleanup *)
CEMT S TASK(0000124) KILL (* last resort — may leave UOW in-doubt *)
Output:
STATUS: RESULTS - OVERTYPE TO MODIFY
Tas(0000124) Tra(TRX2) Run Ter(L055) Use(CAROL )
SYSID=CICA APPLID=CICSPRD1
RESPONSE: NORMAL TIME: 09.48.05 DATE: 05/25/26
Purge ladder: always try
PURGEfirst — it lets the task back out cleanly. Escalate toFORCEPURGEonly ifPURGEhangs, and toKILLonly when the storage manager is itself stuck.KILLon a UOW that holds Db2 or MQ locks will leave them in-doubt and require manual resolution.
INQUIRE FILE — open, close, and disable VSAM files
INQUIRE FILE reports each FCT (File Control Table) entry — VSAM clusters, BDAM data sets, remote files, and CICS data tables — with current open status, access intent, and the underlying DSN.
CEMT I FILE(CUSTFILE)
Output:
STATUS: RESULTS - OVERTYPE TO MODIFY
Fil(CUSTFILE) Vsa Ope Ena Rea Upd Add Bro Del
Dsn( ALICE.PROD.CUSTFILE ) Bas( CUSTFILE )
SYSID=CICA APPLID=CICSPRD1
RESPONSE: NORMAL TIME: 09.49.12 DATE: 05/25/26
Flag summary: Ope/Clo (open/closed), Ena/Dis (enabled/disabled), then access intent — Rea read, Upd update, Add add, Bro browse, Del delete. Common SET operations:
CEMT S FILE(CUSTFILE) CLOSED (* close after quiescing in-flight UOWs *)
CEMT S FILE(CUSTFILE) DISABLED (* prevent new opens *)
CEMT S FILE(CUSTFILE) OPEN (* reopen after a backup/HSM recall *)
CEMT S FILE(CUSTFILE) ENABLED
CEMT S FILE(CUSTFILE) DSNAME(ALICE.PROD.CUSTFILE.V2) (* swap underlying VSAM cluster *)
CEMT S FILE(CUSTFILE) READ NOUPDATE NOADD (* downgrade to read-only *)
Output:
STATUS: RESULTS - OVERTYPE TO MODIFY
Fil(CUSTFILE) Vsa Clo Dis
SYSID=CICA APPLID=CICSPRD1
RESPONSE: NORMAL TIME: 09.49.50 DATE: 05/25/26
Backup window pattern: to back up an active VSAM file safely,
S FILE(...) CLOSED DISABLEDfirst; onceINQUIREshowsClo Dis, run the IDCAMSREPROor DFDSS dump; thenS FILE(...) OPEN ENABLED. Closing alone is not enough — CICS will reopen on the next access.
INQUIRE CONNECTION — MRO, ISC, and IPIC links
INQUIRE CONNECTION (alias I CONN) displays each link to another CICS region or system. The state flags reveal whether the connection is IN service, OUT of service, ACQuired, or RELeased, and identify the protocol (MRO, LU61, LU62, IPIC, EXCI).
CEMT I CONN
Output:
STATUS: RESULTS - OVERTYPE TO MODIFY
Con(TOR1) Net(CICSTOR1 ) Ins Acq Mro
Con(AOR1) Net(CICSAOR1 ) Ins Acq Ipi
Con(REM1) Net(REMOTE1 ) Out Rel Lu62
SYSID=CICA APPLID=CICSPRD1
RESPONSE: NORMAL TIME: 09.50.40 DATE: 05/25/26
Recover or quiesce a connection:
CEMT S CONN(REM1) INSERVICE (* allow new conversations *)
CEMT S CONN(REM1) OUTSERVICE (* drain, then refuse new conversations *)
CEMT S CONN(REM1) ACQUIRED (* bring up the underlying VTAM/IPIC session *)
CEMT S CONN(REM1) RELEASED (* tear down sessions *)
CEMT S CONN(REM1) NOTPENDING (* force out-of-doubt UOWs to back out *)
Output:
STATUS: RESULTS - OVERTYPE TO MODIFY
Con(REM1) Net(REMOTE1 ) Ins Acq Lu62
SYSID=CICA APPLID=CICSPRD1
RESPONSE: NORMAL TIME: 09.51.15 DATE: 05/25/26
For IPIC (IP InterCommunications), the underlying TCP socket is governed by an IPCONN resource — CEMT I IPCONN and S IPCONN(...) ACQUIRED|RELEASED give the same controls at the IP layer.
INQUIRE TDQUEUE and TSQUEUE — transient and temporary storage
CICS holds two kinds of queue: transient data (TDQUEUE) survives shutdown if defined as extrapartition or extrapartition+logged, and is the classic interface to spool/printers/sequential files; temporary storage (TSQUEUE) is in-memory scratch space (or aux-storage backed) that lasts only for the region or until purged.
CEMT I TDQ(CSMT)
CEMT I TSQ(MYQUEUE*)
Output:
Tdq(CSMT) Ext Ope Ena Out Sys
Dsn( SYS1.CICS.CSMTLOG ) Members(00000)
Tsq(MYQUEUE1) Items(00012) Loc(Aux) Length(00001024)
Tsq(MYQUEUE2) Items(00003) Loc(Mai) Length(00000512)
SYSID=CICA APPLID=CICSPRD1
RESPONSE: NORMAL TIME: 09.52.05 DATE: 05/25/26
Useful actions:
CEMT S TDQ(CSMT) CLOSED (* close before swapping the underlying DSN *)
CEMT S TDQ(CSMT) OPEN
CEMT S TSQ(MYQUEUE1) PURGE (* delete contents *)
Output: (state changes summary, same panel layout as I TDQ / I TSQ)
PERFORM — region-wide actions
PERFORM triggers a region-level operation that has no single "resource" target. The four most-used variants are SHUTDOWN, SNAP, STATISTICS, and RESET.
PERFORM SHUTDOWN
PERFORM SHUTDOWN brings the region down gracefully, running PLT shutdown programs in order. Add IMMEDIATE to skip the PLT (data may be lost) and DUMP to take a system dump as part of the shutdown.
CEMT P SHUT
CEMT P SHUT IMMEDIATE
CEMT P SHUT DUMP
CEMT P SHUT TAKEOVER (* XRF alternate takes over *)
Output:
RESPONSE: NORMAL TIME: 09.55.00 DATE: 05/25/26
DFHTM1715 CICSPRD1 CICS is being quiesced by userid ALICE in transaction CEMT.
PERFORM SNAP and PERFORM DUMP
PERFORM SNAP writes a region snapshot to the CICS dump dataset for diagnostics — useful when a region is misbehaving but you do not want to shut it down. PERFORM DUMP is similar but typically yields an SVC dump that can be processed by IPCS.
CEMT P SNAP DUMPCODE(MYSNAP01)
CEMT P SNAP DUMPCODE(MYSNAP01) TITLE('Memory pressure investigation 09:56')
Output:
RESPONSE: NORMAL TIME: 09.56.05 DATE: 05/25/26
DFHDU0202 CICSPRD1 A transaction dump of dumpid 0001/0007 has been taken.
PERFORM STATISTICS and PERFORM RESET
PERFORM STATISTICS writes the current interval of statistics to SMF (type 110); PERFORM RESET resets transaction-class peak counters back to zero — handy at the start of a benchmark window.
CEMT P STAT
CEMT P STAT RECORD (* explicit SMF write *)
CEMT P STAT IMMEDIATE (* write and reset interval *)
CEMT P RESET (* reset peak counters *)
Output:
RESPONSE: NORMAL TIME: 09.57.10 DATE: 05/25/26
DFHST0001 CICSPRD1 Statistics record written.
PERFORM SECURITY REBUILD
Triggers CICS to re-RACLIST the resource classes — needed after a SETROPTS RACLIST(...) REFRESH on a class that does not auto-propagate.
CEMT P SECURITY REBUILD
Output:
RESPONSE: NORMAL TIME: 09.58.00 DATE: 05/25/26
DFHXS1100 CICSPRD1 Resource security profiles have been rebuilt.
DISCARD — remove a resource from the active region
DISCARD removes the in-storage definition of a resource without touching the CSD on disk. The resource must be disabled or closed first; CICS refuses to discard anything in use.
CEMT S PROG(MYPGM01) DISABLED
CEMT D PROG(MYPGM01)
CEMT S FILE(OLDFILE) CLOSED DISABLED
CEMT D FILE(OLDFILE)
CEMT D TRA(XYZ1) (* requires INQUIRE TRA showing DIS first *)
Output:
STATUS: RESULTS - OVERTYPE TO MODIFY
Prog(MYPGM01 )
SYSID=CICA APPLID=CICSPRD1
RESPONSE: NORMAL TIME: 10.00.05 DATE: 05/25/26
Discarded resources can be re-installed by CEDA INSTALL from the CSD or by a CICSPlex SM INSTALL.
CEMT vs CEDA vs CEDB vs CEDF — pick the right tool
These four transactions are often confused. They operate at different layers and the consequences of mixing them up range from a no-op to a corrupted CSD.
| Transaction | Operates on | Persistence | Typical use |
|---|---|---|---|
CEMT | Active in-storage resources of the running region | Until next region restart | Refresh module, open/close file, drop task |
CEDA | CSD (CICS System Definition file) — the on-disk catalogue of all resources | Permanent — survives restarts | Define a new program, transaction, file, group |
CEDB | Same CSD as CEDA but with INSTALL disabled | Permanent | Safe browsing/editing without accidental install |
CEDF | Single transaction's EXEC CICS calls | None — per-task only | Step debugger for application development |
The deploy cycle is: CEDA to define the resource on the CSD, CEDA INSTALL GROUP(...) to materialise it in the running region, then CEMT to manage its day-to-day state. CEDB is CEDA with training wheels — exactly the same panel layout but the INSTALL and COPY commands are blocked, useful for production read-only browsing.
(* Typical deploy of a brand-new program *)
CEDA DEFINE PROGRAM(NEWPGM) GROUP(ALICEGRP) LANGUAGE(COBOL)
CEDA INSTALL GROUP(ALICEGRP)
CEMT I PROG(NEWPGM) (* verify it's loaded *)
(* Refresh after recompile *)
CEMT S PROG(NEWPGM) NEWCOPY
Output:
INSTALL SUCCESSFUL
Prog(NEWPGM ) Len(00009216) Ass Pro Ena Pri Cob Ful
CEDF — debugging without leaving CEMT
CEDF is the Execution Diagnostic Facility — CICS's built-in step-debugger for application transactions. It is launched from a separate terminal or, more typically, enabled per-program from CEMT itself with S PROG(...) CEDF.
CEMT S PROG(MYPGM01) CEDF
CEDF L042 (* trap transactions running on term L042 *)
Output:
EXEC INTERFACE BLOCK BEFORE EXECUTION
EIBTIME=100501 EIBDATE=2026/146 EIBTRNID=TRX1
EIBTRMID=L042 EIBTASKN=99 EIBCPOSN=1
COMMAND: EXEC CICS READ FILE('CUSTFILE') INTO(...) RIDFLD(...)
PF1=UNDEFINED ... PF9=STOP PF10=PREV DISPLAY ...
PF keys inside CEDF: PF9 stops debugging, PF12 aborts the transaction, PF1–PF8 walk between command-before/command-after/EIB/abend views. Disable when done:
CEMT S PROG(MYPGM01) NOCEDF
Output:
Prog(MYPGM01 ) Len(00012544) Ass Pro Ena Pri Cob Ful Noc
Issuing CEMT from outside the region
CEMT does not require an interactive 3270. The same verbs can be driven from MODIFY console commands, programs, and Zowe.
(* From z/OS console — MVS MODIFY *)
F CICSPRD1,CEMT I PROG(MYPGM01)
F CICSPRD1,CEMT S PROG(MYPGM01) NEWCOPY
F CICSPRD1,CEMT P SHUT
(* From inside a CICS program *)
EXEC CICS INQUIRE PROGRAM('MYPGM01') LENGTH(LEN)
EXEC CICS SET PROGRAM('MYPGM01') NEWCOPY
EXEC CICS PERFORM SHUTDOWN
(* From a workstation via Zowe *)
zowe cics refresh program MYPGM01 --region-name CICSPRD1
zowe cics get resource CICSProgram --region-name CICSPRD1 --criteria "PROGRAM=MYPGM*"
Output:
IEE600I REPLY TO 02 IS;CEMT
DFHAC2236 CICSPRD1 CEMT issued by ALICE: SET PROGRAM(MYPGM01) NEWCOPY
DFHAC2237 CICSPRD1 NEWCOPY for program MYPGM01 completed.
Common pitfalls
NEWCOPYsilently no-ops whenUSECOUNT > 0— the panel showsNOTAVAILABLEin the bottom right but the listing still appears normal. RunCEMT I PROG(...)first; ifUse(...)is non-zero, either usePHASEIN(knowing the dual-copy implications) or wait for active tasks to finish.- Overtyping the wrong column — CEMT's overtype-to-modify is convenient but typing into the length field or DSN field of
I FILEis interpreted as a SET; always check the bottom response line forRESPONSE: NORMALbefore walking away. SHUT IMMEDIATEin a transactional region — skips PLT shutdown which often holds final commit logic. Use plainSHUTand let PLT run; only escalate toIMMEDIATEafterSHUTis documented to hang.- Confusing CEDA INSTALL with CEMT NEWCOPY —
CEDA INSTALL GROUP(...)creates the in-storage entry from the CSD;CEMT S PROG(...) NEWCOPYrefreshes an already-installed module. IssuingNEWCOPYagainst a program that has never been installed returnsPROGRAM NOT FOUND. - Forgetting CICS holds the load module open — adding a new copy to the front of the
DFHRPLconcatenation is invisible untilNEWCOPY(orMVS SET PROG(...,REFRESH)for LPA-resident modules). KILLwithout a backout plan — terminates a UOW that may hold cross-system in-doubts; the recoverable resources need manual resync viaCEMT RESYNCorCRMDafterwards.- CEMT against the wrong region — IDs like
CICSPRD1andCICSPRD2differ by one character. ConfirmAPPLID=in the response line before issuing destructive SET/DISCARD verbs. - Wildcards that match too much —
CEMT S PROG(*) NEWCOPYwill queue a refresh for every module in the region; on a large production region this is rarely what you wanted. Always run the equivalentI PROG(...)first to preview the matched list.
Real-world recipes
Hot-deploy a compiled module without a region bounce
The canonical CICS hot-deploy: link-edit the new copy into a load library on DFHRPL, then refresh the in-storage entry. Verify usage is zero before issuing NEWCOPY to avoid the NOTAVAILABLE race.
(* From a 3270 terminal — first check usage *)
CEMT I PROG(MYPGM01)
(* If Use(00000000), refresh now *)
CEMT S PROG(MYPGM01) NEWCOPY
(* If Use is non-zero, choose between waiting and PHASEIN *)
CEMT S PROG(MYPGM01) PHASEIN
(* Optional: verify the new length matches what link-edit produced *)
CEMT I PROG(MYPGM01)
Output:
Prog(MYPGM01 ) Len(00012544) Ass Pro Ena Pri Cob Ful Use(00000000)
Quiesce a VSAM file for an offline backup
CICS will keep the file open as long as the FCT entry is enabled. The full quiesce-backup-resume cycle disables, closes, runs the IDCAMS backup as a batch job, then reverses.
(* From CEMT *)
CEMT S FILE(CUSTFILE) CLOSED DISABLED
CEMT I FILE(CUSTFILE) (* confirm Clo Dis *)
//BACKUP JOB (ACCT),'BACKUP CUSTFILE',CLASS=A,MSGCLASS=X,
// USER=ALICE
//STEP1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
REPRO INDATASET(ALICE.PROD.CUSTFILE) -
OUTDATASET(ALICE.BKUP.CUSTFILE.D2026.D146) -
REPLACE
/*
(* Once the backup JOB completes RC=0 *)
CEMT S FILE(CUSTFILE) OPEN ENABLED
CEMT I FILE(CUSTFILE) (* confirm Ope Ena *)
Output:
Fil(CUSTFILE) Vsa Ope Ena Rea Upd Add Bro Del
Dsn( ALICE.PROD.CUSTFILE )
Triage a runaway transaction
A user reports their screen is frozen on transaction TRX2. The pattern is: list active tasks, identify the suspended task, inspect its wait reason, attempt PURGE, escalate if needed.
CEMT I TASK
CEMT I TASK(0000124) (* drill into the suspected task *)
Output:
Tas(0000124) Tra(TRX2) Sus Ter(L055) Use(CAROL ) Hty(FCIOWAIT)
Pri( 1) Sta(D) Pur(P) For(N) ... Res(CUSTFILE)
The Res(CUSTFILE) makes the cause obvious — the task is waiting on the VSAM file you closed in the previous recipe. Either reopen the file or purge the task:
CEMT S TASK(0000124) PURGE
CEMT I TASK(0000124) (* if still there *)
CEMT S TASK(0000124) FORCEPURGE
Output:
Tas(0000124) Tra(TRX2) NOT FOUND
Bulk refresh after a code drop
After a CI/CD job link-edits twelve modules into ALICE.PROD.LOADLIB, the operator refreshes them as a batch.
CEMT I PROG(MYPGM*) USECOUNT(0) (* preview which can refresh now *)
CEMT S PROG(MYPGM*) NEWCOPY
CEMT I PROG(MYPGM*) NEWCOPY (* shows any pending refreshes *)
Output:
STATUS: RESULTS - OVERTYPE TO MODIFY
Prog(MYPGM01) Len(00012544) Ass Pro Ena
Prog(MYPGM02) Len(00008832) Ass Pro Ena
Prog(MYPGM03) Len(00001664) Ass Pro Ena
... 12 results.
SYSID=CICA APPLID=CICSPRD1
RESPONSE: NORMAL TIME: 10.12.40 DATE: 05/25/26
For modules still showing under I PROG(...) NEWCOPY because usage was non-zero, schedule a PHASEIN retry through Zowe in CI:
zowe cics refresh program MYPGM04 --region-name CICSPRD1
zowe cics refresh program MYPGM07 --region-name CICSPRD1
Output:
success: true
message: PROGRAM refresh requested.
Snap a region under memory pressure without bouncing it
When SDSF shows storage shortage messages (DFHSM0131), capture state for diagnostics before deciding whether to recycle.
CEMT P SNAP DUMPCODE(MEMPRES1) TITLE('Storage shortage 10:14 - capture before recycle')
CEMT I TASK (* count suspended on storage waits *)
CEMT I PROG(*) USECOUNT(0) ENABLED (* discard candidates *)
Output:
DFHDU0202 CICSPRD1 A transaction dump of dumpid 0001/0008 has been taken.
Follow up by discarding unused modules to free DSA without a shutdown:
CEMT S PROG(MYPGMUT1) DISABLED
CEMT D PROG(MYPGMUT1)
Output:
Prog(MYPGMUT1)
RESPONSE: NORMAL TIME: 10.15.05 DATE: 05/25/26
Drain an MRO connection for a partner-region restart
Before the AOR is recycled, take the routing TOR's connection out of service so new transactions land elsewhere; let in-flight UOWs complete, then release.
CEMT S CONN(AOR1) OUTSERVICE
CEMT I CONN(AOR1) (* confirm Out *)
CEMT I TASK (* watch in-flight tasks on AOR1 drain *)
CEMT S CONN(AOR1) RELEASED (* once tasks are clear *)
Output:
Con(AOR1) Net(CICSAOR1 ) Out Rel Ipi
RESPONSE: NORMAL TIME: 10.20.30 DATE: 05/25/26
Once the AOR has been restarted by its operator:
CEMT S CONN(AOR1) ACQUIRED INSERVICE
CEMT I CONN(AOR1)
Output:
Con(AOR1) Net(CICSAOR1 ) Ins Acq Ipi
Run CEMT from a Zowe pipeline
A CI pipeline running on a Linux build agent can refresh a CICS module after a successful link-edit using Zowe.
# Build agent — refresh the program after deploy step
zowe cics refresh program MYPGM01 \
--region-name CICSPRD1 \
--cics-plex PLEX1
Output:
success: true
message: PROGRAM refresh requested.
# Fetch current state to confirm
zowe cics get resource CICSProgram \
--region-name CICSPRD1 \
--criteria "PROGRAM=MYPGM01"
Output:
success: true
recordcount: 1
records:
- program: MYPGM01
status: ENABLED
language: COBOL
length: 12544
progtype: PROGRAM
sharestatus: PRIVATE
Driving CEMT from VS Code via Zowe Explorer
The Zowe Explorer for CICS TS extension (refreshed throughout 2025-2026) gives a tree view over the same resources CEMT manages. From VS Code you can right-click a program, file, or JVM server in the CICS tree and trigger the equivalent of CEMT SET ... NEWCOPY / OPEN / ENABLE without opening a 3270 session. As of the January 2026 update, the CICS tree sorts resources alphabetically, the bundlepart enable status is shown directly in the label and icon, the Files tree merges local and remote CICS files, and the TS Queues tree groups TS and Shared TS queues. Combined with the CICS Resource Inspector, this is the recommended path for application developers who need the same outcomes as CEMT but want to stay in their IDE.
zowe cics get resource CICSProgram \
--region-name CICSPRD1 \
--criteria "PROGRAM=MYPGM*"
zowe cics refresh program MYPGM01 --region-name CICSPRD1
zowe cics enable program MYPGM01 --region-name CICSPRD1
zowe cics disable program MYPGM01 --region-name CICSPRD1
Output:
success: true
message: PROGRAM refresh requested.
Quick reference card
INQUIRE verbs: PROG TASK FILE CONN TDQ TSQ TER TRA TCPIPS URI DSN
SET state: ENABLED DISABLED OPEN CLOSED INSERVICE OUTSERVICE
ACQUIRED RELEASED NEWCOPY PHASEIN CEDF NOCEDF PURGE
FORCEPURGE KILL READ NOUPDATE NOADD NODELETE
PERFORM verbs: SHUTDOWN [IMMEDIATE|DUMP|TAKEOVER]
SNAP DUMPCODE(...) TITLE('...')
STATISTICS [RECORD|IMMEDIATE]
RESET
SECURITY REBUILD
DISCARD PROG | TRA | FILE | CONN | TDQ | TSQ (after disabled/closed)
Wildcards: * = any chars + = exactly one char
Filters: ENABLED DISABLED OPEN CLOSED USECOUNT(0) LANGUAGE(COBOL)
RESCOUNT(0) NEWCOPY (pending only)
From console: F regionname,CEMT verb object(...)
From a program: EXEC CICS INQUIRE|SET|PERFORM ...
From workstation: zowe cics {refresh|get resource|set resource} ...