02.05.2013 Views

SAS(R) 9.1.3 Companion for z/OS

SAS(R) 9.1.3 Companion for z/OS

SAS(R) 9.1.3 Companion for z/OS

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

44 Sequential Access Bound Libraries Chapter 2<br />

after another. The primary purpose of this library implementation, like the sequential<br />

engines it supports, is <strong>for</strong> storing <strong>SAS</strong> data sets on sequential devices such as tapes.<br />

Moreover, sequential access bound libraries on z/<strong>OS</strong> are also internally compatible with<br />

the sequential <strong>for</strong>mat libraries used by <strong>SAS</strong> on CMS, thus providing a way <strong>for</strong> <strong>SAS</strong> data<br />

to be interchanged between the two operating environments. Sequential access bound<br />

libraries may extend to multiple volumes, subject only to the limitations of the device<br />

type.<br />

Creating Sequential Access Bound Libraries<br />

The following example shows how to create a new multivolume tape library that<br />

resides on more than five volumes. As the sample JCL DD statement shows, the library<br />

can be assigned externally.<br />

//MYTAPE DD DSN=USER489.TAPE.<strong>SAS</strong>LIB,DISP=(NEW,CATLG,DELETE),<br />

// UNIT=CART,LABEL=(1,SL),VOLUME=(PRIVATE,,,7)<br />

The library data set can also be assigned internal to <strong>SAS</strong> using the <strong>SAS</strong> LIBNAME<br />

statement, as is shown in the following example, which is equivalent to the above DD<br />

statement:<br />

libname mytape tape ’user489.tape.saslib’ disp=(new,catlg,delete)<br />

unit=cart label=(1,sl) volcount=7;<br />

Regardless of how the library data set was assigned (either with a DD statement or<br />

with a LIBNAME), specify the libref, or externally assigned DDNAME, as the library in<br />

which a new member is to be created, as is shown in the following example:<br />

R<br />

data mytape.member1; /* new member */<br />

...<br />

Note:<br />

3 The engine ID must be specified when you internally assign a new library on tape.<br />

However, when you externally assign a new library on tape, the value of the<br />

SEQENGINE system option determines the engine that is used to create the<br />

library, unless it is overridden by a LIBNAME statement.<br />

3 The volume count must be specified <strong>for</strong> a tape library that will extend to more<br />

than five volumes. Refer to the documentation <strong>for</strong> the VOLUME parameter of DD<br />

stmt in IBM MVS JCL Reference <strong>for</strong> details.<br />

The following example shows how to create on disk a new, multivolume sequential<br />

access bound library that uses as many as three volumes. As this sample JCL DD<br />

statement shows, the library can be assigned externally:<br />

//SEQDISK DD DSN=USER489.SEQDISK.<strong>SAS</strong>LIB,DISP=(NEW,CATLG),<br />

// UNIT=(3390,3),SPACE=(CYL,(200,200)),BLKSIZE=27998<br />

...<br />

LIBNAME SEQDISK TAPE; /* use TAPE engine */<br />

DATA SEQDISK.MEMB01;<br />

...<br />

The library data set can also be assigned internal to <strong>SAS</strong> using the <strong>SAS</strong> LIBNAME<br />

statement, as shown in the following example, which is equivalent to the DD statement<br />

above:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!