Building 64 bit C applications
In z/OS, 64 bit C applications are built using the LP64 compiler and binder options. The IBM MQ for z/OS cmqc.h header file recognizes when this option is provided to the compiler, and generates IBM MQ datatypes and structures appropriate for 64 bit operation.
C code built with this option must be built to use dynamic-link libraries (DLLs) appropriate for the coordination semantic required. Binding the compiled code with the appropriate side-deck defined in Side-deck name required for each coordination semantic shows the specific DLL needed.Use the EDCQCB JCL procedure, supplied with z/OS XL C/C++, to build a single phase commit IBM MQ program as a batch job, as follows:
Coordination Side-deck name Single phase commit MQI CSQBMQ2X Two phase commit with RRS coordination, using RRS verbs CSQBRR2X Two phase commit with RRS coordination, using MQI verbs CSQBRI2X //PROCS JCLLIB ORDER=CBC.SCCNPRC //CLG EXEC EDCQCB, // INFILE='thlqual.SCSQC37S(CSQ4BCG1)', < MQ SAMPLES // CPARM='RENT,SSCOM,DLL,LP64,LIST,NOMAR,NOSEQ', < COMPILER OPTIONS // LIBPRFX='CEE', < PREFIX FOR LIBRARY DSN // LNGPRFX='CBC', < PREFIX FOR LANGUAGE DSN // BPARM='MAP,XREF,RENT,DYNAM=DLL', < LINK EDIT OPTIONS // OUTFILE='userid.LOAD(CSQ4BCG1),DISP=SHR' //COMPILE.SYSLIB DD // DD // DD DISP=SHR,DSN=thlqual.SCSQC370 //BIND.SCSQDEFS DD DISP=SHR,DSN=thlqual.SCSQDEFS //BIND.SYSIN DD * INCLUDE SCSQDEFS(CSQBMQ2X) NAME CSQ4BCG1To build an RRS coordinated program in z/OS Unix System Services, compile and link as follows:cc -o mqsamp -W c,LP64,DLL -W l,DYNAM=DLL,LP64 -I"//'thlqual.SCSQC370'" "//'thlqual.SCSQDEFS(CSQBRR2X)'" mqsamp.cParent topic: Preparing your program to run