Author |
Message
|
lium |
Posted: Thu Dec 26, 2013 11:21 pm Post subject: sequence node does not work with error |
|
|
Disciple
Joined: 17 Jul 2002 Posts: 184
|
I developed a message flow to process the invoice.
The message flow includes a sequence node, every time it processes 5000 messages, when it comes to 5001, exception will happen with following:
RecoverableException
File:CHARACTER:F:\build\slot1\S000_P\src\DataFlowEngine\PluginInterface\ImbJniNode.cpp
Line:INTEGER:1304
Function:CHARACTER:ImbJniNode::evaluate
Type:CHARACTER:ComIbmSequenceNode
Name:CHARACTER:LargeInvoiceFileHandler#FCMComposite_1_5
Label:CHARACTER:LargeInvoiceFileHandler.Sequence
Catalog:CHARACTER:BIPmsgs
Severity:INTEGER:3
Number:INTEGER:2230
Text:CHARACTER:Caught exception and rethrowing
RecoverableException
File:CHARACTER:F:\build\slot1\S000_P\src\DataFlowEngine\EDA\ImbSeqPersistentStore.cpp
Line:INTEGER:550
Function:CHARACTER:ImbSeqPersistentStore::SequenceGroup::getSequenceNumberFromStore
Type:CHARACTER:ExecutionGroup
Name:CHARACTER:6046348a-4201-0000-0080-ef9e6baa07eb
Label:CHARACTER:BHSV
Catalog:CHARACTER:BIPmsgs
Severity:INTEGER:3
Number:INTEGER:4864
Text:CHARACTER:failed to get sequence state from queue
Insert
Type:INTEGER:5
Text:CHARACTER:SYSTEM.BROKER.SEQ.NUMBER
Insert
Type:INTEGER:2
Text:CHARACTER:2024
It seems like to me there is a internal setting related to Sequence node or queue manager.
I am wondering any one can help me out of this?
Thanks, |
|
Back to top |
|
 |
smdavies99 |
Posted: Fri Dec 27, 2013 12:14 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
what does MQ error code 2024 tell you?
are you trying to do all of this in a single unit of work? _________________ 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 |
|
 |
zpat |
Posted: Fri Dec 27, 2013 2:04 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
Yes, that's a classic, with messages hitting the max uncommitted limit.
It seems that today's developers don't understand transactional control very well (I had one design a transaction which kept a unit of work open for three hours - I only found out when our MQ transaction log wrapped around and backed out the unit of work!). _________________ Well, I don't think there is any question about it. It can only be attributable to human error. This sort of thing has cropped up before, and it has always been due to human error. |
|
Back to top |
|
 |
lium |
Posted: Fri Dec 27, 2013 4:41 am Post subject: |
|
|
Disciple
Joined: 17 Jul 2002 Posts: 184
|
I know the concept of unit of transaction.
The issue is:
However, This is a large file. I split and propagate it and downstream to sequence node.
So far, I would like to put FileInput node with Sequence node in the same message flow if possible.
I have change all compute node's transaction setting from Automatically to commit.
The Sequence node's transaction is set to Non-Persistent mode.
Question is:
However can I commit the each invoice transaction? |
|
Back to top |
|
 |
lium |
Posted: Fri Dec 27, 2013 5:02 am Post subject: |
|
|
Disciple
Joined: 17 Jul 2002 Posts: 184
|
FYI, The original MAXUMSGS is set to 10000, even though I just changed it to 20000, and recycled the whole qmgr and broker, the result is the same:
Exception will be thrown when it exceeds 5000 messages. |
|
Back to top |
|
 |
smdavies99 |
Posted: Fri Dec 27, 2013 5:12 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
Have you thought about changing the mode on the MQOutput Node so that it commits every message as it is written? _________________ 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 |
|
 |
lium |
Posted: Fri Dec 27, 2013 5:15 am Post subject: |
|
|
Disciple
Joined: 17 Jul 2002 Posts: 184
|
Sorry, I need to correct this.
I disconnected the MQOutput, once I reconnected, I found 10000 messages are processed.
So it is impacted by the MAXUMSGS.
The question is:
Is there any way to exceed the limit without lifting up this value? |
|
Back to top |
|
 |
lium |
Posted: Fri Dec 27, 2013 5:22 am Post subject: |
|
|
Disciple
Joined: 17 Jul 2002 Posts: 184
|
smdavies99 wrote: |
Have you thought about changing the mode on the MQOutput Node so that it commits every message as it is written? |
I can confirm you this is irrelevant to MQOutput node.
I ever disconnect the MQOutput node, but it bumps into the same problem.
My understanding is:
First this is caused by Sequence node.
Second, Sequence node will kick off transaction, and The Sequence node will commit the work when it detects the end of the group. (I am not sure the second is correct or not) |
|
Back to top |
|
 |
zpat |
Posted: Fri Dec 27, 2013 6:39 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
To convert a file into many MQ messages, you can code a simple flow that does just that and nothing else and make it non-transactional. By removing any logic from this flow it is very unlikely to fail. If you want to ensure 100% transactional safety - do NOT use files in the first place!
Otherwise you will always have a limitation on the number of messages before exceed the syncpoint limit. _________________ Well, I don't think there is any question about it. It can only be attributable to human error. This sort of thing has cropped up before, and it has always been due to human error. |
|
Back to top |
|
 |
|