Dba Corpppt Mainframes Le370

  • Uploaded by: api-3736498
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Dba Corpppt Mainframes Le370 as PDF for free.

More details

  • Words: 3,029
  • Pages: 49
Dexterity Business Analysts

LE-370

LE – 370 Migration Agenda

 Overview - What is LE ?  Runtime Options  Migrating to LE  User Experiences  Debugging LE  Summary

LE Overview  What is Language Environment (LE) ?  Single run-time environment for High Level Languages • Basic support routines (init/term, storage, messages, conditions) • Callable services (Date, Time, etc.) • Language-specific routines (C/C++, COBOL, PL/I, Fortran)  Why use LE ?  Base element of OS/390  Prerequisite for applications built with newer compilers  Replaces obsolete run-time library products

LE Runtime Options

ABTERMENC(ABEND) (ABEND) is new default for V2R9 and up DEPTHCONDLMT(0) (10) is default but (0) is recommended ERRCOUNT(0) (0) is default for V2R6 and above TERMTHDACT(TRACE) (UADUMP) and DD needed to get system dump TRAP(ON,SPIE) (ON,SPIE) is default & recommended

LE Runtime Options for better performance  ALL31(ON)  (OFF) - default, required if using AMODE 24  ANYHEAP, BELOWHEAP, HEAP  Use RPTSTG suggested values to minimize GETMAINs  LIBSTACK, STACK  Use RPTSTG suggested values to minimize GETMAINs  RPTOPTS(OFF), RTPSTG(OFF)  Avoid generating reports during production !!!  STORAGE(NONE,NONE,NONE)  Using initial values will impact performance

Setting LE Runtime Options

 LE   

Migration Guide lists current recommendations Language-specific Mixed language applications CICS and non-CICS (batch, IMS, etc)

 Setting LE Run-Time options  CEEDOPT - installation-wide LE default options  CEEROPT - region-wide LE options (if IMS with LRR)  CEEUOPT - application specific LE options, must be linked  Load Module • PL/I main - PLIXOPT • C main - #pragma runopts()

Migrating to LE Using multiple OS/390 LE releases  LE is Upward compatible!  Applications built on one level of OS/390 LE will continue to run on later releases of OS/390 without the need to re-link edit or recompile  New in R10 - LE is downward compatible too!  You may develop applications on higher releases of OS/390 LE for use on platforms running lower releases of OS/390 LE

Migrating to LE Using multiple OS/390 LE releases (contd)..

 LE Programming Guide lists guidelines/restrictions • NOT a roll-back of new function to prior releases • System used to build applications must be at least OS/390 V2R10  Toleration PTFs for lower OS/390 releases are in PSP bucket • Upgrade OS390R10 subset LANGENV

Planning for Migration  Develop a cost/benefit analysis - Include E-business, client-server, OO in your benefit - See "Technical Advantages of LE" in handout  Take inventory of your COBOL and PL/I development tools  Assess requirements of new software - Prerequisite product levels - Compatibility with vendor products - Compatibility with IBM products  Take inventory of existing applications  Assess migration effort for each application  Schedule training for programmers

Planning for Migration (contd).. What could go wrong without planning?  Improper setup - Not increasing the ERDSASZE CICS storage option value SOS condition can result • We are working on reducing storage requirements of LE - One customer noticed a big performance hit when using TRUNC (BIN); - Problem was solved by using TRUNC (OPT) - TRUNC(BIN) should never be the default option

Planning for Migration (contd).. What could go wrong without planning ? (contd)..  "Surprise" migrations! - Tricky IBM product packaging. Example: Customer moves from SMP install to rebuilt

surprise!

- IBM offers SERVERPAC - LE in LNKLST by default - Surprise migration! Installer doesn't RTFM Ignores SMP warnings Surprise migration! If any problem applications, then not a NICE

Preparation for Migration  For each application, determine (by hand, or with EDGE Portfolio Analyzer): - Level of source used * CICS Macro Language * COBOL 68, 74, 85 - Level of compiler used - Compiler and run-time options used - Presence of Inter-Language Communication (ILC) * PL/I-COBOL and C-COBOL migration aids exist (see respective migration guides) - Presence of assembler - Level of PL/I transient library used - Level of PL/I resident library used

Preparation for Migration (contd)..

EDGE Portfolio Analyzer works with load modules - EDGE Portfolio Analyzer tool * No longer available from IBM * Go to www.edge-information.com - Scans load module libraries (any language) - Tells you what (if any) needs to be relinked - Build Linkage Editor Control statements to aid relinking -Determines which compiler and what options were used 

 Install latest maintenance on existing run-time library - PN74000 for VS COBOL II R4 bootstrap IGZEBST * Mixing VS COBOL II and newer COBOL - PN69803 & PN69804 for OS PL/I V2 * For mixed PL/I and COBOL (ILC)

