Problem:
AIX customer upgraded to Server Express 4.0 and got this error when running a CICS application. The actual error is caused by a STRING...DELIMITED BY <literal> statement. This does not happen when the program is compiled to .int, only .gnt and executable.
Resolution:
A STRING statement is optimised to use the system commands memmove, memcmp and memcpy. However these are not picked up automatically in Server Express 4.0 and 4.0 SP1. The solution is to add entries in the liblist for executable programs (which Micro Focus did in SP1) and to rebuild the runtime, adding the appropriate programs with the -I (upper case letter between 'H' and 'J'), e.g. -I memmove -I memcpy -I memcmp.
Unfortunately this isn't the whole story! As CICS works by demanding that everything is compiled into it, you also need to edit the cicsmkcobol script and run it. This rebuilds CICS and the Micro Focus runtime so that they work together. Micro Focus cannot give definitive information on a third-party vendor's script, and we believe that IBM's present position is that TXSeries is not supported on Server Express 4.0. However a customer has informed us that he changed
cob -z -o $OUTPUTFILE $OBJECTS \\
$LDFLAGS $LDPATH $LIBRARIES $RDBMSLIBS $ARGUMENTS
to
cob -z -I memcpy -I memcmp -I memmove -o $OUTPUTFILE $OBJECTS \\
$LDFLAGS $LDPATH $LIBRARIES $RDBMSLIBS $ARGUMENTS
and that this solved he problem. We would always recommend that customers contact IBM for specific technical information.