Author |
Message
|
cmmatei |
Posted: Tue Jan 02, 2007 2:55 am Post subject: WMB Flow reports Database Transaction as finished |
|
|
 Apprentice
Joined: 06 Feb 2006 Posts: 26 Location: PARIS/NEW YORK
|
I have some problems with a flow that inserts BLOB data into Oracle table.
I have in production 2 WMB 6.0 flows :
- FLOW1 : MQInput + XMLTransformation + Database Node (Archive Data in Oracle BLOB) + Database Node (Monitor Status of the message) + MQOutput message A to APPLICATION (deployed on 2 EG, transaction is set to Automatic in database nodes).
APPLICATION is situated on another server. APPLICATION receives message A from FLOW1 then sends message B to FLOW2.
- FLOW2 receives the message from APPLICATION and looks in database for the ID of the BLOB that FLOW1 inserted, than inserts another line in Oracle table (deployed on 2 EG)
When database activity is important, FLOW2 is unable to retrieve the ID of the Oracle BLOB from the database. It seems that the FLOW1 transaction is not finished yet and FLOW2 throws an exception in the DatabaseNode that makes the SELECT.
In that case, why WMB reports that transaction in FLOW1 is finished ? Oracle needs more time to insert the BLOB.
Can anybody help me ?
Thank you? |
|
Back to top |
|
 |
gregop |
Posted: Tue Jan 02, 2007 3:06 am Post subject: |
|
|
Voyager
Joined: 24 Nov 2006 Posts: 81
|
In Flow1 is MQOutput Transaction Mode = Automatic ?
Are the messages passed to Flow1 persistent ? |
|
Back to top |
|
 |
cmmatei |
Posted: Tue Jan 02, 2007 3:21 am Post subject: |
|
|
 Apprentice
Joined: 06 Feb 2006 Posts: 26 Location: PARIS/NEW YORK
|
Transaction Mode is Automatic in MQOutput Node.
Messages are not persistent in MQSeries.
Thks |
|
Back to top |
|
 |
cmmatei |
Posted: Tue Jan 02, 2007 3:29 am Post subject: |
|
|
 Apprentice
Joined: 06 Feb 2006 Posts: 26 Location: PARIS/NEW YORK
|
Persistence Mode is set to Automatic in MQOutput of FLOW1
Transaction Mode is set to Automatic in MQInput or MQOutput or DatabaseNodes of FLOW1
Thank you. |
|
Back to top |
|
 |
gregop |
Posted: Tue Jan 02, 2007 3:49 am Post subject: |
|
|
Voyager
Joined: 24 Nov 2006 Posts: 81
|
If messages to FLOW1 are non-persistent and MQInput transaction mode is automatic then the flow is NOT under syncpoint. This may lead to FLOW2 reading messages before the FLOW1 db update is committed.
You should be able to solve this by setting FLOW1 MQInput Transaction Mode = 'YES' (or passing messages into FLOW1 as persistent). |
|
Back to top |
|
 |
cmmatei |
Posted: Tue Jan 16, 2007 9:07 am Post subject: |
|
|
 Apprentice
Joined: 06 Feb 2006 Posts: 26 Location: PARIS/NEW YORK
|
I set FLOW1 MQInput Transaction Mode = 'YES'
The problem is still the same: FLOW2 tries to do his job but FLOW1 didn't finish database BLOB insert. |
|
Back to top |
|
 |
|