APAR status
Closed as program error.
Error description
Rational Business Developer V7.1.0: Abend U0476 due to an invalid PCB address. This problem occurs when passing an IO-PCB to an EGL function which passes it to a subprogram: y41_Ucd_Rcv_Msg_Async_Via_Id (pg9p21.iopcb, g9p21_Iptmsg.usr_Dat a); In this function the IO-PCB is passed as parameter to a subprogram: function y41_Ucd_Rcv_Msg_Async_Via_Id (iopcb IO_PCBRECORD in, msg char) //------------------------------------------------------------ .... call 'd9cp5' (iopcb, id9cp5, msg); .... This is the generated COBOL code: CALL EZEPROGM USING EZELFP-IOPCB-941 ID9CP5-977 EZELFP-MSG-942 When the subprogram uses the IO-PCB ( a GU on IMS message queue ), an abend (U0476) occurs because the passed IO-PCB is not the one with the correct IMS address. In the dump, it was determined that the real IO-PCB is reserved below the line and the one passed to the subprogram is above the line. This problem is due to the function being invoked having defined the PCB record as type IN, which causes a copy of the PCB to be made. This copy of the PCB is being made in above the line memory, instead of what IMS needs, which is the original PCB. This 'copy' is what causes the problem. To fix this, the function PCB argument must be defined as type INOUT (which is the default). Rational Business Developer V7.1.0 has a validation problem which prevents moving data into a PCB (this should be allowed). The validation problem causes the function INOUT type to be flagged as invalid. In this case, validation should not allow the IN type and should only allow the INOUT type. The correct COBOL code is generated when the INOUT type is used.
Local fix
A tempfix is available from support to not allow the IN type and only allow the INOUT type.
Problem summary
Error was caused because the PCB was passed as an IN parm to a function, because the parm was defined as IN.
Problem conclusion
The check has been modfied so that the PCB record must be passed to an INOUT parameter, so a copy is not performed
Temporary fix
Comments
APAR Information
APAR number
PK69308
Reported component name
RATL BUS DEV EX
Reported component ID
5724S5000
Reported release
710
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2008-07-18
Closed date
2008-12-15
Last modified date
2008-12-15
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
RBDE EGL FOR CO
Fixed component ID
5724S5001
Applicable component levels
R710 PSN
UP
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSMQ79","label":"Rational Business Developer"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.1","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]
Document Information
Modified date:
15 December 2008