* copyright (C) 1984-2019 merrill consultants dallas texas usa



Yüklə 28,67 Mb.
səhifə190/383
tarix17.01.2019
ölçüsü28,67 Mb.
#98988
1   ...   186   187   188   189   190   191   192   193   ...   383

default SAS JCL and removes the NLSCOMPATMODE option.

Thanks to Bernd Klawa, Stat Bielefeld, GERMANY.


Change 22.128 New BLDIMPDB is "JCL" for ASCII platforms, for STEP03/04

BLDIMPDB of the JCLIMSLx/ASMIMSLx IMS log processing on ASCII SAS

TYPEIMSB platforms; BLDIMPDB provides the filename statements with

Jun 14, 2004 correct DCB attributes that are used after STEP01/STEP02

(which do not require SAS) were executed on "MVS".

-Member TYPEIMSB had to be changed to process character

fields containing hex data as $CHAR rather than $EBCDIC,

logic was added to convert text fields back to EBCDIC.

Thanks to Steven Hudson, Avnet Inc, USA.
Change 22.127 The example in comments to read SMF data (instead of PDB)

ANALFIOE was enhanced to create only the datasets, and keep only

Jun 14, 2004 the variables that are required, reducing run time and

DASD space. This is not needed if you run ANALFIOE with

BUILDPDB, since the PDB has all of the needed datasets

to analyze concurrent FICON Open Exchanges.

Thanks to Neil Ervin, Charles Schwab, Inc, USA.
Change 22.126 The "WO" must be "W0", i.e., w-zero not w-oh in the DSNs

MXGSASV9 and member names in the JCL example.

Jun 11, 2004

Thanks to Robert Chavez, Office Depot, USA.


Change 22.125 Support for Mobius/IPAC subtype 5 IPAC05 dataset duration

VMACIPAC variables were incorrectly input, but nobody had noticed,

Jun 9, 2004 until now. Version 6.2 data has been validated.

Thanks to Marty Wertheim, Bank of America, USA.


Change 22.124 MXG 22.04-MXG 22.05, QWHSSTCK was missing in SMF 102 DB2

VMACDB2H trace records after Change 22.090; the reset for ID=101

Jun 9, 2004 statement should have also have reset ID=102.

Thanks to David M. Forbes, McLeodUSA, USA.


Change 22.123 SAS Version 9 INCOMPATIBILITY, on "MVS" only, CRITICAL:

CONFIGV9 The MXG default value for the SAS system option S2=

UTILS2ER (it sets the line size of source statements that will

MXGSASV9 be read from %INCLUDE and AUTOCALL members),

Jun 8, 2004 which is set in the MXG CONFIGV9 member,

Jun 12, 2004 MUST now be changed for MVS from the MXG default of S2=72

(which was chosen so that SAS only read columns 1-72,

and prevented errors when user-written code had mixed

blank and non-blank lines, or had invalid line numbers

in columns 73-80. Only user-written code members had

the exposure, since all of MXG fits in 72 positions),

to be S2=0, because:

- MVS SASMACRO library was changed from RECFM=FB to VB.

There are no standards for line size of SAS-provided

%macros; previous MVS-used %macros fit in RECFM=FB, but

new V9 macros now have line sizes up to 255 positions.

These new macros were created on ASCII platforms,

where all text files are variable length, with 255

default length (which SAS handled because it treats

variable length input and fixed length differently),

so the coders (with no legacy background) had no

reason to restrict their code to the 72 bytes that

we had found necessary on MVS systems, and they did

all of their testing on ASCII platforms.

If they had known of the restriction, their macros

could easily have been written to fit, this change

wouldn't have been necessary, so you could have

read their source code, to understand and learn,

without line wrapping on green screen terminals!

- So the MVS folks had to change RECFM from FB to VB to

deliver these long-length %macros, and since the real

SAS System default is S2=0, the MVS QA tests did not

see any of the errors that their change causes when the

S2 option is set to S2=72.

- And, unfortunately, while MXG programs do use some of

the SAS-provided %macros (%LOWCASE,%LEFT,%CMPRES,%TRIM)

the utilities that use them (UTILBLDP,BLDSMPDB) weren't

executed with the arguments that happen to invoke them

in our QA, so we missed this V9 problem in our testing.
- The SAS Change to RECFM=VB with the MXG S2=72 default

has caused real errors, and has the potential for more:

- With VB and S2=72, real errors occurred:

A site that had always put their own local %macros

in the SASMACRO FB library in previous SAS versions

got "macro not found" errors when they copied their

%macros into the VB file, and executed with S2=72,

because SAS started reading in column 73, and never

saw their %macro definition. SAS Technical Support

recommended they change S2=0, SAS Note SN-011929,

which did correct this error.

An alternative to putting user %macros in the

SAS-supplied library is to put them in the MXG

"USERID" tailoring source library, because MXG

uses MAUTOSOURCE SASAUTOS=(SOURCLIB SASAUTOS)

precisely so that %macros will be found.

- But with VB and S2=0, potential errors may be worse:

Since MXG has always set S2=72, any text in your own

source code in columns 73-80 was ignored, but now,

if you have a member with invalid line numbers in

columns 73-80 (mixed numbers and characters; some

vendors use 73-76 for a line number and put version

characters in 77-80), or if you have a member with

unnumbered first line and numbers in later lines,

your perfectly running job now will fail under V9

(with a 180 syntax error, at the non-blank line),

and the defective numbering will not be identified.

That member must be either all unnumbered or all

lines must be numbered to eliminate this error.

MXG set S2=72 to protect users from the very common

human error we found in MVS systems, when a user

EDITed a new line with blank number into a member

that was already numbered, but now, you must detect

and correct those members so that S2=0 can be used.

- But since CONFIGV9 must now specify S2=0 to prevent the

real errors encountered, those potential errors due to

"bad" line numbers MUST be detected and corrected prior

to migration to V9. The new UTILS2ER program MUST be

run against each of your Source PDS libraries that have

SAS code; it will identify all members with "bad" line

numbers, so that you can EDIT those members and avoid

the potential errors caused by changing S2=72 to S2=0,

prior to migrating to SAS Version 9 on "MVS".
- Tutorial on S2 option values:

- The S2=72 option has completely different meanings for

RECFM=VB than for RECFM=FB:

-For FB, S2=72 says to only read the first 72 positions

-For VB, S2=72 says to skip the first 72 positions and

start reading in column 73!

- The S2=0 option is also different, for the two RECFMs:

-For FB, the last 8 columns of the first line of each

member is read; if that first line does not have a

valid sequence number, SAS reads the full LRECL of the

source line. If that first line has a valid sequence

number, SAS reads all but the last 8 columns of that

member's lines.

-For VB, columns 1-8 of the first line of each member

is read, and if a valid line number is found, SAS then

internally uses S2=8 to start reading in column 9.

If there is no line number in columns 1-8, SAS then

internally uses S2=0 to read the entire line length.

- Fortunately, SAS separately opens each member, so with

S2=0 and either FB or VB, SAS examines each member for

line numbers, so you can have one member without line

numbers, and another member with line numbers, even in

the same PDS, without any error; it is only when you

have invalid line numbers, or have a blank line before

a numbered line, that the 180 syntax error will happen.
Note that MXG did NOT change the S=72 default value:

- S controls SAS action on code read in from //SYSIN

- S2 controls SAS action on code read by %INCLUDE or

by SASAUTOS)

because you want that protection: it is very common to

have mixed numbered and unnumberd lines in your members

that have both the JCL and the SAS code, that you EDIT

and SUBMIT, and using S=72 allows that inconsistency,

so your job will continue to run without errors.

Summary of changes:

-CONFIGV9 now specifies S2=0 instead of S2=72.

-UTILS2ER is a new program to find S2=0 bad lines.

-MXGSASV8/V9 has //INSTREAM with SPACE=(CYL,(1,20))

instead of CYL,(1,1), which could only hold 168,000

lines of source for UTILS2ER. With (1,20) that temp

file has room for 3 million lines from each PDS.

