Trying to trap S013 abend



High Level Assembler(HLASM) for MVS & VM & VSE

Trying to trap S013 abend

Postby jsavoye » Tue Jun 26, 2012 5:18 pm

Okay, this might sound like a crazy thing to do, but it is what the application requires. I want to allow concatenation of dissimilar files (such as a VB file following several FB files). The system, of course, thinks this is very odd, and issues an S013 abend as soon as I read my way down to the file that is unlike the previous ones. I was trying to intercept the abend through the SYNAD option on a DCBE, but that appears not to be invoked for this error. (The EODAD on the same DCBE does work, so I don't think there is a problem with my general use of the DCBE.) Perhaps the system does not consider this particular error to fit into the category of an "uncorrectable input/output error," although that would certainly seem accurate.

An existing application appears to be trapping this condition through an EXLST on the DCB. It creates an EXLST for type x'85' that may be more applicable to the particular error than the SYNAD option. I have been having some troubles exactly imitating in the new appliation what this existing application is doing, although this is presumably just a matter of tweaking (in spite of some fundamental differences between the applications, such as RMODE=31 in the new application). But I was at least hoping for some confirmation on the preferred way of accomplishing this handling of the abend within the code.

Any insights?
jsavoye
 
Posts: 23
Joined: Wed Dec 08, 2010 8:12 pm
Has thanked: 0 time
Been thanked: 0 time

Re: Trying to trap S013 abend to continue reading

Postby BillyBoyo » Tue Jun 26, 2012 5:26 pm

An advanced question for a beginner's forum :-)

If you absolutely positively have to have this, I think I'd look at a SUBSYS to process the files, get z/OS out of the equation all together.

If you try to "get around" things and let z/OS still do the processing, you might come up against an immovable object, or you might get to something which "works" now but stuffs you on a new release.

Are you saying something at your site already does this...?
BillyBoyo
Global moderator
 
Posts: 3804
Joined: Tue Jan 25, 2011 12:02 am
Has thanked: 22 times
Been thanked: 265 times

Re: Trying to trap S013 abend to continue reading

Postby jsavoye » Tue Jun 26, 2012 5:27 pm

Looking at this again, I see that the EXLST of X'85' just says that it is the last exit. But the manual also says that the EXLST is invoked on each OPEN macro I issue. In this case, I am not issuing an open for the unlike file, although perhaps the system is doing so internally and it is essentially as if I did.
jsavoye
 
Posts: 23
Joined: Wed Dec 08, 2010 8:12 pm
Has thanked: 0 time
Been thanked: 0 time

Re: Trying to trap S013 abend to continue reading

Postby jsavoye » Tue Jun 26, 2012 5:42 pm

Yes, our site is already doing something like what I am asking, although the new application has its own requirements, so that I cannot simply use the existing application. (The existing application, for example, is dedicated to reading one DDNAME, while the new application supports multiple DDNAMES. The new application is now doing all of the things needed of it, except this very odd capability. I have argued that it is just a bad idea, and really should not be supported, but I am getting some pushback that it has been useful in the past, even though no one has a current use of it.) Perhaps this is too non-standard for an easy answer. (And I must admit that I have no idea what you mean by SUBSYS as opposed to using z/OS.)
jsavoye
 
Posts: 23
Joined: Wed Dec 08, 2010 8:12 pm
Has thanked: 0 time
Been thanked: 0 time

Re: Trying to trap S013 abend to continue reading

Postby steve-myers » Tue Jun 26, 2012 6:44 pm

jsavoye wrote:Looking at this again, I see that the EXLST of X'85' just says that it is the last exit. But the manual also says that the EXLST is invoked on each OPEN macro I issue. In this case, I am not issuing an open for the unlike file, although perhaps the system is doing so internally and it is essentially as if I did.
Yes, you are, effectively, doing an OPEN, so your DCB exit routine will be entered.

The X'80' in X'85' says this entry in the address list that DCBEXLST points to is the last entry in the address list. There is no concept of a "last exit."

I think - though I'm not certain about this - that you can do what you want to do, but you have to signal your mainline code to switch from logic to process RECFM=F data to process RECFM=V data. Read the topics "Concatenating Unlike Data Sets" and "Calls to DCB OPEN Exit for Sequential Concatenation" in DFSMS Using Data Sets for your z/OS release very carefully.
steve-myers
Global moderator
 
Posts: 2105
Joined: Thu Jun 03, 2010 6:21 pm
Has thanked: 4 times
Been thanked: 243 times

Re: Trying to trap S013 abend to continue reading

Postby BillyBoyo » Tue Jun 26, 2012 6:59 pm

SUBSYS is how you tell the JCL that you have "something else" to process IO requests for the DDNAME.

I see steve-myers is on hand. I was thinking the SUBSYS would make things simpler by giving full control over the process, but if documented already, maybe it would be overkill.

I'd try for a technical review of the design and get the tecnical supremo to say yes/no to doing it.
BillyBoyo
Global moderator
 
Posts: 3804
Joined: Tue Jan 25, 2011 12:02 am
Has thanked: 22 times
Been thanked: 265 times

Re: Trying to trap S013 abend to continue reading

Postby jsavoye » Tue Jun 26, 2012 7:05 pm

Yes, I meant "last entry" rather than "last exit."

Thank you for directing me to those manual entries. (I was searching for them, but not finding them because I wasn't using the exact phrasing.) That seems to confirm what I thought the existing routine is doing, and to explain why. A quick test for myself in a somewhat simpler example, using my new routine, suggests that setting the flag after each open allows the unlike files to be read. I will need to play with this a bit, but I think you have set me on the right path.

I'll come back and let you know whether or not I was ultimately successful.

Thanks again.
jsavoye
 
Posts: 23
Joined: Wed Dec 08, 2010 8:12 pm
Has thanked: 0 time
Been thanked: 0 time

Re: Trying to trap S013 abend to continue reading

Postby jsavoye » Tue Jun 26, 2012 8:17 pm

. . . and it appears that it is working very nicely. Thanks again.
jsavoye
 
Posts: 23
Joined: Wed Dec 08, 2010 8:12 pm
Has thanked: 0 time
Been thanked: 0 time

Re: Trying to trap S013 abend to continue reading

Postby steve-myers » Tue Jun 26, 2012 9:05 pm

Thank you for the followup. Too often the topic starter never gets back to us when we make a suggestion like here.
steve-myers
Global moderator
 
Posts: 2105
Joined: Thu Jun 03, 2010 6:21 pm
Has thanked: 4 times
Been thanked: 243 times

Re: Trying to trap S013 abend to continue reading

Postby steve-myers » Tue Jun 26, 2012 11:37 pm

The topic subject is somewhat misleading. I had to read the entire first post before I could comment. I think "trapping" the S013, either through the DCB ABEND exit or an ESTAE exit and recovery routine would not be useful here.

Actually, I'm not the best source for this. I think I've made 2 half-hearted attempts to do unlike concatenation and never got satisfactory results over the course of my career. So, I'm happy for jsavoye.

I agree with Billyboyo that this topic is probably a little advanced for a "beginners" forum, but where else could this topic be posted? Years ago I got a very good response for something even more esoteric in one of the news groups, but the ISPs have mostly killed off direct newsgroup access, so that avenue is no longer available to most of us.
steve-myers
Global moderator
 
Posts: 2105
Joined: Thu Jun 03, 2010 6:21 pm
Has thanked: 4 times
Been thanked: 243 times


Return to Assembler

 


  • Related topics
    Replies
    Views
    Last post