Skip to main content

Problem:

In the past, on Suse and Red Hat Linux, MQ series did not support interoperability with MF COBOL, so Micro Focus provided to some customers (as a special case), two .gnts and a .so (named MQCONN.gnt, MQCONNX.gnt, and mfmqsup.so), consisting of routines that map MQ calls within COBOL (for example MQOPEN, MQGET, etc.) onto the C support within MQ, as a way of facilitating interoperability between Server Express and MQ Series.

A customer had been using these files successfully, but when this customer upgraded from SX v5.0 to SX v5.0 WP4 (i.e. they installed WP4), they began receiving an  MQ error:

     reason 2012

     calll not valid for current environment

     MQRC_ENVIRONMENT_ERROR

Resolution:

In the past, modules named MQCONN.gnt and MQCONNX.gnt were not supplied with Server Express, but beginning with WP4 for SX v5.0, they are supplied as part of the "Enterprise Server" feature.  They are supplied as ".so" modules instead of .gnt, and have been modified to work with Enterprise Server.

The cause of the MQ error: 2012 is that, at runtime the new modules MQCONN.so and MQCONNX.so are found and dynamically loaded first (before the original MQCONN.gnt and MQCONNX.gnt modules).

For customers needing to use the old .gnt files, change directories to the place where SX v5.0 WP4 is installed, then cd to the "lib" subdirectory, and do an "ls" looking for the new .so modules, for example:

unix-prompt >  pwd

/opt/microfocus/cobol_wp4/lib

unix-prompt >  ls *MQ*

MQCONN.so  MQCONNX.so

Rename the new modules aside so they will no longer be found first at runtime, for example:

   mv MQCONN.so  new-MQCONN-hide.so

   mv MQCONNX.so new-MQCONNX-hide.so

Then test the application to see whether the old .gnts are now found and are working.

Old KB# 2266