64
© 2012 IBM Corporation ® IMS What is New in IMS Callout Jack Yuan [email protected]

What's new in ims callout

  • Upload
    ibm-ims

  • View
    787

  • Download
    7

Embed Size (px)

Citation preview

Page 1: What's new in ims callout

© 2012 IBM Corporation

®

IMS

What is New in IMS Callout

Jack [email protected]

Page 2: What's new in ims callout

IMS

2

When IMS was created in 1968…..

Page 3: What's new in ims callout

IMS

3

Today, IMS is everywhere...

Page 4: What's new in ims callout

IMS

4

Customers running IMS have a variety of computer hardware and network configuration installed, typically employing IMS as a repository for information. Customers are regarding IMS as one of their Enterprise resource planning (ERP) application platforms which must integrate internal and external management information across the entire organization, embracing finance/accounting, manufacturing, sales and service, customer relationship management, etc. In some scenarios, IMS acts as the client and needs to make callout requests to obtain information from the external ap plications or systems.

IMS for future….

Page 5: What's new in ims callout

IMS

5

Agenda

� Seven IMS callout techniques

� Using DL/I ICAL call for SendReceive for callout

� Using DL/I ICAL call for Receive

� Using DLI ICAL call for synchronous program switch

Page 6: What's new in ims callout

© 2012 IBM Corporation

®

IMS

Overview of 7 IMS callout techniques

Page 7: What's new in ims callout

IMS

7

Page 8: What's new in ims callout

IMS

8

Page 9: What's new in ims callout

IMS

9

Page 10: What's new in ims callout

IMS

10

Page 11: What's new in ims callout

IMS

11

Page 12: What's new in ims callout

IMS

12

Page 13: What's new in ims callout

IMS

13

Page 14: What's new in ims callout

© 2012 IBM Corporation

®

IMS

DL/I ICAL call for SendRecv

Page 15: What's new in ims callout

IMS

15

DL/I ICAL support provided synchronous callout capabil ity to resources outside IMS

IMS SOAP GATEWAY

z/OSIMS

Database

DBServices

OT

MA

TM/CTLServices

IMS

Connect

TCP/IP

user-written Client

WebSphere

IMS TM resource adapterApplication Program

ICAL

MPP/JMP/IFP/BMP/JBP

OTMADescriptor

OTMADescriptor

Page 16: What's new in ims callout

IMS

16

IMS Synchronous Callout Overview

� New DLI ICAL call for synchronous callout request

� Support messages larger than 32K without segmentation– No need to build data in LLZZ format

� Leverage the OTMA destination descriptor function to point to the IMS Connect for the callout message

� Does not go through IMS Message Queue, and the synchronous callout message/response are not recovered.

� Timeout support to optionally terminate callout request and free the dependent region

� Provide management of the correlation of a synchronous callout request and response

� Enhanced IMS commands to view synchronous callout status and stop the callout processing

� Enhanced OTMA Resume TPIPE/Send Only protocol function for retrieving synchronous callout requests and sending responses

Page 17: What's new in ims callout

IMS

17

V10 Synchronous Callout with Multiple IMS Applicati ons

OTMADescriptor 1

IMS Application 2

Send flow

Receive flow

IMS

IMS Application 3

IMS Application 1

OTMADescriptor 2

OTMADescriptor 3

WebSphere Application Server

IMSSOAP

Gateway

IMS ConnectRoll-your-own

Application

EJB / MDB

Web ServiceProvider

IMS TM Resource Adapter

IMS Connect

Page 18: What's new in ims callout

IMS

18

Synchronous Callout response can be back from a dif ferent IMS Connect or IMS Connect DataStore

IMS Connect #1

IMS

OTMADescriptor

IMS ApplicationDLI ICAL call w/ Send-Receive

Send flow

Receive flow

TCP/IPClient

Application

IMS Connect #2

TPIPE1

TPIPE1

Page 19: What's new in ims callout

IMS

19

Restrictions

� No distributed 2PC support

� IMS userid and password would not be propagated by IMS to external server

� Shared queues environment is supported only if FE=BE

