Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

Copy 3 seq files to a pds member
Goto page 1, 2  Next
 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM
View previous topic :: :: View next topic  
Author Message
venuhunev

New User


Joined: 26 May 2007
Posts: 70
Location: chennai

PostPosted: Mon Oct 22, 2007 9:58 pm    Post subject: Copy 3 seq files to a pds member
Reply with quote

Hi,

I have a requirement to concatenate three sequential files and copy it into a member of an existing PDS.

I dont know how to give the DCB , space, disp paramaters for the outdd .

Please let me know if it has any solutions using IEBGENER or IEBCOPY.
Back to top
View user's profile Send private message

superk

Moderator Team Head


Joined: 26 Apr 2004
Posts: 4648
Location: Raleigh, NC, USA

PostPosted: Mon Oct 22, 2007 10:04 pm    Post subject: Re: Copy 3 seq files to a pds member
Reply with quote

venuhunev wrote:
I dont know how to give the DCB , space, disp parameters for the outdd.


I don't understand your comment. We would you need to? It's an existing PDS??

Presuming you can concatenate the three input datasets:
Code:

//COPY     EXEC PGM=IEBGENER
//SYSUT1   DD   DISP=SHR,DSN=DATASET1,DISP=SHR
//         DD   DISP=SHR,DSN=DATASET2,DISP=SHR
//         DD   DISP=SHR,DSN=DATASET3,DISP=SHR
//SYSUT2   DD   DISP=SHR,DSN=THE.PDS(MEMBER)
//SYSPRINT DD   SYSOUT=*
//SYSIN    DD   DUMMY
Back to top
View user's profile Send private message
superk

Moderator Team Head


Joined: 26 Apr 2004
Posts: 4648
Location: Raleigh, NC, USA

PostPosted: Mon Oct 22, 2007 10:17 pm    Post subject: Re: Copy 3 seq files to a pds member
Reply with quote

venuhunev wrote:
Please let me know if it has any solutions using IEBGENER or IEBCOPY.


IEBCOPY? How would it be of any use for this situation?
Back to top
View user's profile Send private message
venuhunev

New User


Joined: 26 May 2007
Posts: 70
Location: chennai

PostPosted: Tue Oct 23, 2007 8:13 am    Post subject: Reply to: Copy 3 seq files to a pds member
Reply with quote

hi ,

My jcl looks like ,

//INSMEM EXEC PGM=SYU9,parm=&mem1
//INDD DD DISP=SHR,input file1
// DD DISP=SHR,input file2
//OUTDD DD existing pds(new mem),DISP=(MOD,CATLG)
//SYSPRINT DD SYSOUT=*
//SYSIN DD Dummy


I am passing parm here, cos it contains my new member name.

Is it possible to pass parm thro iebgener ?
Is my disp parameter correc for outdd ?
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Tue Oct 23, 2007 8:25 am    Post subject:
Reply with quote

Hello,

Your question mentions 3 input files, but your jcl only shows 2.

The jcl posted by SuperK does exactly what you said you wanted. Is there some reason to not use it?

Your outdd is incorrect. If the dataset already exists, you would not catlg it. If it is a pds you would not use mod.

What is SYU9? Is this some site-specific utility?

In a single step job using inline jcl, you would not use &mem1. You might use &mem1 if your jcl was in a cataloged PROC.
Back to top
View user's profile Send private message
venuhunev

New User


Joined: 26 May 2007
Posts: 70
Location: chennai

PostPosted: Tue Oct 23, 2007 4:49 pm    Post subject: Reply to: Copy 3 seq files to a pds member
Reply with quote

Code:

//INSMEM   EXEC PGM=IEBGENER
//SYSUT1   DD  DISP=SHR,DSN=file1
//              DD  DISP=SHR,DSN=file2
//              DD  DISP=SHR,DSN=file3
//SYSUT2   DD  DSN=existing PDS(&MEM1),           
//             DISP=SHR                                         
//SYSPRINT DD SYSOUT=*                                         
//SYSIN    DD DUMMY       


This is my catalogued proc.
Since sysut2 is given as DISP=SHR, the error am getting it is MEM1 is not found.
Back to top
View user's profile Send private message
murmohk1

Senior Member


Joined: 29 Jun 2006
Posts: 1439
Location: Bangalore,India

PostPosted: Tue Oct 23, 2007 5:12 pm    Post subject:
Reply with quote

Venu,

Quote:
Since sysut2 is given as DISP=SHR, the error am getting it is
MEM1 is not found.


