CICS Performance and Tuning
(TD-CICSPT)
Audience
This course is intended for:
- CICS Systems Programmers
- Performance and Capacity Planning Personnel
Prerequisites
Attendees should have one or two years experience supporting CICS Transaction Server.
Duration
5 days. Hands on.
Course Objectives
Upon completion, attendees will have a much better understanding of how CICS operates and the major areas that affect performance. Attendees will be taken through CICS Dispatching, Storage Management, CICS/VSAM processing. Data Tables and Terminal Control.
Intercommunication, Tracing, Recovery, Program Management are covered as well as the CICS/DB2 Interface, Temporary Storage and Transient Data. Threadsafe implementation and Java are also covered. The approach taken is to discuss how each CICS function works, how to diagnose bottlenecks and then to see how performance can be improved. Statistics are reviewed for many of the components discussed. A CICS 6.1 system will be available for online access.
Course Content
Day 1
Introduction
- Initial Observations
- Why Tune?
- Response Time ‘end to end’
- Network Time
- Internal Response Time
- Dasd Response Time
- Non-CICS Component Tuning
- Observation
- MethodologyData Capture Tools
- Bench Marking Tools
- Modelling Tools
- CICS Statistics
- The STAT Transaction
- What Resources can be Tuned?
- CPU
- I/Os
- Serialisation
Kernel, Transaction Manager and the Dispatcher
- The Role of the TCBs (Task Control Blocks)
- SIT Parameters
- KE_TASK – Tasentry Sizes
- Task Attach – Queued
- MXT issues
- Task Attach – Success
- How work is started – different ways
- First Dispatch
- Region Exit Interval – ICV
- Dispatch Chains
- ECBs – Hand Posting
- Quasi- Reentrant TCB
- A review of the:
- Kernel Domain Summary Table
- Transaction Manager Domain Summary Table
- The Dispatcher Domain Summary Table
CICS/TS Storage Management
- Address Space Layout
- Prefixed Save Area – PSA
- System Queue Area and Extended System Queue Area
- Link Pack Area and Extended Link Pack Area
- z/OS Common System Area
- Scheduler Work Areas
- z/OS Storage within the CICS Region
- z/OS Storage above the CICS Region
- Storage fragmentation
- Defining the size of the Dynamic Storage Areas:
- DSALIM
- EDSALIM
- Understanding how the DDAs are used/allocated
- Short on Storage and Storage Cushion sizes
- Storage Subpools
Day 2
Storage Protection and Transaction Isolation
- Storage Violations
- Understanding Storage Keys & Storage Protection
- Enabling Storage Protection
- Enabling Transaction Isolation
- Performance Cost
- Subspace usage
Language Environment
- CEEROPT/CEECOPT
- AUTODST
- RUWAPOOL
- The CLER Transaction
CICS and VSAM
- Defining a File – CEDA/CEDB
- File Open – Startup vs Firstref
- Defining LSRPools – Local Shared Resource
- Non Shared Resources Buffering
- Locking – Non-RLS
- RLS – Record Level Sharing
- Defining RLS to the CFRM Policy
- Enabling RLS – SIT and CEDA Define file
- z/OS and RACF considerations
- Understanding Control Interval Locking
- CILOCK – SIT option
- Record Locking
- Deadly Embrace
- RLS Deadlocks – Poor Design
- Premature CA Splits
- Index Component definition incorrect
- File and Local Shared Resource Stats
CICS Data Tables
- Defining Data tables
- CICS Maintained Data Tables
- User Maintained Data Tables
- Shared Data Tables
- Data Tables Performance vs Function Shipping
- Defining Data Tables to the CFRM Policy
Day 3
CICS Terminal Control
- Round Trip Time
- High Performance HPO – SVC
- SIT Options:
- RAMAX
- RAPOOL
- EOD VTAM Stats
- SNA Chaining
- SENDSIZE/RECEIVESIZE
- TIOA/IOAREALEN
- Autoinstall of Terminals
- ICVTSD
CICS Intercommunication
- Defining Connections/Sessions
- QUEUELIMIT/MAXQTIME
- VTAM Generic Resource
- Defining VTAM Generic Resource to the CFRM Policy
- Dynamic Dispatching/Workload Balancing – DFHDYP
- MRO/XCF - APPC
- MROBTCH/MROLRM – SIT options
- Transaction Routing
- CICS Relay Transaction
- Function Shipping
- The Mirror Tasks
- Distributed Transaction Processing
- Asynchronous Processing
- Distributed Program Link
- Batch to CICS – ECI
- The CRTE Transaction
CICS Web Services, Secure Sockets Layer and TCPIP
- Structure of CICS Web Services
- Where are the Waits
- URIMAPs
- Usage=Client, Server, Pipeline
- Top Down
- Bottom Up
- Defining TCPIPSERVICE
- Socketclose
- SSL Delay
- Defining SSLTCBs
- S8 TCBs
- S9 TCBs
Day 4
CICS Tracing
- Impact of Tracing
- CETR
- Setting Level 1, Level 2 Component Tracing
Recovery Restart and Logger
- Global Catalog Buffers
- Defining Log Streams
- CICS Startup
- Initial
- COLD
- AUTO
- DFHLOG/DFHSHUNT
- Defining to the LOGR
- Options and Specifications
- Unit of WorkCSKP and Activity Keypointing
- Syncpoint
Loader and Program Management
- LLA and VLF
- CEDA Define Program
- Autoinstall of Programs
- Reentrant Programs and Key 0
- Conversational vs Pseudo Conversation
- Commareas
- Channels and Containers
- Loader Domain Statistics
Temporary Storage
- TSModels
- Temporary Storage Main Vs Auxiliary
- Forcing all Temporary Storage to Main
- Buffering and I/O Statistics
- Defining Temporary Storage Pools to the CFRM Policy
Transient Data
- Types of Transient Data Queues
- Extrapartition, Intrapartition
- Recovery
Day 5
CICS/DB2 Interface
- Defining the DB2 Connection
- Data Sharing Group Name
- Defining the Threads
- Control Threads
- Entry Threads
- Pool Threads
- The Attachment Facility
- DSNC Transaction
- Subtask Creation
- Authorization
- Usage of Open TCB – L8
- Tuning Parameters
Understanding Threadsafe Performance
- OTE Overview
- Why the need for Threadsafe
- How Threadsafe can impact Performance and Throughput
- Defining Threadsafe programs
- Researching which programs can be Threadsafe
- System Programmers Tasks
- SIT Options that affect Threadsafe
- MAXOPENTCBs
- Tracing Threadsafe
CICS and JAVA
- JVM Pools
- JVM Heap Storage
Selected SIT Parameters
- SIT parameters that can affect performance