IBM Support

PM06745: Cobol program loops on While (CICS AICA)

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Customers program is looping on the while statement.
    Program worked ok in VAGEN.
    
    1. record defn
    package Utable;
    
    Record UTABLE type basicRecord
      5 U_TABLE char(600) ;
        10 U_TYPE char(2) ;
        10 U_TABLE_DATA char(140) ;
          20 VISIT_TIME_A char(40) ;
            30 VISIT_TIME char(13) [3] ;
              40 HOURS_BEGIN char(2) ;
              40 HOURS_END char(2) ;
              40 FREQU-PERIOD char(3) ;
                45 PERDAY char(1) ;
                45 PERWEEK char(1) ;
                45 PERMONTH char(1) ;
              40 MAXDAY char(3) ;
              40 MAXWEEK char(2) ;
              40 MAXMONTH char(1) ;
            30 PRNX2 char(1) ;
          20 U_MISC char(100) ;
            30 U_MISC_1 char(100) ;
              40 U_MISC_11 char(25) ;
              40 U_MISC_12 char(35) ;
              40 U_MISC_13 char(40) ;
        10 U_TREAT char(1) [100] ;
        10 U_EXIST_IND num(1) [100] ;
        10 U_TREAT_NO char(2) [100] ;
        10 U_TOTAL num(2) ;
        10 * char(56) ;
    end // end UTABLE
    2. Program:
    program AICAPGM type BasicProgram
    {
      includeReferencedFunctions = yes, allowUnqualifiedItemReferenc
    es = yes,
      throwNrfEofExceptions = yes, handleHardIOErrors = no, V60Excep
    tionCompatibility = yes,
      I4GLItemsNullable = no, textLiteralDefaultIsString = no, local
    SQLScope = yes
      }
    
     UTABLE UTABLE;
    
    
     function main()
    
      writestdout('UTABLE.U_EXIST_IND[1] = ' + UTABLE.U_EXIST_IND[1]
    );
      if (' ' == UTABLE.U_EXIST_IND[1])
       writestdout('blank = 0');
      else
       writestdout('blank not equal to 0');
      end
      while (' ' in UTABLE.U_EXIST_IND)
         writestdout('sysVar.arrayIndex = ' + sysvar.arrayindex);
            UTABLE.U_EXIST_IND[sysVar.arrayIndex] = 0;
         end
    
     end
    
    end
    

Local fix

Problem summary

  • The logic for the while statement caused a slightly
    different path than the if statement, when going through the
    compatibility factory. This was due to the while statement
    having to assign to a temporary variable when the types
    mismatched. Logic has been added to detect this situation.
    

Problem conclusion

  • Software updated. Fixtest available.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM06745

  • Reported component name

    RBD EGL FOR COB

  • Reported component ID

    5724S5001

  • Reported release

    751

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-02-03

  • Closed date

    2010-04-14

  • Last modified date

    2010-04-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

    RBD EGL FOR COB

  • Fixed component ID

    5724S5001

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 April 2010