Please post the spool messages. Its not because of DISP.

What is the value being passed for 'mem1' from the job?
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Tue Oct 23, 2007 7:23 pm    Post subject:
Reply with quote

Hello,

If you post the jcl that executes the proc, we should see that there is no value set for the symbolic parameter.

As suggested, if you post the spool messages, it will help.

The typical DISP for a pds is SHR - often the pds is used by multiple processes at the same time, so SHR is used to permit this.
Back to top
View user's profile Send private message
venuhunev

New User


Joined: 26 May 2007
Posts: 70
Location: chennai

PostPosted: Wed Oct 24, 2007 3:31 pm    Post subject: Reply to: Copy 3 seq files to a pds member
Reply with quote

Code:
IEC217I B14-10,IGG0201Z,TESTJCL,INSMEM,SYSUT2,5843,PBP227,PBSE.SPUFI.AUT
+WER999A TESTJCL ,STEP1PRC,INSMEM  -  UNSUCCESSFUL SORT B14 S REASON=00000010
IEA995I SYMPTOM DUMP OUTPUT  166                                       
SYSTEM COMPLETION CODE=B14  REASON CODE=00000010                       
TIME=02.55.21  SEQ=06444  CPU=0000  ASID=01BA                         
PSW AT TIME OF ERROR  075C1000   80E32CDE  ILC 2  INTC 0D             
  NO ACTIVE MODULE FOUND                                               
  NAME=UNKNOWN                                                         
  DATA AT PSW  00E32CD8 - 41003846  0A0DB20A  00509808                 
  GR 0: 00000000_00E32EE8   1: 00000000_A4B14000                       
     2: 00000000_000250A4   3: 00000000_00E326A2                       
     4: 00000000_008CB180   5: 00000000_00E49000                       
     6: 00000000_008CB4BC   7: 00000000_008CB514                       
     8: 00000000_008CB4DC   9: 00000000_008CEC90                       
     A: 00000000_008ADC48   B: 00000000_00000061                       
     C: 00000000_008CEC90   D: 00000000_00000000                       
     E: 00000000_00E32B04   F: 00000010_00000010                       
END OF SYMPTOM DUMP                                                   
EF450I TESTJCL INSMEM STEP1PRC - [b]ABEND=SB14[/b] U0000 REASON=00000010  167
Back to top
View user's profile Send private message
murmohk1

Senior Member


Joined: 29 Jun 2006
Posts: 1439
Location: Bangalore,India

PostPosted: Wed Oct 24, 2007 3:40 pm    Post subject:
Reply with quote

Venu,

Reason for rc-10:

Quote:
10 An I/O error occurred trying to update the directory of a
partitioned data set.


Action for rc-10

Quote:
If an I/O error has occurred, a defective volume or device may be the
cause. Save the output from the failing job to aid in the analysis of the
problem. Rerun the job specifying a different volume or device. If a
scratch volume was being used when the I/O error occurred, request a
different volume. If that does not solve the problem, request a different
device in the UNIT parameter of the DD statement. If a specific volume is
needed, try requesting a different device in the UNIT parameter of the DD
statement. Rerun the job. For return code 08, the TTRN value can be found
in the DCBRELAD field of the DCB. This value can be compared with the
extent information contained in the DEB.
Back to top
View user's profile Send private message
tuhin

New User


Joined: 01 Jun 2007
Posts: 6
Location: Dallas,Texas

PostPosted: Wed Oct 24, 2007 5:26 pm    Post subject:
Reply with quote

Venu,
u can use FILEAID.It will serve your purpose.
The code is mentioned below

CODE:
//PDSCPY EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//DD01 DD DISP=SHR,input file1
// DD DISP=SHR,input file2
// DD DISP=SHR,input file3
//DD01O DD existing pds(new mem),DISP=SHR
//SYSIN DD *
$$DD01 COPYALL OUT=0
//SYSOUT DD SYSOUT=*
//*

Regards,
Tuhin
Back to top
View user's profile Send private message
superk

Moderator Team Head


Joined: 26 Apr 2004
Posts: 4648
Location: Raleigh, NC, USA

PostPosted: Wed Oct 24, 2007 5:26 pm    Post subject: Reply to: Copy 3 seq files to a pds member
Reply with quote

venuhunev, is it possible that the target PDS needs to be compressed?
Back to top
View user's profile Send private message
venuhunev

New User


Joined: 26 May 2007
Posts: 70
Location: chennai

