IBM Support

OA29899: REX1 ABEND OR PROG755 WHEN RUNNING CEMTEOUT FROM A CEMT I TAS REQUEST

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • You are getting a REX1 abend under CICS TS 3.2 using REXX CICS
    RUNTIME.  The CEMTEOUT variable is suppose to contain the
    output from CEMT I TAS. When you issue the SAY command against
    this variable, you get the abend. The dump indicates that an
    ATCV abend occurs that is converted to REX1.  The end user has
    no indication of the failure, but they are running an emulator
    that doesn't display 3270 errors.
    You have found that you can get around this problem by parsing
    the CEMTEOUT before issuing  a SAY REST.
    In a test environment, that is not using an EMULATOR, this
    problem shows up as a PROG755 on the user's screen.
    The problem with the ABEND can be alleviated by parsing the
    buffer before issuing the SAY CEMTEOUT command.
    -
    parse var CEMTEOUT xlen 3 msgct 5 maxrc 7 rest
    say rest
    -
    Items that should be addressed:
    1) The SAY command should sanitize data it is asked to display
    so as to not output invalid characters to a 3270 screen.
    
    2) The SAY command issued in the rexx interactive session
    should issue a message letting the user know that an abend
    occurred and continue; as it works now, the abend occurs and
    you lose your rexx interactive session but there's no message
    letting you know until you type in another line of input and
    CICS mishandles it
    
    3) The documentation needs to explain how to parse the
    CEMTEOUT variable
    
    Additional Symptom(s) Search Keyword(s): KIXREVRER
    

Local fix

  • PARSE CEMTEOUT before issuing the SAY command
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All.                                         *
    ****************************************************************
    * PROBLEM DESCRIPTION: Abend REX1 when CICS/Rexx attempts to   *
    *                      display non-displayable characters.     *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    Rexx has a mechanism where it will populate a buffer called
    CEMTEOUT with the results of a CEMT command issued within the
    Rexx environment.  Usually, CEMTEOUT would be parsed using
    a template to extract the required data.  In the reported
    problem, the CEMTEOUT buffer data was the operand of a SAY
    command.  However, CEMTEOUT begins with 3 bytes of binary
    control data that are non displayable.  As a consequence,
    the SAY CEMTEOUT command abended with a code of REX1.
    
    Keywords: PROG755
    

Problem conclusion

  • The SAY command will now convert any non-displayable characters
    to periods ('4B'x).
    
    The following documentation change should be made to the IBM
    REXX Development System for CICS/ESA and Rexx Runtime Facility
    for CICS/ESA Guide and Reference manual (SH21-0482-00).
    
    In chapter 25 (REXX/CICS Commands), within the description for
    the CEMT command, add a new paragraph under the existing
    paragraph commencing 'For CEMTEOUT: data that would ...' thus:
    
    -   Parsing CEMTEOUT.
        The contents of CEMTEOUT may be parsed using the following
        example:
    
        PARSE VAR CEMTEOUT BUFFLEN 3 MSGCOUNT 5 MAXRC REST
    
        Will place:
        the first halfword (containing the inclusive length of
        CEMTEOUT) into REXX variable BUFFLEN.
    
        the second halfword (containing the number of messages
        produced) into REXX variable MSGCOUNT.
    
        the third halfword (containing the highest message-severity)
        into REXX variable MAXRC.
    
        the remainder of CEMTEOUT into REXX variable REST.
    
        Either of the values contained within the first 3 halfwords
        will usually display as periods because they are
        unprintable binary fields.  To display their values will
        require that they are first converted.  For example, to
        display the value of BUFFLEN, you could use:
    
        SAY C2X(BUFFLEN)
        or
        VAR1 = C2X(BUFFLEN)
        SAY VAR1
    

Temporary fix

  • FIX AVAILABLE BY PTF ONLY
    

Comments

APAR Information

  • APAR number

    OA29899

  • Reported component name

    REXX CICS RUNTI

  • Reported component ID

    565508700

  • Reported release

    110

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-07-24

  • Closed date

    2009-10-23

  • Last modified date

    2009-11-03

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UA50814

Modules/Macros

  • CICSAY
    

Publications Referenced
SH21048200    

Fix information

  • Fixed component name

    REXX/CICS COMM

  • Fixed component ID

    565511200

Applicable component levels

  • R110 PSY UA50814

       UP09/10/29 P F910

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"1.1","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
03 November 2009