---
title: "Data sets, members and z/OS UNIX files"
---

# Data sets, members and z/OS UNIX files

Working with z/OS data sets and members as in ISPF 3.4 and 3.2, protecting production data, the z/OS Resources table, and z/OS UNIX files with their code set tags.

**Verification state:** every request on this page is tested against the local z/OSMF-shaped server or documented-format fixtures, on Linux. **None has run against z/OS.** The verification kit covers listing, reading, writing with conflict checks, allocate, copy, rename and delete; the z/OS Resources table has its own kit step.

## Data sets as in ISPF 3.4 and 3.2

The **z/OS Data Sets** view in the Explorer lists, per connection, data sets by a filter (`HLQ.**`) with DSORG, RECFM and LRECL, and members with their ISPF statistics. **Filter Datasets** changes the filter, **Refresh Data Sets** reads again, **Open Dataset** opens one by name, **Copy Name** copies its name and **Remove from View** removes an entry.

![The z/OS Data Sets view with sample libraries, their organisation, record format and length, a migrated data set, and a COBOL member opened from z/OS (against a modelled z/OSMF server).](https://neuralinverse.com/docs-images/modules/mainframe/zos-data-sets.webp)

### Open and save a member

1. Open a sequential data set or member. It opens in the editor from `zosmvs:`, as COBOL or JCL from the library's qualifiers or its first lines.
2. Edit and save. It is written back in the connection's code page: IBM-1047 unless the Zowe profile's `encoding` says otherwise.
3. If the member changed on z/OS since you opened it, the editor offers **Compare** or **Overwrite**, before the save (a conditional read with the ETag) or during it (If-Match refused with 412).

The module takes no ISPF ENQ on the member; the ETag check is what catches a second save.

### Create, copy, rename, delete, recall

| Command | What it does |
|---|---|
| **Allocate Data Set** | A PDSE, PDS or sequential data set; attributes typed as on a DD statement and checked as you type, or like a model |
| **Create Member** | A new member in a library |
| **Copy To** | Members, a whole library or a sequential data set; a missing target is allocated like the source; existing members are replaced only after confirmation |
| **Rename** (F2) | A data set or member |
| **Delete** (Delete key) | With confirmation; several members at once |
| **Recall** | DFSMShsm HRECALL of a migrated data set, waiting until it is on disk |

VSAM clusters have their own actions: see [VSAM clusters on z/OS](https://neuralinverse.com/docs/modules/mainframe/vsam/). Catalog, compress, print and the other ISPF utilities are on [Data set utilities](https://neuralinverse.com/docs/modules/mainframe/data-set-utilities/). Search and compare are on [Search and compare](https://neuralinverse.com/docs/modules/mainframe/search-and-compare/).

## Protect production data

| Setting | Default | Effect |
|---|---|---|
| `neuralInverse.mainframe.readOnlyDatasets` | `[]` | Data set patterns, such as `PROD.**` or `SYS1.**`, that open read-only on every connection in the text and record editors, with the pattern shown as the reason. Every change (save, new member, delete, rename, copy or allocate into them) is refused **before any request is sent**. A machine setting, so a workspace cannot change it |
| `neuralInverse.mainframe.largeDownloadMegabytes` | 50 | A sequential data set above this size opens only after you confirm its estimated size; a spool file opens with its first 10,000 records. 0 turns the check off |

Unsaved changes to `zosmvs:` and `zosuss:` resources are never written to the Editor's hot-exit backups: on quit they are saved or reverted, so unsaved host data stays off workstations. RACF still decides what the host allows. The size estimate (the used space and first extent counted as 3390 tracks) is not verified on z/OS.

## The z/OS Resources table

**Open z/OS Resources Table** (IDz's Remote Systems table) lists in one editor:

- data sets: name, DSORG, RECFM, LRECL, BLKSIZE, volume, created, referenced, used, migrated;
- members, with their ISPF statistics;
- z/OS UNIX files: mode, owner, group, size, tag, modified;
- jobs: name, ID, owner, class, status, return code.

Sort by any column. Filter by `column:value` with ISPF's `*` and `%`, comparisons on numbers and dates, and `!` to negate. Each row offers the z/OS Data Sets view's actions, and job rows the job actions; a library opens its members and a directory its contents. Large lists are virtualised.

## z/OS UNIX files

1. Run **Add z/OS UNIX Path...** on a connection. The path is listed under the connection in the z/OS Data Sets view.
2. Open, edit and save files from `zosuss:`. A file's `chtag` tag decides how it travels: binary or mixed as bytes, a code set as text in it, untagged in the profile's encoding, as Zowe Explorer decides it. A save tags the file as Zowe does after an upload.
3. Saves send If-Match: a change made on z/OS is refused (412) rather than overwritten.

**New File...**, **New Directory...**, **Delete** (a directory with its contents) and move are offered. Paths behind the API Mediation Layer are encoded. An untagged file is tagged on its first save.

State: tested with tags IBM-037, untagged IBM-1047 and binary against the z/OSMF-shaped server; **not yet run against z/OS**. The list shape for a file path, the modification time zone and the `chtag` format are as documented, not observed.

## Accessibility

Accessibility Help (Alt+F1) in the z/OS Data Sets view names its keys; F2 renames and Delete deletes there. Not yet checked with a screen reader.
