Keyboard Shortcuts
Likes
- H390-MVS
- Messages
Search
Re: Working with ISAM Data Sets
Hello Carlos,
Am 27.12.2020 um 16:32 schrieb carlos feldman <carlfelster@...>: I was using ISAM some weeks ago, It may not be my database of choice today, But I wanted to use the same tools that were used in the 60's an ISAM, and Regional are part of the basic package of Tk4-.Thanks for your efforts and suggestions. I got a hint off-list about the so called ISAM / VSAM Interface. "The ISAM interface allows a properly written and debugged program that processes an indexed sequential data set to process a key-sequenced VSAM dataset (KSDS) transparently.¡° I¡¯m not yet sure which way to go, especially considering that RAKF is annoying me a lot, but this is left for another message in the Turnkey-MVS group which might be a better fit for a Turnkey-related problem. Thanks for your feedback and examples, I¡¯ll keep them as reference! :wq! PoC |
Re: Don't use ISAM
Also interested in VSAM Dear Ed, I am a retired COBOL programmer using TK4- to practice COBOL. I definitely want to use VSAM, and I'm willing to learn API from scratch if you'll tell me how to get started Thanks, Bernard On Sun, Dec 27, 2020 at 12:48 PM Ed Liss <egliss4024@...> wrote: On Sat, Dec 26, 2020 at 12:53 PM, Patrik Schindler wrote: |
MVS Help
Hello,
I anyone able to help me locate what is going wrong with my IBM360/370 simulator with MVS. I can restore the starter system. But when I go to install the SMP patches the new SMP does not appear to link correctly. My simulator will run VM/370, TSS/370, MTS D2 and D4 and OS/360 along with DOS/360. Contact me off list if you wish to help and I will give you directions to the simulator and setup files. Rich -- ========================================================================== Richard Cornwell rich@... LinkedIn: ========================================================================== |
Re: Difficulties with TCP/IP and data sets
Well, folks. Crisis averted (for now). I was going to try Mark's solution. But, for now, Ren¨¦'s idea proved to be a savior one.? Turns out I completely forgot about the PROCLIB dataset. After that, I've varied online the two CTCA devices and LCS works like a charm. Thank you all for the time. This community is still the best. This site Mark indicated contains several resources that'll surely look into more carefully. Att., -trp On Mon, Dec 28, 2020 at 12:21 AM Ren¨¦ Ferland <ferland.rene@...> wrote: On Sun, Dec 27, 2020 at 06:02 PM, Pedro Pinheiro wrote: |
Re: Difficulties with TCP/IP and data sets
On Sun, Dec 27, 2020 at 06:02 PM, Pedro Pinheiro wrote:
So, it seems to be working. I think my suggestion does not solve the problem. On your system, TCPIP is apparently started by CENTER.PROCLIB(TCPIP) which has an explicit DD for the PROFILE with DSN=CENTER.PARMLIB(TCPPROF). So the new TCPPROF is not going to be used, despite the PARMLIB concatenation. Then, how about changing that specific DD to a dataset of your own? Rene FERLAND, Montreal |
Re: Difficulties with TCP/IP and data sets
Should be able to create a rescue volume. Job with datasets to place
toggle quoted message
Show quoted text
on IPL volume should be on . On Sun, Dec 27, 2020 at 8:02 PM Pedro Pinheiro <prppedro@...> wrote:
--
Mike A Schwab, Springfield IL USA Where do Forest Rangers go to get away from it all? |
Re: Difficulties with TCP/IP and data sets
Thanks for all the replies. I failed to give more details. I'm running OS/390 indeed. Thus I do not have any disks containing a minimal system readily available. At first, I tried Ren¨¦'s solution: copying the members over to a new data set (which I called ¡°NEOCNTR.PARMLIB¡±) and duplicated a LOADxx entry (like LOADAA -> LOADBB) and added the line ¡°PARMLIB?? NEOCNTR.PARMLIB¡± to the top, following the z/OS documentation on the subject. During the IPL, it says: ¡°IEE253I IEFPARM DD STATEMENT IS IGNORED WHEN PARMLIB IS SPECIFIED IN LOADXX¡± So, it seems to be working. But the concatenated CENTER.PARMLIB doesn't show the TCPPROF member, which is, however, present at NEOCNTR.PARMLIB. So I might be missing something. On Sun, Dec 27, 2020 at 3:52 PM Doug Wegscheid <dwegscheid@...> wrote:
|
Re: Don't use ISAM
Ed Liss
On Sat, Dec 26, 2020 at 12:53 PM, Patrik Schindler wrote:
Allow me to explain a few more details. I want to use TK4-, so the only COBOL compiler legally available is the MVT one. I honor Jay Moseley's work to enable using VSAM through API calls from that old compiler, but I don¡¯t wanna take this extra step in learning.The MVT COBOL and PL/1 compilers both support ISAM without the need for an API.? ISAM can be easy to learn but has little or no utility support.? VSAM has IDCAMS which provides a lot of utility functions, such as PRINT or REPRO. |
Re: Working with ISAM Data Sets
Hi Patrick, I was using ISAM some weeks ago, It may not be my database of choice today, But I wanted to use the same tools that were used in the 60's an ISAM, and Regional are part of the basic package of Tk4-. ISAM is a unike key database, so, one record one key. If you need your own keys, you have to build your ouwn alternate index tables. I used the same techniques my PL/I teacher used to manage student records, Sequential input data in card or tapes, and a disk with the ISAM data. As you well say you create ISAM from an empty? dataset, Sort my inpuf file, and then with a program I sequentially fill the ISAM dataset. This procedure is also recomanded by IBM, to defrag a database with deleted registers or with overflow table almost full. ? This job sorts my data: //OSSORT? JOB (001),'OSSORT BOOK',CLASS=A,MSGCLASS=A, //? ? ? ? ? ? ?MSGLEVEL=(1,1),NOTIFY=HERC03 //STEP01? ?EXEC PGM=IEFBR14 //DELDD? ? DD DSN=HERC03.LIBROS2A.SRT, //? ? ? ? ? ? DISP=(MOD,DELETE,DELETE) //STEP02? ?EXEC PGM=SORT,REGION=512K,PARM='MSG=AP' //SORT.SORTLIB? DD? ?DSNAME=SYS1.SORTLIB,DISP=SHR //SORT.SORTWORK DD UNIT=2314,SPACE=(CYL,(15,5)) //SORT.SORTWK01 DD UNIT=2314,SPACE=(CYL,(15,5)) //SORT.SORTWK02 DD UNIT=2314,SPACE=(CYL,(15,5)) //SORT.SORTWK03 DD UNIT=2314,SPACE=(CYL,(15,5)) //SORT.SORTWK04 DD UNIT=2314,SPACE=(CYL,(15,5)) //SORT.SORTWK05 DD UNIT=2314,SPACE=(CYL,(15,5)) //SORT.SORTWK06 DD UNIT=2314,SPACE=(CYL,(15,5)) //SORT.SYSPRINT DD SYSOUT=* //SORT.SYSOUT? ?DD SYSOUT=* //SORT.SORTIN? ?DD DSN=HERC03.LIBROS2A.DB,DISP=SHR, //? ? ? ? ? ? DCB=(DSORG=PS,RECFM=FB,LRECL=189,BLKSIZE=27972) //SORT.SORTOUT? DD DSN=HERC03.LIBROS2A.SRT,DISP=(NEW,CATLG,DELETE), //? ? ? ? ? ? UNIT=3390,VOL=SER=PUB013,SPACE=(CYL,(10,4,0)), //? ? ? ? ? ? DCB=(DSORG=PS,RECFM=FB,LRECL=189,BLKSIZE=27972) //SORT.SYSIN DD * ?SORT FIELDS=(13,50,A),FORMAT=CH,SIZE=E40000 ?END /* // ?
?
Then I delete the old ISAM, and create a new one and fill it, note I'm creating a special key, to sepparate repeated keys:
?
//BOOKMKIS JOB (001),'CREAT NDXED DTSET',
//? ? ? ? ?MSGLEVEL=(2,0),CLASS=A,MSGCLASS=A,NOTIFY=HERC03
//*
//*
//STEP01 EXEC PGM=IEFBR14
//DELDD? ? DD DSNAME=HERC03.LIBROS2A.IS(INDEX),
//? ? ? ? ? ? UNIT=3390,VOLUME=SER=PUB013,
//? ? ? ? ? ? DISP=(MOD,DELETE,DELETE)
//? ? ? ? ?DD DSNAME=HERC03.LIBROS2A.IS(PRIME),
//? ? ? ? ? ? UNIT=3390,VOLUME=SER=PUB013,
//? ? ? ? ? ? DISP=(MOD,DELETE,DELETE)
//? ? ? ? ?DD DSNAME=HERC03.LIBROS2A.IS(OVFLOW),
//? ? ? ? ? ? UNIT=3390,VOLUME=SER=PUB013,
//? ? ? ? ? ? DISP=(MOD,DELETE,DELETE)
/*
/*
//CREATE EXEC PL1LFCLG,
//? ? ? ? REGION.PL1L=512K,
//? ? ? ? PARM.PL1L='NL,NE,A,X,NM,S,NS2,NT',
//? ? ? ? PARM.LKED='NOXREF,NOLIST'
//PL1L.SYSIN DD *
?/* CREATE INDEX SEQUENTIAL LIBROS2A */
?MAKEIS: PROC OPTIONS(MAIN);
?
?/* DECLARATIONS */
? ? ?DCL DIREC FILE RECORD SEQUENTIAL KEYED
? ? ? ? ? ? ? ?ENV(INDEXED? F(189)),
? ? ? ? ?CARD CHAR (189),
? ? ? ? ?NAME CHAR(40) DEF CARD POS(13),
? ? ? ? ?LAST_NAME CHAR(40),
? ? ? ? ?CLAVE CHAR(44),
? ? ? ? ?SEQ_NR PIC'9999';
?
?/* EOF CONDITION*/
? ? ?ON ENDFILE(SYSIN) GO TO FINISH;
?/* ERROR TRAPPING */
? ? ON KEY(DIREC) BEGIN;
? ? IF ONCODE=51 THEN PUT FILE(SYSPRINT) SKIP EDIT
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ('NOT FOUND: ',NAME) (A(15),A);
? ? ELSE IF ONCODE=52 THEN PUT FILE(SYSPRINT) SKIP EDIT
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ('DUPLICATE: ',NAME) (A(15),A);
? ? ELSE IF ONCODE=53 THEN PUT FILE(SYSPRINT) SKIP EDIT
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ('OUT OF SEQ:',NAME) (A(15),A);
? ? ELSE IF ONCODE=57 THEN PUT FILE(SYSPRINT) SKIP EDIT
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ('FULL DTSET:',NAME) (A(15),A);
? ? ELSE? ? ? ? ? ? ? ? ? ?PUT FILE(SYSPRINT) SKIP EDIT
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ('ONCODE:? ? ',ONCODE,NAME)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (A(15),F(3),A);
? ? END; /*KEY(DIREC) BEGIN*/
?
?/* OPEN OUTPUT FILE*/
? ? ? ?OPEN FILE(DIREC) OUTPUT;
?
?/* PROCESSING LOOP*/
? ? ? ? ?GET FILE(SYSIN) EDIT(CARD)(A(189));
? ? ? ? ?SEQ_NR=0;
? ? ? ? ?LAST_NAME=NAME;
?
?NEXTIN: GET FILE(SYSIN) EDIT(CARD)(A(189));
? ? ? ? ?IF LAST_NAME = NAME THEN SEQ_NR = SEQ_NR+1;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ELSE SEQ_NR= 0;
? ? ? ? ?LAST_NAME=NAME;
? ? ? ? ?CLAVE=NAME || SEQ_NR;
? ? ? ? ?L=LENGTH(CLAVE);
? ? ? ? ?PUT SKIP LIST (CLAVE,L);
? ? ? ? ?WRITE FILE(DIREC) FROM (CARD) KEYFROM(CLAVE);
? ? ?GO TO NEXTIN;
?
?FINISH: CLOSE FILE(DIREC);
?END MAKEIS;
//*
//GO.DIREC DD UNIT=3390,SPACE=(CYL,200),
//? ? ? ? ? ? DCB=(RECFM=F,LRECL=189,BLKSIZE=189,DSORG=IS,
//? ? ? ? ? ? KEYLEN=44,OPTCD=LIY,CYLOFL=8),
//? ? ? ? ? ? DSNAME=HERC03.LIBROS2A.IS(INDEX),
//? ? ? ? ? ? DISP=(NEW,KEEP),VOLUME=SER=PUB013
//*
//? ? ? ? ?DD UNIT=3390,SPACE=(CYL,200),DCB=DSORG=IS,
//? ? ? ? ? ? DSNAME=HERC03.LIBROS2A.IS(PRIME),
//? ? ? ? ? ? DISP=(NEW,KEEP),VOLUME=SER=PUB013
//*
//? ? ? ? ?DD UNIT=3390,SPACE=(CYL,90),DCB=DSORG=IS,
//? ? ? ? ? ? DSNAME=HERC03.LIBROS2A.IS(OVFLOW),
//? ? ? ? ? ? DISP=(NEW,KEEP),VOLUME=SER=PUB013
//*
//GO.SYSIN? ?DD DSN=HERC03.LIBROS2A.DB,DISP=SHR,
//? ? ? ? ? ? DCB=(DSORG=PS,RECFM=FB,LRECL=189,BLKSIZE=27972)
/*
//
?
? ?then you can search and list your data: ? //LIST JOB (001),'LISTA AUTORES',CLASS=A,MSGCLASS=A, //? ? ? ? MSGLEVEL=(1,1),NOTIFY=HERC03,REGION=562K //STEP01? EXEC PL1LFCLG, //? ? ? ? REGION.PL1L=512K, //? ? ? ? PARM.PL1L='NL,NE,A,X,NM,S,NS2,NT', //? ? ? ? PARM.LKED='NOXREF,NOLIST' //PL1L.SYSIN DD * ?CREATE: PROC OPTIONS(MAIN); ? ? ? ? ?DCL SYSPRINT FILE OUTPUT; ? ? ? ? ?DCL INDATA? ?FILE RECORD INPUT SEQUENTIAL; ? ? ? ? ?DCL COUNT BIN FIXED(15) INIT(0); ? ? ? ? ?DCL (MIN,MAX) CHAR(34) VARYING; ? ? ? ? ?/* output data structure */ ? ? ? ? ?DCL 1 RECRD, /*LRECL=189*/ ? ? ? ? ? ? ? ?2 NRO? ? CHAR (5), ? ? ? ? ? ? ? ?2 DVD? ? CHAR (6), ? ? ? ? ? ? ? ?2 LETRA? CHAR (1), ? ? ? ? ? ? ? ?2 AUTOR? CHAR (40), ? ? ? ? ? ? ? ?2 COLECC CHAR (34), ? ? ? ? ? ? ? ?2 ORDEN? CHAR (3), ? ? ? ? ? ? ? ?2 TITULO CHAR (100); ? ? ? ? DCL TO? ?CHAR(27) INIT('ABCDEFGHIJKLMN?OPQRSTUVWXYZ'); ? ? ? ? DCL FROM CHAR(27) INIT('abcdefghijklmn¡§opqrstuvwxyz'); ? ? ? ? ?/*ENDFILE CONDITION */ ? ? ? ? ?ON ENDFILE(SYSIN) GO TO FINISH; ? ? ? ? ?ON ENDFILE(INDATA) GO TO GET_DATA; ?GET_DATA: MIN,MAX=''; ? ? ? ? ?PUT SKIP LIST ('TIME:',TIME); ? ? ? ? ?GET LIST (MIN,MAX); ? ? ? ? ?MIN=TRANSLATE(MIN,TO,FROM); ? ? ? ? ?MAX=TRANSLATE(MAX,TO,FROM); ? ? ? ? ?PUT PAGE LIST('BUSQUEDA DESDE ',MIN,'HASTA ',MAX); ? ? ? ? ?PUT SKIP; ? ? ? ? ?CLOSE FILE(INDATA); ? ? ? ? ?OPEN? FILE(INDATA); ? ? ? ? ?COUNT=0; ?NEXT:? ?READ FILE(INDATA) INTO (RECRD) ; ? ? ? ? ?RECRD.AUTOR=TRANSLATE(RECRD.AUTOR,TO,FROM); ? ? ? ? ?COUNT=COUNT+1; ? ? ? ? ?IF MIN <= RECRD.AUTOR? &? RECRD.AUTOR <= MAX ? ? ? ? ? ? THEN DO; ? ? ? ? ? ? /*PUT SKIP LIST(COUNT,RECRD.NRO,RECRD.AUTOR, ? ? ? ? ? ? ? ? ? ? ? ? ? ? RECRD.TITULO);*/ ?PUT SKIP EDIT(RECRD) (A(5),A(6),A(0),A(30),A(20),A(3),A(50)); ? ? ? ? ? ? ? END; ? ? ? ? ?GO TO NEXT; ?FINISH: CLOSE FILE(INDATA); ? ? ? ? ?PUT SKIP LIST ('TIME:',TIME); ? ? ? ? ?PUT SKIP LIST ('***FIN DE PROGRAMA***'); ? END CREATE; /* //GO.INDATA? ?DD DSN=HERC03.LIBROS2A.DB,DISP=SHR //GO.SYSYN DD * /* 'CORTAZAR' 'CRUZ' 'ABRAHAM' 'ACOSTA' 'ZAM' 'ZUS' // ? |
Re: Difficulties with TCP/IP and data sets
I don¡¯t think that the original poster is running MVS 3.8 but OS/390 or newer since has a TCPIP profile dataset.
toggle quoted message
Show quoted text
-trp What version of MVS or OS/390 or z/OS are you running? Also are you using the ADCD or a copy of a running system? Laddie Hanus Sent from whatever device I am using. On Dec 27, 2020, at 12:50 AM, Mike Schwab <Mike.A.Schwab@...> wrote: |
Re: Difficulties with TCP/IP and data sets
Turnkey includes the MVS 3.7 starter system on a stand alone volume
toggle quoted message
Show quoted text
for this purpose. And the renames may work under the Turnkey system and only need the IPL to pick up the new dataset. On Sat, Dec 26, 2020 at 8:38 PM Pedro Pinheiro <prppedro@...> wrote:
--
Mike A Schwab, Springfield IL USA Where do Forest Rangers go to get away from it all? |
Re: Difficulties with TCP/IP and data sets
On Sat, Dec 26, 2020 at 06:38 PM, Pedro Pinheiro wrote:
I'll probably need to generate another system, though.Can you just copy CENTER.PARMLIB into your own (large enough) SYSPRG1.PARMLIB, edit TCPPROF to your taste, and then use PARMLIB concatenation in SYS1.IPLPARM to have the system use that dataset instead of CENTER.PARMLIB? Rene FERLAND, Montreal |
Re: Difficulties with TCP/IP and data sets
Thanks for the reply, Mike. Well, if it's the only way, that's what I shall do. I'll probably need to generate another system, though. Att., -trp On Sat, Dec 26, 2020 at 3:50 PM Mike Schwab <Mike.A.Schwab@...> wrote: IPL with the starter system. |
Re: Difficulties with TCP/IP and data sets
¿ªÔÆÌåÓýThat is for the tk4- ftp. It¡¯s not used in esa or z/arch. It enables the FTP in tk4-As I recall it¡¯s not 64 bit safe. Laddie Sent from whatever device I am using. On Dec 26, 2020, at 10:36 AM, Rahim Azizarab via groups.io <rahimazizarab@...> wrote:
|
Re: Don't use ISAM
if you want to learn to use ?VSAM with an API, then start with Jay's interface. You will then have a MUCH ?better understanding when ?you go to KICKS. joe On Sat, Dec 26, 2020 at 12:53 PM Patrik Schindler <poc@...> wrote: Hello Joe, |
Re: Don't use ISAM
The last time I used ISAM was 1981 when I was in college and the system was?a 360/67 running MVT 22.8F. ISAM fell out of favor as MVS matured in the late 70¡¯s. ISAM was functionally stabilized at that time and every one went to VSAM. Don¡¯t think there are too many people who can help you if you have an issue.
toggle quoted message
Show quoted text
Laddie Hanus On Saturday, December 26, 2020, 12:53 PM, Patrik Schindler <poc@...> wrote:
|
Re: Don't use ISAM
Hello Joe,
Am 26.12.2020 um 17:32 schrieb Joe Monk <joemonk64@...>: Yeah ... DONT use ISAM. You will regret it if you do so.May I ask you to elaborate in more detail? USE VSAM KSDS instead. Easier and less complicated. If you need some pointers let me know.Allow me to explain a few more details. I want to use TK4-, so the only COBOL compiler legally available is the MVT one. I honor Jay Moseley's work to enable using VSAM through API calls from that old compiler, but I don¡¯t wanna take this extra step in learning. Thus I thought, aside from purely sequenced datasets (DSORG=PS), using IS could be beneficial to randomly pick records from a DS. If DSORG=IS is ISAM, actually. Later, when I feel confident enough, my goal is to indeed use VSAM, through the API provided with KICKS. :wq! PoC |