Files
MEDDFN/meddfnhtst.rpgle

191 lines
5.6 KiB
RPGLE

**FREE
//=====================================================================
//
// Program......: MEDDFNHTST
//
// Description..: MEDDFN hardware test program
//
// Creates one media definition for six parallel streams
// using the same tape library device and six media files.
//
// Erstellen mit:
//
// CRTRPGMOD MODULE(GOSCH1/MEDDFNHTST)
// SRCSTMF('/home/GOSCH/meddfn/meddfnhtst.rpgle')
// OPTION(*EVENTF)
// DBGVIEW(*SOURCE)
// TGTRLS(*CURRENT)
//
// CRTPGM PGM(GOSCH1/MEDDFNHTST)
// MODULE(GOSCH1/MEDDFNHTST)
// 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;
pDeviceName 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;
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);
//=====================================================================
//
// 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 =
6;
MediaDefinition.MinimumParallelResources =
6;
MediaDefinition.NumberOfDevices =
6;
//=====================================================================
// Devices and media files
//=====================================================================
MediaDefinition.Device(1).DeviceName = pDeviceName;
MediaDefinition.Device(2).DeviceName = pDeviceName;
MediaDefinition.Device(3).DeviceName = pDeviceName;
MediaDefinition.Device(4).DeviceName = pDeviceName;
MediaDefinition.Device(5).DeviceName = pDeviceName;
MediaDefinition.Device(6).DeviceName = pDeviceName;
MediaDefinition.Device(1).NumberOfMediaFiles = 1;
MediaDefinition.Device(2).NumberOfMediaFiles = 1;
MediaDefinition.Device(3).NumberOfMediaFiles = 1;
MediaDefinition.Device(4).NumberOfMediaFiles = 1;
MediaDefinition.Device(5).NumberOfMediaFiles = 1;
MediaDefinition.Device(6).NumberOfMediaFiles = 1;
//=====================================================================
// Media files
//=====================================================================
MediaDefinition.Device(1).MediaFile(1).SequenceNumber = 1;
MediaDefinition.Device(2).MediaFile(1).SequenceNumber = 1;
MediaDefinition.Device(3).MediaFile(1).SequenceNumber = 1;
MediaDefinition.Device(4).MediaFile(1).SequenceNumber = 1;
MediaDefinition.Device(5).MediaFile(1).SequenceNumber = 1;
MediaDefinition.Device(6).MediaFile(1).SequenceNumber = 1;
MediaDefinition.Device(1).MediaFile(1).StartingPositionInFile = *ALL'0';
MediaDefinition.Device(2).MediaFile(1).StartingPositionInFile = *ALL'0';
MediaDefinition.Device(3).MediaFile(1).StartingPositionInFile = *ALL'0';
MediaDefinition.Device(4).MediaFile(1).StartingPositionInFile = *ALL'0';
MediaDefinition.Device(5).MediaFile(1).StartingPositionInFile = *ALL'0';
MediaDefinition.Device(6).MediaFile(1).StartingPositionInFile = *ALL'0';
MediaDefinition.Device(1).MediaFile(1).NumberOfVolumeIdentifiers = 1;
MediaDefinition.Device(2).MediaFile(1).NumberOfVolumeIdentifiers = 1;
MediaDefinition.Device(3).MediaFile(1).NumberOfVolumeIdentifiers = 1;
MediaDefinition.Device(4).MediaFile(1).NumberOfVolumeIdentifiers = 1;
MediaDefinition.Device(5).MediaFile(1).NumberOfVolumeIdentifiers = 1;
MediaDefinition.Device(6).MediaFile(1).NumberOfVolumeIdentifiers = 1;
//=====================================================================
// 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;
//=====================================================================
// 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;
return;