Author |
Message
|
murdeep |
Posted: Tue Dec 08, 2009 7:39 am Post subject: V7.0.0.0 .Net pgm fails after V7.0.1.0 Installed |
|
|
Master
Joined: 03 Nov 2004 Posts: 211
|
Hi, I built a .Net app under a V7.0.0.0 WMQ client install. It works fine. I then upgraded my WMQ client to V7.0.1.0. Now when I execute the .Net program I get the following error:
Quote: |
Unhandled Exception: System.MissingMethodException: Method not found: 'Int32 IBM.WMQ.MQGetMessageOptions.get_GroupStatus()'.
at readQueue.readQueue.Main(String[] args) |
This concerns me since I would have thought that I could migrate my clients without having to concern myself about rebuilding my apps at the same time.
If I recompile the app after V7.0.1.0 is installed the app works fine.
Is there anything I can do to not have to recompile after V7.0.1.0 is installed? |
|
Back to top |
|
 |
murdeep |
Posted: Tue Dec 08, 2009 7:48 am Post subject: |
|
|
Master
Joined: 03 Nov 2004 Posts: 211
|
BTW, if I run the V7.0.1.0 app on a V7.0.0.1 install I get the same error:
Quote: |
Unhandled Exception: System.MissingMethodException: Method not found: 'Byte IBM.WMQ.MQGetMessageOptions.get_GroupStatus(
)'.
at readQueue.readQueue.Main(String[] args) |
So I'm stuck either way it seems. |
|
Back to top |
|
 |
murdeep |
Posted: Tue Dec 08, 2009 9:41 am Post subject: |
|
|
Master
Joined: 03 Nov 2004 Posts: 211
|
Ok, poking around with Object Explorer in VS2008 I see the following:
For the V7000 amqmdnet.dll IBM.WMQ.MQGetMessageOptions class:
Quote: |
public int GroupStatus { get; }
Member of IBM.WMQ.MQGetMessageOptions |
For the V7010 amqmdnet.dll IBM.WMQ.MQGetMessageOptions class:
Quote: |
public byte GroupStatus { set; get; }
Member of IBM.WMQ.MQGetMessageOptions |
Notice the set method exists for the GroupStatus even though the doc states this is an output field only. Here is the doc from V7 WMQ help:
Quote: |
Note: The behavior of some of the options available in this class depends on the environment in which they are used. These elements are marked with an asterisk (*).
GroupStatus*
public int GroupStatus {get;}
This is an output field that indicates whether the retrieved message is in a group, and if it is, whether it is the last in the group. Possible values are:
MQC.MQGS_LAST_MSG_IN_GROUP
Message is the last in the group. This is also the value returned if the group consists of only one message.
MQC.MQGS_MSG_IN_GROUP
Message is in a group, but is not the last in the group.
MQC.MQGS_NOT_IN_GROUP
Message is not in a group. |
So do you think this is an IBM issue where they have messed up the IBM.WMQ.MQGetMessageOptions class and that is what is giving me grief at runtime? |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Dec 08, 2009 3:12 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
No. I think what is giving you grief is having the wrong version of the dll on the path or in the gac.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
murdeep |
Posted: Tue Dec 08, 2009 3:50 pm Post subject: |
|
|
Master
Joined: 03 Nov 2004 Posts: 211
|
I agree that if I deploy the same amqmdnet.dll that I compile with to the runtime everything works, I've tested this by actually copying the dll over and using amqiregisterdotNet.cmd.
But this is what concerns me, typically a previous versions code is compatible with a newer release and you only need to recompile if you want to take advantage of new features.
Is this not the case with .Net/amqmdnet.dll? |
|
Back to top |
|
 |
|