I wanted to change the TCPIP definitions, so I could FTP from my laptop to the zD&T system running the ADCD z/OS images.
On my one-user, self contained system, it was easiest to make the changes to TCPIP, then stop and restart TCPIP.
If course with multiple users this would be disruptive and may not be possible. You can activate changes to your configuration – but it is not trivial.
Where are the definitions?
In the TCPIP job there is a //PROFILE… statement. This was ADCD.Z25A.TCPPARMS(PROF2). In this member is the TCPIP configuration including several “include adcd.Z25A.tcpparms(…)” statements including “include adcd.Z25A.tcpparms(zpdtdev1)” which had the definitions for the connection I needed to change.
Note: TCPIP explicity includes dataset(member) name. If you copy a member from ADCD.Z25A.TCPPARMS to USER.Z25A.TCPPARMS, it will not be used unless you change the configuration to use the fully qualified name.
You may want to copy a member from ADCD.Z25A.TCPPARMS, to keep a copy of the original, then edit the ADCD.Z25A.TCPPARMS to make your changes.
You can use the OBEYFILE command to make configuration changes once TCPIP has started, this can use any dataset. You can put your new definitions in TEST.TCPPARMS, and use OBEYFILE to activate them. Once they are working as expected, copy them to the ADCD.Z25A.TCPPARMS and have them activated when TCPIP starts.
A typical OBEYFILE command is
Refreshing TCP/IP definitions.
It is not easy to refresh the TCP/IP definitions. Restarting TCP may be an easier solution.
The definitions I wanted to change were in member zpdtdev1
DEVICE PORTA MPCIPA LINK ETH1 IPAQENET PORTA HOME &HOMEIPADDRESS1 ETH1 BEGINRoutes ; Destination SubnetMask FirstHop LinkName Size ROUTE 184.108.40.206 255.255.255.0 = ETH1 MTU 1492 ; Destination First Hop LinkName Size ROUTE DEFAULT &DEFAULTROUTEADDR ETH1 MTU 1492 ENDRoutes START PORTA
I needed to change the system symbols &HOMEIPADDRESS1 and &DEFAULTROUTEADDR to be hard coded values.
There is no “replace” command; you have to delete the definitions and re-add them.
From the above configuration file, the obvious statements are
but this fails with
EZZ0395I DELETE LINK ETH1 ON LINE 2 FAILED BECAUSE LINK STATE NOT VALID
EZZ0395I DELETE DEVICE PORTA ON LINE 3 FAILED BECAUSE DEVICE HAS A LINK DEFINED
The command TSO NETSTAT DEVLINKS gives the status. This gave me
EZZ2760I DevName: PORTA DevType: MPCIPA
EZZ2766I DevStatus: Not Active CfgRouter: Non ActRouter: Unknown
EZZ2761I LnkName: ETH1 LnkType: IPAQENET LnkStatus: Not Active
The EZZ0395I message said
The link is in use. If this message was issued in response to an attempt to delete a link, the link IP address might still be defined. You must delete the link IP address from the HOME list before the link can be deleted. To remove the link IP address from the HOME list, use the VARY TCPIP,,OBEYFILE command with a profile that contains a HOME statement that does not include the home IP address that is associated with the link that you want to delete. If you specify the updated HOME statement and the DELETE LINK statement in the same VARY TCPIP,,OBEYFILE data set, the HOME statement must precede the DELETE LINK statement.
A replace option would seem a better design than the above.
TSO NETSTAT HOME gave me
EZZ2350I MVS TCP/IP NETSTAT CS V2R5 TCPIP Name: TCPIP 16:28:46 EZZ2700I Home address list: EZZ2701I Address Link Flg EZZ2702I ------- ---- --- EZZ2703I 172.26.1.2 ETH1 P EZZ2703I 10.1.1.31 EZASAMEMVS EZZ2703I 127.0.0.1 LOOPBACK EZZ2704I Address Interface Flg EZZ2704I ------- --------- --- EZZ2703I 10.1.1.31 EZAZCX
I copied the key information into a file – excluding the 172.** stuff
HOME 10.1.1.31 EZASAMEMVS 127.0.0.1 LOOPBACK
this gave messages
EZZ0344I PERMANENT LOOPBACK ADDRESS 127.0.0.1 SPECIFIED ON LINE 2 CANNOT BE ADDED TO THE HOME LIST EZZ0612I HOME ADDRESS 10.1.1.31 FOR LINK EZASAMEMVS ON LINE 1 REPLACES THE PREVIOUS ADDRESS EZZ0316I PROFILE PROCESSING COMPLETE FOR FILE 'USER.Z25A.TCPPARMS(DELHOME)' EZZ0303I OBEYFILE FILE CONTAINS ERRORS EZZ0331I NO HOME ADDRESS ASSIGNED TO LINK ETH1 EZZ0619I LINK EZASAMEMVS USES DUPLICATE HOME ADDRESS 10.1.1.31 EZZ0619I LINK IQDIOLNK0A01011F USES DUPLICATE HOME ADDRESS 10.1.1.31 EZZ0059I VARY OBEY COMMAND FAILED: SEE PREVIOUS MESSAGES
which despite the error messages, it seems to have worked as TSO NETSTAT HOME did not show ETH1.
The output from TSO NETSTAT DEVLINKS showed the deletes had worked, and the device PORTA and link ETH1 where no longer present.
I changed the TCPIP definitions and used
this worked, and TSO NETSTAT HOME gave
MVS TCP/IP NETSTAT CS V2R5 TCPIP Name: TCPIP 16:44:09 Home address list: Address Link Flg ------- ---- --- 10.1.1.2 ETH1 P 127.0.0.1 LOOPBACK Address Interface Flg ------- --------- --- 10.1.1.31 EZAZCX
and ping 10.1.1.2 worked.
As I said at the top – it was was quicker to restart TCPIP.