Test 2 Librarys 12 Vols meddfnhts2 und Comand
This commit is contained in:
@@ -0,0 +1,57 @@
|
|||||||
|
CMD PROMPT('Create MEDDFN - 2 libraries, 12 volumes')
|
||||||
|
|
||||||
|
PARM KWD(MEDDFN) TYPE(*NAME) LEN(10) MIN(1) +
|
||||||
|
PROMPT('Media definition')
|
||||||
|
|
||||||
|
PARM KWD(LIB) TYPE(*NAME) LEN(10) DFT(*CURLIB) +
|
||||||
|
SPCVAL((*CURLIB)) +
|
||||||
|
PROMPT('Library')
|
||||||
|
|
||||||
|
PARM KWD(DEV1) TYPE(*NAME) LEN(10) MIN(1) +
|
||||||
|
PROMPT('Tape library/device 1')
|
||||||
|
|
||||||
|
PARM KWD(DEV2) TYPE(*NAME) LEN(10) MIN(1) +
|
||||||
|
PROMPT('Tape library/device 2')
|
||||||
|
|
||||||
|
PARM KWD(VOL1) TYPE(*CHAR) LEN(6) MIN(1) +
|
||||||
|
PROMPT('Library 1 volume 1')
|
||||||
|
|
||||||
|
PARM KWD(VOL2) TYPE(*CHAR) LEN(6) MIN(1) +
|
||||||
|
PROMPT('Library 1 volume 2')
|
||||||
|
|
||||||
|
PARM KWD(VOL3) TYPE(*CHAR) LEN(6) MIN(1) +
|
||||||
|
PROMPT('Library 1 volume 3')
|
||||||
|
|
||||||
|
PARM KWD(VOL4) TYPE(*CHAR) LEN(6) MIN(1) +
|
||||||
|
PROMPT('Library 1 volume 4')
|
||||||
|
|
||||||
|
PARM KWD(VOL5) TYPE(*CHAR) LEN(6) MIN(1) +
|
||||||
|
PROMPT('Library 1 volume 5')
|
||||||
|
|
||||||
|
PARM KWD(VOL6) TYPE(*CHAR) LEN(6) MIN(1) +
|
||||||
|
PROMPT('Library 1 volume 6')
|
||||||
|
|
||||||
|
PARM KWD(VOL7) TYPE(*CHAR) LEN(6) MIN(1) +
|
||||||
|
PROMPT('Library 2 volume 1')
|
||||||
|
|
||||||
|
PARM KWD(VOL8) TYPE(*CHAR) LEN(6) MIN(1) +
|
||||||
|
PROMPT('Library 2 volume 2')
|
||||||
|
|
||||||
|
PARM KWD(VOL9) TYPE(*CHAR) LEN(6) MIN(1) +
|
||||||
|
PROMPT('Library 2 volume 3')
|
||||||
|
|
||||||
|
PARM KWD(VOL10) TYPE(*CHAR) LEN(6) MIN(1) +
|
||||||
|
PROMPT('Library 2 volume 4')
|
||||||
|
|
||||||
|
PARM KWD(VOL11) TYPE(*CHAR) LEN(6) MIN(1) +
|
||||||
|
PROMPT('Library 2 volume 5')
|
||||||
|
|
||||||
|
PARM KWD(VOL12) TYPE(*CHAR) LEN(6) MIN(1) +
|
||||||
|
PROMPT('Library 2 volume 6')
|
||||||
|
|
||||||
|
PARM KWD(TEXT) TYPE(*CHAR) LEN(50) DFT(*BLANKS) +
|
||||||
|
PROMPT('Text description')
|
||||||
|
|
||||||
|
PARM KWD(REPLACE) TYPE(*CHAR) LEN(4) RSTD(*YES) +
|
||||||
|
DFT(*NO) SPCVAL((*YES) (*NO)) +
|
||||||
|
PROMPT('Replace existing')
|
||||||
@@ -0,0 +1,211 @@
|
|||||||
|
**FREE
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// Program......: MEDDFNHTS2
|
||||||
|
//
|
||||||
|
// Description..: MEDDFN hardware performance test
|
||||||
|
//
|
||||||
|
// Creates one media definition for twelve parallel
|
||||||
|
// streams across two tape libraries, with six volumes
|
||||||
|
// assigned to each library.
|
||||||
|
//
|
||||||
|
// Erstellen mit:
|
||||||
|
//
|
||||||
|
// CRTRPGMOD MODULE(GOSCH1/MEDDFNHTS2)
|
||||||
|
// SRCSTMF('/home/GOSCH/meddfn/meddfnhts2.rpgle')
|
||||||
|
// OPTION(*EVENTF)
|
||||||
|
// DBGVIEW(*SOURCE)
|
||||||
|
// TGTCCSID(*JOB)
|
||||||
|
// TGTRLS(*CURRENT)
|
||||||
|
//
|
||||||
|
// CRTPGM PGM(GOSCH1/MEDDFNHTS2)
|
||||||
|
// MODULE(GOSCH1/MEDDFNHTS2)
|
||||||
|
// BNDSRVPGM(GOSCH1/MEDDFNSRV)
|
||||||
|
// ACTGRP(*NEW)
|
||||||
|
// TGTRLS(*CURRENT)
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
ctl-opt
|
||||||
|
option(*srcstmt:*nodebugio);
|
||||||
|
|
||||||
|
|
||||||
|
/COPY './meddfn_h.rpgle'
|
||||||
|
/COPY './meddfnpr.rpgle'
|
||||||
|
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// Program Interface
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
dcl-pi *n;
|
||||||
|
|
||||||
|
pMediaDefinitionName char(10) const;
|
||||||
|
pLibraryName char(10) const;
|
||||||
|
pDeviceName1 char(10) const;
|
||||||
|
pDeviceName2 char(10) const;
|
||||||
|
|
||||||
|
pVolume1 char(6) const;
|
||||||
|
pVolume2 char(6) const;
|
||||||
|
pVolume3 char(6) const;
|
||||||
|
pVolume4 char(6) const;
|
||||||
|
pVolume5 char(6) const;
|
||||||
|
pVolume6 char(6) const;
|
||||||
|
pVolume7 char(6) const;
|
||||||
|
pVolume8 char(6) const;
|
||||||
|
pVolume9 char(6) const;
|
||||||
|
pVolume10 char(6) const;
|
||||||
|
pVolume11 char(6) const;
|
||||||
|
pVolume12 char(6) const;
|
||||||
|
|
||||||
|
pTextDescription char(50) const;
|
||||||
|
pReplace char(4) const;
|
||||||
|
|
||||||
|
end-pi;
|
||||||
|
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// Data
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
dcl-ds MediaDefinition
|
||||||
|
likeds(MD_MediaDefinition_T);
|
||||||
|
|
||||||
|
dcl-ds Error
|
||||||
|
likeds(MD_Error_T);
|
||||||
|
|
||||||
|
dcl-s DeviceIndex int(10);
|
||||||
|
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// Build media definition
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
clear MediaDefinition;
|
||||||
|
|
||||||
|
MediaDefinition.MediaDefinitionName =
|
||||||
|
pMediaDefinitionName;
|
||||||
|
|
||||||
|
MediaDefinition.LibraryName =
|
||||||
|
pLibraryName;
|
||||||
|
|
||||||
|
MediaDefinition.TextDescription =
|
||||||
|
pTextDescription;
|
||||||
|
|
||||||
|
MediaDefinition.Replace =
|
||||||
|
(pReplace = '*YES');
|
||||||
|
|
||||||
|
MediaDefinition.DeviceAllocation =
|
||||||
|
MD_DeviceAllocateAll;
|
||||||
|
|
||||||
|
MediaDefinition.SaveFormat =
|
||||||
|
MD_SaveFormatParallel;
|
||||||
|
|
||||||
|
MediaDefinition.MaximumParallelResources =
|
||||||
|
12;
|
||||||
|
|
||||||
|
MediaDefinition.MinimumParallelResources =
|
||||||
|
12;
|
||||||
|
|
||||||
|
MediaDefinition.NumberOfDevices =
|
||||||
|
12;
|
||||||
|
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// Devices
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
MediaDefinition.Device(1).DeviceName = pDeviceName1;
|
||||||
|
MediaDefinition.Device(2).DeviceName = pDeviceName1;
|
||||||
|
MediaDefinition.Device(3).DeviceName = pDeviceName1;
|
||||||
|
MediaDefinition.Device(4).DeviceName = pDeviceName1;
|
||||||
|
MediaDefinition.Device(5).DeviceName = pDeviceName1;
|
||||||
|
MediaDefinition.Device(6).DeviceName = pDeviceName1;
|
||||||
|
|
||||||
|
MediaDefinition.Device(7).DeviceName = pDeviceName2;
|
||||||
|
MediaDefinition.Device(8).DeviceName = pDeviceName2;
|
||||||
|
MediaDefinition.Device(9).DeviceName = pDeviceName2;
|
||||||
|
MediaDefinition.Device(10).DeviceName = pDeviceName2;
|
||||||
|
MediaDefinition.Device(11).DeviceName = pDeviceName2;
|
||||||
|
MediaDefinition.Device(12).DeviceName = pDeviceName2;
|
||||||
|
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// One media file per device
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
for DeviceIndex = 1 to 12;
|
||||||
|
|
||||||
|
MediaDefinition.Device(DeviceIndex).NumberOfMediaFiles = 1;
|
||||||
|
|
||||||
|
MediaDefinition.Device(DeviceIndex)
|
||||||
|
.MediaFile(1).SequenceNumber = 1;
|
||||||
|
|
||||||
|
MediaDefinition.Device(DeviceIndex)
|
||||||
|
.MediaFile(1).StartingPositionInFile = *ALL'0';
|
||||||
|
|
||||||
|
MediaDefinition.Device(DeviceIndex)
|
||||||
|
.MediaFile(1).NumberOfVolumeIdentifiers = 1;
|
||||||
|
|
||||||
|
endfor;
|
||||||
|
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// Volume identifiers
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
MediaDefinition.Device(1).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume1;
|
||||||
|
MediaDefinition.Device(2).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume2;
|
||||||
|
MediaDefinition.Device(3).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume3;
|
||||||
|
MediaDefinition.Device(4).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume4;
|
||||||
|
MediaDefinition.Device(5).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume5;
|
||||||
|
MediaDefinition.Device(6).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume6;
|
||||||
|
|
||||||
|
MediaDefinition.Device(7).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume7;
|
||||||
|
MediaDefinition.Device(8).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume8;
|
||||||
|
MediaDefinition.Device(9).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume9;
|
||||||
|
MediaDefinition.Device(10).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume10;
|
||||||
|
MediaDefinition.Device(11).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume11;
|
||||||
|
MediaDefinition.Device(12).MediaFile(1).VolumeIdentifier(1).VolumeIdentifier = pVolume12;
|
||||||
|
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// Create MEDDFN
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
clear Error;
|
||||||
|
|
||||||
|
MD_CreateMediaDefinition(
|
||||||
|
MediaDefinition :
|
||||||
|
Error);
|
||||||
|
|
||||||
|
if Error.HasError;
|
||||||
|
|
||||||
|
dsply ('MEDDFN creation failed: ' +
|
||||||
|
Error.MessageID);
|
||||||
|
|
||||||
|
dsply Error.MessageData;
|
||||||
|
|
||||||
|
else;
|
||||||
|
|
||||||
|
dsply 'MEDDFN created successfully';
|
||||||
|
|
||||||
|
endif;
|
||||||
|
|
||||||
|
*inlr = *on;
|
||||||
|
return;
|
||||||
Reference in New Issue
Block a user