Preparation for Migration (contd).. Use only one run-time library for each application - Ex: COBOL NORES modules contain their own run-time routines -they must be REPLACED with link edit Do not have more than one COBOL library in concatenation - Ex: OS/VS COBOL 1st, VS COBOL II 2nd in LNKLST - OS/VS COBOL main program has SORT Brings up OS/VS COBOL environment - SORT exits written in VS COBOL II Brings up VS COBOL II environment - Abend when return to OS/VS COBOL First step might be to remove OS/VS COBOL from LNKLST - Run all programs under VS COBOL II, then LE - For OS PL/I V1, could go to OS PL/I V2 then to LE

Preparation for Migration (contd)..  Do not have more than one COBOL library in concatenation  If more than one COBOL library in LNKLST - If LE is first in LNKLST, then other COBOL is dead code - If VS COBOL II is first, then OS/VS COBOL is dead  Common error we are hearing: - VS COBOL II first, then LE in LNKLST - This will cause problems! It is NOT supported! - VS COBOL II first means the LE migration still has to be done  If LE not first, what could go wrong? - Mixing COBOL for OS/390 & VM programs and VS COBOL II programs will definitely fail, but in unpredictable ways  One COBOL library in concatenation only - Either COBLIB, COB2LIB, or SCEERUN - COBLIB not supported, COB2LIB support ended 3/2001

Setting Up LE

 In LE for OS/390 2.6 (9/1998), Change -

CBLQDA to OFF, DEBUG to OFF, ERRCOUNT to 0, and FLOW to NOFLOW

 In LE for OS/390 2.9 (3/2000), Change - ABTERMENC to ABEND. - APAR PQ34302  Less customization at install time!

Moving LE into Production  Install target depends on migration strategy used - LNKLST/LPA only when everything runs under LE  There are 2 main strategies being used, both OK: - Change each application one at a time to use new compiler and run-time library (STEPLIB) - Run current modules under LE, then use new compiler later at maintenance or enhancement time (LNKLST)  This presentation is focused on run-time first, then compiler migration  STEPLIB for old applications that will not run under LE - Complete the migration later  STEPLIB maximum control with performance cost - Customer feedback says STEPLIB noticeably slower  One IMS region at a time  One CICS region at a time

Moving LE into Production Possible scenarios for controlled migration Batch 1: - Newly migrated applications STEPLIB to LE - Deferred applications STEPLIB to old runtime - At a given point change from old runtime to new in LPA/LNKLST - Start deleting STEPLIB for migrated applications Batch 2: - Change all applications to STEPLIB to current runtime - Install LE in LPA/LNKLST - Delete STEPLIB to migrate each application

Moving LE into Production  Scenario for controlled migration Online: - Create new region that uses LE - Move transaction by transaction from old region to new Online (TSO): - Use TSOLIB command to set up dynamic steplib concatenation (must be TSO/E 2.5 or later) - Under ISPF add LE to the ISPLLIB concatenation - If you can control the logon proc, put a STEPLIB there Note: Under ISPF, the search order is: ISPLLIB, LNKLST/LPALST, then STEPLIB

Moving LE into Production

 Some customers have used a bold migration method: - Test cross-section of applications - No or few problems were found - IPL production systems with LE in LNKLST on Sunday - Have all application support personnel on call for next week - STEPLIB applications that have problems - Fix the problems as time permits, remove STEPLIB - Method is not recommended as best method, but has worked for some

LE is Different! Some run-time options are the same, many new ones ABEND codes are different - Most abends end up with code 4038 - If TERMTHDACT (UADUMP) then 4039 also - Can get U1035-type codes with CEEWUCHA or CEEBX05A -Run-time messages are in different places under CICS - CESE Transient Date queue, VS COBOL II used Temporary Storage Queue Other languages can be sub programs with LE - Example: COBOL calling C, C was MAIN before LE ABEND-AID installed differently than pre-LE Debug abends using error messages, NOT abend codes. - Abend codes will not help in many cases!

64-bit is not Different!  PL/I and COBOL applications will run unchanged in 64bit z/OS V1R1 and V1R2, 31-bit or 64-bit regions, it doesn't matter  Although PL/I and COBOL do not support 64-bit addresses explicitly, customers may get some of the benefits of 64-bit z/OS just by moving to it. With a 64-bit addressable real memory backing virtual memory, there will be less paging and swapping and, therefore, the possibility of better system performance