PostPosted: Wed Oct 24, 2007 8:54 pm    Post subject:
Reply with quote

Code:
    3 MESSAGE(S) REPORTED BY JCLPREP                                   
         1 ERROR MESSAGE(S)                                             
         2 WARNING MESSAGE(S)                                           
      JCP0903W WARNING....NOTIFY IS NOT ALLOWED ON THE JOB CARD FOR PROD
               UCTION ESP JOBS. -- (J)1                                 
      JCP0906W MEMBER=TSTJCL / JOBNAME=TESTJCL - SBC STANDARDS REQUIRE T
               HAT MEMBER NAME/JOB NAME MATCH. -- (J)1                 
.JCPA JCP0550E PDS MEMBER CNWK10N1 NOT FOUND -- (J)14(P)53             
JCP0903W WARNING....NOTIFY IS NOT ALLOWED ON THE JOB CARD FOR PRODUCTION
          ESP JOBS. -- (J)1                                             
JCP0906W MEMBER=TSTJCL / JOBNAME=TESTJCL - SBC STANDARDS REQUIRE THAT ME
         MBER NAME/JOB NAME MATCH. -- (J)1       




this is the msg when i give PREP.
I am passing CNWK10N1 as MEM1 in the catalogued proc.
PDS MEMBER CNWK10N1 NOT FOUND this msg may be cos of disp=shr, in DD01O / SYSUT2.

i face this prob if i use IEBGENER/fileaid or any other utility.
Back to top
View user's profile Send private message
venuhunev

New User


Joined: 26 May 2007
Posts: 70
Location: chennai

PostPosted: Wed Oct 24, 2007 8:56 pm    Post subject:
Reply with quote

Code:
//TSTPRC1 PROC CYCL='????',                                           
//        IMPDATE='??????????',                                       
//        PSTDATE='??????????',                                       
//        RDTRAC='????????????',                                     
//        CRNUMN='???????',                                           
//        CRNUMS='???????',                                           
//        MEM1='????????',                                           
//        MEM2='????????',                                           
//        MEM3='????????'                                             
//*       MON='??',                                                   
//*       REG='??'                                                   
//* HEADER FOR INSERT / SELECT STATEMENTS                             
//HEADER   EXEC PGM=SYU9,                                             
//*  PARM=('&MEM1','&RDTRAC','&CRNUMN','&IMPDATE','&CYCL','&CRNUMS', 
//   PARM='&MEM1,&RDTRAC,&CRNUMN,&IMPDATE,&CYCL,&CRNUMS,&MEM2,&MEM3' 
//*                                                                   
//INDD     DD DSN=PBSE.SPUFI.AUTOMATE.TEST(HEADER01),                 
//            DISP=SHR                                               
//OUTDD    DD DSN=PBSE.C&CYCL..HEADER.INSSEL,                         
//            DISP=(,CATLG,CATLG),                                   
//            SPACE=(CYL,(1,1),RLSE),                                 
//            DCB=(LRECL=80,RECFM=FB)                               
//SYSPRINT DD SYSOUT=*                                             
//SYSIN    DD DUMMY                                                 
//* SELECT STATEMNTS W/O COMMENTS                                   
//*ELECT1  EXEC PGM=SYU9,PARM='111111111,2222222'                   
//SELECT1  EXEC PGM=SYU9,PARM='&IMPDATE,&PSTDATE'                   
//INDD     DD DSN=PBSE.SPUFI.AUTOMATE.TEST(HEADER02),               
//            DISP=SHR                                             
//*YSUT2   DD SYSOUT=*                                             
//OUTDD    DD DSN=PBSE.C&CYCL..HEADER.SEL01,                       
//            DISP=(,CATLG,CATLG),                                 
//            SPACE=(CYL,(1,1),RLSE),                               
//            DCB=(LRECL=80,RECFM=FB)                               
//SYSPRINT DD SYSOUT=*                                             
//SYSIN    DD DUMMY                                                 
//* SELECT STATEMNTS WIT COMMENTS                                   
//SELECT2  EXEC PGM=SYU9,PARM='&IMPDATE,&PSTDATE'                   
//INDD     DD DSN=PBSE.SPUFI.AUTOMATE.TEST(HEADER03),               
//            DISP=SHR                                             
//OUTDD    DD DSN=PBSE.C&CYCL..HEADER.SEL02,                       
//            DISP=(,CATLG,CATLG),                                 
//            SPACE=(CYL,(1,1),RLSE),                               
//            DCB=(LRECL=80,RECFM=FB)                           
//SYSPRINT DD SYSOUT=*                                           
//SYSIN    DD DUMMY                                             
//* CNWK INSERT MEMBER                                           
//PDSCPY   EXEC PGM=FILEAID,PARM='&MEM1'                         
//SYSPRINT DD SYSOUT=*                                           
//DD01     DD DISP=SHR,DSN=PBSE.C&CYCL..HEADER.INSSEL           
//*DD DISP=SHR,INPUT FILE2                                       
//*DD DISP=SHR,INPUT FILE3                                       
//DD01O    DD DSN=PBSE.SPUFI.AUTOMATE.TEST1(&MEM1),DISP=SHR     
//SYSIN    DD DISP=SHR,DSN=PBSE.SPUFI.AUTOMATE.TEST(FILEACTC)   
//SYSOUT   DD SYSOUT=*                                           
//*                       