Page 20: What's new in ims callout

IMS

20

IMS application - DL/I ICAL

CALL 'AIBTDLI' USING ICAL, AIB, REQ-AREA, RESP-AREA .

where:• ICAL is new call verb (available on AIBTDLI only) and SENDRECV is the new sub-function code• REQ-AREA is the Request data area for sync callout• RESP-AREA is the Response data area for returned data

Note: REQ-AREA and RESP-AREA do not specify LLZZ, data can be > 32K

For example:

ICAL

IOAreas

Page 21: What's new in ims callout

IMS

21

IMS application - DL/I ICAL …

� AIB– AIBSFUNC = SENDRECV– AIBRSNM1 = 8 byte OTMA Descriptor name– AIBRSFLD = Timeout value

• 4 byte field for time value 100th seconds. System default is 10 sec.

– AIBOALEN = Request area length• As an input parameter: 4 byte field contains the length of the request area• As an output parameter: Actual length of the response message updated by IMS only

when partial data is returned (AIB return code x'100', AIB reason code x'00C‘).

– AIBOAUSE = Response area length• As an input parameter: 4 byte field contains the length of the response area• As an output parameter: Length of the response message placed in the response area.

When partial data is returned because the response area is not large enough, AIBOAUSE contains the length of data returned in the response area and AIBOALEN contains the actual length of the response message.

Page 22: What's new in ims callout

IMS

22

IMS application - DL/I ICAL…

Descriptor name

Timeout

Request Area LengthResponse Area Length

Output return codes

AIB

For example:

Page 23: What's new in ims callout

IMS

23

OTMA Destination Routing Descriptor

D destname keywordsWhere:

destname is destination names and can be masked by ending in an *keywords are: TYPE=IMSCON

TMEMBER=nameTPIPE-nameSMEM=YES|NOADAPTER=adapnameCONVERTR=convnameSYNTIMER=timeout (If both ICAL & Descriptor specify timeout, the lower value is used)

D OTMDEST1 TYPE=IMSCON TMEMBER=HWS1 TPIPE=TPIPE1 SYNTIMER=500

� IMS 10 OTMA Destination Routing Descriptors externalize the routing definitions and specifications for callout messages without IMS user exits. It is read and initialized at IMS startup.

– Use ‘D’ descriptor type in DFSYDTx member of IMS.PROCLIB.

� IMS 11 provides Type-2 commands to dynamically create, update, or query the descriptors

UPDATE OTMADESC NAME(OTMDEST1) SET(SYNTIMER(600))

For example:

For example:

D SOAPGW1 TYPE=IMSCON TMEMBER=HWS1 TPIPE=HWS2SOAPD SOAPGW1 ADAPTER=XMLADPTR CONVERTR=XMLCNVTR SYNTIMER=200

Page 24: What's new in ims callout

IMS

24

DFSDDLT0

� DFSDDLT0 supports ICAL

� Output shows response, AIBOALEN (actual), AIBOAUSE (returned), AIBRETRN, AIBREASN, AIBERRXT

S1111 1 1 1 1IOPCB AIB L ICAL SENDRECV OTMDEST1 005000 00028 00030 L DATA HELLO FROM IMS

CALL=ICAL

SEGMENT =(HELLO FROM RYO)

COMP RET CODE=OK IOPCB LTERM= RET CODE= RACFUSER=AUTPSB1 .

0001 0001AIB BLOCK AIBOALEN = 000E, AIBOAUSE = 000E,

0000 0000 0000RETURN CODE = 0000, REASON CODE = 0000, ERROR EXTSN = 0000

If a timeout occurred, a return code 256 and reason code 260 would be returned.

Page 25: What's new in ims callout

IMS

25

IMS application can callout to external application

� IMS application can callout to one of the following:

– User-written (RYO) IMS Connect application

– Java EE apps (MDB or EJB) running in WebSphere Application Server (WAS) using IMS TM Resource Adapter (IMS TM RA)

– Web services providers using IMS SOAP Gateway

Page 26: What's new in ims callout

IMS

26

RYO Application

ACK

Response

1

3

4

IMS Connect

z/OS

IMS

IMS Application

2

Callout with RYO – Flow diagram

Initiating Client

Resume TPIPE TPIPE1

ICAL SENDRECV OTMDEST1JACK’S CREDIT CARD #

Request

TPIPE TPIPE1

1111-2223-3333

1111-2222-3333

OTMDEST1TPIPE1HWS1

HWS1

OTMA Descriptor

Page 27: What's new in ims callout

IMS

27

WebSphere Application Server IMS Connect z/OSIMS

IMS Application

2 ICAL SENDRECV ICODEST1HELLO FROM IMS

HELLO FROM WEBSPHERE MDB

TPIPE ICOPIPE1

Message Driven Bean (MDB)

Response

1

3

Activate

HELLO FROM IMS

onMessage

HELLO FROM WEBSPHERE MDB

IMS

TM

Resource A

dapter

Callout with IMS TM RA – Flow Diagram (MDB)

Initiating Client

ICODEST1ICOTPIPE1HWS1

OTMA Descriptor

HWS1

Web Service or EJB

Page 28: What's new in ims callout

IMS

28

IMSTMRA

z/OS

IMS

TM/CTLServices

IMS

Connect

HWS1

Java

Application

Application Program

ICAL

DEST1

Resume TPIPE TPS

OT

MA

TPS DEST1TPSHWS1

ACK

Send_ONLY

SYNC_RECEIVE_CALLOUT TPS

SYNC_SEND

WebSphere Application Server

CORTKN Data

CORTKN Data Request

Response

CORTKN Data

CORTKN Data

Callout with IMS TM RA – Flow Diagram (EJB)

Page 29: What's new in ims callout

IMS

29

Web Service

IMS SOAP Gateway

Response

1

4

IMS Connect

z/OS

IMS

IMS Application

2

Server start

ICAL SENDRECV OTMDEST1HELLO FROM IMS

HELLO FROM IMS

Request

HELLO FROM WEB SERVICE

HELLO FROM WEB SERVICE

TPIPE SGPIPE02

HELLO FROM IMS

HELLO FROM WEB SERVICE

3

Callout with IMS SOAP Gateway – Flow Diagram

Initiating Client

OTMDEST1SGPIPE02HWS1HWSXMLA0HELLOD

OTMA Descriptor

HWS1

XMLAdapter

XMLConverter

Correlator

Page 30: What's new in ims callout

IMS

30

Enhanced IMS commands� /DISPLAY ACTIVE REGION

– New status for region waiting on synchronous callout response

• WAIT-CALLOUT– Continuation line for region waiting on

synchronous callout response• TMEMBER name TPIPE: tpipename

� /DIS TMEMBER TPIPE – WAIT-S

• The transaction pipe is waiting for an ACK or NAK for a synchronous callout message

� /PSTOP – Clear the wait in the region– Dequeues synchronous callout messages from the

TPIPE

� /STOP REG ABDUMP– Clear the wait in the region and terminate the

application program

� /STOP TMEMBER TPIPE– Clear state of all messages for the TPIPE except

WAIT for response

� /STOP OTMA– Clear all the ICAL messages for all the TPIPEs. – New ICAL synchronous callout requests rejected

Note: The stop commands return AIBRETRN = 100 and AIBREASN = 10C to ICAL

Page 31: What's new in ims callout

IMS

31

/DISPLAY TMEMBER TPIPE SYNC

� Since every “Resume Tpipe on Hold Queue” request is remembered and tracked by OTMA, OTMA will queue the unprocessed requests.

� Issuing the /DISPLAY TMEMBER TPIPE SYNC command can show the number of queued “Resume Tpipe on Hold Queue” requests and the active Resume Tpipe status.

/DIS TMEM HWS1 TPIPE ALL SYNC

DFS000I MBR/TPIP ENQCT DEQCT QCT INPCT OPT MODE SYNCOT NO-RSP RTQ STATUS SMEM

DFS000I -CLIENT01 1 0 1 0 N A 0 0 2 WAIT_H

In this example, the current active resume tpipe request has the No-AUTO option, async mode. And this tpipe is currently waiting for ACK or NAK.

There are 2 queued Resume Tpipes requests on the queue to be processed later.

/STOP OTMA or bringing down the OTMA client – HWS1, IMS will clear the active resume tpipe request and all the queued resume tpipe

requests.

Page 32: What's new in ims callout

IMS

32

Diagnostics for Synchronous Callout� Incorrect OTMA descriptor name specified in the ICAL AIB

� IMS Connect and IMS not connected. Issue /DIS TMEMBER x TPIPE y SYNC

� The following diagnostics information is logged in the IMS log records:– Synch Callout requests and responses responses

• Logged with OTMA 6701 ID=YOUT (for request) and ID=YRSP (for response)• Matched by Sync Callout CORTKN, also includes LCRE token• Note: no 01 or 03 log records since ICAL does not use IMS message queues

– ICAL timeout• Logged with 67D0 (includes LCRE token)

– Sync Callout late reply• Logged with 6701 ID=YNAK

– Resume TPIPE • Logged with 6701

– Client ACK / NAK response to Sync Callout request• Logged with OTMA 6701 ID=YACK/YNAK (includes CORTKN)

– IMS Connect generated NAK (when external app or server went away or timed out)• Logged with OTMA 6701 ID=YNAK (includes LCRE token)

Page 33: What's new in ims callout

IMS

33

A 6701 log record for a callout message, and a 67D0 log record for time-out

Page 34: What's new in ims callout

© 2012 IBM Corporation

®

IMS

DL/I ICAL for Receive in IMS V13

Page 35: What's new in ims callout

IMS

35

Support for Truncated Messages

� New “RECEIVE” subfunction code– With an expanded response area

• Retrieves the response message after an ICAL “SENDRECV” is issued with an inadequate response area specification and gets partial data (AIB RC X’100’, AIB RS X’00C’)

– IMS 13 keeps a copy of the entire response message in the control region private storage

• Until a subsequent ICAL “SENDRECV”, syncpoint, or application termination

� Addresses– Partial response message due to inadequate application specification

� Benefit– Provides the ability to complete the retrieval of a reply message

• Without having to re-issue a complete ICAL “SENDRECV” and associated network transmission costs

Page 36: What's new in ims callout

IMS

36

ICAL subfunction RECEIVE

� Format:

• >>-ICAL--aib--response area-----------------------------------------><

� AIB – AIBSFUNC value “RECEIVE”

– AIBOAUSE is used as an input and output parameter based on AIBSFUNC• For the “RECEIVE” call

– Contains the length of the response area

– AIBOALEN = request area length• Used as an output parameter for “RECEIVE”

– When complete response is returned in response area, this field is 0 – If partial data is returned (AIB RC X'100', RS X'00C'), this field contains the actual

length of the response message

Page 37: What's new in ims callout

IMS

37

ICAL sub-function RECEIVE …

� Usage example:� ICAL --aib—request area , response area

� AIBSFUNC (SENDRECV) � AIBOAUSE – Response area length

� CALL is issued � AIBRETRN=x’100’, AIBREASN=’00C’× Specified length of the output response area is too small× AIBOAUSE= length of the data that was returned in the response area× AIBOALEN = the actual length of the entire response message

� Using the value in the previous AIBOALEN and leveraging the new support which keeps the message in IMS CTL region private, retrieve the entire response:

� ICAL --aib— response area� Where response area has been expanded to contain the entire message� AIBSFUNC (RECEIVE) � AIBOAUSE – new response area length

� CALL is issued successfully� AIBOAUSE – length of the response in the response area� AIBOALEN – set to 0 because the call successfully returned the entire response

Page 38: What's new in ims callout

IMS

38

ICAL sub-function RECEIVE …

� ICAL “RECEIVE” is only valid if previous ICAL “SENDRECV” failed

� Response data is available for retrieval until:

– A new ICAL call with sub-function code SENDRECV is issued

– When the IMS application reaches a syncpoint

• Checkpoint for an BMP application

– Abnormal termination

Page 39: What's new in ims callout

© 2012 IBM Corporation

®

IMS

Synchronous program switch in IMS V13

Page 40: What's new in ims callout

IMS

40

Synchronous Program Switch

� New capability that enhances the DL/I ICAL support

– Allows an IMS application program to synchronously call and wait for a reply from another IMS application program

• Within the calling program’s UOW

Database

IMS DB services

IMS dependent region

IMS TM services

MPP, JMPIFP, BMP,

JBP

OTMA

Application Program

ICALIMS SOAP GATEWAY

IMS

Connect

TCP/IP

user-written Client

WebSphere

IMS TM resource adapter

Page 41: What's new in ims callout

IMS

41

Synchronous Program Switch…

� Benefits

– Modernization of the IMS application infrastructure

• Provides an internal service flow of IMS transactions to complete a business process– In the same IMS or a different IMS

– Implementation of a Process Server or Broker inside IMS

• Reduces unnecessary network traffic when accessing multiple applications in the same IMS or IMSplex

WASApplication

WASIMS

ConnectIMS

MPPx

MPP4

MPP2

MPP3

ICALICALICALICAL

WASApplication

WASIMS

Connect IMS

MPP4

MPP2MPP3

MPP1MPP1

Page 42: What's new in ims callout

IMS

42

Highlights

� Automatic invocation of OTMA

– Without requiring OTMA to be defined or commands to be issued

– New OTMA destination descriptor TYPE

• IMSTRAN

� Enhancements to the DL/I ICAL

– Allows an IMS transaction to be the target destination

• Accepts multi-segment requests/responses

– Provides additional AIB return and reason codes

� Support for Late Reply messages

– Can be purged or rerouted

� Security authorization

– Ensures userid of program issuing ICAL can access the target transaction

Page 43: What's new in ims callout

IMS

43

Restrictions

� No ICAL support for BMP or JBP applications running in DBCTL environments

– ICAL is part of the IMS TM capability

� IMS application program issuing ICAL for a synchronous program switch

– Can be a protected transaction

• But the target transaction of the ICAL is not part of the RRS commit scope

� The switched-to program (target of the ICAL)

– Has read-only access to the main storage data base (MSDB)

– Cannot be an IMS Conversational transaction

– Does not invoke IMS Message Format Service (MFS)

Page 44: What's new in ims callout

IMS

44

Restrictions …

� Exit routines

– DFSYIOE0 (OTMA Input/Output Edit Exit routine)

• Not called when processing synchronous program switch messages and responses – Increases the transparency of using OTMA

• Can be called for a late response being routed to an OTMA destination– To build or override the 1K OTMA user message data prefix in the response header

– DFSBSEX0 (Build Security Environment Exit routine)

• Not invoked for target transactions of the synchronous program switch

– DFSMSCE0 (TM and MSC Message Routing and Control User exit routine )

• Not invoked for the DL/I ICAL synchronous program switch

� Use of new ICAL capability in a Shared Queues environment

– Requires all IMS systems to be at IMS 13 and DBRC MINVERS of 13.1

Page 45: What's new in ims callout

IMS

45

Synchronous Program Switch – The Details

� An enhancement to the DL/I ICAL to invoke another IMS application

– In the same IMS

– In a different IMS

• In a Shared Queues back-end• Across an MSC link

– And synchronously receive the response back during the same unit of work

� Where IMS internally schedules the transaction initiated by the ICAL call as an OTMA transaction– Uses a new type of OTMA destination descriptor (TYPE=IMSTRAN) which has been

introduced specifically for synchronous program switch support

� And the target transaction can be

– An IFP, MPP, BMP, JMP, or JBP in the IMS TM or TM/DB environments

MPP1

MPP4

MPP3

ICAL

ICAL

ICAL

IMS1

MPP2

IMS X

IMS2

MSC

SharedMsg Queues

Page 46: What's new in ims callout

IMS

46

The DL/I ICAL callSame Format

>>-ICAL--aib--request_area--response_area----------------------><

Call Name DB/DC DBCTL DCCTL DB Batch TM Batch

ICAL X X

LLZZ+Trancode +Data

LLZZ+Data

LLZZ+Data

Request Data (example of multi-segment):

LLZZ+Data

LLZZ+Data

LLZZ+Data

Response Data in multi-segment:

Page 47: What's new in ims callout

IMS

47

The DL/I ICAL Call …

� Examples of common Return codes for synchronous program switch

– Full list in the IMS documentation

� If the ICAL “SENDRECV” receives a partial data status

– The new ICAL “RECEIVE” subfunction can retrieve the entire message

• Discussed in the OTMA Enhancements section

Target trans does not insert back to IOPCB006101100100

Trans is stopped003101100100

Input length invalid002001100100

DFSYICAL stopped000501100100

Security violation000401100100

Invalid trancode000001100100

/PSTOP cmd issued0000010C0100

ICAL timed out002001040100

Error message returned000001000100

Partial data returned0000000C0100

Brief DescriptionExtended Reason code

(Hex)

Reason Code

(Hex)

Return Code

(Hex)

Page 48: What's new in ims callout

IMS

48

The DL/I ICAL Call …

� Continues to use OTMA Destination Routing Descriptors – Which externalize the routing definitions and specifications for callout messages

and synchronous program switch messages– Allowing up to 510 destination routing descriptor entries defined in DFSYDTx

member of IMS.PROCLIB

– With new TYPE= IMSTRAN for synchronous program switches

D entry_name keywords Where entry_name is descriptor entry name and can be masked by ending in an *

keywords are: TYPE=IMSTRANLTERMOVR=name TMEMBER=nameTPIPE-nameSMEM=NO|YESEXIT= NO|YESREPLYCHK=YES|NOSYNCTP=NO|YES SYNTIMER=timeout value

For example: D OTMDEST1 TYPE=IMSTRAN SYNTIMER=500

D OTMDEST2 TYPE=IMSTRAN TMEMBER=SCOTTHWS1 TPIPE=BRYCE EXIT=YES

Page 49: What's new in ims callout

IMS

49

OTMA destination routing descriptor for DL/I ICAL � TYPE= IMSTRAN

– Required for synchronous program switch requests

Supported parameters for TYPE=IMSTRAN are as follows:

LTERMOVR = Specifies a value to override the LTERM name in the target IMS application program’s I/O PCB

TMEMBER= A 1- to 16-character OTMA TMEMBER name. Optional when TYPE=IMSTRAN. When specified, IMS queues the late response of a synchronous program switch to this OTMA TMEMBER (otherwise the late reply is purged) TPIPE= is required when TMEMBER= is specified.

TPIPE= A 1- to 8-character TPIPE name. Optional unless TMEMBER is specified for late replies.

SMEM= Specifies whether (YES) or not (NO) the TMEMBER is a supermember. Optional parameter.

EXIT= Specifies whether (YES) or not (NO) the IMS user exit (DFSCMUX0) can override the descriptor routing information for late messages when TYPE=IMSTRAN. Optional parameter.

REPLYCHK= Specifies whether (YES) or not (NO) IMS application replies to the IOPCB. If YES and the target application does not reply to the IOPCB nor message switches to another transaction, IMS returns a bad return code X’0100’, reason code X’0110’, and extended reason code X’0061’ instead of a timeout to the ICAL call.

SYNCTP = Specifies whether (YES) or (NO) a synchronous TPIPE is to be created with recoverable sequence numbers for input and output messages. Optional parameter. Primarily used with WebSphere MQ and can apply to late response messages

SYNTIMER= Specifies the ICAL timeout value for synchronous program switch. Optional parameter. If timeout value is also specified in the AIB interface, IMS compares the timeout values and selects the lower value.

– The other existing parameters OTMA destination descriptors are not applicable for TYPE=IMSTRAN

Page 50: What's new in ims callout

IMS

50

OTMA destination routing descriptor for DL/I ICAL …

� Type-2 commands can also be used to update, create, delete, or query the descriptor entries for synchronous program switch

– CREATE OTMADESC and UPDATE OTMADESC

• New optional sub-parameters for SET – SYNCTP, REPLYCHK, EXIT, and LTRMOVR

– QUERY OTMADESC

• Includes information for the optional new parameters – SYNCTP, REPLYCHK, EXIT, and LTRMOVR

For example: UPDATE OTMADESC NAME(OTMDEST1) SET(SYNTIMER(800))

QRY OTMADESC NAME(OTMDEST1) SHOW(ALL)

Page 51: What's new in ims callout

IMS

51

OTMA Support for Synchronous Program Switches

� Non-XCF related OTMA services are used

– Internal invocation of OTMA services to process the target transaction request

• Without specifying OTMA=Y in the DFSPBxxx member of IMS PROCLIB and without issuing /START OTMA command

– No need to start the XCF connection with any OTMA client for the synchronous program switch

– The target transaction is processed as an OTMA transaction

• If authorization is required, IMS checks to see if user can access target

• Using OTMA send-then-commit (CM1) protocol with SyncLevel=CONFIRM– Target transaction of the ICAL is processed as an OTMA transaction

• IMS creates an internal OTMA member DFSYICAL and internal tpipe DFSTPIPE to process the transaction– And generates internal ACK/NAK for the CONFIRM request

Page 52: What's new in ims callout

IMS

52

OTMA Support for Synchronous Program Switches …

Page 53: What's new in ims callout

IMS

53

IMS Commands

� /DIS ACTIVE REGION

– Displays the target transaction for the synchronous program switch

– Displays the calculated end time of the ICAL

• Based on the timeout value

Page 54: What's new in ims callout

IMS

54

IMS Commands …

� /PSTOP REGION rgn# SYNC tran name …

– Allows a program in a wait state to terminate

� /STOP TMEMBER DFSYICAL [ TPIPE DFSTPIPE ]

– Stops all of the synchronous program switches in this IMS

� /START TMEMBER DFSYICAL [ INPUT flood_limit ]

– Starts synchronous program switches after a /STOP command

• Optional use of the INPUT keyword provides a flood control value

� /DISPLAY OTMA

– Displays the big picture of OTMA members, even when OTMA is stopped

– New user status:

• SYNC P2P• SYNC P2P+FLOOD

� /DISPLAY TMEMBER DFSYICAL TPIPE DFSTPIPE SYNC

– Displays information about the tpipes created for the synchronous program switches

– Displays the total number of executed synchronous program switches,

Page 55: What's new in ims callout

IMS

55

Messages and Status Codes

� Messages

– DFS4687E ERROR PROCESSING SYNC PROGRAM SWITCH

• Provides information about a processing failure

– DFS1190I REGION nnnn NOT WAITING ON yyyyyyyy xxxxxxxx

• Indicates that a /PSTOP command might have been issued in error

� Application program status Codes

– A1

• CHNG call was issued using a descriptor with TYPE=IMSTRAN• OTMA ALTPCB output destination specified reserved name DFSYICAL

– AX

• An OTMA user exit (DFSYPRX0, DFSYDRU0, or client DRU exit) returned invalid routing information

Page 56: What's new in ims callout

IMS

56

Security Considerations

� Security for ICAL is similar to CHNG/ISRT DLI calls– Based on transaction security specifications (TRN)

• RACF and/or DFSCTRN0 are used for user authorization checking todetermine if the ICAL can invoke the target transaction – Unless OTMA security is set to NONE

� If the ICAL is authorized to do the synchronous program switch

– Target transaction is scheduled as an OTMA transaction with the default OTMA security level of FULL

• Security level can be changed by issuing the command: – /SECURE OTMA NONE, or – /SECURE OTMA TMEMBER DFSYICAL CHECK|NONE

Page 57: What's new in ims callout

IMS

57

Security Considerations …

� If the ICAL is authorized to do the synchronous program switch …

• Even when DFSYICAL does not yet exist in the system or when the target is in another IMS system

– You can issue /SECURE OTMA… to preset the security level

ICAL TRAN_A

TRAN_BThe transaction security specification of TRAN_A will be used to perform the security authorization for the ICAL.

The default OTMA security level of FULL is used to process TRAN_B in the region.

Optionally, issue /SECURE OTMA TMEMBER DFSYICAL CHECK|NONEahead of time

Page 58: What's new in ims callout

IMS

58

Shared Queues Support

� IMS leverages the APPC/OTMA XCF shared queues (SQ) function

– For both request and response messages

– Specifying AOS= and/or RRS= in the IMS PROCLIB members is not required

• ICAL automatically and always uses AOS=X (SL1 uses XCF)– Compatible with any existing AOS= and RRS= currently set for other transactions

Requires DBRC MINVERS of 13.1 for all members of the SQ group Otherwise ICAL will get a rejection

FE IMS

Shr Q

BE IMS

LTERM

LU62

OTMA

BMP

GU IOPCB

ICAL

ISRT IOPCB

GU IOPCB

….

ISRT IOPCB

AOS=X

CM1, SL1

RC RS Extended Reaso n Explanation

X’0100 X’0100’ X’0115’Request message is rejected. The synchronous program switch was executed inthe Shared Queues environment, but the IMS systems in the Shared Queues donot have the same MINVERS value of 13.1.

Page 59: What's new in ims callout

IMS

59

MSC Support

� IMS supports sending an ICAL request to an MSC back-end system

– MSC/VTAM

– MSC/TCPIP with IMS Connect (introduced in IMS 12)

LTERM

LU62

OTMA

BMP

GU IOPCB

ICAL

ISRT IOPCB

GU IOPCB

….

ISRT IOPCBMSC

Page 60: What's new in ims callout

IMS

60

Transaction expiration for the target transaction

� Transaction expiration for targets of synchronous program switches (new)

– Uses the timeout value of the synchronous program switch

• ICAL timeout value is carried in the OTMA header

– Invoked during application GU time

1

2ICAL times out!!

3

Transaction Expiration is detected during Application GU:- Input message is discarded- A 67D0 log record is written- No symptom dump - No DFS554 message issued.

ICAL TRAN_A TRAN_B

Application issuing ICAL receives a timeout with:- AIB return code X’00000100’- reason code X’00000104’- extended reason code X’00000020’

Page 61: What's new in ims callout

IMS

61

Application Examples

� Applications can issue multiple ICALs to different destination TYPEs

– Synchronous callout

– Synchronous program switch

ICAL DEST1

ICAL TRANB

TRANAIMS CTL Region

IMS Connect

WebSphereIMS TMRA

IMS SOAPGateway

TCP/IPRYO pgm

OTMA

MSG-Q

Destination Descriptor

TYPE(IMSCON)

TRANB

GU IOPCB

ISRT IOPCB

Destination Descriptor

TYPE(IMSTRAN)

1

23

4

56

7

GU, IOPCB

Page 62: What's new in ims callout

IMS

62

Application Examples…

� The IMS application environment supports recursive requests– ICAL to ICAL

• Across a single or multiple IMS systems

FE IMS BE IMS or Local IMS

LTERM

LU62

OTMA

BMP

TRANA

SQ

ICAL request

SQ,MSC,Local

(FE=BE)

ICAL to SKS2

ISRT IOPCB

APOL12

SKS2

GU, IOPCBICAL to SKS1

ISRT IOPCBSKS1

ISRT IOPCB

GU, IOPCB

ISRT, IOPCB

GU, IOPCB

GU, IOPCB1

3

4

5

6

78

2

Page 63: What's new in ims callout

IMS

63

Migration/Setup Considerations

� For Non-shared queues

– Synchronous program switch is a base function of IMS 13

� For Shared Queues

– DBRC minimum version (MINVERS) value of 13.1 is required to enable the synchronous program switch function

• Even if it is a single-system Shared Queues environment

� The MSC remote IMS does not need to be an IMS 13 system

� New OTMA trace table entries

– Documented in the IMS Diagnosis Guide under “OTMA Diagnostic Aids”

Page 64: What's new in ims callout

IMS

64