- Details
- Written by: Stanko Milosev
- Category: IBM WebSphere MQ
- Hits: 6990
There are two posibillity to start transaction:
1. MQBegin - Queue-manager-coordinated global unit of work
2. MQPMO_SYNCPOINT - Queue-manager-coordinated local unit of work
MQBegin is trivial, so I will not explain it.
For MQPMO_SYNCPOINT you have to do something like
GetMsgOptions.Options:=GetMsgOptions.Options + MQPMO_SYNCPOINT;
Where GetMsgOptions you use like:
MQGET ( Hconn, Hobj, @MsgDesc, @GetMsgOptions, BufferLength, @Buffer^, @DataLength, @intCompcode, @intReason);
In both cases you will use MQCMIT, and MQBACK to commit or reverse transaction back.
Taken from here.
- Details
- Written by: Stanko Milosev
- Category: IBM WebSphere MQ
- Hits: 9131
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...
- Details
- Written by: Stanko Milosev
- Category: IBM WebSphere MQ
- Hits: 7116
- Details
- Written by: Stanko Milosev
- Category: MySQL
- Hits: 2948
SELECT id, Longitude, Latitude, ( 3959 * acos( cos( RADIANS(50) ) * cos( radians( Latitude ) ) * cos( radians( Longitude ) - radians(7) ) + sin( RADIANS(50) ) * sin( radians( Latitude ) ) ) ) AS distance FROM gpslocation HAVING distance < 25 ORDER BY DISTANCE LIMIT 0 , 20;Notice that number 50 is twice mentioned in query.