|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
MQ persistent messages go missing in WMQ v7 and WMB v7 |
« View previous topic :: View next topic » |
Author |
Message
|
Diwakar |
Posted: Fri Feb 25, 2011 7:19 pm Post subject: MQ persistent messages go missing in WMQ v7 and WMB v7 |
|
|
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 |
|
 |
fjb_saper |
Posted: Fri Feb 25, 2011 7:25 pm Post subject: |
|
|
 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 |
|
 |
Diwakar |
Posted: Fri Feb 25, 2011 7:41 pm Post subject: |
|
|
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 |
|
 |
fjb_saper |
Posted: Fri Feb 25, 2011 9:11 pm Post subject: |
|
|
 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 |
|
 |
smdavies99 |
Posted: Fri Feb 25, 2011 11:05 pm Post subject: |
|
|
 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 |
|
 |
fatherjack |
Posted: Sat Feb 26, 2011 1:40 am Post subject: |
|
|
 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 |
|
 |
PeterPotkay |
Posted: Sat Feb 26, 2011 5:52 am Post subject: |
|
|
 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 |
|
 |
rekarm01 |
Posted: Sun Feb 27, 2011 2:23 am Post subject: Re: MQ persistent messages go missing in WMQ v7 and WMB v7 |
|
|
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 |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|