IBM Support

PK97601: -803 sql abend with rbd egl version 7

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Client has migrated their IMS applications to V7, and nearly fin
    ished
    all testing. Since last week they are seeing some programs fail
    with
    sql -803 error.
    
    
    
    Problem Analysis:
    
    When the job UDBR81B  is run,  the application JFBERRA is execut
    ed, the following piece of Code is not executed in alternate seq
    uences,
    that's the reason for hitting -803.
    
    
    
    // Assign random error number
    Function JFBERP-EXE-GETERR#()
     set JFBZZDW1 empty; /**/
     set JFBERS41A empty; /**/
     while (JFBERS41A not ioError) /* While number is not unique*/
      /**/
       JFBZZDW1.DATE-REQUEST-CODE = 'RN'; /**/
       if (JFBZZWER.DATE-FORM != ' ') /* 1997-10-04 CP APAR 64316*/
      /* 1997-10-04 CP APAR 64316*/
         JFBZZDW1.DATE-FORM-IN = JFBZZWER.DATE-FORM; /* 1997-10-04 C
    P APAR 64316*/
       end /* 1997-10-04 CP APAR 64316*/
       JFBERP-EXE-CALLDTE(); /* Call date rtn for rndm #*/
       if (JFBZZDW1.DATE-RETURN-CODE != 0) /* If unable to gen a nbr
    */
         JFBZZWER.JFBZZWEI-RC = 08; /* jfbrdap (PLI module)*/
         return; /* return out*/
       end /* End*/
       JFBERP-INQ-R41A(); /* Check if Unique Number*/
       if (JFBZZWER.JFBZZWEI-RC != 0) /* If error occured*/
         return; /* return out*/
       end /* End*/
     end /* End*/
      /**/
     JFBERRR41.ERR-NUM = JFBZZDW1.DATE-RNUM; /**/
      /**/
     JFBERRR51.ERR-NUM = JFBERRR41.ERR-NUM; /**/
      /**/
     JFBZZWER.ERR-NUM = JFBERRR41.ERR-NUM; /**/
    end // end JFBERP-EXE-GETERR#
    
    
    
    * **************************************************
    * FUNCTION=JFBERP-EXE-GETERR#
    * **************************************************
    E9 SECTION.
        SET EZESTK-RETURN-OFF TO TRUE
        MOVE 7 TO EZEWRK-ROUTING-RTN
        SET ADDRESS OF JFBZZWER-60 TO EZEGSV-PASSED-1
        INITIALIZE JFBZZDW1-163
        MOVE ALL '0' TO DATE-CC-150 IN JFBZZDW1-163 (1:)
        MOVE ALL '0' TO DATE-YY-152 IN JFBZZDW1-163 (1:)
        INITIALIZE JFBERS41A-135
        CONTINUE.
    EZEBGN-324-WHILE.
        IF ( NOT EZESTA-JFBERS41-132-ERR )
        GO TO EZETHN-324-WHILE
        ELSE
        GO TO EZEELS-324-WHILE
        END-IF.
    
    The application JFBERRA hits -803 because the Variable in the ab
    ove code is not re-initialized to Zero every time.
    
    In EGL Version 6 the Variable is initialized in the Proc 'EZEINI
    TIALIZE-USER-STORAGE SECTION' explicitly everytime whereas
    in EGL Version 7 the Variable is not initialized in the Proc 'EZ
    EINITIALIZE-USER-STORAGE SECTION'.
    So, the First time, the While loop is executed, the process is f
    ine(Inserted the correct values into the table JFBT41).
    The second the while is not executed because the variable is not
     set to zero, the process is in error still doesn't through any
    error(Inserted incorrect values into the table JFBT41, because i
    t's the first time).
    The third time the While loop is executed, the process is fine(I
    nserted the correct values into the table JFBT41).
    The Fourth time, the while is not executed because the variable
    is not set to zero, the process is in error and the -803 is hit
    due to Second time and it goes on alternatively.(Trying to inser
    t the incorrect values into the table JFBT41 for the second time
     with the same key and hits - 803).
    
    
    
    EZEINITIALIZE-USER-STORAGE SECTION.
       MOVE 0 TO EZESTA-EZE2-JFBERRR41-RC
       PERFORM EZESETEMP-EZE2-JFBERRR41
       MOVE 0 TO EZESTA-EZE20-JFBERRR51-RC
       PERFORM EZESETEMP-EZE20-JFBERRR51
       PERFORM EZESETEMP-JFBERRWI
       PERFORM EZESETEMP-JFBERRWI-LEVEL77IT
       MOVE 0 TO EZESTA-EZE64-JFBERS41A-RC       ?==
       PERFORM EZESETEMP-EZE64-JFBERS41A
       PERFORM EZESETEMP-JFBZZDW1
       PERFORM EZESETEMP-JFCERCA
       PERFORM EZESETEMP-JFCERMS
       MOVE SPACES TO VAGEN-EZESYS
       MOVE ZEROS TO VAGEN-EZEREPLY
       MOVE ZEROS TO VAGEN-EZE-WAIT-TIME
       MOVE ZEROS TO VAGEN-EZE-ITEMLEN
       CONTINUE.
    EZEINITIALIZE-USER-STORAGE-X.
       EXIT.
    
    JFBERP-EXE-GETERRX SECTION.
       DISPLAY '****JFBERP-EXE-GETERRX SECTION.'.
       MOVE 'JFBERP-EXE-GETERRX' TO EZERTS-PRC-NAME
       PERFORM EZESETEMP-JFBZZDW1
       PERFORM EZESETEMP-EZE64-JFBERS41A
       CONTINUE.
    EZECONDLBL-77.
       IF NOT EZESTA-EZE64-JFBERS41A-ERR
         GO TO EZECONDLBL-26
       END-IF
       GO TO EZECONDLBL-27
       CONTINUE.
    
    
    
    EZEINITIALIZE-USER-STORAGE SECTION.
       CONTINUE.
    EZEINITIALIZE-USER-STORAGE-X.
       EXIT.
    
    * **************************************************
    * FUNCTION=JFBERP-EXE-GETERR#
    * **************************************************
    E9 SECTION.
        SET EZESTK-RETURN-OFF TO TRUE
        MOVE 7 TO EZEWRK-ROUTING-RTN
        SET ADDRESS OF JFBZZWER-60 TO EZEGSV-PASSED-1
        INITIALIZE JFBZZDW1-163
        MOVE ALL '0' TO DATE-CC-150 IN JFBZZDW1-163 (1:)
        MOVE ALL '0' TO DATE-YY-152 IN JFBZZDW1-163 (1:)
        INITIALIZE JFBERS41A-135
        CONTINUE.
    EZEBGN-324-WHILE.
       IF ( NOT EZESTA-JFBERS41-132-ERR )
       GO TO EZETHN-324-WHILE
       ELSE
       GO TO EZEELS-324-WHILE
       END-IF.
    
    When the application is run after re-initializing the variable '
    EZESTA-EZE64-JFBERS41A-RC'  to zero, the application did not hit
     -803. It went fine.
    

Local fix

Problem summary

  • The working-storage SQL return-code variable was not being
    reinitialized to 0 on re-entry to the called program.
    

Problem conclusion

  • Software updated. Fixtest available.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PK97601

  • Reported component name

    RATL BUS DEV

  • Reported component ID

    5724S5000

  • Reported release

    751

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-09-30

  • Closed date

    2009-12-14

  • Last modified date

    2009-12-14

  • 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

    RATL BUS DEV

  • Fixed component ID

    5724S5000

Applicable component levels

  • R751 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.5.1","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
14 December 2009