CA-Easytrieve Frequently Asked Questions



General
Date Question and Answer
04/27/04

Product: Advantage CA-Easytrieve Plus
Version: 6.4
OS: z/OS

Q: I'd like to determine the Advantage CA-IDMS DBKEY and PAGE-INFO without using additional CPU time by doing an ACCEPT or a FIND/OBTAIN. Is this possible?

A: Yes. There are pre-defined fields in Advantage CA-Easytrieve that correspond to the DBKEY, PGINFO, PGINFGRP and PGINFDBK fields in the IDMSCOM (IDMS Communications Area). These fields are: IDMSKEY, IDMSPGINFO, IDMSPGGRP, and IDMSPGDBK, respectively. You may use these fields to display, save, and pass the DBKEY and PAGE-INFO information.

Example: (see page 3-30 and 3-31 in the Advantage CA-Easytrieve CA-IDMS/IDD Interface Option Guide for more information)

FILE FILEOUT
OUT-PAGE                        1   4   B
OUT-PAGE-GROUP    OUT-PAGE          2   B 
OUT-DBKEY-FORMAT  OUT-PAGE +2       2   B
OUT-DBKEY                       5   4   B 
*
DEFINE WS-DBKEY                 W   4   B  0  MASK HEX
*
JOB
IDMS OBTAIN NEXT RECORD 'literal-2' AREA 'literal-3'

DISPLAY IDMSPGINFO
DISPLAY IDMSKEY

OUT-PAGE-GROUP = IDMSPGGRP
OUT-DBKEY-FORMAT = IDMSPGDBK
OUT-DBKEY = IDMSKEY
PUT FILEOUT

WS-DBKEY = IDMSKEY

IDMSPGGRP = 0
IDMSPGDBK = 8

IDMS FIND DBKEY WS-DBKEY PAGE-INFO IDMSPGINFO

04/02/04

Product: Advantage CA-Easytrieve Plus
Version: 6.4
OS: z/OS, OS/390

Q: I am upgrading to Advantage CA-Easytrieve Plus 6.4 and was wondering if I need to recompile our programs?

A: After you upgrade your Advantage CA-Easytrieve Plus release, usually there is no need to recompile previously compiled and link-edited programs as Computer Associates tries to maintain upward compatibility. However, Computer Associates Technical Support has discovered three situations that may require you to recompile your existing Advantage CA-Easytrieve Plus programs when migrating to Release 6.4. There are three SCAN programs available for download via SupportConnect to help identify those programs that may need to be recompiled.

Scan Program EZTPX09

Obtain scan program EZTPX09 from SupportConnect. Refer to document ID TEC276728 for complete details and the download link. Scan Program EZTPX09 identifies programs that will abend with a S0C1 or S0C4 when using the Advantage CA-Easytrieve 6.4 runtime. This abend occurs because 6.4 executes in 31-bit and the applications compiled with various older releases have a 24-bit dependency. Before executing the EZTPX09 scan program, apply APAR QO31814 to 6.4 0202 or upgrade to genlevel 6.4 0311. Execute EZTPX09 using your Advantage CA-Easytrieve Plus program load library as input. The scan program produces a report identifying the Advantage CA-Easytrieve Plus programs in the library that do not have 24-bit dependencies, and the programs that have a 24-bit dependency. This scan program also generates a ZAPOUT program to correct (zap) programs without recompiling. If you do not zap the programs (using the ZAPOUT program), just recompile them using Advantage CA-Easytrieve Plus Release 6.4.

Scan Program EZTPX091

Obtain scan program EZTPX091 from SupportConnect. Refer to document ID TEC321182 for complete details and the download link. Scan program EZTPX091 identifies programs compiled with Advantage CA-Easytrieve Plus version 5.3 (and lower). These programs, when containing SQL statements, may abend with S0C4 when executed with Advantage CA-Easytrieve Plus Release 6.4. The scan program produces a report identifying programs compiled with these older Advantage CA-Easytrieve Plus releases, such as 5.3. You must then check each identified program's source code for SQL statements and using Advantage CA-Easytrieve Plus 6.4, recompile programs that contain SQL statements. There is no reason to recompile the program if there are no SQL statements.

Scan Program EZTPX092

Obtain scan program EZTPX092 from SupportConnect. Refer to document ID TEC321183 for complete details and the download link. Scan program EZTPX092 identifies programs compiled using Advantage CA-Easytrieve Plus 6.0C, or an earlier release. These programs may make calls or use file exits to 24-bit subroutines. Such calls or file exits may result in an abend when executed with Release 6.4. Use the scan program to produce a list of programs compiled using Advantage CA-Easytrieve Plus 6.0C, or an earlier release, then check the source code of these identified programs for a CALL or FILE EXIT statement. If such a statement exists, you must recompile and link the Advantage CA-Easytrieve program, or, if the original Advantage CA-Easytrieve Plus source is missing, you can re-link the called subroutine 31-bit. There is no reason to recompile and link the program if there are no CALLs or FILE EXITS.

02/27/04

Product: Advantage CA-Easytrieve Plus
Version: 6.3
OS: OS/390

Q: How long will Advantage CA-Easytrieve Plus OS/390 release 6.3 be supported?

A: Previously we announced that support for Advantage CA-Easytrieve Plus 6.3 would be discontinued on March 31, 2004. To allow additional time for customers to upgrade to Advantage CA-Easytrieve Plus 6.4, support for Advantage CA-Easytrieve Plus 6.3 has been extended through October 31, 2004.

09/30/03

Product: Advantage CA-Easytrieve Plus
Version: 6.3, 6.4
OS: OS/390, z/OS

Q: Why do I receive an S30E error executing a link edited Advantage CA-Easytrieve program with Advantage CA-Easytrieve Plus 6.3?

A: Advantage CA-Easytrieve Plus is not downwardly compatible. When you compile and linkedit an Advantage CA-Easytrieve program, you can execute it with the same release level or higher. If you are getting an S30E abend, you most likely have compiled and link edited the Advantage CA-Easytrieve program using Advantage CA-Easytrieve Plus 6.4, but are executing that program with Advantage CA-Easytrieve Plus 6.3 or lower. This has never been supported by Advantage CA-Easytrieve, but now that Advantage CA-Easytrieve Plus 6.4 is 31-bit, the S30E abend always occurs.

08/26/03

Product: Advantage CA-Easytrieve Plus
Version: 6.4
OS: OS/390

Q: What's new for Advantage CA-Easytrieve Plus?

A: Support for Advantage CA-Easytrieve Plus OS/390 release 6.3 has been extended through March 2004. An Advantage CA-Easytrieve Plus OS/390 6.4 Service Pack is scheduled for the end of 2003. The Service Pack facilitates updating Advantage CA-Easytrieve Plus release 6.4 by applying multiple fixes at one time.

07/28/03

Product: Advantage CA-Easytrieve Plus
Version: 6.3, 6.4
OS: OS/390, z/OS

Q: How can I determine if an Advantage CA-Easytrieve Plus executable is above or below the 16 meg line?