64-bit is not Different! (contd)..

Actual results obtained in specific operating systems environments will vary depending on individual configurations and workload conditions  In addition, DB2 can exploit 64-bit addressing for SQL statements in PL/I and COBOL programs without any changes to the PL/I or COBOL programs.

Hints and Tips Have at least one "COBOL or PL/I DBA" who knows about compilers, run-times, and preferred default settings Keep your language products up-to-date on service as much as possible - Down-level language migrations are harder Example:PN74000 for VS COBOL II Release 4 would revent problems with IGZEBST when adding COBOL for MVS & VM programs to VS COBOL II applications Keep control of your language products usage - Do not allow programmers to choose the release and maintenance level or you will end up with a nightmare for application management

PL/I for MVS & VM

Benefits of Migration - FETCH for CICS and VM - Automatic storage optionally allocated above 16M line - More powerful condition handling - OPTIONS(FETCHABLE), no need for Linkage-editor ENTRY - CEESTART entry point (even CICS) - OPTIONAL attribute for OPTIONS(ASSEMBLER) - PLIRETC and PLIRETV extended to a fullword value - EXTERNAL ('env-name') for OPTIONS(ASSEMBLER) - NOT and OR compiler options

PL/I for MVS & VM (contd)..

- Enhanced FETCH - Allow use of above-the-line storage - ERROR on-units can now get control for non-PL/I conditions and system ABENDs - Lifted restriction on dynamic link -- may specify the proc that gets control within a FETCHed load module - Simplified link-edit - Helps build more flexible procedures - Expanded return code (works w/ JCL enhancement) - More powerful entry DCL for Assembler - Help with code page issues when moving source between platforms

Look and Feel

 PL/I for MVS & VM object module - CEESTART is the only entry point for OPTIONS(MAIN) - CEESTART is the entry point for OPTIONS(FETCHABLE) - Require Language Environment SCEERUN during compilation

PL/I Source Conversion  Recompile OS PL/I Version 1 with CMPAT(V1) - CHARSET(48) and CHARSET(BCD) are not supported - DBCS is a little different from old EGCS - Cannot coexist with modules produced by Checker  Recompile OS PL/I Version 1 with CMPAT(V2) - Support for fullword subscripts - Support for AREA and Aggregates size > 16MB - HBOUND, LBOUND, DIM, and ALLOCATION return FIXED BIN(31,0)

PL/I Source Conversion (contd)..

 Do not mix CMPAT options if: - All procedures in an application share one of the following - An array - A structure that contains an array - Allocated aggregate or AREA  Use PL/I-supplied CHARSET(48) migration tool - Translate CHARSET(48) to CHARSET(60) - Available with OS PL/I V2 as a sample program

PL/I Source Conversion (contd)..

 Array bounds and areas were limited in V1 -- descriptor used half-word  Don't use CMPAT(V2) unless you are ready to recompile everything and use the same CMPAT option  Watch for direct use of descriptor internals from nonPL/I CMPAT(V1) is the default run-time option  EDGE tool can spot mismatches

PL/I Source Conversion (contd)..

 The CHECK option functionality has been replaced by Debug Tool:  Display current value of any variable  Does not require source update and recompile to activate  Obtain similar trace output: - Compile program with TEST(PATH) - Specify TEST runtime option - Set PATH breakpoint: - AT PATH * DO; LIST ('At statement: ', %STATEMENT); GO; END; - This will display a message at every PATH point (block entry, block exit, label constant, before CALL, after CALL, . . .) - Type GO; to start program execution

Year 2000 items

 PL/I for MVS & VM  Millennium Language Extensions: - Two-digit year date comparisons automatically windowed - Comparisons and assignments between variables with different date attributes are supported - REPATTERN, Y4DATE, Y4JULIAN, and Y4YEAR builtin functions make some common transformations easier - New DATE attribute - Activated by RESPECT(DATE) compiler option

User Experiences - Topics

Determining LE vs. non-LE Programming Issues System Issues Error Handling Testing De-Bugging IMS Issues

Determining LE vs. non-LE

 Determining LE vs. non-LE  Externally  Internal Application Program

Programming Issues

 All Variables should be Initialized  Uninitialized variables (under non-LE) had a value usually X’0’ which do not give raise to problems.  Under LE, garbage in many uninitialized variables  PL/I source code  PL/I FREE requires IN for AREA allocated variables • FREE P->X IN(A);  Standard output files - PLInnnn mapped to CEExxxx • Example: PLIDUMP to CEEDUMP  Message File - Sysprint, Sysout, or MSGFILE