Thanks to Michael L. Kynch, International Paper, USA.
Change 22.122 Cosmetic. Error messages were made consistent, with both

VMAC28 SYSTEM and SMFTIME printed with all errors.

Jun 8, 2004

Thanks to Pascal Maurice-Prestataire, La Poste, FRANCE.


Change 22.121 See the extensive discussion of DB2 Parallel Transactions

VMACDB2 (and the significant loss of DB2TCBTM if you have any)

EXDB2ACC in the "DB2 Technical Notes, Newsletter FORTY-FIVE).

EXDB2ACB -This old code in the MXG exit members EXDB2ACC/ACP/ACB:

EXDB2ACP IF DB2PARTY='P' AND QWACPARR='Y' THEN DELETE;

Jun 6, 2004 was removed by this change, and should be removed from

your exits. It was added by Change 20.266 to resolve a

problem with duplicate records, but the new DB2PARTY='R'

value is set when QWACPARR='Y', so the DELETE could never

have been executed.

-New value 'R' for the RollUp record, and value 'P' is now

for the Parallel Task (or Utility Subtask):

DB2PARTY Description Set by

'R' Rollup QWACPARR EQ 'Y'

'P' Parallel QWACPACE GT 00000000X

'O' Parent/Orig QWACPCNT GT 0, QXMAXDEG GT 0

'S' Sequential None of the above

-The code to set DBPARTY was relocated, and the test for

'O' is now set IF QWACPCNT GT 0 OR QXMAXDEG GT 0, which

is a stronger test for the Parent/Originating record.

Without this change, DB2PARTY was "S" for the Parent.

-In DB2PARTY='R' Rollup records QWACESC is not a datetime

value, but as noted in IBM APAR PQ41012, it contains the

total elapsed time for all child tasks, a duration. MXG

now detects when QWACESC is smaller than QWACBSC, (or if

QWACESC or QWACBSC are zero) and for those observations:

MXG stores the "QWACESC" time in variable CHIELPTM.

MXG creates QWACESC as datetime, equal to QWHSSTCK.

QWACBSC may be zero

ELAPSTM is set to missing

For all other observations, CHIELPTM will be missing,

and ELAPSTM=QWACESC-QWACBSC.

Thanks to Andy Creet, Department of Defence, AUSTRALIA.

Thanks to Andy Schuermann, Department of Defence, AUSTRALIA.


Change 22.120 MXG 22.05, MVS only, using UTILBLDP, you will get error:

CONFIGV8 APPARENT INVOCATION OF MACRO CMPRES NOT RESOLVED and

CONFIGV9 APPARENT INVOCATION OF MACRO LEFT NOT RESOLVED because

Jun 4, 2004 during tests for Change 22.102, I had mis-understood SAS

techs to say that the %LOWCASE and other %MACROS had been

implemented in base SAS, and that SASAUTOS was no longer

required, so I had changed SASAUTOS=SOURCLIB in testing,

but found it was only the function LOWCASE and not the

%macro %lowcase that had been implemented; unfortunately

I failed to go back and correct the SASAUTOS= statements

in those CONFIGVn members. The correct statement is

SASAUTOS=(SOURCLIB SASAUTOS)

which has always been required in CONFIGxx and AUTOEXEx

to retrieve the SAS-provided %macros that are not defined

in base SAS: %LOWCASE, %CMPRES, %LEFT, and %TRIM.

Thanks to Jim Horne, Lowe's Companies, Inc, USA.


Change 22.119 Cosmetic: Four of the BY statements in the _CHAIN macro

VMACCIMS were replaced by _BIMFTRN, since that "BY" macro had the

Jun 3, 2004 same variables as the replaced BY statements.

Thanks to Joe Babcock, Bank One, USA.


Change 22.118 Cosmetic: Semi-colons at the end of some MACRO _BTY91xx

VMAC91 were removed, to be consistent with other definitions.

Jun 3, 2004

Thanks to Joe Babcock, Bank One, USA.


Change 22.117 Support for optional ESS segment GEPARMKY=003B creates

IMAC6ESS variable ESSFRMLN (FORMLEN) in dataset TYPE6, when the