This is my actual proc.
Back to top
View user's profile Send private message
enrico-sorichetti

Global Moderator


Joined: 14 Mar 2007
Posts: 10202
Location: italy

PostPosted: Wed Oct 24, 2007 9:11 pm    Post subject: Reply to: Copy 3 seq files to a pds member
Reply with quote

Please please, just say ONE thing and stand by it...

first you say You are using a procedure with a Syu9 program,

then You show us a Iebgener

then a fairly complicated procedure with DB2 involves

I this procedure where only 1 dataset is input to the fileaid
( the other 2 are commented out )

Your first question made sense,
all your changes afterward simply added confusion...
and what Your question really is

We, or at least I, lost track of Your need
Back to top
View user's profile Send private message
venuhunev

New User


Joined: 26 May 2007
Posts: 70
Location: chennai

PostPosted: Wed Oct 24, 2007 9:28 pm    Post subject:
Reply with quote

Oops,

Sorry....

Input files i have jus commented it out, since concatenation wont be a prob...

My first three steps are executing .. My query is related to PDSCPY step.

I tried with SYU9, IEBGENER and now with fileaid too. The prob remains the same.

Hope am making it clear.
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Wed Oct 24, 2007 9:48 pm    Post subject:
Reply with quote

Hello,

If you stop "jumping around" you will probably get what you need sooner.

I'd suggest going back to the IEBGENER SuperK provided and working with that. All of the other is just clutter.

Please put together a job using the suggested IEBGENER and if it does not work as needed, post the entire jcl (both execute and PROCedure if there is a PROC) as well as the diagnostic info from the execution.

When we see both the jcl/proc and the matching diagnostic info, we can tell you how to correct it.
Back to top
View user's profile Send private message
enrico-sorichetti

Global Moderator


Joined: 14 Mar 2007
Posts: 10202
Location: italy

PostPosted: Wed Oct 24, 2007 9:51 pm    Post subject:
Reply with quote

I wonder what' s going on

I just run a simple test and everything run smoothly

Code:

000001 //ENRICO@A JOB (H001),'MEMCREAT',NOTIFY=ENRICO,
000002 //             CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)
000003 //* - - - - - - - - - - - - - - - - - - - - - -
000004 //*            DSN=ENRICO.MF.JCLLIB(PDSCREAT)   
000005 //* - - - - - - - - - - - - - - - - - - - - - -
000006 //*                                             
000007 //IEB     EXEC PGM=IEBGENER                     
000008 //SYSIN     DD DUMMY                           
000009 //SYSPRINT  DD SYSOUT=*                         
000010 //SYSUT1    DD *,DCB=LRECL=80                   
000011 SYSIN  LINE 1                                                             
000015 //          DD DISP=SHR,DSN=ENRICO.MF.SEQ1     
000016 //* SEQ1DD LINE 1                                           
000020 //          DD DISP=SHR,DSN=ENRICO.MF.SEQ2     
000021 //* SEQ2DD LINE 1                                             
000025 //          DD DISP=SHR,DSN=ENRICO.MF.SEQ3     
000026 //* SEQ3DD LINE 1                                           
000030 //SYSUT2    DD DISP=SHR,DSN=ENRICO.MF.PDS(MEM2)   
000031 //* SYSIN  LINE 1                                                     
000035 //* SEQ1DD LINE 1                                                           
000039 //* SEQ2DD LINE 1                                             
000043 //* SEQ3DD LINE 1                                 


the jcl comments show the content of the files
input and ouptut

I would try an incremental approach with sample datasets as in my case

run a job with everithing inline
make out of it an inline procedure
make an external procedure ( maybe using a jcllib )
....

