ims otma flood control

26
© 2015 IBM Corporation ® IMS Version 13 IMS OTMA Flood Control [email protected]

Upload: ibm-ims

Post on 15-Apr-2017

144 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: IMS OTMA Flood Control

© 2015 IBM Corporation

®

IMS Version 13

IMS OTMA Flood Control

[email protected]

Page 2: 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

Page 3: IMS OTMA Flood Control

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

Page 4: IMS OTMA Flood Control

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

Page 5: IMS OTMA Flood Control

IMS Version 13

5

V13 OTMA Global Message Flood Control Enhancement

Page 6: IMS OTMA Flood Control

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

Page 7: IMS OTMA Flood Control

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

Page 8: IMS OTMA Flood Control

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:

Page 9: IMS OTMA Flood Control

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’

Page 10: IMS OTMA Flood Control

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

Page 11: IMS OTMA Flood Control

IMS Version 13

11

Flood Control Enhancement for IMS TPIPEs

Page 12: IMS OTMA Flood Control

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

Page 13: IMS OTMA Flood Control

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

Page 14: IMS OTMA Flood Control

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

Page 15: IMS OTMA Flood Control

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

Page 16: IMS OTMA Flood Control

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

Page 17: IMS OTMA Flood Control

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).

Page 18: IMS OTMA Flood Control

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.

Page 19: IMS OTMA Flood Control

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.

Page 20: IMS OTMA Flood Control

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

Page 21: IMS OTMA Flood Control

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

Page 22: IMS OTMA Flood Control

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

Page 23: IMS OTMA Flood Control

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 /* //

Page 24: IMS OTMA Flood Control

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 /* //

Page 25: IMS OTMA Flood Control

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 /* //

Page 26: IMS OTMA Flood Control

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