QMQM program and LIBMQM service program in IBM MQ 9

315 pts.
Tags:
IBM MQ 9 IBM i 7.3
Good morning All, 

As part of IBM MQ9, IBM provide a new service program LIBMQM in library QMQM. It replaced the previous QMQM program in QMQM library. So for us to call LIBMQM procedures, we had to bind service program LIBMQM into our programs. 

This now becomes a problem for clients who do not have IBM MQ installed on their IBM i partition, as IBM does a MnResolveContext, and it throws MCH3401 Cannot resolve to object QMQM. Type and Subtype X'0401'
Authority X'0000'. since the client doesnt have IBM MQ on the partition. 

Did any of you encounter this before? And do you have possible recommendations how to goo around this error? 


Software/Hardware used:
IBM MQ 9 IBM i 7.3
0

Answer Wiki

Thanks. We'll let you know when a new response is added.
Send me notifications when members answer or reply to this question.

Discuss This Question: 3  Replies

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when members answer or reply to this question.
  • TheRealRaven
    I can't think of a decent solution. But I also can't see a good reason for trying to access a product that's not installed on customer systems. If it's not installed, there should be no reason to make the call. Just verify that it's installed first.
    33,610 pointsBadges:
    report
  • Jpjawili
    Thank you TheRealRaven. Our product is designed to work with IBM MQ9 for things like SWIFT, and the call to MQ9 LIBMQM is conditioned to the avialability of the SWIFT enhancement. But IBM MnResolveContext happens before our service program is even called, even in debug mode. MnResolveContext is executed right before calling our service program that binds LIBMQM service program. So inside our service program, even if we conditioned the call to MQ9 LIBMQM to the existence of the enhancement that will use MQ9, the MnResolveContext still fails as it seems to check the service programs that are bound to our program, before actually calling our service program. 
    315 pointsBadges:
    report
  • Jpjawili
    I found a solution. During service program creation, i specified *DEFER for LIBMQM service program when it gets bound to our service program.So during program activation, LIBMQM is not located and signature checked until one of its exported procedures is called. I hope this helps someone in the future. 

    315 pointsBadges:
    report

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to:

To follow this tag...

There was an error processing your information. Please try again later.

Thanks! We'll email you when relevant content is added and updated.

Following

Share this item with your network: