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 » IBM MQ API Support » IBM XMS .NET - Receiving Error - Reason Code 2003

Post new topic  Reply to topic
 IBM XMS .NET - Receiving Error - Reason Code 2003 « View previous topic :: View next topic » 
Author Message
TBarth
PostPosted: Fri Dec 06, 2013 7:40 am    Post subject: IBM XMS .NET - Receiving Error - Reason Code 2003 Reply with quote

Newbie

Joined: 16 Aug 2013
Posts: 6

We have .NET application which reads from various queues using the XMS API. For this particular application we read from 3 queues and every so often receive the error with reason code 2003 on 2 of the 3 queues. All 3 of the queues are setup to have persistent messages.

From everything I have researched, it appears that a long running transaction being rolled back causing this error. The reason for the long running transaction being rolled back appears to be from exhausted log space. When the transaction gets rolled back, it puts the messages we have previously read onto the queue so we end up reading duplicates.

In the API, when we create our "Session" to read from the queues, we specify false for the transacted parameter. Therefore we never call "Commit" on the session. We also use the auto-acknowledge mode on the session. This leads me to believe that we don't have any sort of unit of work sepcified explicitly, but could there be an implicit transaction of some sort? The tricky part is that we are able to read fine on 1 of the 3 queues without ever receiving the error.

Any ideas on where I could look next to troubleshoot such an issue?
Back to top
View user's profile Send private message
bruce2359
PostPosted: Fri Dec 06, 2013 8:17 am    Post subject: Re: IBM XMS .NET - Receiving Error - Reason Code 2003 Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9394
Location: US: west coast, almost. Otherwise, enroute.

TBarth wrote:

The reason for the long running transaction being rolled back appears to be from exhausted log space.
...
Any ideas on where I could look next to troubleshoot such an issue?

Verify the out-of-log-space theory by examining the qmgr error logs. How big are your logs? Circular? Linear? Primary? Secondary?
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
TBarth
PostPosted: Fri Dec 06, 2013 8:22 am    Post subject: Reply with quote

Newbie

Joined: 16 Aug 2013
Posts: 6

I'm told our logs are circular and as big as they can get.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Fri Dec 06, 2013 8:34 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9394
Location: US: west coast, almost. Otherwise, enroute.

TBarth wrote:
I'm told our logs are circular and as big as they can get.

As big as they can get is not a technical answer, and certainly not adequate to help you much. How big exactly? Primaries? Secondaries? Are you out of physical disk space? Is this a new problem? With only this one transaction? What is new? What is changed?

Is your transaction long-running? Are there other long-running tasks?
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
TBarth
PostPosted: Fri Dec 06, 2013 8:43 am    Post subject: Reply with quote

Newbie

Joined: 16 Aug 2013
Posts: 6

I don't have much visibility of the actual queues or queue managers, so I'm not sure if the log is truly the problem. I was mentioning the log primarily because I had read some documentation that mentioned it.

You mention long running transaction. It appears that we read 10K messages, then the reason code 2003 failure occurs, then the messages get rolled back onto the queue. This makes us believe that we are holding some long running transaction/unit of work while reading from the queue and it only allows us to read so many uncommited reads before blowing up and stopping us. However, we are not aware of creating any sort of unit or work or transaction because we are setting the session to not be transacted therefore we never explicitly call commit on it.

We were able to reproduce the issue in a test environment and since there is much less traffic on we end up getting reason code 2024. Which may be the original issue and the 2003 is occuring because the logs fill up prior to the 2024 happening?
Back to top
View user's profile Send private message
TBarth
PostPosted: Fri Dec 06, 2013 10:11 am    Post subject: Reply with quote

Newbie

Joined: 16 Aug 2013
Posts: 6

It turns out that there was an internal unit of work that was not being committed which would cause the messages to be rolled back on the queues upon a 2003 or 2024 failure. The solution to the problem was to set the flag on the MQ connection factory for WMQ_SYNCPOINT_ALL_GET to true. The default is false. That apparently solved our issue.

Setting the flag:
SetBooleanProperty(XMSC.WMQ_SYNCPOINT_ALL_GETS, true);
Back to top
View user's profile Send private message
bruce2359
PostPosted: Fri Dec 06, 2013 10:22 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9394
Location: US: west coast, almost. Otherwise, enroute.

TBarth wrote:
I don't have much visibility of the actual queues or queue managers, so I'm not sure if the log is truly the problem. I was mentioning the log primarily because I had read some documentation that mentioned it.

So, you were guessing - based on something you read somewhere. Good problem-determination involves capturing actual evidence BEFORE looking for a solution.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
Pradeesh J
PostPosted: Sun Jan 15, 2023 7:12 pm    Post subject: Reply with quote

Newbie

Joined: 15 Jan 2023
Posts: 2

Could you please explain how WMQ_SYNCPOINT_ALL_GETS will be used in the XMS library?
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 » IBM MQ API Support » IBM XMS .NET - Receiving Error - Reason Code 2003
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.