Download - IMS OTMA Flood Control
IMS Version 13
2
IMS System Outage because
IMS does not have enough system resources to process the OTMA transaction requests
IMS Version 13
3
Potential IMS Flood Conditions
Floods could be triggered by one of the following: – When an IMS Connect or MQSeries client application issues a large number of
transaction requests to IMS in a short period of time
– An IMS restart or /STOP/START OTMA that causes OTMA communications to be interrupted followed by a flood of queued OTMA requests
– IMS Connect client application was coded to keep CM1 sessions for extended period
– IMS Connect client application was coded to randomly create TPIPEs
– IMS internal problems, such as long wait for a common resource, long wait for I/O to the log, or a wait for a latch
IMS Version 13
4
OTMA storage blocks for input messages
Datastore HWS1
IMS Connect
IMS
OTMA Tmember,
HWS1
Tpipe 9999
TIB
QAB
TIB TIBTIBTIBTIB
Datastore HWS2
IMS Connect OTMA Tmember,
HWS2
Tpipe Client ID
TIB
QAB
IMS Version 13
5
V13 OTMA Global Message Flood Control Enhancement
IMS Version 13
6
OTMA Global Flood Control Enhancement...
Background– OTMA message flood detection and control support from previous releases
• Individual OTMA TMEMBER support – Monitors growth of active INPUT messages per member (default of 5000)
• At 100% of threshold, new input messages from that member are rejected• Warning at 80% of flood value and in 5% increments until relieved
• Global Flood Control /STA TMEMBER ALL INPUT #### (default 8000)
– Monitors the total number of active input messages for all OTMA members– DFS4388W to the IMS MTO and system console along with OTMA protocol
messages with a warning status to all of the OTMA clients• At 100% of the global flood value
IMS Version 13
7
OTMA Global Flood Control Enhancement ...
/STA TMEMBER ALL INPUT ####– Command enhancement for global message flood control
• IMS version 10 introduced the INPUT value– Overrides the default of 5000 messages for an OTMA member instance
– The IMS 13 ALL parameter provides a global value for all members • Default was changed from 8000 to 10000• When the global value is reached
– WTO and MTO messages are issued – Action message is sent to all OTMA members– All of the new OTMA input transactions are rejected with NAK X’30’ reason X’02’
/DISPLAY OTMA enhancement– New global message flood warning level display under the INPT column of
the OTMA Server name
– New “SERVER+FLOOD” status under the user-status column
IMS Version 13
8
OTMA Global Flood Control Enhancement ...
A special new client descriptor (optional)– Using existing ‘M’ descriptor type in DFSYDTx member of IMS.PROCLIB.
M client-name keywordsWhere: client-name is DFSOTMA keywords are: INPT= 0-99999 MAXTP= 0-99999
M DFSOTMA INPT=22222
– New system client name for all the OTMA members, DFSOTMA, is introduced to set the global flood limit via INPT parameter.
For example:
IMS Version 13
9
OTMA Global Flood Control Enhancement...
Global flood control enhancements ... – What happens when the global flood control is activated
• Warning at 80% of limit – DFS3428W• At 100% of limit: OTMA rejects all new input from any OTMA member
– Sense code x’0030’, reason code x’0002’– Sends protocol message with command type set to X’3C’
• With “unavailable for work” status instead of previous “warning” status – New DFS3429E error message is sent to the system console and MTO– /DISPLAY OTMA shows “SERVER+FLOOD” in user status
– Global flood relief occurs when unprocessed input drops to 50% of limit– Enhanced message DFS0793I is sent to IMS MTO and system console– OTMA member clients receive protocol messages reflecting a good status
Member flood control limit sets to 64000• OTMA rejects all new input from any OTMA member
– Sense code x’0030’, reason code x’0001’
IMS Version 13
10
Order of Precedence for setting member flood control
IMS Connect client-bid from MAXI= parameter of DATASTORE statement, if its value is less than any of the following IMS value
/START TMEMBER member-name INPUT xxxx
INPT value of OTMA Member descriptor
Default is 5000 for a member
IMS Version 13
11
Flood Control Enhancement for IMS TPIPEs
IMS Version 13
12
TPIPEs (Transaction Pipes)
OTMA equivalent of LTERMs
Input (IOPCB) TPIPE names are specified by the client– For IMS Connect for CM1 messages, it is the TCP/IP Port which received the
input message
– For IMS Connect for CM0 messages, it is the ICON Client Name (client id)
– For MQSeries there are 2 TPIPEs per IMS Bridge Queue• One for “asynchronous” messages (CM0)• One for “synchronous” messages (CM1)• The name is a 3-character user supplied prefix and a 5-digit number
IMS Version 13
13
TPIPEs (Transaction Pipes)...
Asynchronous output TPIPE names can be– The destination in the CHNG call for modifiable ALTPCB’s
– Overridden TPIPE name from the DFSYPRX0 exit
– Overridden TPIPE name from the DFSYDRU0 exit
– TPIPE name of rerouted output for Send-Only transaction and rejected I/O PCB output
– TPIPE name specified in OTMA destination descriptor for ALTPCB output and ICAL output
IMS Version 13
14
OTMA TPIPE Storage Allocation
TPIPE is dynamically built when referenced– Each TPIPE has storage associated with it
• 1 TPIPE control block – Extended Private (~512 bytes) • 1 input AWE server ITASK – Extended Private (~4,728 bytes)• 1 queue output ITASK - Extended Private (~4,728 bytes)• 1 Queue Anchor Blocks (QAB) – Extended Private (~3,072 bytes)
– When an CM1 input message is received, additional input ITASK and transaction instance block (TIB) will be allocated
• 1 Transaction Instance Block (TIB) – Extended Private (~1,696 bytes)• To process the input message, storage for the message and its prefix will be
allocated. – When an CM0 output message is queued to the hold queue of the TPIPE, additional
output ITASK and QAB for hold queue will be allocated
IMS Version 13
15
OTMA TPIPE Storage Release
TPIPE storage is cleaned up when inactive – TPIPE storage for “idle” TPIPEs is freed if the TPIPE has been “idle” for three
consecutive checkpoints
– A TPIPE is “idle” if:• Not a SYNChronized TPIPE• No uncompleted CM1 messages• No queued CM0 output messages• Not STOPped• Not being traced• Not processing CM0 messages in a shared queues environment• Not in Resume TPIPE Auto or Single Wait mode waiting for a message
IMS Version 13
16
Tips to avoid IMS system outage Examine IMS Connect client applications for ways of submitting CM0
input message
IMSConnect
IMS SoapGateway
TCP/IPRoll-Your-Own
Appl
WebSphere TMRA
IMS ConnectAPI
DataPower
CM1
CM1/0
CM1/0
CM1/0
CM1
IMS Version 13
17
Tips to avoid IMS system outage...
One scenario that frequently results in a large number of TPIPES is when IMS Connect is processing request messages with the Commit-Then-Send (CM0) protocol. Each end-point client is typically represented by a TPIPE, so if there are thousands of clients, there can be thousands of TPIPEs.
Depending on the WAS J2EE application implementation, you can reduce the number of TPIPEs by specifying an Alternate Client ID or by using connection pooling to manage your IMS Connect connections (such as IMS TM Resource Adapter does with the WebSphere® Application Server connection factory).
IMS Version 13
18
Tips to avoid IMS system outage... Specify MAXTP parameter on Member descriptor in DFSYDTx
PROCLIB member
M client-name optional-keywords
The optional keywords can be any of the following: MAXTP= Maximum number of OTMA TPIPE blocks created for OTMA
messages
A one- to five-digit decimal integer between 0 and 99999. It indicates the maximum number of TPIPEs for an OTMA member or for DFSOTMA in an IMS system. If a value of 0 is specified, which is the default, OTMA stops the monitoring of the creation of the TPIPE. If the value is between 1 and 0200, it is treated as 0200. Any number over 99999 will be rejected.
IMS Version 13
19
Tips to avoid IMS system outage...
MAXTPRL= Relief level, which is specified as a percentage of the value of MAXTP
Specifies the relief level for the MAXTP threshold. The value can be between 50 and 70. For value specified below 50, it will be set to 50. For value over 70, it will beset to 70. The default relief level is 50, which mean 50% of the TPIPE MAXTP threshold. When this is specified for DFSOTMA, it sets the relief level for the global MAXTP and sets the default for member without MAXTPRL.
IMS Version 13
20
Tips to avoid IMS system outage...
Member TPIPE monitoring– 80% Warning – DFS4382W and x’3C’ warning protocol message
– 100% Error – DFS4383W and x’3C’ warning protocol message• Reject new TPIPE requests NAK x’29’• Still process requests for existing TPIPEs
– 50%-70% Relieved – DFS3484I and x’3C’ available protocol message• 50% is the default if MAXTPRL is not specified
IMS Version 13
21
Tips to avoid IMS system outage...
Global TPIPE monitoring (if MAXTP for DFSOTMA is NOT specified)– Highest of TMEMBER MAXTP used for global limit
– 100% Error – DFS4385W and x’3C’ warning protocol message • Still create TPIPEs if Member not max
– 80% Relieved – DFS4386I and x’3C’ available protocol message
Global TPIPE monitoring (if MAXTP for DFSOTMA is specified)– MAXTP value of DFSOTMA is used for global limit
– 80% Warning – DFS4515W and x’3C’ warning protocol message
– 100% Error – DFS4516E and x’3C’ warning protocol message• Still accept requests for existing TPIPEs
– 50%-70% Relieved – DFS4517I and x’3C’ available protocol message
IMS Version 13
22
Tips to avoid IMS system outage...
When you set the MAXTP limit that is set for a particular member, consider the type of clients making requests for that member and their requirement for TPIPEs.
When OTMA reaches the warning threshold, it will send a protocol message to the member, such as IMS Connect. At that point,
– the member can re-route requests that might require additional TPIPES to another IMS system to prevent them from being rejected.
– Issue /CHE commands 3 times to clear up inactive TPIPEs
IMS Version 13
23
Descriptor Example 1:
//DFSYDT JOB ('A=W005'),BATCH,CLASS=K,MSGLEVEL=(1,1) /*ROUTE PRINT THISCPU/TIMPER /* //STEP1 EXEC PGM=IEBUPDTE,PARM=NEW //SYSUT1 DD UNIT=SYSDA,DISP=SHR,VOL=SER=USER01, // DSN=USER.PRIVATE.PROCLIB //SYSUT2 DD UNIT=SYSDA,DISP=SHR,VOL=SER=USER01, // DSN=USER.PRIVATE.PROCLIB //SYSPRINT DD SYSOUT=A //SYSIN DD DATA,DLM=ZZ ./ ADD NAME=DFSYDTC,LIST=ALL * M CLIENT1 MAXTP=1000 M CLIENT2 MAXTP=2000 MAXTPRL=60 M CLIENT3 MAXTP=0 M CLIENT4 MAXTP=5000 MAXTPBE=NO ZZ /* //
IMS Version 13
24
Descriptor Example 2:
//DFSYDT JOB ('A=W005'),BATCH,CLASS=K,MSGLEVEL=(1,1) /*ROUTE PRINT THISCPU/TIMPER /* //STEP1 EXEC PGM=IEBUPDTE,PARM=NEW //SYSUT1 DD UNIT=SYSDA,DISP=SHR,VOL=SER=USER01, // DSN=USER.PRIVATE.PROCLIB //SYSUT2 DD UNIT=SYSDA,DISP=SHR,VOL=SER=USER01, // DSN=USER.PRIVATE.PROCLIB //SYSPRINT DD SYSOUT=A //SYSIN DD DATA,DLM=ZZ ./ ADD NAME=DFSYDTC,LIST=ALL * M CLIENT1 MAXTP=1000 M CLIENT2 MAXTP=2000 MAXTPRL=60 M CLIENT3 MAXTP=0 M CLIENT4 MAXTP=5000 MAXTPBE=NO M TESTCL1 MAXTP=8000 ZZ /* //
IMS Version 13
25
Descriptor Example 3:
//DFSYDT JOB ('A=W005'),BATCH,CLASS=K,MSGLEVEL=(1,1) /*ROUTE PRINT THISCPU/TIMPER /* //STEP1 EXEC PGM=IEBUPDTE,PARM=NEW //SYSUT1 DD UNIT=SYSDA,DISP=SHR,VOL=SER=USER01, // DSN=USER.PRIVATE.PROCLIB //SYSUT2 DD UNIT=SYSDA,DISP=SHR,VOL=SER=USER01, // DSN=USER.PRIVATE.PROCLIB //SYSPRINT DD SYSOUT=A //SYSIN DD DATA,DLM=ZZ ./ ADD NAME=DFSYDTC,LIST=ALL * M CLIENT1 MAXTP=1000 INPT=1000 M CLIENT2 MAXTP=2000 MAXTPRL=60 INPT=2000 M CLIENT3 MAXTP=0 INPT=0 M CLIENT4 MAXTP=5000 MAXTPBE=NO M DFSOTMA MAXTP=10000 INPT=12000 MAXTPRL=70ZZ /* //
IMS Version 13
26
/DISPLAY OTMA Command - Example/DIS OTMA DFS000I GROUP/MEMBER XCF-STATUS USER-STATUS SECURITY TIB INPT SMEMDFS000I DRUEXIT T/O TPCNT ACEEAGE MAXTP DFS000I XCFGRP1 DFS000I -IMS1 ACTIVE SERVER NONE 0 10000DFS000I -IMS1 N/A 0 10 2000 DFS000I -HWS1 ACTIVE ACCEPT TRAFFIC NONE 0 4000DFS000I -HWS1 HWSYDRU0 5 9 999999 2000 DFS000I -VC7 ACTIVE ACCEPT TRAFFIC NONE 0 5000 DFS000I -VC7 DFSYDRU0 120 1 999999 1000
/DIS OTMA
DFS000I GROUP/MEMBER XCF-STATUS USER-STATUS SECURITY TIB INPT SMEM
DFS000I DRUEXIT T/O TPCNT ACEEAGE MAXTP DFS000I XCFGRP1
DFS000I -IMS1 ACTIVE MAX TPIPE NONE 0 10000
DFS000I -IMS1 N/A 0 4000 4000
DFS000I -HWS1 ACTIVE ACCEPT TRAFFIC NONE 0 4000
DFS000I -HWS1 HWSYDRU0 5 2500 999999 3000
DFS000I -VC7 ACTIVE ACCEPT TRAFFIC NONE 0 5000
DFS000I -VC7 DFSYDRU0 120 1500 999999 2000