**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;