Using Cloud Data Sets

Introduction

Model9 Cloud Data Platform provides a new way to manage mainframe secondary storage in a transparent manner using cloud object storage. Model9 Cloud Data Set (CDS) feature allows applications to write directly to cloud storage without using intermediate DASD storage. Applications can also read directly from cloud object storage seamlessly. Model9 Cloud Data Set is based on a virtual SMS Manual Tape Library (MTL) which is defined to DFSMS. The MTL is composed of one or more virtual 3480 devices which need to be defined in the IODF.

Expiration Considerations

The expiration of cloud data sets is being done by the Model9 Life Cycle process. To configure the life cycle JCL see Working with Model9 Life-Cycle.
Cloud data sets supports the usage of special dates, for full details how they are handled by the life cycle process see Cloud data sets special dates support

Available Actions

DELCDS

Model9 command line interface allows the removal of cloud data sets using the DELCDS command. For more information about using the command see DELCDS

UI More details

From the Model9 web UI a cloud data set resource entry can be queried for its meta data by using the more details menu option. That will result in a popup frame containing general information about the data set, like creation and expiration dates, record format, volume serial, size and more.

UI Delete

From the Model9 web UI a cloud data set resource entry can be deleted. However the delete process will not remove the catalog entry from z/OS, thus the admin needs to manually remove the catalog entry after a UI delete for CDS is performed.
See sample delete popup below:

Known Limitations

  • Applications using EXCP for the I/O operations are not supported and are expected to fail.
  • Applications using QSAM with Large Block Interface are not supported and will fail with abend S999.
  • Multiple versions of a data set is not supported
  • DFDSS write is fully supported for read use the M9CLDDSS JCL provided in the Model9 SAMPLIB data set. See example below:
//M9CLDDSS JOB ACCT#,SYSPROG,TIME=NOLIMIT,REGION=0M,NOTIFY=&SYSUID
//*********************************************************************
//* Model9 Cloud DFSMSdss sample job
//* 2016-2020 (C) Model 9 Software, https://www.model9.io
//*********************************************************************
// SET HLQ=SYS2.MODEL9.V240
//*********************************************************************
//JAVA EXEC PROC=JVMPRC86,VERSION='M9',TIME=NOLIMIT,
// JAVACLS='-jar lib/model9-cloud-dfsmsdss.jar',LOGLVL='+I'
//STEPLIB DD DISP=SHR,DSN=&HLQ..LOADLIB
//*********************************************************************
//* Identify the "Cloud Data Set" that is the input for the restore
//*********************************************************************
//* --data-set - The imported dataset name
//* --parm - Additional DFDSS parameters (Like TYPRUN=NORUN)
//*********************************************************************
//MAINARGS DD *
--data-set M9.DEMO.CDS.DSS
--parm UTILMSG=YES
/*
//*********************************************************************
//* Enter DFSMSdss RESTORE statements
//*********************************************************************
//SYSIN DD *
RESTORE DATASET(INC(M9.DEMO.CDS.PS)) -
INDD(DUMMY) -
RENAMEU(( -
M9.DEMO.CDS.PS, -
M9.DEMO.PS.NEW -
)) -
CATALOG -
SPHERE -
NOPACK(**) -
TOL(ENQF) -
PROCESS(UNDEF) -
CANCELERROR
/*
//SYSPRINT DD SYSOUT=* RESTORE OUTPUT
//SYSOUT DD SYSOUT=* JAVA OUTPUT
//STDOUT DD SYSOUT=* MODEL9 OUTPUT INCLUDE ERRORS
//STDENV DD *
export PWD=/usr/lpp/model9/agent
export CONF_HOME=$PWD/../conf
export ENV=cloud-dfsmsdss
. $PWD/scripts/stdenv-main.sh
/*
//
  • Multi-volume data sets not supported and not needed as each data set size is not limited
  • Running side by side with CA-1 and CA-TLMS is not supported.
  • Data set tape stacking is not supported
  • Data set concatenation is not supported
  • Cloud data sets working with multiple buckets is not supported.
  • Applications using QSAM/BSAM which initiates the following calls rewind/backspace/seek are not supported and are expected to fail.