Question is, how to browse messages, without deleting them from MQ?
I did it with Delphi.
You will need to change GetMsgOptions, at me it is like:
MQGMO_DEFAULT : MQGMO = (StrucId:MQGMO_STRUC_ID;
Version:MQGMO_VERSION_1;
Options:MQGMO_NO_WAIT;
WaitInterval:0;
Signal1:0;
Signal2:0;
ResolvedQName:#0;
MatchOptions:(MQMO_MATCH_MSG_ID+MQMO_MATCH_CORREL_ID);
GroupStatus:MQGS_NOT_IN_GROUP;
SegmentStatus: MQSS_NOT_A_SEGMENT;
Segmentation:MQSEG_INHIBITED;
Reserved1:' ';
MsgToken:($0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0);
ReturnedLength:MQRL_UNDEFINED;
);
In MQIC.pas which I downloaded it from here, I changed MQGMO_DEFAULT to:
MQGMO_DEFAULT : MQGMO = (StrucId:MQGMO_STRUC_ID;
Version:MQGMO_VERSION_1;
Options:(MQGMO_BROWSE_NEXT + MQGMO_NO_WAIT);
WaitInterval:0;
Signal1:0;
Signal2:0;
ResolvedQName:#0;
MatchOptions:(MQMO_MATCH_MSG_ID+MQMO_MATCH_CORREL_ID);
GroupStatus:MQGS_NOT_IN_GROUP;
SegmentStatus: MQSS_NOT_A_SEGMENT;
Segmentation:MQSEG_INHIBITED;
Reserved1:' ';
MsgToken:($0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0);
ReturnedLength:MQRL_UNDEFINED;
);
I added MQGMO_BROWSE_NEXT, but, before geting messages, you will need to open MQ for browsing messages, you will do it like this:
Open(MQOO_FAIL_IF_QUIESCING + MQOO_INPUT_SHARED + MQOO_BROWSE, strObjectName, intReason, bolOk);
And that is all...