--- title: "Mainframe Installation" slug: "mainframe-installation" updated: 2022-04-11T11:58:40Z published: 2022-04-11T11:58:40Z canonical: "docs.zetaly.io/mainframe-installation" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.zetaly.io/llms.txt > Use this file to discover all available pages before exploring further. # Mainframe Installation ## System Requirements The z/OS systems requirements are described on the table below by functionality: | **Functionality** | **MVS version** | | --- | --- | | **SMF Collector** | OS/390 version 2.10 | | **DXPL Server** | z/OS version 1.4 | | **ZETALY Messaging** | z/OS version 1.6 | ## The Installation Guide This section explains the product datasets and procs, how to install them in the mainframe, as well as the steps necessary to customize the MVS system. ### Summary The installation of the ZETALY STREAMING AGENT Server on the mainframe is very simple consisting of the following steps: | **Step** | **Description of full installation** | | --- | --- | | **1** | Copy the dxplload in XMIT format to MVS | | **2** | Receive the dxplload to restore to library format (PDSE) | | **3** | APF-Authorize the dxplload library | | **4** | Associate a RACF user to the DXPL STC’s | | **5** | Create JCL for DXPL STC’s | | **-** | Start DXPL tasks | ### SMF collector To install only the SMF collector you need just execute the following steps: | **Step** | **Description of SMF Collector installation** | | --- | --- | | **1** | Copy the dxplload in XMIT format to MVS | | **2** | Receive the dxplload to restore to library format (PDSE) | | **-** | Run the DXPLSMF program | The only dataset the product requires is the load library that we refer as: **ZCOST.DXPV4000.DXPLLOAD** #### Step 1 – Copy the dxplload.XMIT to MVS You receive the dxplload in a XMIT format that is a special format used by IBM to transfer files between systems. The file is ZCOST.DXPVvvvv.DXPLLOAD.XMIT **Pre-allocate the XMIT file on MVS** The easiest way to deal with XMIT files is pre-allocating the file in the MVS before transferring the XMIT file because you do not have to enter any DCB information on the FTP command. So, we pre-allocate a XMIT file on the mainframe: ```none Data Set Information Data Set Name . . . : ZCOST.DXPVvvvv.DXPLLOAD.XMIT General Data Current Allocation Volume serial . . . : D4BEAR Allocated cylinders : 1 Device type . . . . : 3390 Allocated extents . : 1 Organization . . . : PS Record format . . . : FB Record length . . . : 80 Block size . . . . : 3120 Current Utilization 1st extent cylinders: 5 Used cylinders . . : 0 Secondary cylinders : 1 Used extents . . . : 0 ``` **Transfer the XMIT to MVS** You can use FTP to copy the dxplload. xmit to the dataset you have just allocated. Do not forget to set binary mode (bin). Open a command prompt on the windows (cmd.exe) and type the following 1. Go to the directory where the xmit file are: ```none C:\>cd \temp C:\temp> ``` 2. Connect to the mainframe FTP and supply a user ID and password as requested: ```none C:\temp>ftp 10.5.0.2 Connected to 10.5.0.2. 220-FTPD1 IBM FTP CS V2R10 at S390.dino.br, 11:43:19 on 2008-02-21. 220 Connection will close if idle for more than 5 minutes. User (10.5.0.2:(none)): ``` 3. Change to root (cd ..) and set binary mode (bin) entering the commands: ```none ftp> cd .. 250 "" is the working directory name prefix. ftp> bin 200 Representation type is Image ftp> ``` 4. Transmit the xmit file: ```none ftp> put ZCOST.DXPVvvvv.DXPLLOAD.XMIT 200 Port request OK. 125 Storing data set ZCOST.DXPVvvvv.DXPLLOAD.XMIT 250 Transfer completed successfully. ftp: 1988000 bytes sent in 9,40Seconds 211,51Kbytes/sec. ftp> ``` #### Step 2 – Receive XMIT file Once you have transferred the dxplload in XMIT format to the MVS, we need to convert it to the library format using the TSO RECEIVE command. It is advisable to pre-allocate the dxplload library in a permanent disk (not work) before issuing the RECEIVE command. **Pre-allocate the dxplload library** You can pre-allocate the dxplload using the following parameters: ```none Allocate New Data Set More: Data Set Name . . . : ZCOST.DXPV4000.DXPLLOAD Management class . . . (Blank for default management class) Storage class . . . . (Blank for default storage class) Volume serial . . . . D4BEAR (Blank for system default volume) ** Device type . . . . . (Generic unit or device address) ** Data class . . . . . . (Blank for default data class) Space units . . . . . CYLINDER (BLKS, TRKS, CYLS, KB, MB, BYTES or RECORDS) Average record unit (M, K, or U) Primary quantity . . 5 (In above units) Secondary quantity 5 (In above units) Directory blocks . . 0 (Zero for sequential data set) * Record length . . . . 0 Block size . . . . . 27000 Data set name type : LIBRARY (LIBRARY, HFS, PDS, or blank) (YY/MM/DD, YYYY/MM/DD Expiration date . . . YY.DDD, YYYY.DDD in Julian form ``` **Receive the dxplload** Now, we can receive the dxplload, i.e. to convert from XMIT format to the load library format on the pre-allocated library: On the TSO command on the ISPF (6 Command): ```none RECEIVE INDA('ZCOST.DXPV4000.DXPLLOAD.XMIT') ``` ```none INMR901I Dataset ZCOST.DXPV4000.DXPLLOAD from GAZOLA on NODENAME INMR154I The incoming data set is a 'PROGRAM LIBRARY'. INMR906A Enter restore parameters or 'DELETE' or 'END' + ``` If you leave the dsname of the dxplload as the original: ZCOST.DXPV4000.DXPLLOAD, you just need press to confirm the command. Otherwise you enter the new name as bellow: ```none DA(‘NEWNAME.DXPLLOAD’) ``` ```none INMR045I Dataset 'ZCOST.DXPV4000.DXPLLOAD' already exists. Reply 'R' to replace identically named members. + ``` Enter ‘R’ and to confirm the replace because the dxplload was already pre-allocated: ```none IGW01551I MEMBER DXPLCCMD HAS BEEN LOADED IGW01551I MEMBER DXPLDASD HAS BEEN LOADED IGW01551I MEMBER DXPLDINO HAS BEEN LOADED IGW01551I MEMBER DXPLSMF HAS BEEN LOADED IGW01551I MEMBER DXPLSSI HAS BEEN LOADED IGW01551I MEMBER DXPLTCP HAS BEEN LOADED IGW01551I MEMBER PARMSMF HAS BEEN LOADED IGW01550I 7 OF 7 MEMBERS WERE LOADED IEB147I END OF JOB - 0 WAS HIGHEST SEVERITY CODE INMR001I Restore successful to dataset 'ZCOST.DXPV4000.DXPLLOAD' ``` #### Step 3 – APF-Authorize The dxplload must be APF-Authorized if you intend to use the DXPL Server functions for the DASD Explorer product or ZETALY Messaging. **Add dxplload to PROGxx** In order to APF authorize a load library you should include the dsname and volser of the dxplload on the PROGxx list on the SYS1.PARMLIB or equivalent: ```none APF ADD DSNAME (ZCOST.DXPV4000.DXPLLOAD) VOLUME (volser) ``` **Set APF dynamically** You have also to activate dynamically to avoid an IPL. The easiest way is through the system console command SETPROG: ```none SETPROG APF,ADD,DSN=ZCOST.DXPV4000.DXPLLOAD,VOL=volser ``` #### Step 4 – RACF Authorization The DXPL tasks run as a STC (started task) and the DXPLTCP requires Open Edition Segment (OpenMVS) in order to execute. The RACF commands can be entered on the ISPF interface: option 6 (Command). **Associate the DXPL STCs to one Userid** To associate an RACF userid with the DXPL STC´s we need to create a profile (DX*.*) on the STARTED class. If you want to use an existing user, you can enter the following RACF command: ```none RDEFINE STARTED DX*.* STDATA(USER(userid)) ``` **Creating a RACF group and userid** You can also create a RACF user specifically to the DXPL STC´s issuing the RACF command add user: ```none AU (DXPL) DFLTGRP(SYS1) NAME('ZETALY User') OWNER(SYS1) OMVS(UID(321)) NOSPECIAL NOOPERATIONS NOOIDCARD NOPASSWORD ``` And, create the profile: ```none RDEFINE STARTED DX*.* STDATA(USER(DXPL)) ``` **Activate the RACF changes** The RACF commands require you to do a refresh: ```none SETROPTS RACLIST (STARTED) REFRESH ``` **DCOLLECT Authorization** The DASD Explorer component uses the DCOLLECT facility from SMS and depending on the installation may require the following RACF resource access: ```none PERMIT STGADMIN.IDC.DCOLLECT.** CLASS(FACILITY) AC(READ) ID(DXPL) SETROPTS RACLIST (FACILITY) REFRESH ``` #### Step 5 – Create JCL for STCs In order to start the DXPL tasks, we need to create the JCL in the PROCLIB. ***Note***: The JCL DXPL to start the subsystem interface (SSI) should reside on the SYS1.PROCLIB or equivalent. You must rename the PROC to other name than DXPL to reside on a user PROCLIB to avoid abends. You can copy and paste the PROCs. **DXPL** ```none //DXPL PROC //SSI EXEC PGM=DXPLSSI, // REGION=0M,TIME=1440 //STEPLIB DD DSN=ZCOST.DXPV4000.DXPLLOAD,DISP=SHR ``` **DXPLTCP** ```none //DXPLTCP PROC //TCP EXEC PGM=DXPLTCP,REGION=0M,TIME=1440 //STEPLIB DD DSN=ZCOST.DXPV4000.DXPLLOAD,DISP=SHR ``` The following PROCs are required only for the ZETALY Messaging facility: **DXQUEUE** ```none //DXQUEUE PROC //DXQUEUE EXEC PGM=DXQUEUE,REGION=0M,MEMLIMIT=600M,TIME=1440 //STEPLIB DD DSN=ZCOST.DXPV4000.DXPLLOAD,DISP=SHR //SYSPRINT DD SYSOUT=* ``` **DXSMF** ```none //DXSMF PROC //DXSMF EXEC PGM=DXSMF,REGION=0M,TIME=1440,PARM='+ALL' //STEPLIB DD DSN=ZCOST.DXPV4000.DXPLLOAD,DISP=SHR //SYSPRINT DD SYSOUT=* ```