Visual Cobol and Websphere MQ-client

Has anybody ever tried using Websphere MQ-client in (native) Visual Cobol programs ?

We are migrating from HP-UX  (B.11.31 ia64) with Server Express 5.1 WP4  and Websphere MQ-client 7.0.0.0 to RHEL 6.6 (x86_64) with Visual Cobol 2.2 Update2  and Websphere MQ-client 7.0.1.3.

Programs that run fine on HP-UX can get compiled OK on RHEL, but get a SIGSEGV (‘114     Attempt to access item beyond bounds of memory (Signal 11)’) at run-time.

According to IBM 'system requirements' for Websphere MQ-client(s) the only MicroFocus supported Cobol-products are ServerExpress 4.0, 5.0 or 5.1.

Even the most recent Websphere MQ-Clients (8.0) mention ONLY Server Express, there is nowhere any support for Visual Cobol mentioned.

This might  be (technically) a pure IBM-problem, but does this mean we have to stick to Server Express  if we want to use MQ-calls in our Cobol-programs ?

We have opened a service request with IBM for this as well, but it seems strange we would be the first facing this issue ..

  • Hi ,

    Did a quick test here by building one of the standard MQ demos:-

    cob -xgvP amq0put0.cbl -L /opt/mqm/lib -lmqmcb

    in Visual COBOL with IBM MQ 7.0 on RedHat. This demo worked ok.

    We do have other customers using MQ at the 2.2U2 product level successfully.

    If you need some input from Micro Focus then I suggest creating a small example such like amq0put0.cbl that shows the API call your having problems with and then raising a Support Case on it.

    Regards

    David

  • Verified Answer

    Thanks David,

    Maybe I was too vague in the problem description.

    Programs on HP-UX with ServerExpress 5.1 were based on MQCONN-calls with MQSERVER/MQCHLTAB/MQCHLLIB set  (no authentication required).

    On RHEL 6.6 with VC 2.2 we have to use MQCONNX-calls to supply UID/PW since new setup on the MQ-server is using CapitalWare's MQAUSX.

    As IBM Websphere documention nowhere mentions support for VC (only ServerExpress/NetExpress), initial thought was that it wasn't supported. In meantime have received confirmation that it is supported.

    Have it working now , be it that the solution might not be as it should be.

    Changing  MQCSP-CSPUSERIDLENGTH and MQCSP-CSPPASSWORDLENGTH  from 'USAGE BINARY' to 'USAGE COMP-5' in   the IBM-supplied  CMQCSPV-copybook made it work.

    The values itself are passed with pointers (set MQCSP-CSPUSERIDPTR          to address of ws-uid.).

    Dirk

  • Thanks for the update Dirk. That makes sense. Sounds like you have been caught out by a move from a big endian platform to little endian.