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 » WebSphere Message Broker (ACE) Support » MQ persistent messages go missing in WMQ v7 and WMB v7

Post new topic  Reply to topic
 MQ persistent messages go missing in WMQ v7 and WMB v7 « View previous topic :: View next topic » 
Author Message
Diwakar
PostPosted: Fri Feb 25, 2011 7:19 pm    Post subject: MQ persistent messages go missing in WMQ v7 and WMB v7 Reply with quote

Apprentice

Joined: 06 Apr 2005
Posts: 33

Hello,

We have MQ v7.0.1, and MB v7.0.0.1 on Win 2008 servers.
We just upgraded from MQv6.0.x, and MB v6.0.x, and JText Adapters.

We have a peculiar problem (we had this in version 6 too, and we thought upgrading to v7 would fix our problem but it didn't).

We have a series of msgflows like:

flow-A --> flow-B --> flow-C --> flow-D

All flows have just 1 instance running (additional instances in each of the 4 BAR files is set to zero).
Each BAR file has just 1 flow, and is deployed to a separate execution group.

Big xml files, each with a fixed xml-header and repeating structures inside the xml-body are dropped into a folder.
And a java program splits them into smaller xml files, each having the fixed xml-header and a fixed number of repeating structures.
And we verified that the java program works correctly all the time.

flow-A takes the smaller xml files(that were split by the java program) and converts each of them to a persistent MQ message and puts them into a queue, then

flow-B takes the persistent messages and checks the MQ headers, and puts them into a different queue, then

flow-C takes the messages and processes them, and inserts/updates an Oracle database on a remote unix server, and puts them into a queue, then

flow-D takes them and does further processing, and inserts/updates an Oracle database on a remote unix server, and sends them across the network to a different queue manager on a different box.

We verified that flow-A worked fine all the time. All the smaller xml files were properly becoming MQ messages in the destination queue.
We also verified that flow-B too worked fine all the time.
When the MQ messages go to flow-C some of them just disappear, leaving no clue as to what happened.No errors anywhere. They seem to disappear in flow-C (after flow-B outputs the messages successfully).
Sometimes the messages disappear in flow-D, but this mostly happens in flow-C.

When the MQ messages go onto the second queue manager, a J2EE application server on the box takes the messages and further processes them, and updates the same oracle database that the MB does.

When we check the database we see some missing MQ messages (as the initial updates to the database from flow-C in MB didn't happen).

But when we re-drop the missing split files into the folder, they get processed successfully by flows-A,B,C, and D and then update the database properly.

We see the issue of missing-messages occasionally, especially when the original xml file is huge (when the split-files and the resulting MQ messages are more).

As mentioned already we saw the issue with both version 6 and 7 in production.
FYI - When we upgraded to version 7, we replaced the JText Adapter with flow-A.

And whenever we saw the issue, we just re-dropped the missing files (that became MQ messages) and the issue got resolved for the short-term.

But so far we couldn't figure out why the missing-messages issue has been happening.
As mentioned already, all of them are persistent messages (flow-A sets the persistence first, and then it remains the same on all the other flows)

Any clues / ideas where we can look ? I tend to think that the issue has something to do with the ODBC connection but not sure about it.

Any help is greatly appreciated.

Thanks.
_________________
Diwakar.


Last edited by Diwakar on Fri Feb 25, 2011 7:34 pm; edited 1 time in total
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Feb 25, 2011 7:25 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Have you checked your DB error handling in the flow?
What happens if the DB returns an error code?
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Diwakar
PostPosted: Fri Feb 25, 2011 7:41 pm    Post subject: Reply with quote

Apprentice

Joined: 06 Apr 2005
Posts: 33

There is an exception handling subflow in each of the flows A, B , C, and D and the subflow extracts the error code/text and forms an exception message and puts it to an error queue.

But we don't see the missing messages (their corresponding exception messages) in the error queue either.

Thanks.
_________________
Diwakar.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Feb 25, 2011 9:11 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Maybe you have an exception that is not handled?
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
smdavies99
PostPosted: Fri Feb 25, 2011 11:05 pm    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

Get inhibit each of the Input Queues.

Then release a whole shedload of messages. Ingore the MQ 2016 errors.

Then uninhibit the first input Q
Wait for the messages to be processed and appear on the next input Q. Count total messages at each step.
Look at the IPPROCS count for each Queue.

Repeat for each step.

Make sure you have BOQ's defined for each inputQ
Make sure there is a properly defined DLQ for the QMGR
Make sure that the messages are really Persistent at each step. Used amqsbcg or rfhutil (or similar) to browse the messages at each step.

Take small repeatable steps. Don't jump to conclusions no matter what.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
fatherjack
PostPosted: Sat Feb 26, 2011 1:40 am    Post subject: Reply with quote

Knight

Joined: 14 Apr 2010
Posts: 522
Location: Craggy Island

smdavies99 wrote:
Make sure you have BOQ's defined for each inputQ
Make sure there is a properly defined DLQ for the QMGR
Make sure that the messages are really Persistent at each step. Used amqsbcg or rfhutil (or similar) to browse the messages at each step.


And make sure the transaction mode on all your nodes is set appropriately.
_________________
Never let the facts get in the way of a good theory.
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Sat Feb 26, 2011 5:52 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

And verify the MQMD.Expiry value being used.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
rekarm01
PostPosted: Sun Feb 27, 2011 2:23 am    Post subject: Re: MQ persistent messages go missing in WMQ v7 and WMB v7 Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 1415

And make sure that all of the relevant output terminals in each of the message flow nodes is connected to a subsequent node, (not counting the "Failure" terminals, or the final MQOutput node). If a node routes a message to an unconnected terminal before reaching an output or reply node, that will successfully complete the transaction, and quietly consume the message. Likely suspects include (but are not limited to) Filter nodes with unconnected "Unknown" terminals, or Compute nodes with improper PROPAGATE statement TO TERMINAL clauses.

A debug-level user trace might be impractical for a large number of messages, but a normal-level user trace would be sufficient to determine which node(s) might be inadvertantly consuming messages.
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 » WebSphere Message Broker (ACE) Support » MQ persistent messages go missing in WMQ v7 and WMB v7
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.