SSH Tectia

Accessing Generation Data Groups (GDG)

SSH Tectia Server for IBM z/OS supports generation data groups defined in ICF. Reading GDG ALLs is not supported. SSH Tectia Server for IBM z/OS will not create GDG bases or model datasets.


SSH Tectia file transfers are atomic. Running "sget gdg.base(0) file1" two times in succession might retrieve different files. A loop of "sput file1 gdg.base(+1)" commands might fill the GDG with identical files and roll off all the previous generations.

In the examples below, sshd2 means server functions on z/OS that can be used by any remote client.


sshd2 allows you to navigate to a GDG base and to a prefix of a base. The name of the GDG base is returned to the client with a period at the end, the same way as for prefixes.


sshd2 shows GDG bases with the type GDG. Generation datasets (GDS) are shown with their absolute dataset names.

GDSs are normal datasets. The long name format (ls -l) will show all details.

Listing a base with -l will show full details of the GDSs. The listing may contain datasets that are not in the GDG index but do have dataset names that have the GDG name as a prefix.

It is possible but not recommended to use dataset names which have the GDG base name as a prefix but are not GDS names. For example:

sftp> cd //'USER1.GENGRP'
MVS prefix `'USER1.GENGRP.'' is the current directory.
The working directory `'USER1.GENGRP.'' is a generation data group.
sftp> ls -l
Volume Referred    Recfm Lrecl BlkSz Dsorg    Space  Dsname
S6SYS1 Jan 03 2007 VB     1000 27998 PS       50001  G0006V00.IMPOSTOR
S6SYS1 Jan 02 2007 VB     1000 27998 PS       50001  G0007V00
S6SYS1 Jan 02 2007 VB     1024 27998 PS       50001  G0008V09
S6SYS1 Jan 02 2007 VB     1024 27998 PS       50001  G0077V99
S6SYS1 Jan 02 2007 VB     1024 27998 PS       50001  G0088V99
S6SYS1 Jan 04 2007 VB     1024 27998 PS       50001  G0100V00
S6SYS1 Jan 02 2007 FB       80 27920 PS       50001  GARBAGE

You cannot navigate to a prefix that ends in a GnnnnVnn qualifier. Thus you cannot do "cd G0006V00" or "ls //'USER1.GENGRP.G0006V00'" in the example above.

If the GDG has the NOSCRATCH option, GDSs are retained when they are rolled off.

sshd2 shows datasets based on the prefix - it does not show which datasets are in the GDG and which are not.

Transferring Generation Datasets

SSH Tectia Server for IBM z/OS does not serialize access to datasets and many clients do not wait for an acknowledgement to the close command. The client will proceed to the following command when the network transfer is completed. In most cases, the server stages the data in a memory file and copies it into the dataset after the network transfer ends. This may lead to unexpected results if several transfers add or replace GDSs in the same GDG. The SSH Tectia Client versions 4.4.8 and 5.2.1 and later serialize transfers and handle the acknowledge to the close command properly, and thus avoid this problem.

Access by Relative DSN

sshd2 gives full access with relative generation numbers for reading and writing.

The following formats can be used for the relative GDS name (relno must be 0, +1, or -nn):

Access by Absolute DSN

With absolute GDS names you can do all the things possible with other datasets.

Writing a dataset with a last qualifier with the GnnnnVnn format requires that there exists a suitable GDG base. If the generation exists it is overwritten. If if does not, the new file is inserted in its place in the GDG and older GDGs are rolled off, if necessary.