VMAC6 comment block in member IMAC6ESS is opened.

Jun 3, 2004

Thanks to Engelbert Smets, Provinzial Rheinland Versich., GERMANY
Change 22.116 Variables SMF70NSI SMF70NSA SMF70NSW were incorrectly

VMAC7072 divided by NRSAMPLE, which is ten times greater than the

Jun 3, 2004 SMF70DSA that should have been used.

Thanks to Bruce Widlund, Merrill Consultants, USA.


Change 22.115 JES3 only. The BUILDPD3 program could use the wrong type

BUIL3005 26 purge record, which caused ABEND='JCL' for jobs that

Jun 2, 2004 had actually executed, especially for jobs that were read

in on one system and sent to a second system via NJE for

execution, because the first TYPE26J3 observation was the

one used. This revision uses the SYSEXEC field, which is

non-blank only in the "execution" purge record; all other

purge records are output in dataset PDB.DJEPURGE prior to

the logic that matches the purge record with the other

job records.

-The READTIME value can be different in the purge record

that was written for the job's output processing which

occurred on the original node. The first two 26 records

(one on the read-in system, one on the execution-system)

but the third 26 record had a READTIME that was after the

purge time of the execution purge record. As this was a

non-execution purge record, it is output in PDB.DJEPURGE,

but searching for it by READTIME would not find the obs.

Thanks to Ray C. Lau, Nav-International, USA.

Thanks to Roger Rush, Nav-International, USA.


Change 22.114 This VTS Library Statistics report replicated the IBM

ANAL94 report, but IBM uses the SMFTIME (end) rather than the

Jun 1, 2004 STARTIME (begin) of the interval, so, to match their

report, SMFTIME is now used, and the REPORT TITLE has

been modified to indicate it the end of the interval.

Thanks to Cheri Sample, Ford Motor Car Company, USA.


Change 22.113 ASCII execution only, using ASMIMSLx/JCLIMSLx steps 3 & 4

TYPEIMSA on PC, variable APPLID was unreadable because it was not

May 27, 2004 converted back to EBCDIC. APPLID=SUBSTR(DTOKEN,1,4); was

replaced by APPLID=INPUT(SUBSTR(DTOKEN,1,4),$EBCDIC4.);

Thanks to Mark Van Der Eynden, Hewlett-Packard Australia, AUSTRALIA.
Change 22.112 INPUT STATEMENT EXCEEDED if MVRECLEV EQ '02'X but you did

VMACEDGS see the circumvention in the comments to change the 58 in

May 26, 2004 _SKPEDGS to 122, because the INPUTs for MVAUTID1-8 were

not compared with their length. However, this error is

now eliminated, as logic now tests MVRECLEV and sets the

value to either +58 or +122 automagically.

Thanks to Chuck Hopf, MBNA, USA.
Change 22.111 Durn unix, and it's case sensitivity: these two members

BLDSMPDB must be all lower case, and all of the %UPCASE functions

BLDNTPDB must be changed to %LOWCASE, and when you type in the

May 26, 2004 %bldsmpdb(....) or %bldntpdb(....) those text lines

must also be typed in lower case.

-References to &SYSSCP were changed to &OPSYS, because

&SYSSCP is a SAS-owned macro variable that cannot be

%LOWCASEd, but &OPSYS is set in VMXGINIT and can be.

Thanks to Steven Hudson, Avnet Inc, USA.
Change 22.110 The label for R744STSA was reversed; it is now

VMAC74 R744SSTA='REQUESTS*CHANGED FROM*SYNC TO ASYNC'

May 25, 2004

Thanks to Thom Kight, Fidelity Systems, USA.


Change 22.109 -DB2 data written to GTF and read with TYPE102G caused

ANALDB2R INVALID DO LOOP CONTROL INFORMATION error.

ANALDBTR because some IFCID 070 and 071 Trace Records contain only

VMAC102 a product section; MXG expected a second section with the

VMACDB2H QW0070 and QW0071 DSECTs, as described in DSNDQW01. The

VMACSMF two IFCIDs now only INPUT the second if QWHSNSDA GE 2.

May 30, 2004 When QWHSNSDA=1, T102S070/T102S071 dataset will have

missing values for the variables from those DSECTS, i.e.,

QW0070FR/CK or QW0071RT/RS/NI/FR will have missing value.

-Additionally, these two IFCIDs have only the Standard DB2

Header and the CPU Header in their Product Section. the

Correlation Header does not exist, so the QWHCCN QWHCCV

and all QWHC variables are missing in T102S070/T102S071.

-The _GTFDB2 macro in VMACSMF was corrected to run under

ASCII SAS; $EBCDIC was changed to $CHAR and $HEX format

was added.

-The _GTFDB2 macro did not store TODSTAMP into QWHSSTCK,

so the use of GTF data for ANALDBTR to create "PAIRS"

datasets, and/or the use oF PMSQLnn reports in ANALDB2R

did not work, causing blanks for Interval Start, etc.

-ANALDBTR did not include _114PAIR in ALLPAIRS macro,

causing S114S115/S114S116 DATA SET NOT FOUND errors in

ANALDB2R.

-ANALDB2R had misspelling of QW006PG vice QW0006PG, and an

incorrect &TRACEIN..S183S183 that is now just S183183; it

had caused a DATASET PDB.S183S183 not found error.

Thanks to Wayne Montefiore, CSC GIS Engineering Services, AUSTRALIA.
====== Changes thru 22.108 were in MXG 22.05 dated May 22, 2004=========
Change 22.108 CRITICAL for SAS V9.1, if you did NOT install CRITICAL

CONFIGV9 SAS Hot Fix in SN-012437 for V9.1 and for V9.1.2:

VMAC110 Summary: -SAS V9.1, using V7SEQ,V8SEQ,or V9SEQ, creates

VMAC120 corrupted and un-readable datasets, with no

VMAC80A error messages until you try to read the data,

VMACOMDB and the data is NOT recoverable; it's lost!

VMACSMSX See the FLASH posted May 21 to MXG-L/ITSV-L,

VMACTMTC or see FLASH in Newsletters at www.mxg.com.

May 22, 2004 -SAS V9.1, using V6SEQ, creates valid datasets

that have no errors, but if a dataset has any

long-length variables (greater than 200 bytes),

the copy/write caused error messages, and you

could not copy/write that dataset.

-SAS 9.1.3 has corrected all known errors and

V9SEQ can be safely used; however, CONFIGV9

still has V6SEQ, because I cannot tell that you

are running under SAS V9.1.3.

-Under SAS V8.2, V8SEQ creates valid datasets,

and supports "long length" variables; the error

only occurs under SAS V9.1, without hot fix.

This revision shortens all "long-length" variables in

datasets from MVS data, so that SEQENGINE=V6SEQ can be

safely used without errors; and the change reinstates

the SEQENGINE=V6SEQ in the CONFIGV9 member.


There is now another CRITICAL change to CONFIGV9 that is

also required for SAS V9, in Change 22.123.


These SMF variables were reduced to $200 bytes length,

(and it is extremely unlikely that your MVS data has

and text longer than 200 bytes in these fields):
SMF TYPE Dataset Variable Orig length

80 TYPE80EK EKC80FRD 1024

80 TYPE8XEK EKC80FRD 1024

110 CICSJR SJRPRPTH 255

110 CICPGR PGRJVCLS 255

120 TYP120JI SM120JI7 400

120 TYP120WA SM120WAL 400

120 TYP120WA SM120WAQ 400

120 TYP120WI SM120WIQ 400

120 TYP120WI SM120WIW 400

USER SMSX IGDACSSC ACEROJFL 256

USER SMSX IGDACSSC ACEROMFL 256

USER SMSX IGDACSSC ACEROSFL 256

USER TMTC TMTCIS ISCONTCT 256

USER TMTC TMTCIS ISDESCR 256

USER TMTC TMTCIS ISLOC 256

USER TMTC TMTCIS ISNAME 256

USER TMTC TMTCIS ISOBJID 256


These MVS-but-not-SMF variables were reduced to $200,

(and data loss here is also unlikely):


