Author |
Message
|
padleywoods |
Posted: Thu Sep 23, 2010 1:05 am Post subject: MBFE FileOutput node fails on AIX on writing 26th record |
|
|
Novice
Joined: 12 Dec 2005 Posts: 12 Location: UK
|
We are running WMB v6.0.0.9, with MBFE FixPack 4. A flow has been written to take messages from a queue and write to a file. The flow logic is:
MQInput (trigger queue) --> FileProxy --> JCN --> MQGet --> Compute --> FileOutput
The MQInput queue is present to merely trigger the flow. THe JCN determines how many messages are on the designated input queue. The MQGet reads the next message from this queue. The Compute node controls the processing by propagating the message to the FileOutput node and then looping back to the MQGet node.
When this is unit-tested on a Windows development environment, we have no problems at all, regardless of the number & size of input messages
Now we've gone to the next level of testing on AIX, we encounter an error when trying to write the 26th record/message to the output file. The first 25 messages are processed OK; the 26th always causes a failure.
There is no error when writing files with less than 25 records. We have varied the length of the input messages from 5 bytes to 10K bytes - the error remains exactly the same.
A usertrace reveals no error. An MBFE trace reveals no error. We've chmod'ed the entire /var filesystem to allow total access (i.e. 777). And there is oodles of space available within the /var filesystem.
A PMR has been raised but I was wondering whether anyone has come across similar behaviour in their own testing and what the fix might have been!!
A thought is that MBFE temporarily writes the file a to a different filesystem than /var and it is accessing this that causes the error. Does anyone know whether this is the case? |
|
Back to top |
|
 |
WMBDEV1 |
Posted: Thu Sep 23, 2010 2:11 am Post subject: Re: MBFE FileOutput node fails on AIX on writing 26th record |
|
|
Sentinel
Joined: 05 Mar 2009 Posts: 888 Location: UK
|
padleywoods wrote: |
and then looping back to the MQGet node.
|
How did you achieve this loop? If its by wiring terminals then that might need a rethink.
Quote: |
the 26th always causes a failure. |
How does this failure manifest itself? EG restarts? msg backed out?
Are there any clues in the system / broker error logs (rather than the traces you took) |
|
Back to top |
|
 |
elvis_gn |
Posted: Thu Sep 23, 2010 3:03 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi padleywoods,
You did not mention what the error thrown in the flow is ? Neither did you mention that there is no error thrown...
Regards. |
|
Back to top |
|
 |
padleywoods |
Posted: Thu Sep 23, 2010 6:16 am Post subject: |
|
|
Novice
Joined: 12 Dec 2005 Posts: 12 Location: UK
|
The loop is achieved thru returning back to the MQGet node after propagating to the file output node; the return to the MQGet node is achieved through wiring. However, please bear in mind that this flow does not error when we run in Windows environment - only on AIX.
By manipulating the flow and trying to simulate by writing multiple messages to the file output node, similar behaviour occurs in that a scenario with e.g. 15 messages works fine but a scenario with 30 fails.
The broker logs appear to suggest that an unhandled exception occurred in the java code of the file output node and this causes the execution group to terminate and be restarted. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Sep 23, 2010 6:35 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
padleywoods wrote: |
The broker logs appear to suggest that an unhandled exception occurred in the java code of the file output node and this causes the execution group to terminate and be restarted. |
It's news to be that the File Output node has any Java code; all of WMB & it's nodes are written in C.
Is it possible that the JCN is abending immediately on return? Or that the broker environment (in which the File node runs) is corrupting the JVM? This kind of wired loop with an MQGet node is notorious for running execution groups out of memory, stack, etc. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mgk |
Posted: Thu Sep 23, 2010 6:44 am Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
Quote: |
It's news to be that the File Output node has any Java code; all of WMB & it's nodes are written in C. |
This is no longer the case. Several of the newer built-in nodes (including the File nodes) are written in Java. And the rest are C++  _________________ MGK
The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Sep 23, 2010 6:45 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Vitor wrote: |
[It's news to be that the File Output node has any Java code; all of WMB & it's nodes are written in C. |
Broker is a mix of C++ and Java. Some of the built-in nodes are written entirely in Java, some are written as compiled subflows, some are written in C++. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Sep 23, 2010 6:47 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
mgk wrote: |
Quote: |
It's news to me that the File Output node has any Java code; all of WMB & it's nodes are written in C. |
This is no longer the case. Several of the newer built-in nodes (including the File nodes) are written in Java. And the rest are C++  |
Good Morning - Here Is The News!
So this Java stuff is leaking into WMB? Urgh. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Sep 23, 2010 6:52 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Vitor wrote: |
mgk wrote: |
Quote: |
It's news to me that the File Output node has any Java code; all of WMB & it's nodes are written in C. |
This is no longer the case. Several of the newer built-in nodes (including the File nodes) are written in Java. And the rest are C++  |
Good Morning - Here Is The News!
So this Java stuff is leaking into WMB? Urgh. |
Java is a fine and decent language when written by well trained and experienced programmers.
I do not, mind you, make that same claim about Java EE. |
|
Back to top |
|
 |
mgk |
Posted: Thu Sep 23, 2010 6:53 am Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
Quote: |
So this Java stuff is leaking into WMB? |
FYI, Every Execution Group has always had a JVM inside it right from the beginning when WMB was called MQSI way back in version 2.0. All that has changed is that the broker is using it more and for more things... _________________ MGK
The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Sep 23, 2010 6:55 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
mgk wrote: |
Quote: |
So this Java stuff is leaking into WMB? |
FYI, Every Execution Group has always had a JVM inside it right from the beginning when WMB was called MQSI way back in version 2.0. All that has changed is that the broker is using it more and for more things... |
It's my day for learning things.
I have this sudden urge to take a really hot shower.....  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Sep 23, 2010 6:57 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Vitor wrote: |
mgk wrote: |
Quote: |
So this Java stuff is leaking into WMB? |
FYI, Every Execution Group has always had a JVM inside it right from the beginning when WMB was called MQSI way back in version 2.0. All that has changed is that the broker is using it more and for more things... |
It's my day for learning things. |
Me too. I didn't think there was a JVM in the mix until they introduced the JCN in v5 or so.
ETA... maybe I'm now remembering a bit of being able to write Java plugins in 2.1... hrm.... yes... okay. |
|
Back to top |
|
 |
smdavies99 |
Posted: Thu Sep 23, 2010 7:45 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
From the OP, this is not about the Broker File Output stuff.
It is about the MBFE nodes that predate the Broker File nodes and was brought in from Impremeur (or an Italian company of a name much like that).
I used then extensively on a project in London that started on V5 and during development went to V6 (or broker) and raised a number of PMR;s on them
which led to quite an improvement in their operation.
Anyway, they do use Java under the hood. For this reason we had to configure the five parallel output streams (additional instances would not cut it) in a partucular way to stop JVM problems.
Perhaps the reason is that the JVM heap is getting exhausted.
Also, I find this particular design one that I wouldn't adopt at all.
As we all know loops through nodes in Broker is not a recommneded practice unless you are very, very careful and I certainly would not use them using the MBFE nodes.
As they are single ended nodes, instead of doing a propagate then it might be better to use a flow order node with the MBFE one on the 1st leg.
The other way, is to split the operation into two parts with an intermediate queue. You can loop round getting the message, doing the processing and posting the ready for output date onto a queue. Then the second flow reads each message as a single unit of work, writes it and then it's job is done. _________________ 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 |
|
 |
Vitor |
Posted: Thu Sep 23, 2010 8:41 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
smdavies99 wrote: |
From the OP, this is not about the Broker File Output stuff.
It is about the MBFE nodes that predate the Broker File nodes and was brought in from Impremeur (or an Italian company of a name much like that). |
Ah!
smdavies99 wrote: |
Also, I find this particular design one that I wouldn't adopt at all.
As we all know loops through nodes in Broker is not a recommneded practice unless you are very, very careful |
 _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Sep 23, 2010 1:31 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
mqjeff wrote: |
Java is a fine and decent language when written by well trained and experienced programmers.
I do not, mind you, make that same claim about Java EE |
I would be so bold as to extend the claim to Java EE but with the same caveat.
You have to have well trained and experienced programmers to write that code otherwise we will all dine on pasta...(spaghetti code).
And remember that a decent J2EE programmer is way harder to find than a decent Java programmer...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|