765dd3007993d81ca55d330f4e927d6f.ppt
- Количество слайдов: 81
IMS Callout to Services GSE BENELUX IMS User Group Meeting The (R)Evolution Continues June 2013 - Antwerp Belgium Steve Nathan - snathan@us. ibm. com © 2013 IBM Corporation
GSE BENELUX IMS User Group Meeting – June 2013 Disclaimer © Copyright IBM Corporation 2013. All rights reserved. U. S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY. WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION CONTAINED IN THIS PRESENTATION, IT IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. IN ADDITION, THIS INFORMATION IS BASED ON IBM’S CURRENT PRODUCT PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY IBM WITHOUT NOTICE. IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION. NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, NOR SHALL HAVE THE EFFECT OF, CREATING ANY WARRANTIES OR REPRESENTATIONS FROM IBM (OR ITS SUPPLIERS OR LICENSORS), OR ALTERING THE TERMS AND CONDITIONS OF ANY AGREEMENT OR LICENSE GOVERNING THE USE OF IBM PRODUCTS AND/OR SOFTWARE. IBM, the IBM logo, ibm. com, and IMS are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™), these symbols indicate U. S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at www. ibm. com/legal/copytrade. shtml IMS Callout to Services 2
GSE BENELUX IMS User Group Meeting – June 2013 Acknowledgement § This presentation was originally prepared by Ken Blackman – IBM Advanced Technical Solutions (ATS) – kblackm@us. ibm. com IMS Callout to Services 3
GSE BENELUX IMS User Group Meeting – June 2013 Agenda § Introduction § Asynchronous Callout – – – IMS ALTPCB Web. Sphere MQ Using ESAF APPC/IMS Web. Sphere Optimized Local Adapters for WAS z/OS Using ESAF Web. Sphere Optimized Local Adapters for WAS z/OS Using OTMA § Synchronous Callout – – – IMS ICAL DB 2 Stored Procedures DB 2 Attach Facility Web. Sphere MQ Using ESAF CPI-C/APPC RYO Using TCP/IP IMS Callout to Services 4
GSE BENELUX IMS User Group Meeting – June 2013 Introduction – Web Service § Definition – Standards based type of service – Software component (callable piece of code) that is capable of being access (described, published, and located) via standard network protocols such as SOAP over HTTP • Independent of platforms or programming language IMS Callout to Services Service UDDI Registry Broker publish find WSDL IMS bind, invoke Service Provider Service Requester Web Service SOAP Client Application The entire industry is agreeing on one set of standards !! 3 basic components: - Service Provider - Service Broker - Service Requestor 5
GSE BENELUX IMS User Group Meeting – June 2013 Introduction – Callout Techniques § IMS applications can code communication API calls – DL/I ISRT ALTPCB – DL/I ICAL – SQL calls to DB 2 stored procedures – Web. Sphere MQ calls – CPI-C/APPC calls – TCP/IP sockets calls IMS Callout to Services 6
GSE BENELUX IMS User Group Meeting – June 2013 Introduction – Asynchronous Model CLIENT MSG-Q IMS Application MSG-Q GU IOPCB SEND_DATA Message+Token UOW 1 CLIENT IMS/non-IMS READ_DATA Message+appl-token Message+Token PROCESS_DATA IMS Application MSG-Q GU IOPCB MSG-Q Reply+Token ISRT ALTPCB to CLIENT UOW 2 IMS Callout to Services SEND_DATA Reply+Token Message+appl-token TWO IMS Units of Work (UOW) 7
GSE BENELUX IMS User Group Meeting – June 2013 Introduction – Synchronous Model CLIENT MSG-Q IMS Application GU IOPCB IMS/non-IMS Message SEND_DATA Message READ_with_WAIT MSG-Q RECEIVE REPLY READ_DATA Message PROCESS_DATA Reply SEND_DATA Reply ISRT IOPCB to CLIENT UOW 1 IMS Callout to Services ONE IMS Unit of Work (UOW) 8
GSE BENELUX IMS User Group Meeting – June 2013 Introduction – Service Flow Concept CLIENT Program A Program n IMS Callout to Services 9
GSE BENELUX IMS User Group Meeting – June 2013 Introduction – Stored Procedure Concept CLIENT Stored Procedure Get Data 1 Get Data 2 IMS Callout to Services 10
GSE BENELUX IMS User Group Meeting – June 2013 Introduction – Callout Destinations § IMS TM Resource Adapter via IMS Connect Windows / AIX / Solaris / Linux and z/OS Web. Sphere z/OS 1 IMS z/OS 2 Web. Sphere Application Server IMS Resource Adapter Linux for System z Web. Sphere Application Server IMS Resource Adapter IMS Callout to Services XCF IMS Connect Application Server IMS Resource Adapter IMS Connect IMS TCP/IP XCF Local 11
GSE BENELUX IMS User Group Meeting – June 2013 Introduction – Callout Destinations § IMS SOAP Gateway via IMS Connect Web Service Clients, e. g. Microsoft. Net, SAP, Java, etc. . SOAP IMS z/os IMS SOAP Gateway IMS Connect XML OTMA XML Adapter IMS Callout to Services IMS App DB XML Web Service Clients, e. g. Microsoft. Net, SAP, Java, etc. . OTMA Windows, AIX, z. Linux SOAP IMS SOAP Gateway 12
GSE BENELUX IMS User Group Meeting – June 2013 Introduction – Callout Destinations § IMS SOAP Gateway via IMS Connect (Call In) SOAP <? xml version="1. 0"? > <soap: Envelope> <soap: Body> <INPUTMSG> <in_ll>32</in_ll><in_zz>0</in_zz> <in_trcd>IVTNO</in_trcd> <in_cmd>DISPLAY</in_cmd> <in_name 1>LAST 1</in_name 1> </INPUTMSG> </soap: Body> </soap: Envelope> Microsoft. NET Client XML <INPUTMSG> <in_ll>32</in_ll><in_zz>0</in_zz> <in_trcd>IVTNO</in_trcd> <in_cmd>DISPLAY</in_cmd> <in_name 1>LAST 1</in_name 1> </INPUTMSG> IMS 32 0 IVTNO IMS App TCP/IP IMS Web Service <cbl: OUTPUTMSG> <out_ll>93</out_ll><out_zz>0</out_zz> <out_msg>ENTRY WAS DISPLAYED</out_msg> <out_cmd>DISPLAY</out_cmd> <out_name 1>LAST 1</out_name 1> <out_name 2>FIRST 1</out_name 2> <out_extn>8 -1111</out_extn> <out_zip>D 01/R 01</out_zip> <out_segno>0001</out_segno> </cbl: OUTPUTMSG> IMS Callout to Services DISPLAY LAST 1 Adapter Task Manager IMS SOAP Gateway HTTP/SOAP <? xml version="1. 0"? > <soap: Envelope> <soap: Body> <cbl: OUTPUTMSG> <out_ll>93</out_ll><out_zz>0</out_zz> <out_msg>ENTRY WAS DISPLAYED</out_msg> <out_cmd>DISPLAY</out_cmd> <out_name 1>LAST 1</out_name 1> <out_name 2>FIRST 1</out_name 2> <out_extn>8 -1111</out_extn> <out_zip>D 01/R 01</out_zip> <out_segno>0001</out_segno> </cbl: OUTPUTMSG> </soap: Body> </soap: Envelope> Connect Byte array XML Adapter XML Converters 93 0 ENTRY WAS DISPLAYED DISPLAY LAST 1 FIRST 1 8 -11111 D 01/R 01 0001 13
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – IMS ALTPCB § IMS DL/I API call – CHNG, ISRT, PURG to ALTPCB § Provides for program-to-program communication – Workflow model § Destination can be – Another IMS transaction – An OTMA Client • IMS Connect – RYO including IMS Connect API – IMS TM Resource Adapter in a JEE environment – IMS SOAP Gateway • Web. Sphere MQ • OTMA C/I – APPC/IMS § Applications manage the response correlation § There is no coordinated commit IMS Callout to Services 14
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – IMS ALTPCB to IMS Application CLIENT MSG-Q IMS Application 1 GU IOPCB ISRT ALTPCB to IMS Application 2 MSG-Q Message+Token UOW 1 ISRT ALTPCB to IMS Application 3 GU IOPCB IMS Application 2 GU IOPCB Message+Token MSG-Q IMS Application Service MSG-Q Reply+Token ISRT ALTPCB to CLIENT UOW 3 IMS Callout to Services Reply+Token UOW 2 THREE IMS Units of Work (UOW) 15
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – IMS ALTPCB to OTMA § Destination and attributes can be determined by OTMA Exit – DFSYPRX 0 – OTMA Destination Resolution Exit – DRU – OTMA User Data Formatting Exit § Destination and attributes can be determined by OTMA Descriptors in DFSYDTx for IMS Connect § DFSYDTx member of IMS. PROCLIB – – – TYPE: Destination type (IMSCON) TMEMBER: OTMA Target Client TPIPE: Destination Name SMEM: Supermember name ADAPTER: Type of IMS Connect Adapter CONVERTR: Routine called by Adapter IMS Callout to Services 16
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – IMS ALTPCB to IMS Connect RYO Application CLIENT MSG-Q IMS Application 1 GU IOPCB IMS Connect MSG-Q ISRT ALTPCB to IMS Connect Client Connect Write Resume TPIPE Message+Token Read UOW 1 Message+Token IMS Application 2 MSG-Q GU IOPCB Reply+Token ISRT ALTPCB to CLIENT UOW 3 IMS Callout to Services Write MSG-Q ACK Send-Only Reply+Token UOW 2 TWO IMS Units of Work (UOW) + ICON Client UOW 17
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – IMS ALTPCB to IMS TM Resource Adapter Initiating Client IMS Web. Sphere Application Server 0. Start IMS App 1 1. Receive. Async(TP 1) Web Service “Single wait ” 6. MSG 1 5. send. ACK OR 7. send New Msg MDB IMS TM Resource Adapter WIN, AIX, SOLARIS, LINUX, etc. Commit then Send (CM 0) Sync-Level=CONFIRM Execution timeout IMS Callout to Services IMS Connect EJB RESUME TPIPE 1. Resume. TPIPE(TP 1) Single Wait Alt Client. ID= TP 1 4. receive MSG 1 3. Send MSG 1 2. ISRT ALTPCB (IC 4 JEJB) TP 1 MSG 2 IMS App 2 DFSYDTx (new definition) IC 4 JEJB TYPE = IMSCON TMEMBER=SM 01 TPIPE=TP 1 SMEM=Y 18
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – IMS ALTPCB to IMS SOAP Gateway DFSYDTx Win, AIX, , Linux, z/OS. IMS SOAP Gateway Server IMS Connect 1 RESUME TPIPE TP 3 “Single wait ” 4 RECEIVE In. XMLMsg 1 5 Web Service XML Adapter SEND Out. XMLMsg 7 SOAPIT XML Converter Msg 1 Msg 2 IMS Initiating Client 2 IMS App 1 TP 3 5. send. ACK 6 IMSSOAP 1 TYPE = IMSCON TMEMBER=SM 01 TPIPE=TP 3 SMEM=Y ADAPTER = HWSXMLA 0 CONVERTR=SOAPIT 3 : ISRT ALTPCB IMSSOAP 1 SYNCPT Starts. . IMS App 2 Connection Bundle(CBA) TPIPE = TP 1, TP 3 IMS Callout to Services 19
GSE BENELUX IMS User Group Meeting – June 2013 Rational Developer for System z (RDz) Language Structures (e. g. COBOL Copybooks) From IMS Callout app Meet-in-Middle Compiled Generation Wizard Rational Developer for System z (RDz) 7. 1. 1 Compiled Converters WSDL From web service Mapping Metadata IMS Callout Correlator IMS Callout to Services IMS Callout Compiled Converters generated from manually specified mappings between the request and response XML Schemas and existing or newly hand-coded language structures. In addition, a WSID and Web Service operation name will be added by the converter to the request message. The WSID is used to map to a particular IMS Callout correlator at runtime. IMS Callout runtime deployment metadata for mapping a particular web service as well as properties for invoking the web service. 20
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – IMS ALTPCP to Web. Sphere MQ IMS Bridge IMS Application 1 CLIENT MSG-Q GU IOPCB MSG-Q ISRT ALTPCB to MQ IMS Bridge XCF Read (YPRX 0 + MQDRU) (Descriptor – IMS 13) Message+Token MQPUT UOW 1 IMS Application 2 MSG-Q GU IOPCB Reply+Token ISRT ALTPCB to CLIENT UOW 5 IMS Callout to Services MQ Appl MQCONN Web. Sphere MQ Queue Manager MQ MSG-Q MQOPEN MQGET Message+Token MQPUT 1 MSG-Q MQGET XCF Write Reply+Token MQCOMMIT MQDISC UOW 2 & UOW 4 UOW 3 TWO IMS Units of Work (UOW) + 2 MQ QM UOWs + MQ Application UOW 21
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – IMS ALTPCB to OTMA C/I Application CLIENT MSG-Q IMS Application 1 GU IOPCB MSG-Q OTMA C/I Application otma_create ISRT ALTPCB to IMS Application 2 Message+Token otma_open Message+Token otma_receive_async UOW 1 Message+Token IMS Application 3 MSG-Q GU IOPCB otma_send_async MSG-Q Reply+Token ISRT ALTPCB to CLIENT UOW 3 IMS Callout to Services Reply+Token otma_close UOW 2 TWO IMS Units of Work (UOW) + OTMA C/I Application UOW 22
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – Web. Sphere MQ Using ESAF § EASF = External Subsystem Interface § Provides for program-to-program communication – Workflow model § IMS application issues MQ API § IMS provides syncpoint coordination within a transaction § Applications manage the response correlation § There is no coordinated commit IMS Callout to Services 23
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – Web. Sphere MQ Using ESAF CLIENT MSG-Q IMS MPP 1/BMP 1 Message+Token GU IOPCB MQCONN MQPUT 1 MQDISC MQ MSG-Q Message+Token MQPUT 1 Reply+Token IMS BMP 2 MQCONN MQOPEN MQGET w/WAIT ISRT ALTPCB IMS SYNC UOW 3 IMS Callout to Services MQOPEN MQGET UOW 1 MSG-Q MQ Appl MQCONN MQCOMMIT Reply+Token MQDISC UOW 2 TWO IMS Units of Work (UOW) + MQ Application UOW 24
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – APPC/IMS § IMS DL/I API call – CHNG, ISRT, PURG to ALTPCB § Provides for program-to-program communication – Workflow model § IMS provides syncpoint coordination within a transaction § Applications manage the response correlation § There is no coordinated commit § DFS 62 DTx member of IMS. PROCLIB – – – – LUNAME: Destination TPNAME: Application Program MODE: VTAM Mode Table SYNCLEVEL: Conversation State Change Protocol OUTBND: Local LU SIDE: Side Information Entry CONVTYPE: Basic or Mapped IMS Callout to Services 25
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – APPC/IMS CLIENT IMS Application 1 MSG-Q GU IOPCB ISRT ALTPCB (LU 6. 2 Descriptor) Message+Token UOW 1 IMS Application 2 MSG-Q GU IOPCB Reply+Token ISRT ALTPCB to CLIENT UOW 5 IMS Callout to Services APPC/IMS MSG-Q CMALLOC Alloc TP-B Type=NONE/ CONFIRM CMSEND CMDEALL MSG-Q CMRCV Send data to IMS/non-IMS LU 6. 2 TP-B Session Conv A CMRCV Process Data CMDEAL Session CMALLOC Conv B CMSEND CMDEAL UOW 2 & UOW 4 UOW 3 TWO IMS Units of Work (UOW) + 2 APPC/MVS UOWs + APPC Appl UOW 26
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – WOLA Using ESAF § WOLA = Web. Sphere Optimized Local Adapters for WAS z/OS – Direct IIOP communication between IMS and WAS on same z/OS – Requires WAS 7. 0. 0. 12 § Invokes EJB in WAS § IMS application issues WOLA API § IMS provides syncpoint coordination within a transaction § Applications manage the response correlation § There is no coordinated commit IMS Callout to Services 27
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – WOLA Using ESAF CLIENT IMS MSG-Q MPP 1/BMP 1/IFP 1 Message+Token GU IOPCB WAS EJB WOLA API’s UOW 1 IMS BMP 2 MSG-Q WOLA APIs ISRT ALTPCB IMS SYNC UOW 3 IMS Callout to Services Reply+Token UOW 2 TWO IMS Units of Work (UOW) + EJB Application UOW 28
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – WOLA Using ALTPCB and OTMA § WOLA = Web. Sphere Optimized Local Adapters for WAS z/OS – Has an OTMA Client – Requires WAS 7. 0. 0. 12 – WAS 8. 0. 0. 0 and PM 57240 support messages > 32 K § Invokes EJB in WAS § IMS application issues CHNG/ISRT/PURG § IMS provides syncpoint coordination within a transaction § Applications manage the response correlation § There IS coordinated commit – WAS 8. 0. 0. 4 and PM 71314 support Synclevel Syncpoint (2 PC) using RRS IMS Callout to Services 29
GSE BENELUX IMS User Group Meeting – June 2013 Asynchronous Callout – IMS ALTPCB to WOLA CLIENT MSG-Q IMS Application 1 GU IOPCB ISRT ALTPCB to WOLA MSG-Q Message+Token WAS EJB WOLA APIs Message+Token UOW 1 IMS Application 3 MSG-Q GU IOPCB MSG-Q Reply+Token ISRT ALTPCB to CLIENT UOW 3 IMS Callout to Services Reply+Token UOW 2 TWO IMS Units of Work (UOW) + EJB Application UOW OR 2 PC 30
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout § ICAL – – IMS TM Resource Adapter SOAP Gateway RYO IMS Transaction (IMS 13) § DB 2 Stored Procedures § DB 2 Attach § Web. Sphere MQ Using ESAF § Web. Sphere MQ Using CSQBSTUB § Web. Sphere MQ Using CSQBRSTB + RRS § CPI-C/APPC § RYO Using TCP/IP IMS Callout to Services 31
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Synchronous Callout – IMS supports synchronous callout from an IMS application using OTMA – Invoked with a new IMS call – ICAL – Application will issue the call and wait for a reply – First support is for IMS Connect – Also supported for IMS Java programs IMS Callout to Services 32
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Synchronous Callout – The OTMA Client will do a Resume TPIPE specifying that it wants synchronous callout messages – OTMA sends the synchronous callout request to the OTMA Client when it is available – The OTMA Client must send an ACK (or NAK) for the request message – The OTMA Client will send the reply via a special Send-Only message – The OTMA Client is responsible for maintaining a Correlator Token IMS Callout to Services 33
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Synchronous Callout – IMS Connect supports OTMA synchronous callout • • • Supported by IMS TM Resource Adapter Supported by IMS SOAP Gateway Supported by IMS Connect API for Java and C/C++ Supported for RYO IMS Connect Clients Supported by IMS Connect Extensions – The IMS Connect Client will do a Resume TPIPE specifying that it wants synchronous callout messages – The IMS Connect Client will send the reply via a Send-Only message IMS Callout to Services 34
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Synchronous Callout – The IMS Connect Client maintains the Correlator Token • IMS TM Resource Adapter • IMS SOAP Gateway • IMS Connect API for Java and C/C++ • RYO IMS Connect Clients IMS Callout to Services 35
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Synchronous Callout – The synchronous callout design is provided for IMS TM users • It does not provide support for BMP or JBP applications running in a DBCTL environment – OTMA Descriptors are required to define the target destination • Supermember is supported for availability and failover – Only the AIBTDLI call interface is supported • Supports messages larger than 32 K without segmentation IMS Callout to Services 36
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Synchronous Callout – The following will not be supported in the first phase of the synchronous callout support • Shared Queues with FE and BE are different systems • Two phase commit (distributed sync point) • IMS application will not be able to specify a password for authenticating the external server on a per request basis IMS Callout to Services 37
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL IMS Web. Sphere Application Server EJB / MDB IMS TM Resource Adapter IMS Application 1 OTMA Descriptor 1 IMS Connect Roll-your-own Application Web Service Provider IMS Connect OTMA Descriptor 2 OTMA Descriptor 3 IMS SOAP Gateway IMS Application 2 IMS Application 3 Send flow Receive flow IMS Callout to Services 38
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Synchronous Callout – The first thing to do is define and setup OTMA Descriptors for each synchronous callout destination – Use different TPIPEs for asynchronous output messages and synchronous callout messages – Use different TPIPEs for synchronous callout request messages for each client • IMS TM Resource Adapter clients • IMS SOAP Gateway clients • RYO application clients • IMS Connect API clients IMS Callout to Services 39
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Synchronous Callout – Use ‘D’ descriptor type in DFSYDTx – D destname keywords • destname is the destination name in the AIB – Keywords are • TYPE=IMSCON (only supported by ICON at this time) • TMEMBER=name • TPIPE=name • SMEM=YES|NO • ADAPTER=adapname • CONVERTR=convname • SYNTIMER=timeout IMS Callout to Services 40
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Synchronous Callout – The IMS application uses the AIBTDLI call for the synchronous request – CALL 'AIBTDLI' USING ICAL, AIB, REQ-AREA, RESP-AREA. • ICAL is new call • AIB is an AIB control block • REQ-AREA is the Request data area for synchronous callout • RESP-AREA is the Response data area for returned data IMS Callout to Services 41
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Synchronous Callout AIB – AIBSFUNC = SENDRECV – AIBRSNM 1 = 8 byte OTMA Descriptor name – AIBRSFLD = Timeout value – AIBOALEN = Request area length • Input parameter: 4 byte field containing the length of the request area • 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'00 C‘ – AIBOAUSE = Response area length • Input parameter: 4 byte field contains the length of the response area • 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 IMS Callout to Services 42
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Prior to IMS 13 if a response to a synchronous callout request was larger than the Response Area it was truncated – The application had to allocated a larger Response Area and re-issue the ICAL § In IMS 13 a copy of the entire message is kept in the IMS Control Region – New ICAL AIBSFUNC “RECEIVE” can be used to retrieve the entire message without reissuing the ICAL SENDRECV call IMS Callout to Services 43
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Synchronous Callout Timeout – If both the AIB and the Descriptor have a timeout value the lower of the two values will be used – If only one has a timeout value that one will be used – If neither has a timeout value the default value of 10 seconds will be used – The valid range is between 0 and 999999 in hundredths of a second • The maximum is about 2. 7 hours IMS Callout to Services 44
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL IAPMDI 27 JOHN DOE RYO Application IMS Connect Resume TPIPE 1 IMS Application TPIPE 1 1 4 Request . 3 7 8 ICAL SENDRECV OTMDEST 1 JOHN DOE 2 JOHN DOE 5 ACK Response 6 12345678 9 12345678 10 IMS Callout to Services 45
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Synchronous Callout 1. IMS Connect Client issues Resume TPIPE 2. The IMS application issues the synchronous request using the ICAL call 3. OTMA breaks the message into 32 K segments 4. IMS Connect combines the data and sends it to the IMS Connect Client including the Correlation Token 5. The IMS Connect Client must ACK or NAK the synchronous output message IMS Callout to Services 46
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Synchronous Callout 6. The IMS Connect Client sends the synchronous response message as a “send-only” message (Send-Only with ACK is supported) 7. IMS Connect breaks the message into 32 K pieces to send to OTMA via XCF 8. OTMA combines all of the data and returns it to the IMS application in the Response Area 9. The IMS application processes the synchronous response 10. IMS optionally ACKs the response message (IMS 12+) IMS Callout to Services 47
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Holding IMS locks during ICAL – While the ICAL is in progress IMS is still holding all of the database locks that were obtained before the call – Good programming practice would to be do as few database updates as possible before the ICAL • Zero is the ideal number ‒ For positional database locks held for reads consider the use of the DL/I RLSE call which is described in the notes below IMS Callout to Services 48
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § /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 REGID JOBNAME 1 MPP 1 A TYPE TP JMPRGN JBPRGN BATCHREG FPRGN DBTRGN DBRZCSAJ DLIZCSAJ *08213/165100* JMP JBP BMP FP DBT DBRC DLS TRAN/STEP PROGRAM STATUS CLASS 1 APOL 1 WAIT-CALLOUT TMEMBER HWS TPIPE: TPIPE 1 NONE NONE IMS Callout to Services 49
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § /DIS TMEMBER TPIPE ALL SYNC new fields – OPT ( for both asynchronous and synchronous calls) • • • N – Noauto O – One A – Auto W – Auto one ‘-’ -- no RT – MODE ( for both asynchronous and synchronous calls) • • S – Sync messages B – Both Async and Sync messages A – Async messages ‘-’ – no RT – SYNCOT ( only for synchronous calls) • No. of active ICAL syncallout messages – NO_COT (only for synchronous calls) • Number of messages waiting for response and/or WT-S status IMS Callout to Services 50
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL § Effect of commands for IMS synchronous callout – /PSTOP • Clear the wait in the region • Dequeues synchronous callout messages from the TPIPE – /STOP TMEMBER TPIPE • Clear state of all messages for the TPIPE – /STOP OTMA • Clear all the ICAL messages for all the TPIPEs. • New ICAL synchronous callout requests rejected – These commands return to ICAL • AIBRETRN = 100 • AIBREASN = 10 C IMS Callout to Services 51
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – IMS TM Resource Adapter § The IMS TM Resource Adapter running in a JEE environment supports synchronous callout via ICAL – Web. Sphere Enterprise Java Bean (EJB) • EJB would be coded to use IMS TM Resource Adapter’s Resume TPIPE and Send-Only function • Correlation Token would be sent back with the response message – Web. Sphere Message Driven Bean (MDB) • MDB would be deployed to listen to callout requests using IMS TM Resource Adapter JCA 1. 5 Inbound support • IMS TM Resource Adapter internally ‒ Implements Resume TPIPE and Send-Only protocols and manages Correlation Token on behalf of the MDB ‒ Implements JCA 1. 5 Work management contract to provide concurrent processing • Working with Rational Application Developer and Web. Sphere Integration Developer tooling to generate MDB and SCA exports IMS Callout to Services 52
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – IMS TM Resource Adapter - EJB z/OS Web. Sphere Application Server IMS TM RA EJB SYNC_RECEIVE_A SYNCOUTPUT TPS Resume TPIPE TPS CORTKN Data SYNC_SEND CORTKN Data IMS HWS 1 ACK Send_ONLY CORTKN TPS Connect OTMA CORTKN IMS TM/CTL Services Application Program DEST 1 TPS HWS 1 ICAL DEST 1 Request Response Data IMS Callout to Services 53
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – IMS TM Resource Adapter - MDB z/OS Web. Sphere Application Server IMS TM RA MDB ACTIVATE Resume TPIPE TPS CORTKN Data HWS 1 ACK Data Send_ONLY CORTKN TPS Connect OTMA EJB Service IMS TM/CTL Services Application Program DEST 1 TPS HWS 1 ICAL DEST 1 Request Response Data IMS Callout to Services 54
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – IMS SOAP Gateway § The IMS SOAP Gateway supports synchronous callout via ICAL – IMS SOAP Gateway provides built-in function to listen to callout request and invoke Web service providers • Implements Resume TPIPE and Send-Only protocols and manages Correlation Token • Correlates callout requests to Web service providers – Support for concurrent processing provided by built-in threading mechanism – Rational Developer for System z generates callout artifacts and XML converters for IMS SOAP Gateway and IMS Connect IMS Callout to Services 55
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – IMS SOAP Gateway z/OS IMS Web Service IMS SOAP Gateway Resume TPIPE TPS XML Connect ACK HWS 1 Send_ONLY XML IMS HWSXMLA 0 TPS OTMA XML CORTKN TM/CTL Services DEST 1 TPS HWS 1 HWSXMLA 0 XMLCNV 1 D Application Program ICAL DEST 1 Request data Response CORTKN XML Converter XMLCNV 1 D data Connection Bundle TPS IMS Callout to Services 56
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – IMS SOAP Gateway Error Scenarios Initiating Client z/OS IMS SOAP Gateway IMS Connect IMS HWS 1 0 Resume TPIPE Web Service Provider TPIPE Request X 1 HELLO FROM IMS X 3 2 3 X 2 1 ICAL SENDRECV OTMDEST 1 HELLO FROM IMS ACK XML Converter Response HELLO FROM WEB SERVICE IMS Application RESUME 4 X 5 HELLO FROM WEB SERVICE X 4 X 6 HELLO FROM WEB SERVICE XML Adapter Correlator X 1: ICAL cannot be sent out X 2: ICAL time out X 3: late ACK received after time out X 4: XML converter in error IMS Callout to Services X 5: external server already commit before time out X 6: external server already commit, but IMS fails to process the response 57
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – RYO § IMS Synchronous Callout ICAL destinations can be user written IMS Connect TCP/IP Clients – WRITE Resume TPIPE specifying Synchronous Callout messages are requested – READ to get the Correlation Token + the request message – WRITE ACK for the request message – WRITE to send Correlation Token + reply message • This is a Send-Only message marked as a synchronous reply • Send-Only with ACK is also supported – READ to get ACK (optional) – The IMS Connect API for Java and C/C++ can also be used for RYO IMS Connect synchronous callout clients IMS Callout to Services 58
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – RYO z/OS IMS TCP/IP RYO Resume TPIPE TPS IMS TPS Connect ACK Send_ONLY CToken HWS 1 Data IMS Callout to Services OTMA CToken Data TM/CTL Services Application Program DEST 1 TPS HWS 1 ICAL DEST 1 Request Response 59
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – IMS 13 § DL/I ICAL support from previous IMS releases – Provided synchronous callout to resources outside IMS z/OS IMS Web. Sphere MPP/JMP/IFP/BMP/JBP IMS TM resource adapter OTMA IMS SOAP GATEWAY IMS TM/CTL Services Application Program ICAL DB Services Connect TCP/IP user-written Client IMS Callout to Services OTMA Descriptor Database 60
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – IMS 13 Synchronous Program Switch § IMS 13 allows an IMS application program to synchronously call and wait for a reply from another IMS application program – Within the calling program’s Unit of Work Web. Sphere IMS TM services IMS TM resource adapter Application Program IMS SOAP GATEWAY Connect IMS dependent region OTMA IMS DB services Database ICAL TCP/IP user-written Client MPP, JMP IFP, MD BMP IMS Callout to Services 61
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – IMS 13 Synchronous Program Switch § 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 UOW IMS Callout to Services 62
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – IMS 13 Synchronous Program Switch § The target transaction can be a … – IFP – MPP – Message Driven BMP – JMP § The target can run in … – IMS TM/DB – IMS TM IMS Callout to Services 63
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – IMS 13 Synchronous Program Switch § IMS internally schedules the transaction initiated by the ICAL as an OTMA transaction – Uses a new type of OTMA destination descriptor • TYPE=IMSTRAN – Keywords • • LTERMOVR – IOPCB LTERM Override name TMEMBER – TMEMBER to queue late reply SMEM (YES/NO) – TMEMBER is a Supermember TPIPE – TPIPE to queue late reply SYNCTP – TPIPE is synchronized EXIT (YES/NO) – DFSCMUX 0 can override late message parameters REPLYCHK (YES/NO) – called program always replies to IOCPB – If “yes” and program ends without replying caller gets special return and reason and extended reason codes • SYNTIMER – timeout value IMS Callout to Services 64
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – IMS 13 Synchronous Program Switch § In the AIB call the AIBRSNM 1 specifies the Descriptor name – The transaction code is found after the llzz in the Request area – Mutli-segment input and output is supported IMS Callout to Services 65
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – IMS 13 Synchronous Program Switch § Considerations – To use synchronous program switch in a shared queues environment, all of the participating IMS systems must be Version 13 or later and have a MINVERS value of 13. 1 – New design implications • • Timeout values Transaction Expiration Late Responses LTERM Override ALTPCB destinations Multiple ICALs Recursive requests Holding database locks across an ICAL request – Increased importance for performance tooling IMS Callout to Services 66
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – IMS ICAL – IMS 13 Synchronous Program Switch § Usage examples – Applications can issue multiple ICALs to different destination TYPEs • Synchronous callout • Synchronous program switch OTMA IMS CTL Region Web. Sphere IMS TMRA IMS SOAP Gateway 1 IMS Connect TCP/IP RYO pgm TRANA 3 2 Destination Descriptor TYPE(IMSCON) Destination Descriptor TYPE(IMSTRAN) GU, IOPCB 4 MSG-Q 5 6 ICAL DEST 1 7 ICAL TRANB GU IOPCB ISRT IOPCB IMS Callout to Services 67
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – DB 2 Stored Procedures § Open Standards API calls § Provides for program-to-program communication – supports synchronous communication § Provides distributed coordinated commit – IMS is the coordinator via ESAF § Requires DB 2 § SSM IMSID= member of IMS. PROCLIB • • SST: Subsystem Type SSN: Subsystem Name LIT: Language Interface Token ESMT: External Subsystem Module Table RTT: Resource Translation Table REO: Region Error Option - “R”, “Q”, or “A” CRC: Subsystem Recognition Character IMS Callout to Services 68
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – DB 2 Stored Procedures CLIENT IMSA Program 1 GU IOPCB EXEC SQL: CALL PROC ( : aaa : bbb … data DB 2 Stored Procedure User Defined Function (UDF) ISRT IOPCB IMS Managed UOW 1 IMS Callout to Services 69
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – DB 2 Attach Facility § Open Standards API calls § Provides for program-to-program communication – Supports synchronous communication § Provides distributed coordinated commit – IMS is coordinator via RRS § Requires DB 2 and RRS IMS Callout to Services 70
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – DB 2 Attach Facility § IMS Control RRS=Y § SSM IMSID=. member of IMS. PROCLIB SST=DB 2, SSN=DB 2 E, COORD=RRS § DFSJVMMS member of IMS. PROCLIB -Djava. class. path= > /usr/lpp/db 2710/classes: > /usr/lpp/db 2710/classes/db 2 j 2 classes. zip § DFSJVMEV member of IMS. PROCLIB LIBPATH=/usr/lpp/db 2710/lib § DFSJMP or DFSJBP members of IMS. PROCLIB //DFSDB 2 AF DD DISP=SHR, DSN=IMS. SDFSRESL // DD DISP=SHR, DSN=DSNxxx. DSNLOAD (must all be APF authorized libraries) IMS Callout to Services 71
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – DB 2 Attach Facility CLIENT IMSA Program 1 IMS-Java JMP/JBP JDBC: : DB 2 CALL PROC ( : aaa : bbb … data Stored Procedure Web Service User Defined Function (UDF) ISRT IOPCB RRS Managed UOW 1 IMS Callout to Services 72
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – Web. Sphere MQ Considerations § Open Standards API calls § Provides for program-to-program communication § Possible distributed coordinated commit § Requires Queue partner § SSM IMSID= member of IMS. PROCLIB – – – – SST: Subsystem Type SSN: Subsystem Name LIT: Language Interface Token ESMT: External Subsystem Module Table (CSQQESMT) RTT: Resource Translation Table -Not Used by MQ REO: Region Error Option - “R”, “Q”, or “A” CRC: Subsystem Recognition Character - Not Used by MQ IMS Callout to Services 73
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – Web. Sphere MQ Using ESAF (CSQQSTUB) CLIENT IMS MPP 1/BMP 1 MSG-Q GU IOPCB Message+Correlid MQCONN MQ MSG-Q MQPUT 1 Not in syncpoint MQOPEN MQGET w/WAIT Correlid set MQCLOSE MSG-Q MQDISC ISRT IOPCB UOW 1 IMS Callout to Services MQ Appl MQCONN MQOPEN MQGET Message+Correlid Reply+Correlid MQPUT 1 Reply+ Correlid Index on Correlid MQCOMMIT MQDISC UOW 2 ONE IMS Unit of Work (UOW) + MQ Application UOW 74
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – Web. Sphere MQ Using ESAF (CSQBSTUB) CLIENT IMS MPP 1/BMP 1 MSG-Q GU IOPCB MQCONN (once) MQOPENs (once) MQPUT Not in syncpoint MQGET w/WAIT Correlid set MQCMIT MSG-Q ISRT IOPCB Message+Correlid MQ MSG-Q MQ Appl MQCONN MQOPEN MQGET Message+Correlid Reply+Correlid MQPUT 1 Reply+ Correlid Index on Correlid MQCOMMIT MQDISC UOW 2 UOW 1 IMS Callout to Services ONE IMS Unit of Work (UOW) + MQ Application UOW 75
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – Web. Sphere MQ Using ESAF (CSQBRSTB) CLIENT IMS MPP 1/BMP 1 MSG-Q GU IOPCB MQCONN (once) MQOPEN (once) MQPUT 1 Not in syncpoint MQGET w/WAIT Correlid set MQCMIT MSG-Q Message+Correlid MQ MSG-Q MQ Appl MQCONN MQOPEN MQGET Message+Correlid Reply+Correlid MQPUT 1 Reply+ Correlid Index on Correlid MQCOMMIT MQDISC ISRT IOPCB ONE RRS UOW – NOT TESTED RRS UOW 1 IMS Callout to Services 76
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – CPI-C/APPC Considerations § Open Standards API calls § Protocol for program-to-program communication § IMS supports synchronous communication – Can be single UOW or multiple UOWs § Protocol supports distributed coordinated commit § IMS participates in coordinated commit – Coordinator or participant via RRS § Requires APPC partner IMS Callout to Services 77
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – CPI-C/APPC CLIENT MSG-Q IMSA-PGMA IMSA/IMSB/non-IMS LU 6. 2 TP-B GU IOPCB CMALLC Allocate TP-B Type=NONE/CONFIRM/SYNCPT CMSEND_DATA CMRCV RECEIVE_and_WAIT CMDEAL De. Allocate MSG-Q Conversation CMRCV RECEIVE Session CMSEND_DATA CMDEAL De. Allocate ISRT IOPCB UOW 1 IMS Callout to Services 78
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – RYO TCP/IP Considerations § Open Standards API calls § RYO protocol for program-to-program communication § Protocol does not support coordinated commit – IMS does not participate in coordinated commit § Requires TCP/IP partner IMS Callout to Services 79
GSE BENELUX IMS User Group Meeting – June 2013 Synchronous Callout – RYO Using TCP/IP CLIENT IMSA-PGMA TCP/IP-B GU IOPCB Socket Connect - TCP/IP-B datagrams READ_DATA WRITE_DATA WAIT READ_DATA Connect – TCP/IP-C Connection WRITE_DATA CLOSE ISRT IOPCB UOW 1 IMS Callout to Services UOW 2 80
GSE BENELUX IMS User Group Meeting – June 2013 Summary – IMS Callout Techniques § Asynchronous Callout – IMS ALTPCB – Web. Sphere MQ Using ESAF – APPC/IMS § Synchronous Callout – – – IMS ICAL DB 2 Stored Procedures DB 2 Attach Facility Web. Sphere MQ Using ESAF CPI-C/APPC RYO Using TCP/IP IMS Callout to Services 81
765dd3007993d81ca55d330f4e927d6f.ppt