Tuesday, October 9, 2007

Hipersockets in VSE/ESA and z/VSE

Hipersockets very much is a CPU function. In general, the faster the CPU, the faster the transfer.

Random thoughts ...

The processor and processor level you have. Both make a difference.
Is your microcode current for the processor you have?

Are any of the LPARs being used CPU limited?
Hipersockets is a CPU (microcode) function. Limiting CPU on an LPAR limits throughput.

Hipersockets is a synchronous method of transferring data. Sending data does not complete until the data is received. This is a big factor. If the receiving system is busy ...

QDIO is asynchronous. This does effect throughput. Testing I have done shows that QDIO OSA Express can be faster than using a Hipersocket connection.

Is z/VM in the picture?
If so, what z/VM and is it current?
There are APARs effecting Hipersocket performance under z/VM.

VSE. What version of VSE/ESA or z/VSE?
There are APARs related to performance for VSE/ESA 2.7 (DY46197 comes to mind).
This may or may not apply to z/VSE.

Are the hosts using Hipersocket devices on a separate subnet?

Are all Hipersocket hosts using the same large MTU
The maximum MTU size of a Hipersockets is determined in the IOCP Configuration of the IQD CHPID through the OS parameter.

Maximum MTU:
OS = 00 : MTU = 8K
OS = 40 : MTU = 16KB
OS = 80 : MTU = 32KB
OS = C0 : MTU = 56KB

Choose the OS parameter carefully. The value you choose will be transferred for every transfer even if there is only 1K to transfer.

What is the PRTY of the FTP client/server partition?
Is it higher PRTY than the stack?
Are other batch jobs competing for CPU time?

What is the access method being used?
POWER is slowest, VSAM fastest.

What other jobs are running on the system? LPARs?
Other activity uses CPU that could be used by Hipersockets.

Thursday, October 4, 2007

Activating CWS on a z/VSE 3.1.1 System

This blog will show the steps I went through to activate CICS Web Services on a base install z/VSE 3.1.1 system. The process is pretty simple and here is what I did ...

First, I installed z/VSE 3.1.1 from the z/VSE 3.1.1 refresh tapes. Since this was done on a z/VM system, I created a new z/VSE 3.1.1 virtual machine with 2 3390-3's to handle this. After completing the z/VSE 3.1.1 install I did some basic customization and started the POWER RDR and LST devices. Now I can submit jobs from CMS.

I submitted a job from my CMS user to define a new sublibrary called PRD2.TCPIP. Then, I submitted the INSTTOOL.JOB TCP/IP-TOOLS installion job and released the job to run. I installed TCP/IP-TOOLS into the new PRD2.TCPIP sublibrary.

To startup the TCP/IP stack, I did the usual things. Defined the network interface, Cataloged the BSTTPARM.A license member, etc. and brought up the BSTTINET TCP/IP stack. Once the stack was up and running (tested using the MSG BSTTINET,D=IP PING ... command) I brought up our BSTTFTPS FTP server.

Next I used the CMS FTP client to FTP into my new z/VSE 3.1.1 system. Once there, I FTP'ed the CICSICCF JCL from the POWER RDR queue to my CMS user. This is a simple way to get the currently running JCL.

At this point, I used xedit to edit the CICS JCL and added the * $$ JOB and * $$ EOJ which POWER does not store in its data file.

Then I added the following JCL to the CICS job ...

1) // OPTION SYSPARM='00' Stack ID
2) Added PRD2.TCPIP first in the LIBDEF SEARCH chain
3) Added the BSTTWAIT JCL

// EXEC BSTTWAIT,SIZE=BSTTWAIT
/*

Note: BSTTWAIT sets the VSE JCL return code. RC=0 indicates the BSTTINET TCP/IP stack is up and available. RC=8 indicates the TCP/IP stack was not started within 10 minutes. If you want to be able to wait more than 10 minutes using BSTTWAIT, use VSE conditional JCL to re-execute the step if the return code is equal to 8.

4) Add TCPIP=YES to the CICS SYSIPT overrides on both // EXEC DFHSIP steps

Now your CICS TS JCL is ready to go. However, a couple of more things to do before you bring up CICS TS CWS for the first time.

Now logon to your current CICSICCF system to copy and activate the TCPIP CEDA entries.

From a CEDA display ...

COPY GROUP(DFH$SOT) TCPIPSERVICE(HTTPNSSL) TO(BSI$SOT)
ALTER GROUP(BSI$SOT) TCPIPSERVICE(HTTPNSSL)
Change the Portnumber if desired (I used 8080)

And finally
ADD GROUP(BSI$SOT) LIST(VSELIST) AFTER(TCPIP)

At this point we need to create an ASCII/EBCDIC conversion table. This JCL was taken directly from the IBM manual. You will need to modify it as necessary for you system.

* $$ JOB JNM=DFHCNV,CLASS=8,LDEST=(,BARNARD),PDEST=(,BARNARD)        
* $$ LST JSEP=0,CLASS=O
* $$ PUN JSEP=0,CLASS=O
// JOB DFHCNV
// LIBDEF *,CATALOG=PRD2.CONFIG
// LIBDEF SOURCE,SEARCH=(PRD1.BASE,PRD1.MACLIB)
// OPTION CATAL,LIST
// EXEC ASMA90,SIZE=(ASMA90,64K),PARM='EXIT(LIBEXIT(EDECKXIT)),SIZE(MAXC
-200K,ABOVE)'
DFHCNV TYPE=INITIAL
DFHCNV TYPE=ENTRY,RTYPE=PC,RNAME=DFHWBHH,USREXIT=NO, X
SRVERCP=037,CLINTCP=437
DFHCNV TYPE=SELECT,OPTION=DEFAULT
DFHCNV TYPE=FIELD,OFFSET=0,DATATYP=CHARACTER,DATALEN=32767, X
LAST=YES
DFHCNV TYPE=ENTRY,RTYPE=PC,RNAME=DFHWBUD,USREXIT=NO, X
SRVERCP=037,CLINTCP=437
DFHCNV TYPE=SELECT,OPTION=DEFAULT
DFHCNV TYPE=FIELD,OFFSET=0,DATATYP=CHARACTER,DATALEN=32767, X
LAST=YES
DFHCNV TYPE=FINAL
END
/*
// IF $MRC GT 4 THEN
// GOTO NOLINK
// EXEC LNKEDT
/. NOLINK
/*
/&
* $$ EOJ


Now you are ready to shutdown your original CICSICCF partition and bring up your new CICSICCF JCL that will include CWS support.


To test the CWS interface using this command from your web browser ...
http://192.168.1.228:8080/CICS/CWBA/DFH$WB1A
Of course, you will have to change the IP address to reflect your system's IP address.

When I entered the above URL in my Firefox browser I received this response ...

DFH$WB1A on system DBDCCICS successfully invoked through CICS Web Support on CICS Transaction Server for VSE/ESA.

Enjoy!

Barnard Software, Inc. Blog

This is the first post to the BSI blog. I plan to post here from time to time with thoughts, hints and tips for using BSI products. I will also comment on VSE/ESA and z/VSE topics too.

As a first thought, I am going to install CICS TS Web Services (CWS) on a z/VSE 3.1.1 base system from scratch and writeup the steps I go through to do it.

I welcome comments and suggestions on the subjects I write about and ideas for future subjects.