using vega mqseries in ca-idms applications
TRANSCRIPT
![Page 1: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/1.jpg)
Using VEGA MQSeries in CA-IDMS Applications
![Page 2: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/2.jpg)
Contents
� Introduction to MQSeries� VEGA MQSeries for CA-IDMS� Prerequisite Systems Software� Types of Applications� Trigger Monitor� Supported API
![Page 3: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/3.jpg)
Contents
� Typical Asynchronous Client Application Logic� Typical Synchronous Server Application Logic� API Syntax and Parameters� Software Architecture
![Page 4: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/4.jpg)
Contents
� Example: CA-ADS Server Application� Utility Calls� Online Tools� Interactive Test Tool� Consistent Update Method � Summary
![Page 5: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/5.jpg)
Introduction to MQSeries
� Messages� Queues� Queue manager � Time independent, assured message delivery
![Page 6: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/6.jpg)
Introduction to MQSeries
� Asynchronous� Multi-platform
� most major IBM and non IBM platforms� MQI
� a single multi-platform API
![Page 7: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/7.jpg)
VEGA MQSeries for CA-IDMS
� Runs under CA-IDMS/DC/UCF 10.21 or later (DC is not required)
� MQI compatible API (100%)� Can be used in
� CA-ADS� DC-COBOL, Assembler and PL/1
� Cross-address space communication uses MVS subtasks
![Page 8: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/8.jpg)
VEGA MQSeries for CA-IDMS
� Control tasks available to� (re)start MQSeries interface
� cycling CV is not needed
� stop MQSeries interface� monitor system activity
� proprietary Logical Terminal Architecture� only tasks and programs defined in Sysgen
![Page 9: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/9.jpg)
Prerequisite systems software
� MQSeries for MVS� IBM product� Own address space� MQI API
![Page 10: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/10.jpg)
Types of applications
� Client applications� Examples
� a CA-ADS application sends messages to an NT application
� a CA-IDMS application sends messages to another CA-IDMS application
![Page 11: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/11.jpg)
Types of applications
� Server applications� Example
� a CA- IDMS task is triggered by messages from a Unix application
� Trigger monitor is included
![Page 12: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/12.jpg)
Trigger Monitor
� Needed for Server applications� Reads the given initiation queue
� CA- IDD module XQSE- INITIATION- QUEUES contains initiation queue names
� Starts server task (mqtm_applid)� Automatic/manual start� Automatic/manual stop
![Page 13: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/13.jpg)
Trigger Monitor
� Signon exit � CA-IDMS R12 or later
� current user id and password� new password
� Multiple trigger monitors are supported� MQSeries (re)start allowed w/o operator
intervention
![Page 14: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/14.jpg)
Supported API
� MQBACK� MQCLOSE� MQCMIT� MQCONN� MQDISC� MQGET� MQINQ� MQOPEN
� MQPUT� MQPUT1� MQSET
![Page 15: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/15.jpg)
Asynchronous Client Example
� MQOPEN� Open an output queue and get the object handle.
� MQPUT� Put a message into the queue.
� MQDISC� Disconnect with implicit queue close and commit.
![Page 16: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/16.jpg)
Synchronous Server Example
� MQSEPARM� Get MQTM structure from the VEGA Trigger Monitor.
� MQOPEN� Open an input queue MQTM-QNAME and get the object
handle.
� MQGET� Get a message from the client and perform database
processing.
![Page 17: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/17.jpg)
Synchronous Server Example (continues)
� MQOPEN� Open an output queue MQMD-REPLYTOQ and get the object
handle.
� MQPUT…� Put one or more messages into the reply queue.
� MQDISC� Disconnect with implicit queue close and commit.
![Page 18: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/18.jpg)
API Syntax
� COBOL� CALL ’<mqifunc>’ USING P1,...,Pn
� CA-ADS� MOVE <mqifunc> TO MQFN-FUNC.� LINK PROGRAM ’MQSEHLIA’ USING
(WQSE-CMQFNV, P1,...,Pn)� parameters are stored as CA-IDD records during the
installation
![Page 19: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/19.jpg)
API Parameters
� <mqifunc>� Identifies the MQI call
� MQBACK, MQCLOSE, MQCMIT, MQCONN, MQDISC, MQGET, MQINQ, MQOPEN, MQPUT, MQPUT1 or MQSET
� Pi� MQI call parameters
![Page 20: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/20.jpg)
API Parameters (continues)
� WQSE-CMQFNV� The CA-IDD record that contains the MQI function
element MQFN-FUNC.� WQSECNST
� The CA-IDD record that contains the <mqifunc> elements� MQBACK, MQCLOSE, MQCMIT, MQCONN, MQDISC,
MQGET, MQINQ, MQOPEN, MQPUT, MQPUT1 and MQSET.
![Page 21: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/21.jpg)
Software Architecture
Application Program
TOKENMQSEHLID (stub) Check User Task
MQSeries Abend ExitMQSEHLIX (Resident)
MQSEHLIP (Storage Protect)
MQSEIPI (Program Init)
Free StorageArea
VEGAMQSeries Driver MQSEDRV
MQSeries LogicalTerminal Table
MVS Subtasks
Subtask xMQSeries LTE xPost/Wait
Wait/Post
CA-IDMS
![Page 22: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/22.jpg)
CA-ADS Server Example (1/5)
!READ TRIGGER MESSAGELINK PROGRAM 'MQSEPARM' USING (WQSE-CMQTMV).
!OPEN INPUT QUEUEMOVE MQTM-QNAME TO MQOD-OBJECTNAME.MOVE MQOPEN TO MQFN-FUNC.MOVE MQOO-INPUT-SHARED TO MQOPT-OPTIONS-OPEN.LINK PROGRAM 'MQSEHLIA' USING (WQSE-CMQFNV
WQSE-CMQHCV WQSE-CMQODV,WQSE-CMQOPTV-OPEN WQSE-CMQHOV-GETWQSE-CMQCCV WQSE-CMQRCV).
![Page 23: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/23.jpg)
CA-ADS Server Example (2/5)
!GETMOVE MQGET TO MQFN-FUNC.MOVE 320 TO MQBFL-BUFFERLENGTH-GET.LINK PROGRAM 'MQSEHLIA' USING (WQSE-CMQFNV
WQSE-CMQHCV WQSE-CMQHOV-GET WQSE-CMQMDVWQSE-CMQGMOM WQSE-CMQBFLV-GET WQSETST1G WQSE-CMQDLVWQSE-CMQCCV WQSE-CMQRCV).
!CLOSEMOVE MQCLOSE TO MQFN-FUNC.LINK PROGRAM 'MQSEHLIA' USING (WQSE-CMQFNV
WQSE-CMQHCV WQSE-CMQHOV-GET WQSE-CMQOPTV-CLOSEWQSE-CMQCCV WQSE-CMQRCV).
![Page 24: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/24.jpg)
CA-ADS Server Example (3/5)
!OPEN FOR OUTPUTMOVE MQOPEN TO MQFN-FUNC.MOVE MQOO-OUTPUT TO MQOPT-OPTIONS-OPEN.MOVE MQMD-REPLYTOQ TO MQOD-OBJECTNAME.LINK PROGRAM 'MQSEHLIA' USING (WQSE-CMQFNV
WQSE-CMQHCV WQSE-CMQODV WQSE-CMQOPTV-OPEN WQSE-CMQHOV-PUTWQSE-CMQCCV WQSE-CMQRCV).
![Page 25: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/25.jpg)
CA-ADS Server Example (4/5)
!PUTMOVE MQPUT TO MQFN-FUNC.MOVE 320 TO MQBFL-BUFFERLENGTH-PUT.ACCEPT USER ID INTO WTST1P-WQSEBUFF.MOVE CON(SUBS(WTST1P-WQSEBUFF,1,8),WTST1G-WQSEBUFF) TO
WTST1P-WQSEBUFF.LINK PROGRAM 'MQSEHLIA' USING (WQSE-CMQFNV
WQSE-CMQHCV WQSE-CMQHOV-PUT WQSE-CMQMDVWQSE-CMQPMOM WQSE-CMQBFLV-PUT WQSETST1PWQSE-CMQCCV WQSE-CMQRCV).
![Page 26: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/26.jpg)
CA-ADS Server Example (5/5)
!CLOSEMOVE MQCLOSE TO MQFN-FUNC.LINK PROGRAM 'MQSEHLIA' USING (WQSE-CMQFNV
WQSE-CMQHCV WQSE-CMQHOV-PUT WQSE-CMQOPTV-CLOSEWQSE-CMQCCV WQSE-CMQRCV).
!COMMITMOVE MQCMIT TO MQFN-FUNC.LINK PROGRAM 'MQSEHLIA' USING (WQSE-CMQFNV
WQSE-CMQHCVWQSE-CMQCCV WQSE-CMQRCV).
!DISCONNECTMOVE MQDISC TO MQFN-FUNC.LINK PROGRAM 'MQSEHLIA' USING (WQSE-CMQFNV
WQSE-CMQHCVWQSE-CMQCCV WQSE-CMQRCV).
LEAVE ADS.
![Page 27: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/27.jpg)
Utility Calls
� Explain MQI return and reason codes� COBOL
� TRANSFER 'MQSEXPL' USING CompCode, Reason, Expl LINK
� ADS� LINK PROGRAM 'MQSEXPL' USING (CompCode,
Reason, Expl).
![Page 28: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/28.jpg)
Utility Call ParametersParameter/CA-IDD record Picture Description Value
CompCodeWQSE-CMQCCV S9(9) BINARY Completion code
ReasonWQSE-CMQRCV S9(9) BINARY Reason code
ExplWQSEXPL1 GROUP Explanation
CompCodeDescX(12) Description of the
completion code Completion code constant text MQCC_*
ReasonDesc X(40) Description of thereason code Reason code constant text MQRC_*
![Page 29: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/29.jpg)
(C) Vegasoft Oy V E G A V2R6.6 Tape V00501MQSeries Menu
-------------------------------------------------------------------------------
*** Please select a Response ***
_ MQSTEST MQSeries Standard Test_ MQSTESTC MQSeries Conversational Test_ MQSATTR MQSeries INQ/SET Attributes_ MQSLIST MQSeries Connection List_ MQSRLIST MQSeries Replay Status_ SR2MOFF MQSeries Connection Close_ SR2MOFFW MQSeries Connect Close,wait_ MENU (PF3) Previous Menu_ HELP (PF1) Valid Responses_ QUIT (PA2) Exit Application
-------------------------------------------------------------------------------Response: Data:
Online Tools
![Page 30: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/30.jpg)
Interactive Test Tool
� All MQI functions and parameters� All MQ structures� Standard mode and Conversational mode� Explain function
� mqi completion and reason codes� can be called from applications
� Restrictions� character format input with 320 byte I/O area
![Page 31: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/31.jpg)
(C) Vegasoft Oy VG-IDMS Gateway V2R6MQSeries Test Tool
-------------------------------------------------------------------------------S Func CC Reason Object nameS Open 0 0 Options: 16 Obj desc PF5S Put(1) 0 0 Length : 0 Msg desc PF9 Put message options PF10
S Close 0 0 Options: 0 Object nameS Open 0 0 Options: 1 Obj desc PF6N Get 0 0 Length : 0 Msg desc PF11 Get message options PF12
S Close 0 0 Options: 0 ----------------------------------------S Cmit 0 0 ! Special values for column S are: !
Back 0 0 ! 1 Put: MQPUT1 !S Disc 0 0 ! N Get: MQGET with MQMI_NONE&MQCI_NONE!-------------------------------------------------------------------------------Enter = Execute selected (S) functions, PF2 = CC/Reason (cursor), PF3 = MenuREADY
Interactive Test Tool (continues)
![Page 32: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/32.jpg)
Consistent Update Method
� Keeps CA-IDMS database and MQSeries queue contents in sync
� MQSeries is first committed, then CA-IDMS� data is out of sync, if task or system abend occurs before CA-
IDMS commit
� Replay of CA-IDMS updates� optional CA- IDMS database program can redo CA- IDMS
updates in case of a task or system abend
![Page 33: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/33.jpg)
Consistent Update Method
� Following components are used to accomplish consistent updates:� MQSeries and CA- IDMS synchronization queues� CA- IDMS database application program� VEGA commit program� VEGA replay task
![Page 34: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/34.jpg)
Summary
� MQSeries now available for CA-IDMS as 3rd party products
� Consistent Update Method helps keeping data in sync� Where to use
� in Client/Server applications with any platform supporting MQSeries
![Page 35: Using VEGA MQSeries in CA-IDMS Applications](https://reader036.vdocument.in/reader036/viewer/2022082209/5868d5411a28abde3f8c17b2/html5/thumbnails/35.jpg)
End of Presentation
See www.vegasoft.com
for international distributors.