zOS Dynamic Program Call Compatibility Agenda Gen zOS
z/OS Dynamic Program Call Compatibility
Agenda Ø Gen z/OS Runtime Evolution Ø Gen r 7. 6 Dynamic Program Call Compatibility Feature Ø Gen r 7. 6 Compatibility Enhancement Ø Migration Ø Q&A 10/31/2021 *
Legal This presentation was based on current information and resource allocations as of September 28, 2007 and is subject to change or withdrawal by CA at any time without notice. Notwithstanding anything in this presentation to the contrary, this presentation shall not serve to (i) affect the rights and/or obligations of CA or its licensees under any existing or future written license agreement or services agreement relating to any CA software product; or (ii) amend any product documentation or specifications for any CA software product. The development, release and timing of any features or functionality described in this presentation remain at CA’s sole discretion. Notwithstanding anything in this presentation to the contrary, upon the general availability of any future CA product release referenced in this presentation, CA will make such release available (i) for sale to new licensees of such product; and (ii) to existing licensees of such product on a when and if-available basis as part of CA maintenance and support, and in the form of a regularly scheduled major product release. Such releases may be made available to current licensees of such product who are current subscribers to CA maintenance and support on a when and if-available basis. In the event of a conflict between the terms of this paragraph and any other information contained in this presentation, the terms of this paragraph shall govern. 10/31/2021 *
Gen z/OS Runtime Evolution
Gen z/OS Runtime Evolution Early z/OS Runtime History Ø Basic runtime structure created in the mid 1980’s using the technology available at that time, MVS/XA Ø Runtime is implemented using Multiple languages (SAS/C, ASM, COBOL) Ø No common language environment at the time. IEF invented its own linkage-framework based on SAS/C linkage for inter-language communication Ø Over time this framework created difficulties and general compatibility issues with newer technologies Ø Our C Runtime written using SAS/C, a vendor product that we could see was in the process of being stabilized 10/31/2021 *
Gen z/OS Runtime Evolution A clear need for change Ø We needed to transition to the IBM C compiler Ø Generated CICS applications must support Threadsafe operation (not possible using the existing framework) Ø Runtime had some reentrancy issues and still used 24 bit code in TSO Ø Performance issues in Runtime modules (TIRDAT 2, etc. ) were caused by storage and program management Ø Outstanding Customer Enhancement Requests: q Create a smaller application footprint q Support dynamic linking of RI Triggers q Offer OPSLIB support for z/OS 10/31/2021 *
Gen z/OS Runtime Evolution z/OS Runtime Approach Ø Replace our home-grown SAS/C inter-language support with support offered natively as part LE Ø Where possible, implement storage and program management using native LE support Ø Make the Gen Runtime dynamic, reducing the application footprint, improving resource usage, performance, maintainability, and serviceability Ø Make the runtime code fully reentrant Ø Eliminate remaining 24 bit AMODE code 10/31/2021 *
Gen z/OS Runtime Evolution Using DLLs for z/OS Runtime Routines Ø DLLs provide a common approach to dynamic program management, more capability and flexibility for the future Ø Support for using DLLs available in each of the languages used to implement the Gen Runtime Ø DLLs offer the best way to avoid significant migration efforts for future releases of Gen Ø Continuing non-DLL dynamic calls would have required creating a new, non-standard framework, complete with the existing less desirable storage management Ø Any approach would have entailed regeneration and recompiling, and DLLs are technically the best solution 10/31/2021 *
Gen z/OS Runtime Evolution Benefits Ø CICS Programs may be defined as being Threadsafe Ø Reentrant Runtime is now eligible to reside in Dynamic LPA Ø Module sizes are reduced, and redundant in-storage copies of Runtime code are eliminated (reduced paging) Ø Using LE provided Storage management routines improved performance (eliminated many costly GETMAIN and FREEMAIN system calls) Ø TSOAE is now 100% 31 bit AMODE, with the few 24 bit functions relegated to three very small, 31 bit AMODE, 24 bit RMODE DLLs. 10/31/2021 *
Gen z/OS Runtime Evolution Benefits Ø Application maintenance is simplified q DLLs may simply be replaced q A Runtime change instantly becomes available when the DLL containing the change is replaced q Applications no longer have to be re-linked to pick up most maintenance Ø Gen Runtime built using a supported Compiler Ø z/OS Runtime structure providing the base for future enhancement and development 10/31/2021 *
Gen r 7. 6 Dynamic Program Call Compatibility Feature
Dynamic Program Call Compatibility Feature The need for Compatibility Ø Prior to Gen r 7, z/OS executables are built as non-DLL Load Modules Ø Starting with Gen r 7: q The architecture of Gen z/OS Runtimes changed to exploit the features and benefits of using DLLs q Because generated Gen application code dynamically call various z/OS Runtime modules, generated application executables must also be built as a DLL Application Program Object q All Gen z/OS executables are built as DLL Program Objects Note: DLL Program Objects CANNOT reside in a PDS; they MUST reside in a PDSE 10/31/2021 *
Dynamic Program Call Compatibility Feature The need for Compatibility - Some customer Applications: Ø Make extensive use of z/OS Dynamic Program Call to support their implementation of Component Based Development on z/OS Ø Have a complex set of interoperating application components (some built with Gen, other developed outside of Gen) Ø Use Dynamic Program Calls to invoke external action blocks (some EABs cannot be built as a DLL because they contain Dynamic Program Calls to modules that for whatever reason must reside in a load module) Ø Externalize common action blocks to facilitate code reuse and to reduce the size of an application Load Module 10/31/2021 *
Dynamic Program Call Compatibility Feature The need for Compatibility Ø Support for Advantage Gen 6. 5 was coming to an end (Gen 6. 5 is now out of support) Ø Due to the highly componentized nature of some customer applications, a complete, “all at once” migration is considered to be near impossible Ø In order to accomplish a migration to Gen r 7. 6 some customers requested that they be able to update their applications in phases 10/31/2021 *
Dynamic Program Call Compatibility Feature Compatibility: The Dynamic Program Call Compatibility Feature offered as part of the Gen r 7. 6 release supports a migrated application’s ability to dynamically call code that resides in its own fully resolved z/OS load module including: Ø A load module built with a release of Gen prior to r 7 q Procedure Steps q Action Blocks q Screens (ONLY - Standard Map Block Mode Screens) Ø An EAB that resides in a load module 10/31/2021 *
Dynamic Program Call Compatibility Feature Dynamic Program Call Interoperability Ø Gen r 7. 6 provides Dynamic Program Call interoperability between a generated Gen r 7. 6 DLL Program Object and code that resides in existing z/OS load modules 10/31/2021 *
Dynamic Program Call Compatibility Feature New Dynamic Link Property value Ø The Toolset, CSE and Host Encyclopedia now allow the Dynamically Link Packaging property that is associated with an individual procedure step, screen or action block to be set to “Compatibility” (this is in addition to Default, Yes and No) 10/31/2021 *
Dynamic Program Call Compatibility Feature New Dynamic Link Property value Ø A Dynamic Link Property set to Compatibility: q Indicates the associated item already exists, as such prevents the item from being generated or installed q If the Generator encounters an item marked for Compatibility, an informational warning message is produced indicating that the Compatibility module will not be generated q When Generating a Load Module for remote installation, items marked for Compatibility will not be included in the resulting remote file q Host Construction will bypass the installation of items marked for Compatibility 10/31/2021 *
Dynamic Program Call Compatibility Feature New Dynamic Link Property value Ø All Gen r 7. 6 applications that issue dynamic program calls to items that are set to Compatibility must be generated and installed Ø Generating the calling program is needed so the COBOL CALL statement targeting the dynamically called z/OS load module can be replaced with a CALL to a new Assembler Runtime module TIRLGLOD performs the dynamic call to the non-DLL code 10/31/2021 *
Dynamic Program Call Compatibility Feature New Dynamic Link Property value Ø Compatibility modules can only dynamically call routines that are Compatibility module (i. e. existing non-DLL modules cannot dynamically call DLL modules). Ø To prevent unintended generation of dynamically called programs, modules not being built using Gen r 7. 6 should have their associated Dynamically Link Packaging Property set to Compatibility. 10/31/2021 *
Dynamic Program Call Compatibility Feature Development Tools Ø On the Host Encyclopedia, Intelligent Regeneration will cause any calling module that invokes a Compatibility item to be generated q When changing an item’s Dynamic Link property to Compatibility, the item may show up in regeneration lists, but because the item is marked for Compatibility it will not actually be generated ØTo help identify the interaction with modules designated for Compatibility, Gen r 7. 6 offers the following assistance: q Host Encyclopedia and CSE have two new Reports Model Action Block Use Report and Model Compatibility Use Report q New Consistency Check rules: § Alert potential impact of down stream Dynamic Program Calls issued from modules marked for compatibility § Inform users that at runtime, only Standard Map Block Mode screens that marked for compatibility can be called from a Gen r 7. 6 DLL 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement
Gen r 7. 6 Compatibility Enhancement Overview Ø Gen r 7. 6 allows non-DLL, pre-existing Gen procedure steps, screens and action blocks to be dynamically called by applications that have been migrated to Gen r 7. 6 Ø The Gen r 7. 6 Compatibility Enhancement adds the ability to optionally generate and build procedure steps, action blocks and screens such that they are interoperably compatible when used in existing application environments as well as when used in applications migrated to Gen r 7. 6. 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview - PTFs Ø Delivered as a collection of ten related co-requisite Gen r 7. 6 PTFs. q Windows: TSN 76010 - Workstation Toolset, GEN 76014 - Toolset Generators CSN 76007 - CSE Clients, CSN 76008 - CSE Generators and CSE Servers q HPUX: CSP 76004 – CSE Generators and CSE Servers q AIX: CSR 76003 – CSE Generators and CSE Servers q z/OS: GEM 76003 – Generators, HEM 76005 - Host Encyclopedia RTM 76008 – Runtime, BTM 76001 - Implementation Toolset 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – User Documentation Ø The following Gen r 7. 6 documents have been updated: q Release Summary q Workstation Construction Guide q Installation Guide for Host Encyclopedia and Host Construction q Host Encyclopedia Administration q Host Encyclopedia Construction Guide q Host Encyclopedia Guide q CSE Construction q CSE Guide q Implementation Toolset Guide for z/OS Ø Download updated Gen r 7. 6 Bookshelf from the CA Online Support website 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – Business System Defaults Ø The Business System MVS Environment Parameters dialog has been updated; the Dynamic Link Default property for Procedure Steps, Screens and Action Blocks can now be set to Yes, No or Compatibility Gen r 7. 6 10/31/2021 * Gen r 7. 6 CE
Gen r 7. 6 Compatibility Enhancement Overview – COBOL source code flowerbox Ø Generating a procedure step, action block, or Screen using Gen r 7. 6 CE, adds one of the following lines to the “flowerbox” at the beginning of the generated COBOL source file: * Dynamic link (z/OS) property set to “Compatibility" * Dynamic link (z/OS) property set to "No" * Dynamic link (z/OS) property set to "Yes“ * Dynamic link (z/OS) used bus sys default of "Compatibility " * Dynamic link (z/OS) used bus sys default of "Yes" * Dynamic link (z/OS) used bus sys default of "No“ * Dynamic link (z/OS) option ignored for batch procedure step 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – COBOL source code flowerbox ******************************** * * Source Code Generated by * All. Fusion(R) Gen r 7. 6 * * Copyright (c) 2007 CA. All rights reserved. * * Name: ABC_COMPAT * Target OS: * Target DBMS: DB 2 z/OS MVS Date: 2007/02/20 Time: 11: 29: 46 User: xxxxxxx * * Generation options: * Debug trace option not selected * Data modeling constraint enforcement not selected * Optimized import view initialization not selected * High performance view passing selected * LAST-STATEMENT-NUM execution selected * Enforce default values with DBMS not selected * Init unspecified optional fields to NULL not selected * Dynamic link (z/OS) property set to "Compatibility" * ******************************** 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – Process modules marked for Compatibility Ø Process modules marked for Compatibility has been added to the Toolset and CSE Generation Defaults Dialog, and various Host Encyclopedia panels 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – Process modules marked for Compatibility Ø Process modules marked for Compatibility: NOT Selected q Processing is treated the same as Gen r 7. 6 GA: q Items marked for Compatibility are NOT generated q When Generating for remote installation, Items marked for Compatibility are NOT included in the resulting remote file q Items marked for Compatibility are NOT installed q Static Modules within the scope of which is being generated and built are compiled and linked once (more later) 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – Process modules marked for Compatibility Ø Process modules marked for Compatibility: Selected q Items within the scope of what is being generated and are marked for Compatibility will be generated q When Generating for remote installation, Items marked for Compatibility that are generated will be included in the resulting remote file q Installing using Host Construction or z/OS IT will allow installing those items marked for Compatibility q Static Modules within the scope of what is being generated and built are compiled and linked twice (more later) 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – Host Construction and the z/OS IT Ø Host Construction and the z/OS IT have been changed to optionally install (compile and link) Compatibility modules: q Process modules marked for Compatibility: Selected q Items set to, or defaulted to, Compatibility will use the NODLL and NOEXPORTALL compiler options q Items set to, or defaulted to, Compatibility are built as non -DLL Format-3 Program Objects (an executable format capable of being dynamically called from pre-Gen r 7 load modules) q Process modules marked for Compatibility: NOT Selected q For those items set to, or defaulted to, Compatibility the install process is bypassed 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – Host Construction and the z/OS IT Ø Host Construction and the z/OS IT have Special Handling for Statically Linked items (RI Triggers and those items having a Dynamic Link value set to, or defaulted to, “No”) Ø Statically linked modules MUST BE compiled with the same compiler options as the main module Static module RTN_C must be compiled twice; 1. once using DLL 2. once using NODLL 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – Host Construction and the z/OS IT Ø A separate set of libraries have been added to Host Construction and the z/OS IT to be used when statically linking NCAL modules into Compatibility Modules 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – Host Construction and the z/OS IT Ø RI Triggers and Statically Linked Action Blocks containing code with embedded SQL are precompiled once. The resulting source is used as input to both the DLL and NODLL compile steps. As a result, the DBRM timestamp will be the same for both executables Ø When building DLL modules, only the libraries containing the DLL NCAL modules will be included in the Binder step’s SYSLIB concatenation Ø When building Compatibility modules, only the libraries containing the NODLL NCAL modules will be included in the Binder step’s SYSLIB concatenation 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – Host Construction and the z/OS IT Ø It is possible for certain qualifying NCAL modules produced from a prior release of Gen to be statically linked with a Compatibility module: q At minimum, existing modules must have been built using an LE compliant COBOL Compiler (Linking modules compiled with COBOL II is not supported) q Enhanced map modules and modules produced for execution in TSOAE cannot be used Note: Given the mix of existing and new modules, there may be circumstances where the use of a particular pre-existing module may not work. In such cases, the pre-existing module will need to be rebuilt using Gen r 7. 6 CE. Note: Including a pre-Gen r 7 existing NCAL module in the bind of a Gen r 7. 6 DLL module is not supported. 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – z/OS Runtime Ø TIRLGLOD has been reworked to support calling either an existing non-DLL module or one created using Gen r 7. 6 CE Ø The TIRLGLOD CSECT is delivered in two differently named Runtime modules: q TIRLCLOD is used for CICS q TIRLILOD is used for IMS, TSO and batch applications Note: To prevent any inadvertent auto-call of the TIRLGLOD entry point, the Gen r 7. 6 GA version of the TIRLGLOD module must not be part of any library in the SYSLIB concatenation when building applications with the Gen r 7. 6 CE 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – z/OS Runtime Ø The items marked for Compatibility will statically link Runtime Stub code into the resulting executable (the Runtime stub code provides the interface between a non-DLL Program Object executable and the Gen r 7. 6 Runtime) 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – Gen r 7. 6 Compatibility Module Ø The Gen r 7. 6 CE Development environments create executable modules that are inter-operably compatible with applications built prior to Gen r 7 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – Gen r 7. 6 Dynamic Call Support * See Handout 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview – Development Tools Ø Dynamic Link setting has been added to Flowerbox Ø Copy the Link-Edit SYSPRINT information to a member of a new PDSE dataset identified by the LKSYSPRT DD name q Binder step now includes options LIST and XREF to produce valuable linkage information Ø To help identify the interaction with modules designated for Compatibility, Gen r 7. 6 CE offers the following assistance: q Gen r 7. 6 Consistency Check Rules have been modified to accommodate that modules marked for Compatibility can now be built using Gen r 7. 6 q Updates to the Model Action Block Use (MABU) Report 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview - MABU Ø The Model Action Block Use Report has been integrated into the reports section of the Host Encyclopedia and CSE Ø The Model Compatibility Use Report integrated into the Model Action Block Use Report Ø New Object Range selection allows all objects, selected objects, or filtering of modules by dynamic link option Ø Enhancements to the Gen r 7. 6 Model Action Block Use report content 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview - MABU Ø Display the action block call hierarchy for a module Ø Display the dynamic link value for modules being reported Ø Display the dynamic link default values for a business system Ø Display the owning business system for a module Ø Need help investigating a dynamic link consistency check message Ø Display all modules having a specific dynamic link option q For example, you may want to find all modules currently set to Default, to determine the impact of changing the default dynamic link value at the business system level 10/31/2021 *
Gen r 7. 6 Compatibility Enhancement Overview - Performance Updates to Runtime Routines Ø Some IEF supplied functions have been modified to yield better performance. The functions affected are: q CONCATDBCS q CONCATMIXED q TEXTNUM q FIND q TRIMMIXED Ø Internal routine TIRVPAD updated to reduce excessive CPU Ø Updates to TRIM and TIRVPAD satisfy DAR 15429530 -01 10/31/2021 *
Migration
Migration Ø Models must be compatible with Gen r 7. x (9. 1. A 5 schema) Ø Must use Gen r 7. 6 Development Tools Ø The calling module and dynamically called module must both be AMODE=31 Ø Gen r 7. 6 Compatibility Enhancement provides the support needed for a phased migration of existing modules and external action blocks that for whatever reason must remain implemented as a non-DLL executable Ø All Gen r 7. 6 application executables are created as Program Objects and as such MUST reside in a PDSE 10/31/2021 *
Migration Ø If there is no compelling reason to continue the use of non -DLL code, customers are strongly encouraged to migrate their applications to use DLLs Ø Once a Compatibility module is migrated to Gen r 7. 6, its Dynamic Link packaging property must be set back to Yes and the program must be regenerated and reinstalled if the module is to become a DLL. All calling modules must also be regenerated and reinstalled Ø There are different migration requirements depending on if the application is migrating from Gen 6. 5, Gen r 7 or Gen r 7. 5 (details on migrating to Gen r 7. 6 can be found in Gen r 7. 6 Release Summary) 10/31/2021 *
Migration Ø All generated modules are subject to the support policies for the release in which they were produced Ø Using modules built prior to Gen r 7 to satisfy Unresolved References is not supported Ø Dynamically calling of a pre-Gen r 7 module that was compiled using COBOL II is not supported Ø Static linking of COBOL II modules with either a Gen r 7. 6 DLL module or Compatibility module is not supported 10/31/2021 *
Migration Ø If you’re on a pre-Gen r 7 release, it is recommended that you migrate directly to Gen r 7. 6 to gain the full runtime benefit and to avoid rework in the migration process Ø White Paper - SQL Samples q How you can quickly update a model’s Dynamic Link options to Compatibility or Default q 2 Host Encyclopedia samples q 2 Client Server Encyclopedia samples q Available for download on CA Online Support 10/31/2021 *
Migration Ø LE Tuning q Tuning LE Storage Management is one of the advantages of using LE q Consult IBM's z/OS V 1 R 8. 0 Language Environment Customization document Ø Customers operating multiple regions (CICS, IMS, or batch) should consider installing their most commonly used Gen Runtime DLLs in Dynamic LPA (MLPA) Ø To improve performance in CICS, the program definitions for the DLLs should set USELPACOPY to YES (Note: the LPA option in DFHSIT must be set to YES) 10/31/2021 *
Migration Hints: Ø Review updated Gen r 7. 6 Release Summary Ø Consider using the Sample SQL provided in the White Paper Ø Make use of the Model Action Block Use report Ø Run Consistency Check Ø Review Flower Box generated in the COBOL source code Ø Keep Compile Listing (verify compiler options) Ø Review LKSYSPRT (verify Link-Edit data) 10/31/2021 *
Questions & Answers
Legal CERTAIN INFORMATION IN THIS PRESENTATION MAY OUTLINE CA’S GENERAL PRODUCT DIRECTION. ALL INFORMATION IN THIS PRESENTATION IS FOR YOUR INFORMATIONAL PURPOSES ONLY AND MAY NOT BE INCORPORATED INTO ANY CONTRACT. CA ASSUMES NO RESPONSIBILITY FOR THE ACCURACY OR COMPLETENESS OF THE INFORMATION. TO THE EXTENT PERMITTED BY APPLICABLE LAW, CA PROVIDES THIS DOCUMENT “AS IS” WITHOUT WARRANTY OF ANY KIND, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT WILL CA BE LIABLE FOR ANY LOSS OR DAMAGE, DIRECT OR INDIRECT, FROM THE USE OF THIS DOCUMENT, INCLUDING, WITHOUT LIMITATION, LOST PROFITS, LOST INVESTMENT, BUSINESS INTERRUPTION, GOODWILL OR LOST DATA, EVEN IF CA IS EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 10/31/2021 *
- Slides: 53