1. Amruta Kulkarni
  2. PowerBuilder
  3. Friday, 27 March 2020 12:59 PM UTC

Hi All,

If any once face or have idea about ss below issue with powerbuilder 2017 and MQ 9 connectivity please help .

 

Error : Error calling external function MQCONNstd@16  which is defined as alias for "MQCONNstd@16;Ansi" LIBRARY "mqic32.dll". 

 

Details of the issue :

We are currently using MQ 7.0 and asked to upgrade MQ to latest version i.e 9 .0 as the MQ 7 is out of support now. its already due for us because on dev server of windows 2012 plaform when we were testing our application which is developed in powerbuilder  older version like 9  and migrated o powerbuilder 2017 R2 version  , was failing with below error
r for mqic32.dll saying -Error calling external function MQCONNstd@16  which is defined as alias for "MQCONNstd@16;Ansi" LIBRARY "mqic32.dll".
it works well when you use PB 2017 to call MQ 7.0, and it doesn’t after you upgrade it to MQ 9.0,



Please provide any solution to fix the problem as we can't upgrade MQ until we fix it.

Amruta Kulkarni Accepted Answer Pending Moderation
  1. Monday, 30 March 2020 13:47 PM UTC
  2. PowerBuilder
  3. # 1

Hi John,

Thanks for reply John.

We use as external local private subroutine  is MQCONN , where we passed structure argument in it as well which 48 char , and it is MQic32.dll function .

 

We have already migrated our code to powerbuilder 2017. and now we are just migrating MQ 9.

Also for MQ 7, 7.5 client, its working without any error .

 

Thanks,

Amruta

Comment
  1. John Fauss
  2. Monday, 30 March 2020 15:34 PM UTC
Did any of the MQ structures changes in the MQ version upgrade? If so, did you make corresponding changes in the equivalent PB structures? Are there any places where the length of the structure is passed as a structure member? Obviously, something has changed in the DLL argument parameters to cause this error to appear. You did not supply any of the information I requested in my previous response and I am unable to assist you further without this information. I don't have or have ever coded to interface with MQ, but I (and others here in the Appeon Community) have experience in interfacing with external DLL functions, Unless you can supply us with more details, we can only guess as to the cause of the problem you are experiencing.



The error you listed in your original post indicates that PB and the DLL function are having issues passing argument parameter(s) cleanly. The problem could be a change in the number of arguments, a change in the datatype of one or more arguments, a change in an argument's value (different codes, for example), a change to a structure that gets passed as an argument, a change in passing an argument by value or by reference, etc. You need to check for all of these possibilities.Good luck!
  1. Helpful
There are no comments made yet.
Amruta Kulkarni Accepted Answer Pending Moderation
  1. Monday, 30 March 2020 13:37 PM UTC
  2. PowerBuilder
  3. # 2

Hi Mike S,

 

Thanks for the reply.  I could see MQic32.dll after MQ upgrade which I believe is  upgradated one .

I will check on REST call though.

 

Thanks,

Amruta.

 

Comment
There are no comments made yet.
John Fauss Accepted Answer Pending Moderation
  1. Friday, 27 March 2020 14:02 PM UTC
  2. PowerBuilder
  3. # 3

Can you please post the complete external function declaration and the  code that invokes the DLL function? Are there any structures passed as arguments? If so, please include them as well. You appear to be changing the development platform (PB) version and the version of MQ simultaneously, which is generally not a good idea. Too many moving parts complicates the troubleshooting.

Does the version of MQ you are attempting to use with PB 2017 accept/return string/character data in Unicode or ANSI? PB version 9 uses ANSI encoded strings, but this changed to Unicode in PB 10 (and higher).

I also do not understand why you are migrating to PB 2017 R2 ... R3 is a Long-Term Support (LTS) version of PB and Appeon is no longer providing fixes for 2017 R2. For that matter, why PB 2017? PB 2019 has improved means of supporting REST API's, which I agree with Mike S may be a better migration choice for interfacing with MQ.

Comment
There are no comments made yet.
mike S Accepted Answer Pending Moderation
  1. Friday, 27 March 2020 13:37 PM UTC
  2. PowerBuilder
  3. # 4

If you upgraded MQ, did you upgrade the dll?  Is it 32 bit?  You probably need to get help from IBM MQ for this.  

 

As an alternative that should be a lot easier to support long term, have you looked into making rest calls?  it looks like IBM MQ supports REST calls.  

https://developer.ibm.com/messaging/learn-mq/mq-tutorials/ibm-mq-messaging-rest-api/

 

Comment
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.