System Issues

 Pre-initialized environments  LE PICI mechanism • Mostly compatible with PRE-LE techniques  LE PIPI mechanism • "Wave of the future“  Error Environment  SPIE & STAE mapped to TRAP • TRAP(ON) if either SPIE or STAE  TRAP(OFF) • Really TRAP “almost” OFF • Shunt mechanism

Error Handling

 Conversion of SPIE and STAE  visit PLIXOPT and #pragma  Pre-LE to LE options translation  Watch for error based systems  Locally brewed error handlers  May need modification for retry  Shunting  ESPIE and ESTAE handling  LE CEE3ERP interface

Error Handling (contd)..

 Error codes  Uses C Paradigm  PL/I 2xxx may be mapped to 3xxx  Error processing  Post error processing • may need modification (e.g. GOTO out of error)  Special situation  Shunting

Testing

 Standard scripts  Multi-environment  Assembler, PL/I and/or C mix  Error scenarios  Recursive error conditions  Condition Handling • Hardware of Software program check  Output to standard files  SYSPRINT, stdout, etc.  Extensive testing is required

Debugging with IMS and LE

 IMS & LE do coordinate condition handling!  ABEND codes are different  Most LE abends are U4038/U4039  Debug using error messages, NOT abend codes! • Example: Abend0C4 becomes message CEE3204S  Return & Reason code changes  MSGFILE(SYSOUT)  Messages and Reports default to SYSOUT

Debugging with IMS and LE - Dump files  CEEDUMP  Formatted dump of LE storage/data  Content depends on TERMTHDACT() suboption  SYSUDUMP  If TRMTHDACT(UADUMP) with SYSUDUMP DD  Formatted dump but no formatting of LE information  SYSMDUMP  If TRMTHDACT(UADUMP) with SYSMDUMP DD  IPCS verbexit LEDATA/CEEERRIP  When reporting problems to IBM L2

Debugging with IMS and LE - control blocks

 Common Anchor Area (CAA)  pointed to by Register 12  Stack Frame/Dynamic Save Area (DSA)  pointed to by Register 13  DSAs are backchained at DSA+X'4‘  Condition Information Block (CIB)  CEECAA +x'2D8' points to current CIB  Machine State Information Block (ZMCH)  pointed to by CIB + x'24'

Migrating IMS Regions to LE  Make sure you & your applications are ready  Read the language-specific LE Migration Guides  PLAN, PLAN, PLAN  Perform Regression Tests  Make sure your Vendor tools are LE-enabled  List in LE Migration Guide Appendix A or call the Vendor  Don't let OS/390 force LE into the LNKLST too early  OS/390 Program Directory under 'LNKLSTxx Considerations‘  APAR ii10425: How to install OS/390 without LE in the LNKLIST

Migrating IMS Regions to LE (contd)..

 LPA, LNKLST or STEPLIB for LE modules?  LNKLST for most LE modules • SCEERUN (PDS) and SCEERUN2 (new PDSE at V2R10 & up)  LPA for heavily used LE modules • SCEELPA contains LPA eligible LE modules • Also check language-specific recommendations in Migration Guides  STEPLIB if you have not completed LE migration

LRR (Library Routine Retention)

 What is LRR (Library Routine Retention)?  Keeps LE resources in memory for better performance  LE does not keep user programs in storage  LRR setup  In the DFSINTxx member of IMS.PROCLIB specify name CEELRRIN  Specify xx as a suffix on the PREINIT keyword in your IMS 'bring up' JCL or procedure

LRR - Storage tuning user exit

 Collect LE storage tuning information without having to run with the RPTSTG option  Set the LE runtime options STACK, LIBSTACK, HEAP,ANYHEAP, and BELOWHEAP for each LE enclave  use CEEBSTX (for non-CICS with LRR)  sample exit in SCEESAMP as CEEWBSTX  must be assembler, reentrant  See LE Customization manual  LE V2R9 & up

LRR - Load Notification User Exit  improve performance by preventing the use count for frequently used modules from dropping below one  CEEBLNUE (requires LRR)  must be written in assembler  See LE Customization manual

Summary

 LE is part of OS/390 and z/OS  Plan for migration by reading the Migration manuals  Review runtime options before migration  Consider LRR for performance  Check for uninitialized variables  Do extensive testing, including error scenarios  Be aware of Debugging differences

END OF THE

SESSION

Related Documents

Mainframes
November 2019 7
Mainframes
November 2019 4
Dba
October 2019 23
Dba
November 2019 27