Follow these steps:
The functions generated by the CVTMQMDTA command use macros that are shipped in the file QMQM/H(AMQSVMHA). These macros are written assuming that all structures are packed; they should be amended if this is not the case.
/* Insert the functions produced by the data-conversion exit */
Here, insert the code fragment generated in step 3.
/* Insert calls to the code fragments to convert the format's */
This is followed by a commented-out call to the function ConverttagSTRUCT.
Change the name of the function to the name of the function you added in step 5a above. Remove the comment characters to activate the function. If there are several functions, create calls for each of them.
/* Insert the function prototypes for the functions produced by */
Here, insert the function prototype statements for the functions added in step 5a above.
If the message contains character data, the generated code calls MQXCNVC; this can be resolved by binding the service program QMQM/LIBMQM.
CRTCMOD MODULE(library/EXIT_MOD) + SRCFILE(QCSRC) + TERASPACE(*YES *TSIFC)
For nonthreaded applications, use the following:
CRTPGM PGM(library/Format) + MODULE(library/EXIT_MOD) + BNDSRVPGM(QMQM/LIBMQM) + ACTGRP(QMQM) + USRPRF(*USER)
In addition to creating the data-conversion exit for the basic environment, another is required in the threaded environment. This loadable object must be followed by _R. The LIBMQM_R library should be used to resolve calls to the MQXCNVC. Both loadable objects are required for a threaded environment.
CRTPGM PGM(library/Format_R) + MODULE(library/EXIT_MOD) + BNDSRVPGM(QMQM/LIBMQM_R) + ACTGRP(QMQM) + USRPRF(*USER)
Notes: