z/OS 1.9 Upgrade

Here are my experiences upgrading to z/OS 1.9. Please remember that problems I report here could most likely be from mistakes I made and not from product flaws.

Key 8 CSA

A very noticable change in z/OS 1.9 is that IBM now defaults to disallowing Key 8 CSA usage. A program attempting to GETMAIN (or STORAGE OBTAIN) will now ABEND
IEA705I ERROR DURING GETMAIN SYS CODE = B78-5C IBMUSERS TESTIT
IEA705I 00F9A000 007FF040 007FF040 00F11200                   
 
You should either:

SYS1.PARMLIB(CLOCKxx) member

My test machine runs on VM and complained about something new called STP. This required replying U to the IEA888A date and time prompt at IPL time.
ETRMODE NO                                                               
ETRZONE NO                                                               
OPERATOR NOPROMPT                                                        
TIMEZONE W.05.00.00           
IEA381I THE STP FACILITY IS NOT USABLE. SYSTEM CONTINUES IN LOCAL TIMING 
 MODE.                                                                   
IEA598I TIME ZONE = W.05.00.00                                           
IEA888A UTC   DATE=2007.274,CLOCK=03.54.30                               
IEA888A LOCAL DATE=2007.275,CLOCK=22.54.30  REPLY U, OR UTC/LOCAL TIME   
I see that the CLOCK00 member of SYS1.PARMLIB that IBM ships has two new lines for STP. I added them to my clock member setting them to NO:
STPMODE NO
STPZONE NO
And now z/OS 1.9 comes up without the IEA888A prompt.

JES2 Exit 6

I got this message at JES2 startup:
$HASP003 RC=(38),LOADMOD(XYZX6)  - MODULE MIT IS INVALID,   
$HASP003         INCORRECT EYECATCHER, EXPECTED-MIT  ACTUAL- 
The XYZX6 module has the entry point set for XYZX6 in the binder (linkage editor statements) but the ORDER statements don't have XYZX6 as the first CSECT in the module:
 SECTION    CLASS                                      ------- SOURCE -------
  OFFSET   OFFSET  NAME                TYPE    LENGTH  DDNAME   SEQ  MEMBER  
                                                                             
                0  XYZX6MSG           CSECT       427  SYSLIB    01  XYZX6   
             . . .                                                           
             4148  XYZX6              CSECT       D18  SYSLIN    01  **NULL**
      50     4198     XYZX6ENT           LABEL                               
                                                                             
             4E60  XYZX6DAT           CSECT         4  SYSLIB    01  XYZX6   

Relinked XYZX6 with ORDER statements putting CSECT XYZX6 (where the JES2 MIT is) at the start of the module (now is offset 0) and then on the next start of JES2, there were no error messages. Here is the map from then Binder with the entry point of XYZX6 is now 0
 SECTION    CLASS                                      ------- SOURCE --------
  OFFSET   OFFSET  NAME                TYPE    LENGTH  DDNAME   SEQ  MEMBER   
                                                                              
                0  XYZX6              CSECT       D18  SYSLIN    01  **NULL** 
      50       50     XYZX6ENT           LABEL                                
                                                                              
              D18  XYZX6DAT           CSECT         4  SYSLIB    01  XYZX6   

New function: System Rexx

The new AXR started task is now started for System Rexx. It requires a dataset called SYS1.SAXREXEC. I created one with the same name but not on the SYSRES and catalogued it. I copied the two members that came from IBM to my new one (which were compiled Rexx) and then added normal text REXX execs to my version of the library. I restarted AXR using command:
S IEESYSAS,JOBNAME=AXR,PROG=AXRINIT,TIME=NOLIMIT

I created a member in SYS1.SAXRXEC called Hello:
/* Rexx */         
Say "hello world"  
exit 0             
It was executed with the command F AXR,HELLO
 AXR0500I AXREXX OUTPUT DISPLAY 953                       
 EXECNAME=HELLO REQTOKEN=0000400000000000C0F981C84B341D0C 
 hello world                                              


It's often nice to see what SHOWMVS reports about the address space, Here's a rexx exec to invoke SHOWMVS from the System Rexx address space:
/* rexx */                                                    
address TSO                                                   
"ALLOCATE FILE(SHOWMVS) DA('IBMUSER.spftemp1.axr.showmvs')" , 
"UNIT(3390) volume(XYZ001) NEW REUSE SPACE(15 15) TRACKS"     
"CALL 'IBMUSER.dave.load(SHOWMVS)'"                           
And then execute it via "F AXR,SHOWMVS"

Executed my REXXVER exec and see that the Rexx interpreter says it is the same one we've been running for years:
F AXR,REXXVER                                              
AXR0500I AXREXX OUTPUT DISPLAY 371                         
EXECNAME=REXXVER REQTOKEN=0000500000000000C02B1FAD2CD93189 
ADDRESS() returns 'TSO'                                    
                                                           
VERSION: Lang(REXX370) Version(3.48) Date(01 May 1992)     
                                                           
SOURCE: Env(TSO)                                           
        source2(COMMAND) source3(REXXVER) source4(REXXLIB) 
        source5(?) source6(REXXVER) source7(TSO)           
        source8(AXR) source9(?)                            

This web pages does NOT represent the views of my employer.

Last Updated: 2007-09-30
This web page is © 2007+ by David Alcock. All Rights Reserved.