ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » General IBM MQ Support » MQClient/Gets/Syncpoint - What actually gets passed back?

Post new topic  Reply to topic
 MQClient/Gets/Syncpoint - What actually gets passed back? « View previous topic :: View next topic » 
Author Message
PeterPotkay
PostPosted: Tue Feb 12, 2002 10:29 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7717

I did a little test where I did a get with syncpoint in a VB client. Immediately after the GET, the queue depth is zero, and I can see the message in the VB app. At this point, I have not yet closed the queue. If I abnormally end the VB app, the message gets rolled back, and the queue depth goes back to one, while the backout count on the message goes up by 1. No big deal, this works as expected.

Next, I ran the same test, except this time I got the message under syncpoint, closed the queue, and returned control and the message to the calling VB app. I ended the calling VB app abnormally, and the message went back to the queue, while the backout rose by one.

So, the third test, was get with syncpoint, close the queue, return control and the message to the calling app, destroy the reference to the VB app that has the MQ API calls by using Set oMQ = Nothing. Now if I abend the app the message does NOT get rolled back. So it looks to me that in VB, destroying the reference to the MQ VB App is what commits the messages, similar to MQDISC which does the explicit commit.

My question here is what if the calling app goes back to the VB MQ App hundreds or thousands of times before it destroys that reference? ( making a new reference, with the associated overhead of connecting to the queue manager and the Oracle databases that the VB app needs, takes to long to do every time during high volume) All these syncpoint messages are being returned back to the app, but how is MQ keeping track of them in case of a rollback?

Does it pass back a copy of the message, while the real one stays on the queue, but the depth count goes down ?

Or does it pass back the real message while at the same time writing a copy of it to the hard drive, which would then be used during roll back?

I suppose its all academic when things are working fine. I'm just worried about thousands of messages being held "somewhere" until the eventual implicit commit when the reference to the MQ API app is destroyed. Could this number get to high and cause errors?


_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » MQClient/Gets/Syncpoint - What actually gets passed back?
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.