A fix is available
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
| 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