# z/OS Product Upgrade Checklist

Published with SARATH.KB. Adapt every item to the vendor documentation and the target site's change, security and recovery procedures.

## A. Current-state inventory

- [ ] Capture current release/FMIDs/service and runtime proof
- [ ] Inventory target/DLIB/runtime datasets and zFS
- [ ] Inventory STCs/PROCLIB/PARMLIB/subsystem definitions
- [ ] Inventory APF/LINKLIST/LPA/LLA and copied runtime libraries
- [ ] Inventory RACF identities/profiles/certificates/keyrings
- [ ] Inventory ports/interfaces/TLS/WLM/automation/monitoring
- [ ] Identify persistent databases/control repositories/data formats
- [ ] Identify all consuming/dependent applications and products
- [ ] Capture known-good startup messages and functional validation pack

## B. Target and compatibility

- [ ] Confirm target release support on current/planned z/OS
- [ ] Check minimum dependent product/runtime levels
- [ ] Check mandatory intermediate releases
- [ ] Review enhanced HOLDDATA/FIXCAT target-system and coexistence service
- [ ] Review vendor compatibility matrix and required PTF list
- [ ] Review removed/deprecated functions and changed defaults
- [ ] Identify coexistence restrictions across LPARs/sysplex/product peers
- [ ] Identify point after which fallback is restricted/unsupported

## C. Upgrade strategy

- [ ] Decide side-by-side versus in-place and document why
- [ ] Define parallel HLQs/zFS/ports/PROCs when side-by-side
- [ ] Define backups/copies needed when in-place
- [ ] Identify shared persistent data that can break code fallback
- [ ] Define cutover window, owner and dependency sequence
- [ ] Define last safe fallback point for code, config and data separately

## D. Build target

- [ ] Install target release and required maintenance before outage where possible
- [ ] Build configuration from new-release samples rather than blindly copying old members
- [ ] Port only required site settings and document delta
- [ ] Pre-create security/certificates/ports/automation in non-disruptive state where possible
- [ ] Run vendor prechecks/configuration validation
- [ ] Verify target libraries/zFS and runtime search/authorization paths

## E. Migration and cutover

- [ ] Quiesce incoming work and consumers
- [ ] Take final backup/export at rollback point
- [ ] Stop old release in dependency order
- [ ] Run data/configuration/schema conversion jobs and verify every message/RC
- [ ] Switch PROCLIB/STEPLIB/LINKLIST/LPA/PARMLIB/symbols/ports/aliases as designed
- [ ] Start target release and verify version/ready messages
- [ ] Release dependencies in controlled order
- [ ] Run full validation pack
- [ ] Record whether/when fallback is no longer simple

## F. Stabilization and old-release retirement

- [ ] Compare resource/log/health behavior with baseline
- [ ] Monitor recurring batch and recovery paths through agreed period
- [ ] Retain old release protected and inactive during rollback window
- [ ] Update inventory/runbooks/recovery procedures
- [ ] After stabilization, enter formal decommission workflow for old release
- [ ] Remove old libraries/configuration/licensing only after rollback period closes
