Home The Company Publications Products Links Tips Jobs

Experiences With NATURAL Upgrade
From Version 2.3.2 to 4.1.3
In a COM621/COM631 Environment

Report is under development

Last update: 4 May 2005

I upgraded one of our Natural environments from Natural version 2.3.2 to Natural version 4.1.3 in a Com-plete version 6.2.1 environment. ADABAS and ADABAS Online System version 7.4.2, as well as Apas/Insight 4.1.1, played also a role during this upgrade.

  1. Read all Release Notes

  2. Unloaded/copied all files from cartridge to disk.
    - NATURAL.NAT413.**
    - NATURAL.NSC413.**
    - NATURAL.SMA131.**
    - NATURAL.NCF413.**
    - NATURAL.NCI413.**
    - NATURAL.NWW414.**

  3. Created different load and source libraries
    - NATURAL.NAT413.LOADLIB (modified/zapped modules)
    - NATURAL.NAT413.USER.LOAD (modified and assembled sources)
    - NATURAL.NAT413.USER.LOAD.BETA (modified and assembled sources)
    - NATURAL.NAT413.USER.SOURCE (modified sources, e.g. NATPARM)
    - NATURAL.NAT413.ZAPS (all downloaded zaps)
    - NATURAL.NAT413.ZAPS.APPLIED (all applied zaps)

  4. Added the following libraries to the list of APF-authorized libraries:
    - NATURAL.NAT413.LOADLIB
    - NATURAL.NAT413.LOADLIB.BETA

  5. NATI009:
    Linked the Global Buffer Pool module NATGBP41 into the APF lib NATURAL.NAT431.LOADLIB

  6. AMASPZAP:
    Downloaded and applied 35 zaps (status: Oct 13th, 2004)

  7. NATI055:
    Modified NATI055 and copied modified NATCONFIG and ADALNKR to ...USER.SOURCE.
    Assembled and linked:
    NAME $NAT413O ALIAS NATOS
    NATCONFG
    $ADA742R ALIAS ADALNKR

  8. NATI050:
    Modified NATI050 and created/loaded empty FNAT, FUSER, and FDIC

  9. NATPARM:
    Used NATPARM from NAT232 and updated the parms. There is only one NATPARM for all environments (using macro NTSYS).
    - NTBPI for global buffer pool (still commented out)
    - NTDB ADAV7,(0,001)
    - NTEDBP DDNAME=CMEDIT.....
    - NTFILE obsolete, use NTLFILE (new position parms)
    - new: NTLFILE 152,0,004 - old: NTFILE ID=152,FNR=004
    - NUCNAME=NAT413SH
    - FUSER=8,FDIC=109,FNAT=6 (new files because we started empty)
    - NTBPI for global and local buffer pools
    - Changed to ADAMODE=0 to avoid NAT3022/NAT3403. The default was 2, is to support Dynamic Transaction Routing for CICS.

  10. NATI060 with steps:
    - ADD0010 PR001B - Create parameter module
    - ASM0015 PR001B - Assemble parm module
    - LKD0015 PR001B - Link parm module
    - LKD0020 NAT413BA - Link Natural batch
    - LKD0024 RPC413BA - Link RPC batch
    - LKD0105 NAT413SH - Link shared Natural nucleus
    Simplified NATI060 -- single jobs have to be started
    Modified: NATURAL.NAT413.USER.SOURCE(NATPARM)
    - NATI0601: Assemble and link parm module
    - NATI0602: Link Natural batch
    - NATI0603: Link RPC batch
    - NATI0604: Link shared Natural nucleus
    See NAT413 architecture

  11. NATI015:
    Created automatically jobs in NATURAL.NAT413.USER.SOURCE
    - GBNASTRT - Start Natural global buffer pool
    - GBNASTOP - Stop Natural global buffer pool
    - GBEDSTRT - Start editor global buffer pool
    - GBEDSTOP - Stop editor global buffer pool

  12. AMASPZAP:
    Applied additionally 76 zaps (status: Oct 15th, 2004)

  13. Modified NATPARM, NTFILE obsolete, etc. see NATPARM

  14. NATI0601:
    Assembled and linked parm module

  15. NATI0602:
    Linked Natural batch = different COM-modules
    See SAG technical paper #38812

  16. NATI0603:
    Linked RPC batch = RC 4

  17. NATI0604:
    Linked shared Natural nucleus = OK

  18. NATI061:
    INPL received INPLCERR 0031 NAT7396
    User area has been modified -- old FNAT/FUSER/FDIC was defined in NATPARM
    INPL needed TUBATCH module, steplibed COM.V621.LOAD = OK

  19. Modified NATURAL.NAT413.USER.SOURCE(NCFPARM)
    - old macro name NCMCFPRM (NAT232)
    - new macro name NFMPRM, etc., see NCFPARM comments

  20. NCFI070: was NATI070
    NCFI070 splitted into
    NCFI0701: NCFPARM = RC 8 didn't find macro - found on lib NATURAL.NCF413.SRCE
    NCFI0702: NAT4 front-end

  21. NCFI070: Splitted into
    NCFI0701: NCFPARM -- NFMPRM macro
    - ASM RC 8, ASM needs two SYSLIBs
    - NATURAL.NCF413.SRCE and NATURAL.NAT413.SRCE
    NCFI0702: NFTECH -- front-end (NAT4) = OK

  22. NCFI080: Splitted into
    NCFI0801:
    - Natural parms for online, not used, see NATI0601
    NCFI0802:
    - NCF431 Natural Com-plete Nucleus = OK
    NCFI0803:
    - NCFNAT41 Natural Server = OK

  23. Copied into COM.V621.USER.LOAD
    - NCF413 = Natural/Complete nucleus
    - NAT413SH = shared portion of Natural
    - NFTECH = Natural front-end
    - NCFNAT41 = Natural Server under Com-plete

  24. Added to COM.V621.USER.SOURCE(SYSPARM)
    - RESIDENTPAGE=NCF413
    - RESIDENTPAGE=NAT413SH
    - SERVER=(NCFNAT41,NCFNAT41)
    - THREAD-GROUP=(DEFAULT,(NCF413,544,2,20,7,M))

  25. NFTECH (front-end):
    - ULIB CAT NFTECH 176K

  26. Recycled COMTECH
    Received the following error messages:
    - APSINI0001 SMARTServer V271 is initializing under OS/390
    - APSDIS0022-1 Thread group DEFAULT Initialisation failed rc=12 fdbk=36
    - APSOPC0049-1 Return Code 4 from module 'TLINTHCM'
    - APSOPC0031-1 SMARTServer terminated

  27. Changed THREAD-GROUP=(DEFAULT,(NCF413,600,2,20,7,M))
    Reason: NAT232 and NCF413 had the same thsize(544)
    Changed THSIZEABOVE=1024 - same as in NCFPARM
    Recycled COMTECH = OK

  28. Executed NFTECH:
    NAT9915 GETMAIN for thread storage failed.
    SAG: no need to catalog NFTECH or NCF413.
    SAG recommendation:
    - THREAD-GROUP=(DEFAULT,($DEFAULT,600,2,20,7,M))
    - no dedicated name, SAG is using
    - THREAD-GROUP=(DEFAULT,($DEFAULT,600,2,10,,N))

  29. Com-plete SYSPARMS Member:
    - Commented out: THREAD-GROUP=(DEFAULT,(NCF413,600,2,20,7,M))
    - Included: THREAD-GROUP=(DEFAULT,($DEFAULT,600,2,10,,N))
    - Received: NAT9915 GETMAIN for thread storage failed
    - Changed THSIZEABOVE to 2048, as SAG recommendation
    - COMTECH started w/o problems.
    - Natural started with some initialization errors
    - NAT1074 Global NATURAL buffer pool NATGBP/NAT4 not found
    - NAT3022 Invalid command IS. DB/FNR 00000/00000. Subc 000
    - NAT3403 ADAMODE was changed from 2 to 0.
    - Action: inserted ADAMODE=0 into SYSPARMS
    - Commented out the NATBPI macro for the GBP

  30. Updated NATPARM, NTPRM ADAMODE=0

  31. NCFPARM:
    Changed also LE370 in NCFPARM from NO to YES to prevent reloading of 3GL modules in COM621 if session was started with DELETE=OFF

  32. Changed SYSPARM
    - THREAD-GROUP=(DEFAULT,(NCF413,600,2,20,7,M))
    - THSIZEABOVE=1036 = NTHSIZE+8K (located at NCFPARM)
    - Cataloged (ULIB) NCF413 to force to use the dedicated threads NCF413.
    - Recycled COMTECH = OK
    - Started NFTECH = OK
    - Solution: THSIZEABOVE must be 8K bigger than NTHSIZE

  33. SYSAOS Problem:
    AOS742 doesn't show other databases, only the demo version
    Ftp'ed and decoded AOS742I005 -- fixes didn't help
    ADAAOS must be copied from ADABAS.AOS742.LOAD to ADABAS.ADA742.LOAD
    After recycled all databases, SYSAOS is working OK.

  34. CATALOG all Natural programs from production
    - Unloaded one library from production with 6377 programs by using NAT232 UNLOAD
    - Loaded entire library into the NAT413 environment by using NAT413 LOAD
    - Received error message: Predict file invalid for processing of XREF data.
    - Must load NAT413 with XREF NO, even if NAT232 unload was w/o XREF data
    - NATLOAD ALL,*,FROM,LIB,IC123,WITH,XREF,N
    - CATALL: 13 errors out of 6377 programs (prod library 1)
    - CATALL: 24 errors out of 3671 programs (prod library 2)

  35. CATALL Errors:
    Some of the above mentioned catall errors happened surprisingly also under NAT232. Others occurred because of obsolete code, missing DDMs/Views, etc. I will therefore only describe the real NAT413 catall errors.

    • NAT0008: Invalid search syntax.
      FIND SAFE-DROP-LOG WITH CTR/ACT-INACT/MATCH/PICKUP-DTE = 
                  #START-CTR/STAT/MATCH-FLG/PICKU-DTE THRU            
                  #END-CTR/STAT/MATCH-FLG/PICKU-DTE 
      NAT232 check was OK -- NAT413 check received NAT0008
      Possible problem:
      1) A field used in a WITH clause must be a descriptor. A group notation is not permitted.
      2) When the ENDING AT clause of a READ statement uses a superdescriptor as the search key, the superdescriptor must be defined with the VIEW in the data area (if present).
      Please also note since NATURAL version 4: End of Range Condition (ENDING AT) controlled by database is new. As this may lead to different results and so as not confuse the “old” end-value mechanism with the “new” one, a new keyword “TO” is provided that is substituted for “THRU”.

    • NAT0082: Invalid command, or Local SRY80L40 does not exist in library
      LOCAL USING SRY80L40
      NAT232 check is OK -- NAT413 check is OK
      CATALL * (entire library) received NAT0082, reason is under investigation

    • NAT0648: Parameter 1 inconsistently specified. Reason code 16
      1410 	CALLNAT 'ICT01N01' #ICT01N01-PARAMETER
      NAT232 check was OK -- NAT413 check received NAT0648
      under investigation

    See also CATALL hints! Please click here

    See also all CATALL errors! Please click here

  36. APAS/Insight:
    As I discussed with June Abercrombie, all problems will be fixed with the next release and documentations will be updated(>APAS 4.1.1).

    • ADALNCO -- for User Exit B
      Assembled and linked new ADALNCO (LNUINFO EQU 248) with the old JCL procedure and received during execution:
      COMABS0007-1 Program NCO232 Abend U0658 DUMP=003
      The ABEND U658 is not included in the ADA71 Messages and Codes but is included in the ADA74 version. The description of the error is "LNKUES module not available to ADALNK". Although the word ADALNK is used, this abend can occur in any ADABAS link routine including ADALCO.
      My job stream didn't include LNKUES. This is new. A sample job stream is included in the jobs library shipped with ADA742. It is called ALNKLCO. I reassembled, relinked, and retested. Everything went fine.
      000096 //LINKUES  EXEC LINKALL,VRS=ADA742           
      000097 //LKED.SYSIN  DD  *                          
      000098  MODE AMODE(31) RMODE(ANY)                   
      000099  INCLUDE ADAULIB(ADALCO)                     
      000100  INCLUDE ADALIB(LNKUES)              <<== NEW !!                   
      000101  INCLUDE ADAULIB(ASC2EBC)                    
      000102  INCLUDE ADAULIB(EBC2ASC)                    
      000103  INCLUDE APASLIB(DBGDRIVT,DBGSTACT,DBGLNK5T) 
      000104  ENTRY ADABAS                                
      000105  NAME ADALCO(R)                              
      000106 /*                          
      Insight will then show the Natural library and program name.

    • Natural Objects
      Copied all Natural objects into new lib INSIGHTN and recataloged under NAT413 (was not necessary, but just a test)
      Object      Error        Line                   
      INADARUN    0384         3400                   
      INRQUNLD    0082         9999                   
      INIOSET     0651         1410                   
      INSELECT    0974         1220 
      Cataloged 77 -- Errors 4    
      
      INADARUN: The NAT0384 points to the NATURAL GLOBALS parameter FS. Set it OFF and then, catalog was OK.
      INSELECT: FUSER-TEXT needs to be DBID 255 FNR 0. Set-up Natural Security appropriately (READ access) new lib INSIGHTN -- Cataloged INSELECT OK
      INIOSET: check your Compilation Options PCHECK parm set it OFF and recatalog
      INRQUNLD: Error message OK
      Executed Insight = INSTART 0460 NAT0082
      This is a little quirk in the newer Naturals... It will lose the directory entries to all the subroutines and subprograms. You can edit them and you can catalog them but Natural just doesn't like them. June had a work around fix for this annoying behavior though - did a SYSMAIN Copy of the INSIGHT library to a new library name like INS41X. Deleted everything in the original INSIGHT library and then SYSMAINed Copy the new INS41X library back to the INSIGHT library. NAT413 SYSMAIN rebuilds the directory during the copy process and can locate the subroutines and subprograms again.

    Thanks, June. Insight is running fine.

  37. Upgrade NAT413 to COM631 (was COM621) and APS272 (was APS271):

    • Included new load libraries to the assemblies and links
      COM.V631.USER.LOAD
      COM.V631.LOA3
      COM.V631.L004
      COM.V631.LOAD
      COM.V631.APS272.LD06
      COM.V631.APS272.LD00

    • Linked the following members
      - NCFI0701: NCFPARM (....NCFNAT41)
      - NCFI0702: NFxxxx / front-end
      - NCFI0802: NCF413 (......NCFPARM,TLOPUSER,PAEAINT)
      - NCFI0803: NCFNAT41 (... TLOPUSER)
      - NATI0602: NAT413BA (... COMPBTCH) = RC 4 = OK

    • Copied the following members into Com-plete's load library
      - NCF413 = Natural/Complete nucleus
      - NFxxxx = Natural front-end (no longer *ULIB CAT)
      - NCFNAT41 = Natural Server under Com-plete

    • Recycled (yoyo) Com-plete 6.3.1
      First tests didn't show problems.

  38. Runtime errors under NAT413:

    • Writing WORK FILE and RECFM=VB
      Differences between NAT232 and NAT413
      For more information, please click here

    • Writing and reading ET data
      Differences between NAT232 and NAT413
      For more information, please click here

    • Problem with Motorola paging under NAT413 and COM631
      Differences between NAT232 and NAT413
      For more information, please click here

    • Some programs abended with NAT0393: Program cannot be executed.
      Programs cataloged under NAT217 cannot be called by cataloged programs under NAT413.
      Also, NAT217 programs cannot call NAT413 programs.
      Best advise: Re-catalog ALL programs

    • Batch users received a NAT0838 message, when the password expired, and are prompted to change their password.
      Different Password Change Intervall Under NSC413
      For more information, please click here

Click here to see the document about the NAT413 architecture

Top Page


Back to NATURAL Tips, Tricks, Techniques -- Overview