Topic
  • No replies
lbjerges
lbjerges
33 Posts

Pinned topic User abend under LE with no dump

‏2013-08-22T06:51:20Z |

This is actually not really a COBOL question but since we use COBOL and Language Environment I believe that the principles should be tha same (except for the HLASM macro stuff).

The background is that we use Fault Analyzer to register application problems (call IDISNAP) instead of doing a "traditional" user abend. In on-line we then do a ROLLBACK and in batch wew do a ABEND without dump. The result of this is that we will get one entry in Fault Analyzer with almost alway enough information ti analyze and solve the problem and indepenedent of environment backout of databases and failure indication.

When LE enabling the HLASM entry module containing the ABEND macro (e.g. ABEND 3500) there will still be a system abend produced so each execution in batch will give two entries in Fault Analyzer. This is not desirable since it will shorten the time till the Fault Analyzer history datasets will be filled-up and generally just clutter up the panels.

There is a possibility to change the ABEND macro into a call to LE callable service CEE3ABD, this is where the COBOL might come in since this is a LE callable service)  but unfortunately there is no way to via the call suppress the abend.

There is a possibility to use the parameter TERMTHDACT to finetune the behaviour but that woul affect all possible (unplanned) abends not just this one.


So, the question is: Is there a way to do an old-fashioned user ABEND with no dump when running in LE?

  • craig-s
    craig-s
    7 Posts
    ACCEPTED ANSWER

    Re: User abend under LE with no dump

    ‏2013-08-23T17:54:25Z  
    • lbjerges
    • ‏2013-08-23T15:09:48Z

    That is true and I have tried it. The manual says "suppressing both the CEEDUMP and system dump if requested by the TERMTHDACT run-time option".

    It does not say however which value of the TERMTHDACT will fullfill this request. I have tried them all I think and in our case Fault Analyzer will always be triggered. This however seems to be the root of the problem. If I disable Fault Analyzer then no dump will be produced given the "right" combination of cleanup/timing and TERMTHDACT.

    Maybe I could do a dynamic allocation of DD-name IDIOFF prior to issuing the CEE3ABD call? Back to the testbed.......

    Thanks for the response.

     

    I believe the reference "if requested by the TERMTHDACT run-time option" means "if the TERMTHDACT option requested a CEEDUMP it will be suppressed and if the TERMTHDACT option requested a system dump it will be suppressed."
     

    I believe this because that is the function of the TERMTHDACT option, to specify the ACTion to take upon THreaD TERMination (LE being a bit backwards, as John Monti is wont to say).

    Your idea of dynamically allocating a DD to tell Fault Analyzer to ignore this abend may be your best option.  Unless you can just add the DD to your JCL.

  • craig-s
    craig-s
    7 Posts

    Re: User abend under LE with no dump

    ‏2013-08-22T17:28:41Z  

    CEE3ABD appears to be able to abend with the second option (alternately called "clean up" and "timing") set to a fullword with a value of 3.

  • lbjerges
    lbjerges
    33 Posts

    Re: User abend under LE with no dump

    ‏2013-08-23T15:09:48Z  

    That is true and I have tried it. The manual says "suppressing both the CEEDUMP and system dump if requested by the TERMTHDACT run-time option".

    It does not say however which value of the TERMTHDACT will fullfill this request. I have tried them all I think and in our case Fault Analyzer will always be triggered. This however seems to be the root of the problem. If I disable Fault Analyzer then no dump will be produced given the "right" combination of cleanup/timing and TERMTHDACT.

    Maybe I could do a dynamic allocation of DD-name IDIOFF prior to issuing the CEE3ABD call? Back to the testbed.......

    Thanks for the response.

     

  • craig-s
    craig-s
    7 Posts

    Re: User abend under LE with no dump

    ‏2013-08-23T17:54:25Z  
    • lbjerges
    • ‏2013-08-23T15:09:48Z

    That is true and I have tried it. The manual says "suppressing both the CEEDUMP and system dump if requested by the TERMTHDACT run-time option".

    It does not say however which value of the TERMTHDACT will fullfill this request. I have tried them all I think and in our case Fault Analyzer will always be triggered. This however seems to be the root of the problem. If I disable Fault Analyzer then no dump will be produced given the "right" combination of cleanup/timing and TERMTHDACT.

    Maybe I could do a dynamic allocation of DD-name IDIOFF prior to issuing the CEE3ABD call? Back to the testbed.......

    Thanks for the response.

     

    I believe the reference "if requested by the TERMTHDACT run-time option" means "if the TERMTHDACT option requested a CEEDUMP it will be suppressed and if the TERMTHDACT option requested a system dump it will be suppressed."
     

    I believe this because that is the function of the TERMTHDACT option, to specify the ACTion to take upon THreaD TERMination (LE being a bit backwards, as John Monti is wont to say).

    Your idea of dynamically allocating a DD to tell Fault Analyzer to ignore this abend may be your best option.  Unless you can just add the DD to your JCL.

  • lbjerges
    lbjerges
    33 Posts

    Re: User abend under LE with no dump

    ‏2013-08-26T11:04:43Z  
    • craig-s
    • ‏2013-08-23T17:54:25Z

    I believe the reference "if requested by the TERMTHDACT run-time option" means "if the TERMTHDACT option requested a CEEDUMP it will be suppressed and if the TERMTHDACT option requested a system dump it will be suppressed."
     

    I believe this because that is the function of the TERMTHDACT option, to specify the ACTion to take upon THreaD TERMination (LE being a bit backwards, as John Monti is wont to say).

    Your idea of dynamically allocating a DD to tell Fault Analyzer to ignore this abend may be your best option.  Unless you can just add the DD to your JCL.

    So I did a dynamic allocation with the aid of BPXWDYN and it actually worked the way I liked it to work.

    Thank you for the support.