Comment 6 for bug 730162

Revision history for this message
Dariusz Suchojad (dsuch) wrote :

OK, here's some more food for mind. Most apparently, MQRC 2437 MQRC_NO_RETAINED_MSG is returned not only when there are no messages for a legitimate topic string but also when the topic string doesn't exist at all (shame IBM for using the same code for both cases).

I did an interesting experiment - right before calling MQSUBRQ in pymqe_MQSUBRQ, I added /yet another/ hardcoded subscription for the topic string, that is I discarded the previous subscription, made another one and all of a sudden the call to MQSUBRQ would start working.

In that case I think there's something wrong with how the subscription object/handle/descriptor/who knows what is being passed from Python to C and back. It may be a long shot but I'd say 'sd.ObjectString.VSPtr' and 'sd.ObjectString.VSLength' are somehow being dropped along the way and because MQ returns the same code regardless of the reason - whether it's actually no messages or a non-existing topic string (like when sd.ObjectString is not set) - well, I think that may be the reason. That's it for now, will let you know if I come up with anything.