IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

B37-04 on temparary dataset and system completion code 0C4


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Dan Zheng

New User


Joined: 02 Nov 2010
Posts: 4
Location: China

PostPosted: Tue Nov 02, 2010 2:46 pm
Reply with quote

I am implementing a script like JCL to run on mainframe. Now I need to support 'PASS' in this script.
My JCL(Like JCL) includes below DD which is a output dataset.
To support this PASS, what I did is after this DD has been written with data in one step, I need read out the data and free this DD, then recreate another DD with same attributes and different DDname (a temparary name) and write back that data into this new DD. To do this is to resolve the same DD name with PASS can not be used in next step.

So now I am not sure where did the below abend happen, on old DD or new DD?
I supposed their space should be same. And increasing the space seems not useful.

Without my PASS support code, the same script (JCL like) can work well.

Could anyone help to see it? Thanks a lot.

Error:

The system got B37-04 error and S0C4 abend. When I changed SPACE=(CYL,(10,5)), it gave the same error.





//SALIDA DD DSN=&&SYSCIN,UNIT=&WUNIT,DISP=(MOD,PASS),
// DCB=(BLKSIZE=400),SPACE=(CYL,(2,1))



IEC030I
B37-04,IFG0554A,DF8DE056,RUNPGM,SALIDA,3E08,WRKE08,SYS10272.T092000.RA000.DF8DE055.SYSCIN.H02
+AB400A ===== ABEND-AID ===== 645

REPORT WRITTEN TO: CWDESA.CSS.SHRDIRCB

REPORT NUMBER: 0086791

JOB-DF8DE056 STEP-RUNPGM

LE COND CODE=CEE3204S / EXPECTED COMP CODE=S0C4

ACCESS YOUR ABEND-AID REPORTS BY EXECUTING SYSTEM COMMA

ND "AA" FROM ANYWHERE IN ISPF.

+LEAID110 LE-AID IS ISSUING U4039-8 ABEND

IEA995I SYMPTOM DUMP OUTPUT 647

USER COMPLETION CODE=4039 REASON CODE=00000008

TIME=09.20.13 SEQ=13353 CPU=0000 ASID=0030

PSW AT TIME OF ERROR 078D1000 8F3BE7BE ILC 2 INTC 0D

ACTIVE LOAD MODULE ADDRESS=0F3BD900 OFFSET=00000EBE

NAME=ÑXAALE31

DATA AT PSW 0F3BE7B8 - 00181610 0A0D4100 00840A3C

AR/GR 0: 8EA00D16/84000000 1: 00000000/84000FC7
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Tue Nov 02, 2010 3:06 pm
Reply with quote

To be honest, you have given us not one item of useful information to try and help you.

You talk about a script. What - REXX / CLIST / .................... and many more
We have no idea of what you are trying to achieve.
Have you fixed the B37 abend yet, and if so does the 0C4 still occur.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


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

PostPosted: Tue Nov 02, 2010 8:34 pm
Reply with quote

Hello,

Does the program use an nternal sort?

Often when an internal sort is ungracefully terminated, an 0c4 is raised.

As Expat mentioned, you have not posted much for someone to use to help. . .
Back to top
View user's profile Send private message
Dan Zheng

New User


Joined: 02 Nov 2010
Posts: 4
Location: China

PostPosted: Thu Nov 04, 2010 12:23 pm
Reply with quote

I am not sure what information are useful for you to help analyze this problem. So if my below description did not answer you, please help point them out. Thank you.

I am not using internal sort.
The B37 error has not been resolved which is my problem indeed. I think that 0C4 error is due to the B37 error. If B37 is resolved, 0C4 should disappear. So now I am trying to ask why this B37 happened.

As to the script, I am referring to a kind of language which is similar to JCL. It has simliar syntax and functions with JCL, but not a full set of JCL.
For example,
//STEP4 EXEC PGM=SR01001P,
// COND=(4,LT,STEP1),
// COND=(0,NE,STEP2),
// COND=(4,LT,STEP3)
//STEPLIB DD DSN=&LSYSUSR,DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//ENTRADA DD DSN=&&TRNOUT,DISP=SHR
//SALIDA DD DSN=&&SYSCIN,UNIT=&WUNIT,DISP=(MOD,PASS),
// DCB=(BLKSIZE=400),SPACE=(CYL,(2,1))

In above JCL, DD SALIDA will be passed to next step in JES system.
Our script is same with above JCL, and it will not executed by JES, but by our application. Our application will parse the script and allocate those DD file and call pgm to execute. So now I need implement the PASS feature by myself in our application running on MVS, not by JES.

