MQ Adapter API Support

The MQ Adapter connects IDMS online applications to a local IBM MQ queue manager to allow applications access to the managed queues. The applications can send and receive messages and obtain queue manager information.
idmscu19
The MQ Adapter connects IDMS online applications to a local IBM MQ queue manager to allow applications access to the managed queues. The applications can send and receive messages and obtain queue manager information.
CA IDMS online applications are written in one of the supported programming languages and must be linked with the CA IDMS stub that is designed for MQ access.
 The documentation for the MQ Adapter includes supplemental information about IBM MQ that is required for IDMS MQ use only. See the IBM MQ documentation for specific information about IBM MQ. All instances of the MQ Adapter that are referenced in this documentation refer to the MQ Adapter that is provided by CA IDMS only.
For more information about designing, developing, and building CA IDMS applications that all IBM MQ, see Using CA IDMS MQ Adapter.
This article contains the following information:
 
 
2
 
 
Common Parameter Considerations
An MQ queue is the only object type supported.
Compile and Link-Edit Considerations
To build a CA IDMS application to call IBM MQ, build the JCL that performs these tasks:
  • Compile (or assemble) the program to produce object code. The JCL for your compilation must include SYSLIB statements that make the IBM MQ copybooks available to the compiler. The copybooks are supplied in the following IBM MQ for z/OS libraries:
    • For COBOL, thlqual.SCSQCOBC
    • For assembler language, thlqual.SCSQMACS
    • For PL/I, thlqual.SCSQPLIC
  • Link-edit the object code to produce a load module. When you link-edit the code, you must include the CA IDMS MQ stub module IDMSMQI.
  • Store the load module in an application load library.
Fragments of JCL to link-edit the object module in the CA IDMS/DC environment.
//***************************************************************** //** LINK PROGRAM MODULE ** //***************************************************************** //link EXEC PGM=HEWL,REGION=1024K,PARM='LET,LIST,MAP,XREF' //SYSUT1 DD UNIT=sysda,SPACE=(TRK,(20,5)) //SYSLIB DD DSN=language.linklib,DISP=SHR //vanilla DD DSN=idms.cagjload,DISP=SHR //custom DD DSN=idms.custom.loadlib,DISP=SHR //SYSLMOD DD DSN=idms.custom.loadlib,DISP=SHR //SYSPRINT DD SYSOUT=A //SYSLIN DD DSN=&&OBJECT.,DISP=(OLD,DELETE) // DD * INCLUDE vanilla(IDMS) required INCLUDE vanilla(IDMSMQI) required to call MQ API's ENTRY userentry NAME userprog(R)
The load libraries are defined as follows:
  •  
    language.linklib
    Load library that contains COBOL, Assembler, or PL/1 support modules.
  •  
    idms.cagjload
    Data set name of the load library containing the vanilla CA IDMS executable modules
  •  
    idms.custom.loadlib
    Data set name of the load library containing the customized CA IDMS executable modules
Comparing LINKing and Built-In Functions
LINKing and built-in functions enable you to use the MQ functionality. The built-in functions are supplied by CA ADS. There is one built-in function for each supported MQ function. We recommend using MQ built-in functions over LINKing for the following benefits:
  • Parameters can be a record element. When LINKing is used, each parameter must be defined as a separate record.
  • Built-in functions are easier to use.
  • Calling a system-defined built-in function is more efficient than LINKing to another program type.
See MQ Function Descriptions for information about MQ built-in functionality.