Preparing C programs in IBM i
IBM MQ for IBM i supports messages up to 100 MB in size. Application programs written in ILE C, supporting IBM MQ messages greater than 16 MB, need to use the Teraspace compiler option to allocate sufficient memory for these messages.
For more information about the C compiler options, see the WebSphere Development Studio ILE C/C++ Programmer's Guide.
To compile a C module, we can use the IBM i command CRTCMOD. Make sure that the library containing the include files (QMQM) is in the library list when you compile.
We must then bind the output of the compiler with the service program using the CRTPGM command. Table 1 shows examples of this command for non-threaded and threaded environments.Type of environment | Command | Program/exit type |
---|---|---|
Non-threaded environment |
CRTPGM PGM( pgmname ) MODULE( pgmname ) BNDSRVPGM(QMQM/LIBMQM) |
Server or client for C |
Threaded environment |
CRTPGM PGM( pgmname ) MODULE( pgmname ) BNDSRVPGM(QMQM/LIBMQM_R) |
Server or client for C |
Type of environment | Library file | Program/exit type |
---|---|---|
Non-threaded environment | LIBMQM | Server for C |
LIBMQIC & LIBMQM | Client for C | |
Threaded environment | LIBMQM_R | Server for C |
LIBMQIC_R & LIBMQM_R | Client for C |