Then I happened to the B37 error with DD SALIDA. It is saying
IEC030I
B37-04,IFG0554A,DF8DE056,RUNPGM,SALIDA,3E08,WRKE08,SYS10272.T092000.RA000.DF8DE055.SYSCIN.H02
It seems the temp dataset &&SYSCIN is full. But when SPACE=(CYL,(10,5)) is defined for that DD, the same error comes out. If we are sure that the DD data is not as large as that, what possible reasons can cause this B37 error?
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10872
Location: italy

PostPosted: Thu Nov 04, 2010 12:38 pm
Reply with quote

since we know nothing about Your application it is really difficult to explain why a space abend occurs!
You and Your support are the only ones who can carry on the problem determination an subsequent resolution

we only can point You at the manual strongly inviting You to follow the manual' s suggestion

publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA2H781/CCONTENTS?SHELF=IEA2BK81&DN=SA22-7626-16&DT=20080124095350
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Thu Nov 04, 2010 12:39 pm
Reply with quote

I would try something like
Code:
//SALIDA DD DSN=&&SYSCIN,UNIT=&WUNIT,DISP=(MOD,PASS),
// DCB=(BLKSIZE=400),SPACE=(CYL,(100,100)),VOL=(,,,5)
Also, 400 is an inefficient BLKSIZE, but without knowing anything else about the file being created or the program creating it, I can not say if it is required or not. Try your job without. If you know the attributes then code only the attributes rather than just the BLKSIZE
Code:
//SALIDA DD DSN=&&SYSCIN,UNIT=&WUNIT,DISP=(MOD,PASS),
// REFM=rr,LRECL=xxx,SPACE=(CYL,(2,1))
Back to top
View user's profile Send private message
Dan Zheng

New User


Joined: 02 Nov 2010
Posts: 4
Location: China

PostPosted: Thu Nov 04, 2010 2:21 pm
Reply with quote

Hello,expat
Our script does not support allocating dataset acrossing multiple volumns.
Are you doubting the dataset space is small?
One thing is when our application does not include my new code changes for PASS, SPACE=(CYL,(2,1)) did work. So the file size that program created should not very large. My code changes are using C/C++ runtime API on MVS (such as dyalloc()) to allocate dataset using the attributes defined in that DD.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


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

PostPosted: Thu Nov 04, 2010 7:25 pm
Reply with quote

Hello,

Is this "PGM=SR01001P" a new or recently changed program?

How many records are to be written into the SALIDA dataset? What is the lrecl?

Have you asked the storage people if there is a size limit for whatever value is being used for &WUNIT?
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10872
Location: italy

PostPosted: Thu Nov 04, 2010 7:49 pm
Reply with quote

looks to me that we are just wasting time here...
no useful info... just a generic whine about a B37-04 abend icon_confused.gif
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8696
Location: Dubuque, Iowa, USA

PostPosted: Thu Nov 04, 2010 7:58 pm
Reply with quote

Dan Zheng: from the Messages and Codes manual:
Quote:
04
During end-of-volume processing, one of the following occurred:

1. For an output data set, all space was used on the current volume and no more volumes were specified.

2. The system had to demount a volume in order to mount the next volume of the data set. It was unable to demount the volume for one of the following reasons:

1. The volume was permanently resident
2. The volume was reserved
3. Another job had data sets allocated on the volume
4. There were open data sets on the volume for the failing task.

For an output data set on a direct access device, the system might have needed to demount the volume for one of the following reasons:

* No more space was available on the volume.

* The data set already had 16 extents, but required more space.

* More space was required, but the volume table of contents (VTOC) was full. If additional space were allocated, another data set control block (DSCB) might have been needed, but could not have been written.

For an output data set on magnetic tape, a volume needed to be demounted because the reflective spot was encountered and more records were to be written.

For an input data set on more than one volume, one of the volumes needed to be demounted so that the next one could be mounted, but the system was unable to demount the volume.
You may not think the data set ran out of space, but the computer thinks it did. You may believe the computer and work on the space issue, or you may not believe the computer and pursue your own guesses about the problem. If the pack had 3 free cylinders and your data set required a fourth cylinder then you'd get the SB37-04 abend -- guaranteed. Run the job again, and if SMS allocates to a different volume, it might not get a SB37-04 abend again.

Me, I'd fix the space issue first.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


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

PostPosted: Thu Nov 04, 2010 8:01 pm
Reply with quote

Hello,

Suggest you submit the "real" jcl and run a test outside of "the script".
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts Sysplex System won't IPL at DR site I... All Other Mainframe Topics 2
No new posts run rexx code with jcl CLIST & REXX 15
No new posts Compile rexx code with jcl CLIST & REXX 6
No new posts FINDREP - Only first record from give... DFSORT/ICETOOL 3
No new posts Map Vols and Problem Dataset All Other Mainframe Topics 2
Search our Forums:

Back to Top