View previous topic :: View next topic
|
Author |
Message |
niks_jude Warnings : 1 Active User
Joined: 01 Dec 2006 Posts: 144 Location: Mumbai
|
|
|
|
Following is how my fileaid step looks like which is part of a PROC. In some cases I do not pass the member name and pass the library name in XXPY symbolic in DD01RL. Now I have a requirement to pass the exact copybook member here which it is able to take but without the second library in concatenation. So i tried dummy but it abends (even passed DCB of LRECL=80, RECFM=FB with the dummy but did not work).
Code: |
//COMPARE EXEC PGM=FILEAID,REGION=6M
//SYSPRINT DD SYSOUT=*
//SYSLIST DD DSN=CKT.ALTxxxx.&DSN..CMP,
// DISP=(NEW,CATLG,DELETE),
// UNIT=&UNIT,
// SPACE=&SPACE,
// DCB=(SYS2.DSCB,RECFM=FB,LRECL=133,BLKSIZE=133)
//DD01 DD DISP=SHR,DSN=CKT.&OLDDD..&DSN
//DD01C DD DISP=SHR,DSN=CKT.&NEWDD..&DSN
//DD01CP DD DISP=SHR,DSN=CKT.xxxx.FILEAID.COMPARE.&FADSN
//DD01RL DD DISP=SHR,DSN=&XXCPY
//* DD DISP=SHR,DSN=XX.BASE00.CPY |
|
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
//* |
|
Back to top |
|
|
niks_jude Warnings : 1 Active User
Joined: 01 Dec 2006 Posts: 144 Location: Mumbai
|
|
|
|
Sorry again, it can be seen as // without comment (in my test i ran commenting it, so that I can get rid of the problem.) |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
well, remove the comment
and provide us with the jes expansion of the PROC
with your override problem
so we can help you. |
|
Back to top |
|
|
niks_jude Warnings : 1 Active User
Joined: 01 Dec 2006 Posts: 144 Location: Mumbai
|
|
|
|
This is the error I am getting -
Code: |
ER048-OPEN ERROR 013-64 WAS ENCOUNTERED ON DD01RL SQ.BASE00.CPY
COMPARE FUNCTION PROCESSING FOR DD01 HAS ENDED RC=8
|
And this is the expansion from JES
Code: |
++COMPARE EXEC PGM=FILEAID,REGION=6M
++SYSPRINT DD SYSOUT=*
++SYSLIST DD DSN=CKT.ALXXXXX.&DSN..CMP,
++ DISP=(NEW,CATLG,DELETE),
++ UNIT=&UNIT,
++ SPACE=&SPACE,
++ DCB=(SYS2.DSCB,RECFM=FB,LRECL=133,BLKSIZE=133)
IEFC653I SUBSTITUTION JCL - DSN=CKT.ALT4312.PXRLCFAD.HOLD.CMP,DISP=(NEW,CATLG,DE
(200,100),RLSE),DCB=(SYS2.DSCB,RECFM=FB,LRECL=133,BLKSIZE=133)
++DD01 DD DISP=SHR,DSN=CKT.&OLDDD..&DSN
IEFC653I SUBSTITUTION JCL - DISP=SHR,DSN=CKT.XXXXXX0B.PXRLCFAD.HOLD
++DD01C DD DISP=SHR,DSN=CKT.&NEWDD..&DSN
IEFC653I SUBSTITUTION JCL - DISP=SHR,DSN=CKT.XXXXXXXX0A.PXRLCFAD.HOLD
++DD01CP DD DISP=SHR,DSN=CKT.XXXXX.FILEAID.COMPARE.&FADSN
IEFC653I SUBSTITUTION JCL - DISP=SHR,DSN=CKT.XXXXXXX.FILEAID.COMPARE.SDCFAD.SQCFFA
//COMPARE.DD01RL DD DISP=SHR,DSN=&SQCPY(SQCFFACT)
IEFC653I SUBSTITUTION JCL - DISP=SHR,DSN=XX.BASE00.CPY(SQCFFACT)
+/DD01RL DD DISP=SHR,DSN=&SQCPY
IEFC653I SUBSTITUTION JCL - DISP=SHR,DSN=XX.BASE00.CPY
++ DD DUMMY,DISP=SHR,DSN=XX.BASE00.CPY |
|
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
Why have you not referred to the Sysgtem messages for the 013 and then to the manual for the IRC141I (that the 013 abend mentions)? Both the z/OS System Codes and the z/OS System Messages (you want VOL VII, i believe) are available via the IBM Manuals link at the top of the page.
Read the explanaton of the -64 in the documentation and post back here if something is not clear.
You really need to spend some time learning how to do the basic research for abends. All of the new people in the organizations i support learn this in less than a year. Actually, by the time they are working for 2 years, they are helping the new people learn. |
|
Back to top |
|
|
niks_jude Warnings : 1 Active User
Joined: 01 Dec 2006 Posts: 144 Location: Mumbai
|
|
|
|
This is what I had got but did not make sense to me why it is going to open a dummy dataset. I thought dummy would be treated as an empty file in concatenation.
Code: |
64 An OPEN macro instruction was issued for a dummy data set using
an access method other than QSAM or BSAM. Correct the DD
statement to specify a real data set, or access the data set
using BSAM or QSAM. |
So what I did was do this assuming the DCB properties it was not able to match with the member it is concatenation with. I gave everything exactly same as the PDS it is in just DSORG=PS.
Code: |
DD DUMMY,DCB=(LRECL=80,DSORG=PS,RECFM=FB,BLKSIZE=16000)
|
I am not sure what is the turnaround for this because I want to use the same PROC for when no member is input and when there is override of member. |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
From the JCL manual :
Use the DUMMY parameter to specify that:
No device or external storage space is to be allocated to the data set.
No disposition processing is to be performed on the data set.
For BSAM and QSAM, no input or output operations are to be performed on the data set.
Code the DCB parameter, if needed. If the program does not supply all the data control block information, make sure that the DCB parameter supplies the missing information.
You are using a sequential dataset, concatenated with a PDS. So there a not matching DCB values, and a PDS will be processed by BPAM (not BSAM or QSAM). |
|
Back to top |
|
|
niks_jude Warnings : 1 Active User
Joined: 01 Dec 2006 Posts: 144 Location: Mumbai
|
|
|
|
Code: |
//COMPARE.DD01RL DD DISP=SHR,DSN=&SQCPY(SQCFFACT)
// DD DUMMY,DCB=
(LRECL=80,RECFM=FB,DSORG=PS,BLKSIZE=16000) |
This is exactly what I am doing its a member rather than PDS in first concatenation when I am facing the problem. The DCB information matches exactly with PDS except DSORG but since I am using a member I believe I have to use DSORG=PS on DUMMY. Will it still be BPAM if its a PDS member?
I ran a SORT with the same copybook member and a DUMMY concatenation (without even passing the DCB) and it went fine. So it looks like some limitation of file-aid? |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
Sort may be more forgiving than fileaid. . . What you have coded is documented is not valid per the manuals.
You might copy the member to a temporary qsam dataset and then concatenate the 2 . . . |
|
Back to top |
|
|
niks_jude Warnings : 1 Active User
Joined: 01 Dec 2006 Posts: 144 Location: Mumbai
|
|
|
|
Fine i was assuming that PDS member would be treated as a PS file and i can just add a dummy PS to it, so only the copybook would be left. A little strange to know this limitation though.
I cant copy to QSAM as I want to use this PROC for dual purposes. I will think of something else. |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
Are you using the member name in your DD01RL (lay out library) also
in your control statements? Like LAYOUT=mbr or MAP=mbr? |
|
Back to top |
|
|
niks_jude Warnings : 1 Active User
Joined: 01 Dec 2006 Posts: 144 Location: Mumbai
|
|
|
|
Yes it is there. I do not understand this much but in some cases they are passing the exact copybooks and in some cases they are just passing library as override. Looking at the layouts, the layout has the copybook name defined. I cannot understand what they are achieving by passing a copybook name, looks like you mean to say it will pick it up from the library concatenation. But since I did not want to take any chances as this is a very important job but still wanted to change it have symbolics and concatenations as part of my project, was trying to keep it the same way as current job.
Code: |
* SYNC/KEY OPTIONS
0000 OLD_SYNC/KEY_MEMBER=XXCFFACT,
LAYOUT_NAME=FINANCIAL-ACTIVITY
0000 SYNC/KEY001:OLD_NAME=REFERENCE-CODE,OLD_POSITION=00001,
SORTED=YES,SEQUENCE=ASCENDING
*
* COMPARE FIELDS SET 0001
0001 OLD_LAYOUT_MEMBER=xxCFFACT,
LAYOUT_NAME=xxxx-FINANCIAL-ACTIVITY
|
Now i have following concatenation
&XXCPY
XX.BASE00.CPY
earlier they just had one library and they used to override with library or library(member) in some cases. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
Quote: |
Fine i was assuming that PDS member would be treated as a PS file and i can just add a dummy PS to it, so only the copybook would be left. A little strange to know this limitation though. |
In most situations it Can be read as a "PS file". Your problem is Not the pds, but rather the dd that follows it?
Quote: |
I cant copy to QSAM as I want to use this PROC for dual purposes. |
I believe you can . . . Why would copying the member Not work for "dual puropses".
Suggest you invest some time in learning/re-learning how these basic concepts can help you. |
|
Back to top |
|
|
niks_jude Warnings : 1 Active User
Joined: 01 Dec 2006 Posts: 144 Location: Mumbai
|
|
|
|
I cannot copy because in one case I do not have any member at all.
One case
Code: |
DD01RL DD DSN=XX.TEST.CPY
DD DSN=XX.PROD.CPY
|
Second case
Code: |
DD01RL DD DSN=XX.TEST.CPY(MEM)
DD DSN=XX.PROD.CPY(trying to dummy this)
|
Earlier the first test library concatenation was not there so it worked. But now the override in case of MEM does not work but I have to somehow dummy it.
Peterholland seems to have got my problem. |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
My guess is, the moment FILEAID sees a control statement with a lay-out member, it is going to do BPAM access. And that is not possible on a sequential dataset (e.g. pds(mbr)). So your 013 abend is not created by your dummy dd statement. |
|
Back to top |
|
|
niks_jude Warnings : 1 Active User
Joined: 01 Dec 2006 Posts: 144 Location: Mumbai
|
|
|
|
I guess that is the case, i will not do this in production but will try removing the member names from control card and see what happens. I guess they originally decided to pass the member name because they did not want to mention it in the control card - not sure why they did this kind of different coding? |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
Im almost 100% sure FILEAID is not going to work without giving the layout names in its control statements. |
|
Back to top |
|
|
niks_jude Warnings : 1 Active User
Joined: 01 Dec 2006 Posts: 144 Location: Mumbai
|
|
|
|
Then i am curious what is the use of passing a member name instead of whole library if control card is going to have it? It is going to search the copybook in the library and use the same. |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
I don't see any use for it, and also FILEAID doesnt. Its not designed to work with member names. What if there are 10 control statements with different layout names?
So you have to find another solution, maybe your sysin using a symbolic dsname for different sets of control statements. |
|
Back to top |
|
|
niks_jude Warnings : 1 Active User
Joined: 01 Dec 2006 Posts: 144 Location: Mumbai
|
|
|
|
Fine I will try as it looks like but I tried once without the copybook member name and it did work. I was just worried if I am not messing up with anything as its a very important job. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
Then it needs to be tested for "everything" (actually everything needs thorough testing - not just that it runs once) to ensure no production problems later.
Have co-workers/team lead suggest ways to try to "break" it . . . |
|
Back to top |
|
|
niks_jude Warnings : 1 Active User
Joined: 01 Dec 2006 Posts: 144 Location: Mumbai
|
|
|
|
Not many people are aware of it, so not sure how to break it, and this is the reason I was looking for the turn around to still have the concatenation and make it work as earlier. |
|
Back to top |
|
|
|