A: There are two ways to determine AMODE\RMODE:

  1. In TSO PDF 3.4 select the module
  2. In batch run AMBLIST
      //STANDARD JOB INFO
      //MODE EXEC PGM=AMBLIST,PARM='DATE=U'
      //SYSLIB DD DISP=SHR,DSN=XXXX
      //SYSPRINT DD SYSOUT=A
      LISTLOAD OUTPUT=MODLIST,MEMBER=XXXX
      /*
      //

05/13/03

Product: Advantage CA-Easytrieve Plus
Version: 6.4
OS: MVS, z/OS, OS/390

Q: Why do CA-Easytrieve Plus 6.4 and CA-Panaudit Plus 3.0 both contain the PAPLDATE module? Also, can the PAPLDATE module be shared between these products?

A: PAPLDATE is distributed with CA-Easytrieve Plus so that any CA-Easytrieve Plus user can invoke the DATECONV macro (which calls PAPLDATE). CA-Panaudit Plus also distributes DATECONV and PAPLDATE, (along with many other macros and subroutines that are not included in CA-Easytrieve Plus). The DATECONV routine converts a date in one format to another date format. For example, you can convert month-day-year to year-month-day, Julian to Gregorian, and perform similar date conversions.

CA-Easytrieve Plus and CA-Panaudit Plus both distribute different PAPLDATE modules because CA-Easytrieve Plus 6.4 introduced 31-bit mode support while CA-Panaudit Plus does not provide support for 31-bit mode at this time. As such, the PAPLDATE from CA-Easytrieve Plus is distributed with AMODE=31, RMODE=ANY and the PAPLDATE from CA-Panaudit Plus is distributed with AMODE=24, RMODE=24.

Many of the CA-Easytrieve Plus 6.4 routines (including PAPLDATE) use AMODE=31. CA-Easytrieve Plus customers who do not use CA-Panaudit Plus, and do not call 24-bit subroutines, can specify the CA-Easytrieve Plus option ALL31=YES, so that at runtime, dynamic storage is allocated above 16 MB. CA-Panaudit Plus is driven by CA-Easytrieve Plus. Since CA-Panaudit Plus does not use AMODE=31, and it does call 24-bit subroutines, CA-Panaudit Plus users should specify CA-Easytrieve Plus option ALL31=NO, so that at runtime, dynamic storage is allocated below 16 MB.

The PAPLDATE modules should not be shared. The two different product’s installation processes link their PAPLDATE modules into unique CAILIBs. If the PAPLDATE module included with CA-Easytrieve Plus is found first, and ALL31=YES, dynamic storage is allocated above 16 MB. If the PAPLDATE module included with CA-Panaudit Plus is found first, and ALL31=NO, dynamic storage is allocated below 16 MB. If the PAPLDATE module included with CA-Panaudit Plus is found first, and ALL31=YES, dynamic storage is allocated above 16 MB, and a S0C4 abend will occur.

05/12/03

Product: Advantage CA-Easytrieve Plus
Version: 6.3, 6.4
OS: z/OS, OS/390, VSE

Product: Advantage CA-Easytrieve/Online
Version: 1.4
OS: z/OS, OS/390, VSE

Q: How do I concatenate three fields into one and remove the trailing blanks?

A: Here are instructions on concatenating three fields into one and removing the trailing blanks. A sample program that accomplishes the task is included.

* WORKING STORAGE
*****************************************************************
*****************************************************************
*  CONCATENATE 3 FIELDS INTO ONE FIELD AND REMOVE THE TRAILING BLANKS
*  E.G. PERSONNEL FILE WITH FIRST NAME, MIDDLE INITIAL, AND LAST NAME
*   
*****************************************************************
*
DEFINE FIRST-NAME         W   15  A  VALUE 'JOHN           '
DEFINE F-ARRAY   FIRST-NAME    1  A  OCCURS 15
*
DEFINE MIDDLE-INITIAL     W    1  A  VALUE 'Q'
*
DEFINE LAST-NAME          W   20  A  VALUE 'SMITH               '
DEFINE L-ARRAY    LAST-NAME    1  A  OCCURS 20
*
**********************************************************
*                                                        *
*  THE FIRST NAME AND LAST NAME ARRAYS USE SUBSCRIPTING  *
*                                                        *
**********************************************************
DEFINE NAME-SUB           W    2  N
*
**********************************************************
*                                                        *
*  THE ONE FIELD ARRAY USES INDEXING                     *
*                                                        *
**********************************************************
*
DEFINE ONE-FIELD          W   39  A
DEFINE ONE-ARRAY   ONE-FIELD   1  A  OCCURS 39 INDEX ONE-IX
DEFINE SEVEN-ARRAY ONE-FIELD   7  A  OCCURS 1  INDEX ONE-IX
DEFINE EIGHT-ARRAY ONE-FIELD   8  A  OCCURS 1  INDEX ONE-IX
*
JOB INPUT NULL
    ONE-FIELD = ' '
    NAME-SUB = 1
    ONE-IX = 0
*
    DO UNTIL NAME-SUB EQ 16
       IF F-ARRAY (NAME-SUB) NE ' '
          ONE-ARRAY = F-ARRAY (NAME-SUB)
          ONE-IX = ONE-IX + 1
          NAME-SUB = NAME-SUB + 1
       ELSE
          NAME-SUB = 16
       END-IF
    END-DO
*
    ONE-IX = ONE-IX + 1
    ONE-ARRAY = MIDDLE-INITIAL
    ONE-IX = ONE-IX + 1
    ONE-ARRAY = '.'
    ONE-IX = ONE-IX + 2
*
    NAME-SUB = 1
*
    DO UNTIL NAME-SUB EQ 21
       IF L-ARRAY (NAME-SUB) NE ' '
          ONE-ARRAY = L-ARRAY (NAME-SUB)
          ONE-IX = ONE-IX + 1
          NAME-SUB = NAME-SUB + 1
       ELSE
          NAME-SUB = 21
       END-IF
   END-DO
*
* AT THIS TIME ONE-FIELD CONTAINS FIRST MIDDLE AND LAST NAME

   DISPLAY '***************************************'
   DISPLAY 'ONE FIELD = ' ONE-FIELD
   DISPLAY '***************************************'

*
STOP
*

PRODUCES THE FOLLOWING OUTPUT:

***************************************
ONE FIELD = JOHN Q. SMITH
***************************************
04/25/03

Product: Advantage CA-Easytrieve Plus
Version: 6.3, 6.4
OS: z/OS, OS/390, VSE

Q: How can I right justify an alpha field and make the resulting field numeric?

A: The following code provides an example:

     * RIGHT JUSTIFY AN ALPHA FIELD AND MAKE THE RESULTING FIELD NUMERIC
* THERE ARE PROBABLY MORE ELEGANT SOLUTIONS TO RIGHT JUSTIFY AN
      * ALPHA FIELD AND MAKE IT A NUMERIC FIELD BUT THIS ONE WORKS FINE
      * 1. INITIALIZE THE RESULT FIELD TO ZERO
      * 2. TEST EVERY BYTE OF THE FROM FIELD FOR ZERO THRU 9
      * 3. MOVE EVERY NON-BLANK BYTE TO THE RESULT FIELD
      *
      * ALPHA WORKING STORAGE AREA
      * FILE RPT F(81) PRINTER
      DEFINE ALPHA           W 17 A VALUE '123-45-6789'
      DEFINE ONE-BYTE ALPHA     1 A OCCURS 17
      DEFINE ALPHA-SUB       W  2 N 0

      * NEW NUMERIC FIELD WORKING STORAGE AREA
      DEFINE RIGHT-JUSTIFY            W 17 A
      DEFINE RIGHT-NUMBER RIGHT-JUSTIFY 17 N 0
      DEFINE R-ARRAY RIGHT-JUSTIFY   1 A OCCURS 17
      DEFINE RIGHT-SUB       W  2 N 0

      * OTHER WORKING STORAGE
      DEFINE WS-STOPPER     W  2 N
      *
      JOB INPUT NULL
      *
       PERFORM RIGHT-JUSTIFY
       PRINT
       STOP
      *
      RIGHT-JUSTIFY. PROC

       MOVE X'F0' TO RIGHT-JUSTIFY FILL X'F0'
       ALPHA-SUB =  17
       RIGHT-SUB =  17
       WS-STOPPER = 1
      * DO THIS UNTIL YOU REACH THE BEGINNING OF ALPHA FIELD
       DO UNTIL ALPHA-SUB LT WS-STOPPER

      * CHECK FOR BLANK AND MOVE ONE BYTE IF NOT BLANK
      IF ONE-BYTE(ALPHA-SUB) LT '0' OR ONE-BYTE(ALPHA-SUB) GT '9'
             ALPHA-SUB = ALPHA-SUB - 1
          ELSE
             R-ARRAY(RIGHT-SUB) = ONE-BYTE(ALPHA-SUB)
             ALPHA-SUB = ALPHA-SUB - 1
             RIGHT-SUB = RIGHT-SUB - 1
      END-IF

       END-DO

      END-PROC
      *
      *
      REPORT   LINESIZE 80
        TITLE    'ALPHA FIELD \ RIGHT-JUSTIFIED FIELD \ NUMBER FIELD'
        LINE 1   'ALPHA FIELD =============> ' ALPHA
        LINE 2   'RIGHT-JUSTIFIED FIELD ===> ' RIGHT-JUSTIFY
        LINE 3   'JUSTIFIED NUMBER FIELD ==> ' RIGHT-NUMBER

PRODUCES THE FOLLOWING:

ALPHA FIELD =============> 123-45-6789
RIGHT-JUSTIFIED FIELD ===> 00000000123456789
JUSTIFIED NUMBER FIELD ==> 123,456,789

02/11/03

Product: Advantage CA-Easytrieve Plus
Version: 6.3, 6.4
OS: MVS, z/OS, OS/390

Q: How do I know if Advantage CA-Easytrieve Plus is being picked up in the CA Common Services CAIRIM?

A: Follow these steps:

  1. logon to tso
  2. type pdf 6
  3. type tsoexec cairimu

To produce a list like this:

CAS9006I    The following products have been initialized:       
CAS9002I                                                        
CAS9007I    Product              Vers  Init        Date/Time    
CAS9008I    CA-11 GENLEVEL 0005  L722  L722INIT  02.082 22:44   
CAS9008I    CA-SECURITY/INIT     S910  S910INIT  02.082 22:44   
CAS9008I    CA-ADAPTER-CMP       YD53  YD53INIT  02.082 22:46   
CAS9008I    CA-EASYTRIEVE        DO53  DO53INIT  02.082 22:44 

11/13/02

Product: Advantage CA-Easytrieve Plus
Version: 6.4
OS: z/OS, OS/390

Q: I am a CA-Easytrieve Plus user and wonder how the options table ALL31 option will affect our current environment.

A: CA-Easytrieve Plus 6.4 is the first 31-bit version of the product. The CA-Easytrieve Plus 6.4 compiler and runtime are always running above the line. The ALL31 option has been put into the product so that CALLS to 24-bit subroutines can be supported (through the ALL31=OFF option). If the CA-Easytrieve Plus program does not CALL 24-bit subroutines, you can set ALL31=ON in the options table (EZTPOPT) and get the benefit of storage allocation above the line. If you do CALL 24-bit subroutines from the CA-Easytrieve program or use CA-Easytrieve/Toolkit or CA-Panaudit Plus, then you will need to keep a separate options table with ALL31=OFF for use with those programs.

For previously compiled and link-edited CA-Easytrieve programs, setting ALL31=ON in the options table allows the swtiching of modes and above-the-line dynamic storage allocation without recompiling the program -- although the program itself will still be below the line because it was linked that way. If you recompile a CA-Easytrieve program with ALL31=ON, then the program and storage used for the execution of the program reside above the line.

For a load and go program, CA-Easytrieve uses dynamic storage that is allocated according to the ALL31 setting in the options table. It is possible to override the mode setting done by CA-Easytrieve Plus by using the RMODE and AMODE linkedit PARMs in the JCL.

Linkediting your CA-Easytrieve programs having ALL31=ON at compile time causes Working Storage fields to be allocated above the line at execution time, even if the options module at runtime is set to ALL31=OFF; therefore; such programs cannot call a 24-bit subroutine.

10/14/02

Product: Advantage CA-Easytrieve Plus
Version: 6.4
OS: z/OS, OS/390

Q: What's new in Advantage CA-Easytrieve Plus Report Generator release 6.4?

A: Release 6.4 introduces support for 31-bit processing, allowing Advantage CA-Easytrieve Plus Report Generator to run above the line. There is no need to recompile existing programs to take advantage of this new feature. At Runtime, Advantage CA-Easytrieve Plus Report Generator will take the default and get the storage needed, below the line. This feature gives programs better throughput and system resource utilization.

08/15/02

Product: Advantage CA-Easytrieve Plus
Version: 6.3
OS: z/OS, OS/390, VSE

Q: Is there a function in EZTPLS that will search a string for specific characters?

A: There is a macro shipped with the product called STRSRCH that will search a string. This macro resides in the SAMPJCL file, instructions also come along with. It can be copied to your maclib.

Product: Easytrieve Plus
Version: 6.3
OS: Z/OS, OS/390
04/03/02 Q: How does CA-Easytrieve Plus handle invalid file reference abends?
A: In order to prevent invalid file reference abends from occurring, CA-Easytrieve Plus 6.3 provides a test for an empty VSAM file. This highly requested and important functionality allows users to control whether or not to abend when a CA-Easytrieve program attempts to open an empty VSAM file. Before this enhancement, there was no way to test for this condition and consequently, to prevent abends, programmers had to code workarounds (such as provide a non-empty VSAM file with at least one dummy record).
Product: Easytrieve Plus
Version: ALL
OS: Z/OS, OS/390
02/21/02

Q: How can I write HTML reports using CA-Easytrieve Plus?

A: A full and complete working model can be downloaded from:

ftp://ftp.ca.com/CAproducts/easytrieve/misc/html/

This has now been added to the 6.3 product tape SAMPJCL file. HTML Program Templates on the product tape provide sample applications to simplify creation of HTML format reports.

11/01/01

Q: The Options Table parameter TBLMAX specifies the maximum number of entries for a table which is loaded from an external file (not instream). Can TBLMAX be overridden?

A: Yes, TBLMAX can be overriden using the FILE statement in the EZTPLS source library section. The maximum number of table entries is 32,767. Here is an example of the syntax that you may use:

FILE FILENAME FB (xxx,yyyy) TABLE nnnnn

06/05/01

Q: I need to search a string for a specific character, and if the character is found, replace the found character with another character.

A: The following example program provides this logic:

***********************************************************************
*  THIS IS AN EXAMPLE OF INSPECTING EVERY BYTE FOR A CHARACTER        *
*  AND REPLACING THAT CHARACTER WITH A NEW CHARACTER IN A NEW FIELD   *
***********************************************************************
DEFINE FROM-FIELD         W   15  A  VALUE 'GOHN           '
DEFINE FROM-FIELD-BYTE   FROM-FIELD    1  A  OCCURS 15
DEFINE FROM-SUB           W    2  N
***********************************************************************
*  THE TO-FIELD ARRAY USES INDEXING                                   *
***********************************************************************
DEFINE TO-FIELD             W   15  A
DEFINE TO-FIELD-BYTE  TO-FIELD   1  A  OCCURS 15 INDEX TO-INDEX
DEFINE FIND-FIELD  W  1  A  VALUE 'G'
DEFINE CHANGE-TO   W  1  A  VALUE 'J'
*
JOB INPUT NULL
    MOVE ' ' TO TO-FIELD FILL ' '
    FROM-SUB = 1
    TO-INDEX = 0
*
    DO UNTIL FROM-SUB EQ 16
       IF FROM-FIELD-BYTE (FROM-SUB) = FIND-FIELD
          TO-FIELD-BYTE (FROM-SUB) = CHANGE-TO
       ELSE
          TO-FIELD-BYTE = FROM-FIELD-BYTE (FROM-SUB)
       END-IF
          TO-INDEX = TO-INDEX + 1
          FROM-SUB = FROM-SUB + 1
    END-DO
*
   DISPLAY 'RESULTS:'
   DISPLAY ' '
   DISPLAY '**********************************************************'
   DISPLAY 'FROM-FIELD = '  FROM-FIELD
   DISPLAY '*************000000000111111******************************'
   DISPLAY '             123456789012345******************************'
   DISPLAY '**********************************************************'
   DISPLAY 'TO-FIELD   = '  TO-FIELD
   DISPLAY '*************000000000111111******************************'
   DISPLAY '             123456789012345******************************'
   DISPLAY '**********************************************************'
*
STOP
*
Running this program produces:

RESULTS:

**********************************************************
FROM-FIELD = GOHN
*************000000000111111******************************
             123456789012345******************************
**********************************************************
TO-FIELD   = JOHN
*************000000000111111******************************
             123456789012345******************************
**********************************************************
03/09/01

Q: Does CA-Easytrieve Plus provide any METADATA management functionality?

A: By the term METADATA we assume this to mean a data file containing information about the data. When CA-Easytrieve Plus accesses DB2 it uses the standard IBM DB2 data dictionary. When it accesses IDMS it uses the IDD. CA-Easytrieve Plus includes a macro facility which most clients use to store record layouts. Additionally it supplies a COBOL convert macro which will read a compiled COBOL program and produce a corresponding CA-Easytrieve record definition which in turn can be copied to the CA-Easytrieve macro library.

02/23/01

Q: How can I use EZT+ to get sub totals and a grand total on an amount field in a report?

A: Choose one or more non-quantitative fields that you want sub-totaled. Code a SEQUENCE statement followed by the field names of the fields you want sorted and totaled. Finally, code a CONTROL statement followed by the fields you want totaled.

12/27/00

Q: What's new with CA-Easytrieve Plus?

A: CA-Easytrieve Plus 6.3 enhancements include:

  • Notify User for Empty Files
  • Option to Suppress Leading Zero CA-Easytrieve Plus Tool Kit Date Routines
  • LOW-VALUES and HIGH-VALUES Reserved Words
  • Ability to Override the Options Table DATE Parameter
  • HTML Program Templates
  • Documentation Maintenance
Click here for more detailed descriptions of the enhancements
12/14/00

Q: Should I follow a special procedure when sending tapes to CA-Easytrieve Technical Support?

A: Yes. Safeguard your tape and enhance our ability to work with it by completing the appropriate form for your request. Click here for detailed information: http://esupport.ca.com/premium/app_dev/ca_easytrieve/infodocs/easytrv5503.asp.

11/09/00

Q: What should I know about THRESHOLD when using CA-Easytrieve Plus?

A: Clients testing date related macros for dates where the YY year value is "01" have reported unexpected results. This is due to the interpretation of the THRESHOLD parameter in the date related macros. Click here for an example of that type of processing, and an explanation of how THRESHOLD affects output. http://esupport.ca.com/premium/app_dev/ca_easytrieve/infodocs/easytrv5502.asp.

10/24/00

Q: Have you ever wanted to turn off dynamically allocated sortwork datasets?

A: By default, the CA-Easytrieve Plus Options Table provides three dynamically allocated sortwork datasets. Do you need to know how to increase this number, turn off the option to use your own SORTWK datasets from your JCL, or use the WORK parameter on the PARM statement? Click here for details: http://esupport.ca.com/premium/app_dev/ca_easytrieve/infodocs/easytrv5501.asp.

05/15/00

Q: How does CA-Easytrieve Plus handle EBCDIC data format files? Does it translate the files into ASCII and then generate reports? Does it need any other tool/utility for the translation?

A: CA-Easytrieve Plus reads, writes, and updates standard IBM flat files, VSAM, DB2, DATACOM, IDMS, SUPRA, and TOTAL files in EBCDIC format on the mainframe. It does the same for ASCII files under UNIX including ORACLE, INGRES, OPENINGRES, DB2, IDMS, and SYBASE.

On the mainframe, CA-Easytrieve Plus handles EBCDIC files. On UNIX, it handles ASCII. To convert from EBCDIC to ASCII or from ASCII to EBCDIC you need a specific CA product -- CA-Easytrieve/Toolkit. This product includes many ready-to-use macros including CONVEA and CONVAE. CONVEA and CONVAE convert EBCDIC to ASCII and ASCII to EBCDIC.

05/15/00

Q: My CA-Easytrieve program is receiving an S0C7 abend. How do I find the statement that caused an S0C7 data exception in CA-Easytrieve?

A: An S0C7 data exception occurs in CA-Easytrieve programs when non-numeric data is placed in a numeric field. The following program contains a deliberate data exception:


1 PARM LINK(EZTEST10 R) DEBUG (STATE FLOW)                    
  2 FILE PERSNL1 FB (150 1800)                                  
  3 NAME-LAST          17  8 A     HEADING('LAST' 'NAME')       
  4 NAME-FIRST         25  8 A     HEADING('FIRST' 'NAME')      
  5 PAY-GROSS          94       4 P 2   HEADING('GROSS' 'PAY')  
  6 *                                                           
  7 WS-DATA-EXCEPTION            W  5  A                        
  8 WS-NUMBER WS-DATA-EXCEPTION     5  P 0                      
  9 *                                                           
 10 JOB INPUT  PERSNL1                                          
 11 WS-DATA-EXCEPTION = '     '                                 
 12 WS-NUMBER = WS-NUMBER + 1                                   
 13 PRINT RPT1                                                  
 14 REPORT RPT1     LINESIZE 80                                 
 15 TITLE 01 'EZTEST10 - CONTROL BREAK ON DEPT'                 
 16 LINE  01 PERSNL1:NAME-FIRST   +                             
             PERSNL1:NAME-LAST    +
             PERSNL1:NAME-LAST    +    
             PERSNL1:PAY-GROSS    +    
             WS-NUMBER

WS-DATA-EXCEPTION is a 5-byte alphabetic field that is redefined by the packed numeric field WS-NUMBER. WS-DATA-EXCEPTION is set to 5 hex ‘40’ blanks and then WS-NUMBER is computed by adding 1. This is a classic formula for an S0C7 data exception. If this happened to be a very large program with pages and pages of code you may need to review the following two methods to determine which instruction caused the S0C7.

  1. One method to discover the statement number and the statements that were executed prior to the S0C7 is to include in the PARM statement, the sub-parameter DEBUG (STATE FLOW). STATE saves the statement number of the statement currently being executed. The statement number is then printed in the associated abnormal termination messages. FLOW activates a trace of the statements being executed. The statement numbers are printed in the associated analysis report. STATE caused the following to print:

12 *******A006 PROGRAM INTERRUPT - CODE 7 (DATA EXCP)

This indicates that the error occurred at statement number 12 and that the error was an S0C7 data exception.

FLOW caused the following to print:

FLOW TABLE - MAXIMUM ENTRIES 100

10 11 12

This indicates that statements 10, 11, and 12 were executed just prior to the S0C7.

  1. If the program abends and the PARM does not include DEBUG (STATE FLOW) you can do the following:
    1. Find the contents of register 3.
    2. Add hex ‘4E’ to the contents of register 3.
    3. The contents of register 3 plus hex ‘4E’ contains the statement number in hex.
    4. Convert the statement number in hex to decimal to find the problem statement in the compiled output listing.

Register 3 in the sample program dump is 7D80, as the following illustrates:

R0 0000000C R1 00000006 R2 00007C95 R3 00007D80

R8 00000000 R9 000069B0 R10 80015636 R11 00008D70

Add 7D80 to hex ‘4E’ and you get 7DCE. Go to hex 7DCE in the dump

00007DC0 00009A8E 00010000 00000000 0000000C

The value at 7DCE is hex C. Convert hex C to decimal and you get 12. Statement 12 is the statement number that caused the S0C7 data exception.

05/15/00

Q: Do you have any performance/tuning tips?

A: General Performance Considerations:

  1. When accessing multiple files, put those files on different disk devices to avoid DASD arm contention.
  2. Use the highest priority when running the job.
  3. Do not run other programs that use the same resources at the same time.
  4. Use maximum file buffering.
  5. Use optimum blocking factors.
  6. For VSAM files that are also read by an online system, specify share options 2 or 4.
  7. Reorganize VSAM files so that they are not fragmented.
  8. If accessing a small number of records from a large file, read them with keys instead of sequentially.
  9. Use disk instead of tape whenever possible.
  10. Do not use the DEBUG parameters of COBOL (when calling subroutines).
  11. Break down huge datasets to smaller, logical datasets.
  12. Increase REGION size.

CA-Easytrieve Plus Specific Considerations:

  1. Install EZT+ into the LPA to reduce 90% of the loading of phases. All of the modules except the following can be put into the LPA:

  2. EZTPA00
    EZTPA056
    EZTPA19
    EZTPB49
    EZTPD14
    EZTPDBCS
    EZTPExx
    EZTPFxx
    EZTPIDD
    EZTPOPT
    EZTPX03
    EZTPX04
    EZTPXRPT
    EZTPA181
    EZTPD142
    EZTPD143

  3. Execute link-edited programs instead of compile and go.
  4. Produce multiple reports with a single pass of the dataset(s).
  5. Send reports to individual disk datasets to reduce VFM disk contention.
  6. Do not use the DEBUG parameters of CA-Easytrieve in production.
  7. Use binary searches (tables) instead of multiple nested IF statements.
  8. Use binary fields whenever possible to perform arithmetic operations. If a 4-byte binary field is not large enough use an 8-byte packed field.
  9. Use indexes instead of subscripts. If you must use a subscript define it as 2 bytes binary.
  10. When comparing fields or doing any arithmetic operation use fields that have the same data type, length and number of decimals.

FILE BUFFERING
The BUFNO parameter of the FILE statement establishes the number of input/output buffers allocated for the file. The default in EZT+ is two. Since minimizing the number of physical I/O operations is essential to maximizing performance, you should experiment with larger BUFNO values. Please note this value will only affect the buffering for sequentially organized files, such as QSAM. VSAM file buffers should be allocated in the JCL through the use of the AMP parameter or in the VSAM file definition.

SORTING
By default, the CA-Easytrieve Plus options table provides three dynamically allocated sortwork datasets. If you would like to increase this number or turn off this option to use your own SORTWK datasets from your JCL, use the WORK parameter on the PARM statement.

PARM WORK 0    this will turn off any dynamic allocation by EZT+

PARM WORK 5    this will dynamically allocate 5 sortwork datasets

To change the CA-Easytrieve Plus options table to eliminate the need to code the PARM, change the NUMWORK parameter, for example:

NUMWORK=0    this means you must always have SORTWORK DDs in your JCL

NUMWORK=5    this means you will always have five dynamically allocated sortwork datasets provided by
   CA-Easytrieve Plus. You will NOT use any of the SORTWORK DDs from the JCL.

Also, when implementing a SORT activity, you can use the BEFORE parameter to identify a procedure to pre-screen input records. Adding a SELECT clause can cut down the number of records used by the CA-Easytrieve Plus program.

VIRTUAL FILE MANAGER (VFM)
The VFMSPAC parameter in the options table (which may be overridden with the VFM parameter in the PARM statement) could have an important role in determining execution time. EASYTRIEVE PLUS uses its virtual file manager (VFM) to allocate the temporary data sets required during processing. Whenever a programmer builds a temporary file within his program by specifying VIRTUAL in the FILE statement VFM resources are used.

Additionally, EZT+ creates work files to hold report data whenever the SEQUENCE statement is specified in the report, or if multiple reports are generated from the same program. VFM space is 40% of the total region, or partition space for most EZT+ programs.

Should a program exhaust the region memory specified by the above parameters, it will satisfy any additional requirements by acquiring DASD space via the EZTVFM dataset, specified in the JCL. Typically the EZTVFM dataset is allocated in cylinders or work DASD. In an MVS environment, you may specify UNIT=VIO on the EZTVFM DD statement instead of UNIT=DISK or UNIT=SYSDA. The use of VIO is quicker than DASD and the space it utilizes is not part of the region in which the program is running.

In the case of multiple reports in the same program with a high volume of VFM usage, use of the FILE parameter of the REPORT statement is highly recommended. Since the EZTVFM data set used for the overflow of VFM is limited to one pack, contention for the space can be high when multiple reports are generated, causing performance degradation. The FILE parameter enables the programmer to specify separate work datasets to be used instead of the VFM area reducing the EZTVFM contention.

When comparing fields or doing any arithmetic operation, use fields that have the same data type, length, and number of decimals.

05/15/00

Q: I receive the message: A004 CATASTROPHIC ERROR IN MODULE A140 04 136E. What would cause this error?

A: This is an indication that the EZTVFM file is out of space. Increase the EZTVFM space in the JCL. VFM space can not span packs. If more space is needed you will need to use WORK files. Using report WORK files means that spooling is done to the respective WORK file, not to the EZTVFM. For more information about EZTVFM, see Chapter 3 of the CA-Easytrieve Plus Installation Guide, refer to topic "OS/390 Operating System". For information on how to setup WORK files, see Chapter 11 of the CA-Easytrieve Plus Reference Guide, refer to topic "Report Work Files."

05/15/00

Q: How can I print detail fields from the previous record at control break time?

A: Use SUMCTL DTLCOPYALL on the report statement. Included are two programs. Program #1 lists the file in REGION BRANCH sequence. Program #2 lists the file in REGION BRANCH sequence and also displays a detail field from the record just prior to the break.


PROGRAM #1

7/01/99 11.45.47                             CA-EASYTRIEVE PLUS-6.2 9904  
PAGE    1            
                                     COMPUTER ASSOCIATES INTL. -FIELD INSTALLATION 
PROGRAMS AND ALL SUPPORTING MATERIALS COPYRIGHT (C) 1982, 1996 
BY COMPUTER ASSOCIATES INTL. INC.
     1 PARM LINK(EZTEST10 R) DEBUG (STATE FLOW)                          
     2 FILE PERSNL1 FB (150 1800)                            
     3 REGION         1       1 N                            
     4 BRANCH         2       2 N                                 
     5 SSN            4       5 P     MASK '999-99-9999' -      
                                      HEADING('SOCIAL' 'SECURITY' 'NUMBER')  
     6 EMP#           9       5 N     HEADING('EMPLOYEE' 'NUMBER')       
     7 EMPNAME       17      16 A     HEADING 'EMPLOYEE NAME'     
     8 NAME-LAST  EMPNAME     8 A     HEADING('LAST' 'NAME')      
     9 NAME-FIRST EMPNAME +8  8 A     HEADING('FIRST' 'NAME')     
    10 ADDRESS         37      39 A                                
    11    ADDR-STREET     37    20 A     HEADING 'STREET'           
    12    ADDR-CITY       57    12 A     HEADING 'CITY' 
    13    ADDR-STATE      69     2 A     HEADING 'STATE' 
    14    ADDR-ZIP        71     5 N     HEADING('ZIP' 'CODE') 
    15    PAY-NET         90       4 P 2   HEADING('NET' 'PAY') 
    16 PAY-GROSS          94       4 P 2   HEADING('GROSS' 'PAY'
    17 DEPT               98       3 N 
    18 DATE-OF-BIRTH     103       6 N     MASK(  'Z9/99/99')  - 
                                           HEADING('DATE' 'OF' 'BIRTH') 
    19 TELEPHONE         117      10 N     MASK '(999) 999-9999' - 
                                    HEADING('TELEPHONE' 'NUMBER') 
    20 SEX               127       1 N     HEADING('SEX' 'CODE') 
    21                                     * 1 - FEMALE 
    22                                     * 2 - MALE 
    23 MARITAL-STAT      128       1 A     HEADING('MARITAL' 'STATUS') 
    24                                     * M - MARRIED 
    25                                     * S - SINGLE 
    26 JOB-CATEGORY      132       2 N     HEADING('JOB' 'CATEGORY') 
    27 SALARY-CODE       134       2 N     HEADING('SALARY' 'CODE') 
    28 DATE-OF-HIRE      136       6 N     MASK (  'Z9/99/99') - 
                                           HEADING('DATE' 'OF' 'HIRE') 
    29 JOB INPUT  PERSNL1 
    30 PRINT RPT1 
    31 REPORT RPT1     LINESIZE 80 
    32 SEQUENCE REGION BRANCH 
    33 TITLE 01 'EZTEST10 - SEQUENTIAL LIST REGION BRANCH NAME GROSS' 
    34 LINE  01 PERSNL1:REGION       + 
                PERSNL1:BRANCH       + 
                PERSNL1:NAME-LAST    + 
                PERSNL1:PAY-GROSS 
OPTIONS FOR THIS RUN - 
     ABEXIT SNAP  DEBUG (FLOW FLOWSIZ   100  STATE FLDCHK NOXREF)  LINK (EZTEST10 R)
LIST (PARM FILE)  PRESIZE   512 
SORT (DEVICE SYSDA  ALTSEQ NO  MSG DEFAULT  MEMORY MAX   WORK   3)  VFM (   64)
DFSMS/MVS V1 R4.0 BINDER     11:46:09 THURSDAY JULY  1, 1999 
BATCH EMULATOR  JOB(EZTEST1 ) STEP(LKED    ) PGM= IEWL 
 

 7/01/99       EZTEST10 - SEQUENTIAL LIST REGION BRANCH NAME GROSS  PAGE      1 
 
                                        LAST       GROSS 
                    REGION   BRANCH     NAME        PAY 
                      1        01     WIMN          373.60 
                      1        01     BRANDOW       804.64 
                      1        02     BERG          759.20 
                      1        02     NAGLE         554.40 
                      1        03     CORNING       146.16 
                      1        03     MANHART       344.80 
                      1        04     ARNOLD        445.50 
                      1        04     LARSON        283.92 
                      1        04     BYER          396.68 
                      1        04     TALL          492.26 
                      2        01     HUSS          360.80 
                      2        02     KRUSE         242.40 
                      2        02     POWELL        243.20 
                      2        03     DENNING       135.85 
                      2        03     FORREST        13.80 
                      2        03     MCMAHON       386.40 
                      2        03     PETRIK        220.80 
                      2        04     POST          292.00 
                      2        05     LOYAL         295.20 
                      2        05     VETTER        279.36 
                      3        01     KELLY         197.60 
                      3        01     PHILPS        253.26 
                      3        01     WEST          736.00 
                      3        01     YOUNG         313.60 
                      3        02     GRECO       1,004.00 
                      3        02     ISAAC         313.60 
                      3        02     LACH          310.40 
                      3        02     REYNOLDS      174.15 
                      3        02     SMOTH         315.20 
                      3        02     THOMPSON      250.40 
                      3        03     EPERT         310.40 
                      3        03     MILLER        313.60 
                      3        03     NORIDGE       324.00 
                      3        03     OSMON         628.00 
                      3        03     ROGERS        329.00 
                      3        03     STRIDE        386.40 
                      3        04     CROCI         376.00 
                      3        04     GREEN         365.60 
                      3        04     MALLOW        282.40 
                      4        01     RYAN          399.20 
                      4        01     TALUS         460.80 
                      4        01     WARD          183.75 
                      4        02     HAFER         121.95 
                      4        02     JOHNSON       712.80 
                      4        03     JONES         804.80 
                      4        03     WALTERS       424.00 
                      4        03     ZOLTAN        125.00 
                      4        04     JUDAR         591.20 
 7/01/99 11.45.51                             CA-EASYTRIEVE PLUS-6.2 9904   PAGE    1 
                                     COMPUTER ASSOCIATES INTL. -FIELD INSTALLATION 
PROGRAMS AND ALL SUPPORTING MATERIALS COPYRIGHT (C) 1982, 1996 
BY COMPUTER ASSOCIATES INTL. INC.
FILE STATISTICS - CA-EASYTRIEVE PLUS 6.2 9904- 7/01/99-11.45-JSN00029 
PERSNL1              48    INPUT        SAM  FIX   BLK                  150     1800
EZTR001              48    INPUT        VFM  FIX   BLK                   15      N/A



PROGRAM #2


7/01/99 15.55.33                             CA-EASYTRIEVE PLUS-6.2 9904 
PAGE    1            
                                     COMPUTER ASSOCIATES INTL. -FIELD INSTALLATION 
PROGRAMS AND ALL SUPPORTING MATERIALS COPYRIGHT (C) 1982, 1996 
BY COMPUTER ASSOCIATES INTL. INC.
     1 PARM LINK(EZTEST10 R) DEBUG (STATE FLOW) 
     2 FILE PERSNL1 FB (150 1800) 
     3 REGION         1       1 N 
     4 BRANCH         2       2 N 
     5 SSN            4       5 P     MASK '999-99-9999' - 
                                      HEADING('SOCIAL' 'SECURITY' 'NUMBER') 
     6 EMP#           9       5 N     HEADING('EMPLOYEE' 'NUMBER') 
     7 EMPNAME       17      16 A     HEADING 'EMPLOYEE NAME' 
     8 NAME-LAST  EMPNAME     8 A     HEADING('LAST' 'NAME') 
     9 NAME-FIRST EMPNAME +8  8 A     HEADING('FIRST' 'NAME') 
    10 ADDRESS         37      39 A 
    11    ADDR-STREET     37    20 A     HEADING 'STREET' 
    12    ADDR-CITY       57    12 A     HEADING 'CITY' 
    13    ADDR-STATE      69     2 A     HEADING 'STATE' 
    14    ADDR-ZIP        71     5 N     HEADING('ZIP' 'CODE') 
    15    PAY-NET         90       4 P 2   HEADING('NET' 'PAY') 
    16 PAY-GROSS          94       4 P 2   HEADING('GROSS' 'PAY') 
    17 DEPT               98       3 N 
    18 DATE-OF-BIRTH     103       6 N     MASK(  'Z9/99/99')  - 
                                           HEADING('DATE' 'OF' 'BIRTH') 
    19 TELEPHONE         117      10 N     MASK '(999) 999-9999' - 
                                    HEADING('TELEPHONE' 'NUMBER') 
    20 SEX               127       1 N     HEADING('SEX' 'CODE') 
    21                                     * 1 - FEMALE 
    22                                     * 2 - MALE 
    23 MARITAL-STAT      128       1 A     HEADING('MARITAL' 'STATUS') 
    24                                     * M - MARRIED 
    25                                     * S - SINGLE 
    26 JOB-CATEGORY      132       2 N     HEADING('JOB' 'CATEGORY') 
    27 SALARY-CODE       134       2 N     HEADING('SALARY' 'CODE') 
    28 DATE-OF-HIRE      136       6 N     MASK (  'Z9/99/99') - 
                                           HEADING('DATE' 'OF' 'HIRE') 
    29 WS-NAME S 8 A 
    30 JOB INPUT  PERSNL1 
    31 PRINT RPT1 
 
    32 REPORT RPT1     LINESIZE 80 SUMCTL DTLCOPYALL 
    33 SEQUENCE REGION BRANCH 
    34 CONTROL REGION BRANCH 
    35 TITLE 01 'EZTEST1 - PRINT PERSNL FILE' 
    36 LINE  01            REGION       + 
                           BRANCH       + 
                           NAME-LAST    + 
                           PAY-GROSS 


 
OPTIONS FOR THIS RUN - 
   ABEXIT SNAP  DEBUG (FLOW FLOWSIZ   100  STATE FLDCHK NOXREF)  LINK (EZTEST10 R)
LIST (PARM FILE)  PRESIZE   512 
SORT (DEVICE SYSDA  ALTSEQ NO  MSG DEFAULT  MEMORY MAX   WORK   3)  VFM (   64)
DFSMS/MVS V1 R4.0 BINDER     15:55:54 THURSDAY JULY  1, 1999 
BATCH EMULATOR  JOB(EZTEST2 ) STEP(LKED    ) PGM= IEWL 

7/01/99                  EZTEST1 - PRINT PERSNL FILE               PAGE      1
 
                                       LAST         GROSS 
                   REGION   BRANCH     NAME          PAY 
                     1        01     WIMN             373.60 
                                     BRANDOW          804.64 
                     1        01     BRANDOW        1,178.24 
                     1        02     BERG             759.20 
                                     NAGLE            554.40 
                     1        02     NAGLE          1,313.60 
                     1        03     CORNING          146.16 
                                     MANHART          344.80 
                     1        03     MANHART          490.96 
                     1        04     ARNOLD           445.50 
                                     LARSON           283.92 
                                     BYER             396.68 
                                     TALL             492.26 
                     1        04     TALL           1,618.36 
                     1               TALL           4,601.16 
                     2        01     HUSS             360.80 
                     2        01     HUSS             360.80 
                     2        02     KRUSE            242.40 
                                     POWELL           243.20 
                     2        02     POWELL           485.60 
                     2        03     DENNING          135.85 
                                     FORREST           13.80 
                                     MCMAHON          386.40 
                                     PETRIK           220.80 
                     2        03     PETRIK           756.85 
                     2        04     POST             292.00 
                     2        04     POST             292.00 
                     2        05     LOYAL            295.20 
                                     VETTER           279.36 
                     2        05     VETTER           574.56 
                     2               VETTER         2,469.81 
                     3        01     KELLY            197.60 
                                     PHILPS           253.26 
                                     WEST             736.00 
                                     YOUNG            313.60 
                     3        01     YOUNG          1,500.46 
                     3        02     GRECO          1,004.00 
                                     ISAAC            313.60 
                                     LACH             310.40 

 7/01/99                  EZTEST1 - PRINT PERSNL FILE               PAGE      2
 
                                       LAST         GROSS 
                   REGION   BRANCH     NAME          PAY 
                     3        02     REYNOLDS         174.15 
                                     SMOTH            315.20 
                                     THOMPSON         250.40 
                     3        02     THOMPSON       2,367.75 
                     3        03     EPERT            310.40 
                                     MILLER           313.60 
                                     NORIDGE          324.00 
                                     OSMON            628.00 
                                     ROGERS           329.00 
                                     STRIDE           386.40 
                     3        03     STRIDE         2,291.40 
                     3        04     CROCI            376.00 
                                     GREEN            365.60 
                                     MALLOW           282.40 
                     3        04     MALLOW         1,024.00 
                     3               MALLOW         7,183.61 
                     4        01     RYAN             399.20 
                                     TALUS            460.80 
                                     WARD             183.75 
                     4        01     WARD           1,043.75 
                     4        02     HAFER            121.95 
                                     JOHNSON          712.80 
                     4        02     JOHNSON          834.75 
                     4        03     JONES            804.80 
                                     WALTERS          424.00 
                                     ZOLTAN           125.00 
                     4        03     ZOLTAN         1,353.80 
                     4        04     JUDAR            591.20 
                     4        04     JUDAR            591.20 
                     4               JUDAR          3,823.50 
                                     JUDAR         18,078.08 

 7/01/99 15.55.35                             CA-EASYTRIEVE PLUS-6.2 9904 
PAGE    1            
                                     COMPUTER ASSOCIATES INTL. -FIELD INSTALLATION  
PROGRAMS AND ALL SUPPORTING MATERIALS COPYRIGHT (C) 1982, 1996 
BY COMPUTER ASSOCIATES INTL. INC.
FILE STATISTICS - CA-EASYTRIEVE PLUS 6.2 9904- 7/01/99-15.55-JSN00030 
PERSNL1              48    INPUT        SAM  FIX   BLK                  150   800    
EZTR001              48    INPUT        VFM  FIX   BLK                   15      N/A

As you can see, the size of each module increases quite a bit once the link job is run.

05/15/00

Q: Is there a way to process all matching records, even if there are duplicates on the most major file?

A: The following program shows a method to make CA-Easytrieve's Synchronized File Processing work in a way beyond which it was designed. This program will process all matching records, even if there are duplicates on the most major file (in this example, FILEA). This example ignores any records that do not exist on both files, you may add additional logic to handle this situation, if necessary.

This code assumes FILEA is fixed and its record length is 150, FILEB is also fixed with a record length of 100. The array is built assuming that there will be no more than 10 duplicate key records that exist on FILEB.


FILEA
  FLDA   1   10   A   .* key field used in sync processing
  .
  .

FILEB
  RECB   1  100   A   .* define entire record
  FLDB  10   10   A   .* key field used in sync processing
  .
  .

ENTIRE-ARRAY  W  1000  A   VALUE ' '  .* length times occurs equals this length
  WSB-ARRAY ENTIRE-ARRAY  100 A  OCCURS 10

SAVE-KEY   W  10  A .* save the key of FILEA

WS-RECB    W 100  A .* unload array into this area
  .
  .  you may need to define all fields of FILEB here
  .

ARRAY-CNT  W   2  B  0  VALUE 0

ARRAY-SUB  W   2  B  0  VALUE 0

JOB INPUT (FILEA KEY(FLDA) FILEB KEY (FLDB))

      IF MATCHED
            IF FIRST-DUP FILEA
                   ARRAY-CNT = ARRAY-CNT + 1
                   IF ARRAY-CNT GT 10
                         DISPLAY 'ARRAY OVERLOAD - CHANGE OCCURS AMOUNT'
                         STOP EXECUTE
                   END-IF
                   WSB-ARRAY (ARRAY-CNT) = RECB
            END-IF
            .
            . other program logic
            .
            SAVE-KEY = FLDA
       END-IF

       IF NOT MATCHED AND FILEA AND FLDA = SAVE-KEY
            ARRAY-SUB = 1
            DO WHILE ARRAY-SUB LE ARRAY-CNT
                  WS-RECB = WSB-ARRAY (ARRAY-SUB)
                  .
                  . other program logic
                  .
                  ARRAY-SUB = ARRAY-SUB + 1
            END-DO
            IF LAST-DUP FILEA
                  MOVE SPACES TO ENTIRE-ARRAY
                  ARRAY-CNT = 0
            END-IF
       END-IF
       .
       .
       .

NOTE: This is just a skeleton program. Additional code should be inserted as required. This example ignores any unmatched records from either file, you could add code to handle this situation as well.



		FILEA		FILEB
		   A		   A
		   A		   A
   		   B		   A
				   B 

Normally, Synchronized File Processing would process the first FILEA key A against all of the FILEB key A records and the second key A record from FILEA would be presented as NOT MATCHED. The above code will read the first key A record from FILEA and the first Key A record from FILEB and present that as a MATCH, it will then read FILEB record 2 and present that as a match with the first record from FILEA. While this processing is going on, the FILEB records are being stored in the array. Once we read the fourth record in FILEB and encounter an unmatched key we then read ahead in FILEA, since the key of FILEA matches the SAVE-KEY we will process the second record from FILEA against the array of FILEB records. Record two from FILEA is the last duplicate which causes the array to be emptied. Processing continues to the next record in FILEA which now matches the current key of FILEB, another MATCH condition.

05/15/00

Q: Is there a comprehensive list of CA-Easytrieve Online abend-codes?

A: The following is a list of CA-Easytrieve Online abend codes:

Abends generated by the runtime code generator (ETCGP)


	ECGO	Invalid request passed to code generator

Abends generated by the help manager (ETHMP)


	EHMD	Invalid domain id. Usually means that a Heap Tag is invalid
	EHMF	Invalid freemain request
	EHMH	Invalid heap tag
	EHMI	Invalid storage control request
	EHML	Length error
	EHMN	No storage available
	EHMO	Internal procedure stack overflow
	EHMQ	Invalid FAD chain
	EHMR	Error reading temporary storage record
	EHMV	Storage overrun detected
	EHMW	Error writing temporary storage record
	EHMX	Error resolving relocatable pointer

Abends generated by the input/output statement handler (ETISH)


	EI00	Invalid request passed to input/output statement handler
	EI01	An input/output statement referenced a file that had not been activated
	EI02	Load for access method interface routine failed
	EI03	Insufficient main storage
	EI04	Attempt to deactivate a file not on the active file list for the current activity
	EI05	File referenced in an illegal statement
	EI06	Invalid file manager call issued/feature not supported or not implemented
	EI09	Presentation manager error while browsing a printer file
	EI0A	File control validity check failed
	EI0X	Unexpected response received for a CICS/VS command

Abends generated by activity management (ETJAI)


	EJA1	Insufficient storage

Abends generated by System Spool Printer Interface Module (ETPIMJS)


	EJS0	Spool file open error
	EJSC	Spool file close error
	EJSW	Spool file write error

Abends generated by the CICS task execution control program (ETKXCON)


	EKX0	Application request not understood by ETKXCON
	EKX1	CA-Easytrieve Online termination in progress
	EKX2	ETKXCON unable to load runtime system modules
	EKX5	Error reading/writing PLA to auxiliary storage
	EKX6	Resume program version validation error
	EKX7	Quiesce requested by linked to program
	EKX8	Internal stack overflow

Abends generated by the task management program (ETKMP)


	EKX3	Error initializing heap local domain
	EKX4	Error terminating heap local domain
	EKX8	Internal register stack overflow
	EKXA	Percolated abend after linked to program abends
	EKXI	Invalid request
	EKX0	Invalid option update order
	EKXS	(E) STAE exit is taking a SNAP dump
	EKXR	Internal errror during task termination

Abends generated by the printer file manager (ETPFMP)


	EPR0	Invalid function code
	EPR1	Invalid printer file handle passed to CLOSE or WRITE function
	EPR2	Error opening the printer file
	EPR3	Error closing the printer file
	EPR4	Error writing the printer file
	EPR5	Cannot find printer definition
	EPR6	Error opening the system message file
	EPR9	Insufficient storage

Abends generated by reporting (ETRPTIR)


	ERP1	Insufficient storage for report work area
	ERP2	Insufficient storage for summary work area

Abends generated by Runtime Initialization Stub (ETRSINIT)


	ERS0	Runtime system initialization/termination error
	ERS1	Transfer of control failure

Abends generated by the Terminal Printer Despooler Program (ETTPIP)


	ETID	Unsupported printer device
	ETIO	Internal stack overflow
	ETIS	Invalid spooled report encountered
	ETIX	Task initialization/termination error

Abends generated by the Terminal Printer Interface Program (ETPIMTP)


	ETPS	Unable to start the terminal printer despooler transaction

Abends generated by the SQL interface (ETSQXP, ETAMISQ)


	ESQ1	The PAN/SQL interface has not been initialized
	ESQ2	Cannot process SQL files. One of the following conditions was detected
			1. The SQL data block address in the initialization parameter list is zero
			2. The cursor descriptor block is missing
	ESQX	Critical error detected during execution of an SQL request. Condition 
		code is 16 or more returned from PAN/SQL
	ESQY	An SQL request was made and the SQL interface was not initialized

Abends generated by the virtual file manager (ETVFMP, ETVDSMP, ETVBMP)


	EVF0	Invalid request passed to virtual file manager
	EVF1	Insufficient main storage
	EVF2	The maximum number of VFM datasets allowed for a single program was
		exceeded
	EVF3	Virtual file not found, ie a runtime component attempted to perform an 
		input/output operation on a system virtual dataset that had not been previously opened
	EVF4	Invalid file handle
	EVF5	For an input file the record read from the virtual file was longer than the 
		caller's input area. For an output file the record to be written to the virtual 
		file was longer than the maximum logical record length of the file.
	EVF6	An unrecoverable input/output error occurred on the VFM dataset
	EVF7	Insufficient space in the VFM dataset to contain the file
	EVF8	Invalid request returned by the input/output system. This is a general failure 
		category that covers a lot of errors.
	EVF9	Leading and trailing record lengths are not equal
	EVFA	Error opening the VFM dataset
	EVFB	Out of buffers. Either DEVICE MEMORY was specified or one or more VFM files 
		specified memory. There is not enough memory to hold all the data that must 
		be held in memory.
	EVFC	Cannot find block. A READBUFFER request was issued for a memory resident 
		VFM file but the buffer manager could not find the requested block in the buffer pool.
	EVFD	Invalid bitmap block read from disk
	EVFE	Error reading from or writing to the VFM dataset
	EVFF	Too much pending work queued
	EVFG	Invalid level number on a read block request
	EVFH	Attempt to read a data block that does not exist
	EVFI	Load for VFM dataset handler failed

Abends generated by the program link manager (ETPMPLP)


	EPML	Error when linking to another program (CICS only)

Abends generated by the Sort Interface


	ESIB	Non zero return code from the sort
Product: Easytrieve Plus
Version: ALL
OS: Z/OS, OS/390
10/09/01

Q: Can I get more details on the new CA-Easytrieve Plus OS/390 release?

A: One of the most frequently requested CA-Easytrieve Plus enhancements has been 31-bit mode support. Clients are always looking for ways to save CSA space and move as much as possible above the 16 MB line. Well, now you can do it!

With CA-Easytrieve Plus 6.4, you can move the Runtime and Compiler above the line without recompiling existing CA-Easytrieve Plus application programs. CA-Easytrieve Plus checks whether the application is 24- or 31-bit and obtains the storage it requires in the proper mode.

The 6.4 release offers new options to handle runtime. One very important option is the All31 field. The default setting for the ALL31 field is OFF. This setting specifies all storage below the 16 MB line; it will be the choice of most clients. Setting ALL31 to ON specifies CA-Easytrieve Plus should set all storage above the line and that all called programs can handle 31-bit addresses.

05/11/01

Q: What's new with CA-Easytrieve Plus?

A: The CA-Easytrieve Plus Release 6.4 beta program is scheduled to begin in Fall, 2001. The Development Team is looking for beta sites to test the new release, which introduces support for 31-bit processing. This enhancement allows CA-Easytrieve Plus to run above the line. Click here for more information:
appdev-betas.asp.

04/02/01

Q: How to maintain CA-Easytrieve Plus macros in CA-Panvalet and a PDS?

A: We recently acquired a new company and found that the new company maintains their CA-Easytrieve Plus macros in CA-Panvalet while the parent company maintains their CA-Easytrieve Plus macros on a PDS. But, the CA-Easytrieve Plus Options Table has only one entry for MACRO. We need to be able to access macros now in two different libraries, how can this be accomplished? Clients in this situation will need to catalogue a second optons table into its own unique loadlib. The programmers will have to STEPLIB to the new non-standard loadlib. Most clients elect to standardize on CA-Panvalet, but in some cases it is necessary to maintain two options tables.

05/15/00

Q: What do you do if you receive the message, " B070 VALUE NOT WITHIN ACCEPTABLE RANGE - LINESIZE", when using CA-Endevor to manage CA-Easytrieve programs?

A: If you check the CA-Easytrieve Plus Options Table, you will probably find that LINESIZE is set to the expected value of 132. Also, if you check the CA-Easytrieve program you will probably find that the LINESIZE is either not coded and thereby using the Options Table default of 132, or that LINESIZE is coded with an acceptable number from 80 to 132.

If there does not seem to be a problem with the CA-Easytrieve Plus LINESIZE, try running the program outside of CA-Endevor to see if the program runs without error. If the program returns the expected output, then the problem is due to CA-Endevor's SYSPRINT record (which is overriding the LINESIZE). Talk to your CA-Endevor administrator so that he or she may correct the SYSPRINT record.

05/15/00

Q: I need to send a dump to the CA-Easytrieve L2 group, but they said to make sure I turn ABEND-AID off. Why?

A: ABEND-AID's abend handling does not give us a full core dump and can prevent us from determining the exact root of the problem. To turn off ABEND-AID, use the following JCL:

//ABNLIGNR DD DUMMY

05/15/00

Q: I am running EZT+ 6.2 9606 and receive an S0C6 abend. Why?

A: An S0C6 can happen for any one of several reasons:

  1. Running EZT+ 6.2 9606 without having all of the PTF’s from U5PTF4 applied.
  2. The EZT+ program CALLs COBOL LE, II or 370 without the latest COBOL PTF which can be found at web address: ftp://mf.ca.com/Caproducts/easytrieve/eztpls/62/LE_Fix
  3. The EZT+ 6.2, 9606 program is reading DB2 4.1 or above without four special zaps (ZAP1 – ZAP4). Call L1 Technical Support at 630 505-6776.
  4. You have a CALL to an Assembler or COBOL program that is linked above the line.
CA-Easytrieve/Online, CA-Easytrieve for UNIX
Date Question and Answer
Product: CA-Easytrieve/Online
Version: 1.4
OS: MVS, OS/390

Product: CA-Easytrieve for UNIX
Version: 1.4
OS: HPUX, AIX
07/02/01

Q: We've used CA-Easytrieve Plus for years. Is there any reason for us to add another product, such as CA-Easytrieve/Online or CA-Easytrieve for UNIX?

A: We believe any client who has CA-Easytrieve Plus should also have CA-Easytrieve/Online. CA-Easytrieve/Online provides a great alternative to Command Level CICS development and is the logical extension of the easy-to-use CA-Easytrieve product. Those familiar with CA-Easytrieve Plus quickly master CA-Easytrieve/Online to develop CICS programs and applications. Clearly, extending CA-Easytrieve Plus processing capabilities into online CICS is an advantage.

As for CA-Easytrieve for UNIX, many clients are off-loading development tasks/data requests from the mainframe environment to free this valuable data processing resource. In such cases, UNIX becomes an environment leveraged by many IT departments. UNIX clients find CA-Easytrieve for UNIX to be a perfect fit for their new reporting requirements, while CA-Easytrieve Plus for MVS or VSE continues to meet client needs with respect to Legacy program or application requirements.

CA-Easytrieve for UNIX provides the functionality of the mainframe CA-Easytrieve Plus product, but makes it accessible to programmers lacking mainframe experience. CA-Easytrieve for UNIX allows clients to leverage their UNIX skills while benefiting from CA-Easytrieve, the structured programming language that is easy to learn and use.



Page Source mirrored from http://www.cool2.sterling.com/public/app_dev/ca_easytrieve/infodocs/easytrv1000.asp
Copyright (c) 1995 - 2004 Computer Associates International, Inc. All rights reserved.
All materials on this site subject to Legal Notice, including CA Trademarks.