hope that it works

I made a quick check with a procedure ( just to show You )
Code:
000001 //ENRICO@A JOB (H001),'MEMCREAT',NOTIFY=ENRICO,           
000002 //             CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)           
000003 //* - - - - - - - - - - - - - - - - - - - - - - - - - - - -
000004 //*            DSN=ENRICO.MF.JCLLIB(MEMCREAT)             
000005 //* - - - - - - - - - - - - - - - - - - - - - - - - - - - -
000006 //*                                                       
000007 //CREATE  PROC MEM=TEMPFILE                               
000008 //IEB     EXEC PGM=IEBGENER                               
000009 //SYSIN     DD DUMMY                                       
000010 //SYSPRINT  DD SYSOUT=*                                   
000011 //SYSUT1    DD DISP=SHR,DSN=ENRICO.MF.SEQ1                 
000012 //          DD DISP=SHR,DSN=ENRICO.MF.SEQ2                 
000013 //          DD DISP=SHR,DSN=ENRICO.MF.SEQ3                 
000014 //SYSUT2    DD DISP=SHR,DSN=ENRICO.MF.PDS(&MEM)           
000015 //        PEND                                             
000016 //        EXEC CREATE                                     
000017 //        EXEC CREATE,MEM=ZZZ                             


everything went smoothly

here is the directory of the pds
Code:

EDIT     ENRICO.MF.PDS                                      Row 00001 of 00004
Command ===>                                                  Scroll ===> PAGE
   Name     Prompt          Size    Created           Changed           ID   
. MEM1                                                                       
. MEM2                                                                       
. TEMPFILE                                                                   
. ZZZ                                                                         
  **End**                                                                     
Back to top
View user's profile Send private message
venuhunev

New User


Joined: 26 May 2007
Posts: 70
Location: chennai

PostPosted: Wed Oct 24, 2007 10:14 pm    Post subject:
Reply with quote

May i know the use of giving Tempfile ? i guess it is already created ? And how mem = zzz helps ?

Please help me, as i am a fresher.

Code:
//TSTPRC1 PROC CYCL='????',                                     
//          MEM=TEMPFILE                                       
//PDSCPY   EXEC PGM=IEBGENER                                   
//SYSPRINT DD SYSOUT=*                                         
//SYSUT1   DD DISP=SHR,DSN=PBSE.C&CYCL..HEADER.INSSEL           
//         DD DISP=SHR,DSN=PBSE.C&CYCL..HEADER.SEL01           
//         DD DISP=SHR,DSN=PBSE.C&CYCL..HEADER.SEL02           
//SYSUT2   DD DSN=PBSE.SPUFI.AUTOMATE.TEST1(&MEM),DISP=SHR     
//SYSIN    DD DUMMY                                             
//SYSOUT   DD SYSOUT=*                                         
// PEND                                                         
// EXEC CREATE                                                 
// EXEC CREATE,MEM=ZZZ       

I have given this prc.
If i submit this jcl,
Quote:
IEFC008I PEND STATEMENT FOUND BEFORE END OF PROCEDURE
Back to top
View user's profile Send private message
venuhunev

New User


Joined: 26 May 2007
Posts: 70
Location: chennai

PostPosted: Wed Oct 24, 2007 10:16 pm    Post subject:
Reply with quote

Code:
//TESTJCL  JOB (0000,00),SPUFISAS,MSGCLASS=E,REGION=8000K,   
//      NOTIFY=&SYSUID,SCHENV=CQ90                           
//PROCS JCLLIB ORDER=PBSE.SPUFI.AUTOMATE.TEST               
//S01CLEAN   EXEC   PENCORE                                 
//STEP1PRC EXEC TSTPRC1,                                     
//         CYCL=8537                                         


This is my jcl
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM All times are GMT + 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts syncsort: copy lines after the keyword shreya19 SYNCSORT 7 Fri Dec 02, 2016 9:47 am
No new posts High CPU consumption Job using IAM fi... aswinir JCL & VSAM 8 Thu Dec 01, 2016 8:28 pm
No new posts What is the command to check MODE of ... rohanthengal CLIST & REXX 6 Fri Nov 18, 2016 1:48 pm
No new posts Match or compare two files in VB Format anatol DFSORT/ICETOOL 14 Thu Nov 03, 2016 7:41 pm
This topic is locked: you cannot edit posts or make replies. How to use 2 input files in control c... Gunapala CN DFSORT/ICETOOL 23 Thu Oct 13, 2016 3:42 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us