Product Dataset Variable

Candle OMDB DB0035 QMDAASTR 247

Candle OMDB DB0630 QW0063ST 5000

Candle OMDB DB1920 QW0192DT 250

Candle OMDB DB2060 QW0206MR 256

Candle OMDB DB2060 QW0206MS 256

Candle OMDB DB2080 QW0208MR 256

Candle OMDB DB2080 QW0208MS 256

Candle OMDB DB2360 QW0236MR 256

Candle OMDB DB2360 QW0236MS 256

Candle OMDB DB2571 QW0257MS 256

Candle OMDB DB3120 QW0312PR 250

Candle OMDB DB3140 QW0314PL 256

Candle OMDB DB3190 QW0319D1 256

Candle OMDB DB3240 QW0324CP 254

Candle OMDB DB3270 QW0327MS 256


And what's at least "slick" about this change:

If you need the extra characters in these variables,

once you have installed the Hot Fix, you can increase

them back to their maximum length just by inserting a

LENGTH var1 var2 ... varn $256 ;

statement in one EXdddddd member for each product!

MXG code still INPUTs the original long length, but

this change inserted a LENGTH varx $200; statement

in the VMACxxxx member, but SAS uses the LAST

LENGTH statement, and the EXdddddd member's code

will then change the stored length of the variable.
But not all variables over 200 bytes were changed:

- These variables created by TYPEWWW from Web Logs were

unchanged; that code is normally run on ASCII SAS,

which does not use the SEQENGINE option, and


Dataset Variable LENGTH

WWWIIS BROWSER URISTEM 256

" COMPNAME CSBYTES CSHOST 4096

" CSVERSN PORT SCBYTES 4096

" SITENAME STATUS32 URIQUERY 4096

WWWLOG BROWSER URISTEM 256

WWWLOG URIQUERY 4096

WWWREFER REFERER 4096

WWWURQRY URIQVALU 4096

WWWCOOKE COOKVALU 4096


- These variables are ONLY longer that 100 bytes if the

COMPRESS=YES option is enabled, none of the datasets

are likely to be created in BUILDPDB nor archived,

especially the T102Snnn DB2 trace datasets that are

usually created only for ad hoc analysis. And all of

these variables can be changed by inserting

%LET SASCHRLN=100;

or

OPTIONS COMPRESS=NO;



as your first //SYSIN statement:
Dataset Variable LENGTH

T102S004 QW0004MS 32000

T102S005 QW0005MS 32000

T102S059 QW0059CN 32000

T102S061 QW0061CN 32000

T102S062 QW0062ON 32000

T102S063 QW0063ST 32000

T102S064 QW0064CN 32000

T102S065 QW0065CN 32000

T102S066 QW0066CN 32000

T102S090 QW0090CT 32000

T102S092 QW0092P1 32000

T102S097 QW0097P1 32000

T102S124 QW01242T 32000

T102S140 QW0140TX 32000

T102S141 QW0141TX 32000

T102S145 QW0145TX 32000

T102S168 QW0168ST 32000

T102S180 QW0180DS 32000

T102S194 QW0194DS 32000

T102S203 QW0203PA 32000

T102S204 QW0204TH 32000

T102S206 QW0206MR QW0206MS 32000

T102S207 QW0207HR 32000

T102S208 QW0208MR QW0208MS 32000

T102S236 QW0236MR QW0236MS 32000

T102T124 QW01242T 32000

T102T140 QW0140TX 32000

T102T141 QW0141TX 32000

T102T145 QW0145TX 32000

TMDBBD QW0140TX 32000

TMDBBD0 QW0140TX 32000

SHADOW06 SM06SQSR 32000

Note: Jan 11, 2011. Change 28.325 updated this list.

Thanks to Diane Parker, AmerisourceBergen Corp, USA
Change 22.107 Formats MGTMDRC for ASG/TMON DB2 and MGDB2RC for IBM DB2

FORMATS slightly out of sync, but now match.


Yüklə 28,67 Mb.

Dostları ilə paylaş:
1   ...   186   187   188   189   190   191   192   193   ...   383




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin