|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Transaction Completion from Multiple Message Propagation |
« View previous topic :: View next topic » |
Author |
Message
|
tigerstone |
Posted: Tue Sep 23, 2014 11:07 am Post subject: Transaction Completion from Multiple Message Propagation |
|
|
Novice
Joined: 06 Feb 2014 Posts: 20
|
The Message Flow Application recieves a Flat File from a Queue. This data needs to be written to disk. Also a XML message needs to be created and delivered to a Queue.
The Message Flow:
MQ Input -> Compute > Out1:File Output Out2:MQ Output
Compute Node Esql
Code: |
SET OutputRoot = InputRoot;
PROPAGATE TO TERMIANAL 'out1';
SET OutputRoot.Properties.MessageSet = 'AAAA';
SET OutputRoot.Properties.MessageSet = 'BBBB';
SET OutputRoot.Properties.MessageFormat = 'XML';
SET OutputRoot.XMLNSC.Root.Data = 'xyz';
PROPAGATE TO TERMINAL 'out2';
RETURN FALSE;
|
If a circumstance were to arise such that the MQ Output has reached its Max Queue Depth Limit. How to delete its corresponding File that has been written to disk earlier[ i.e PROPAGATE TO TERMIANAL 'out1'] ?
Or Is there a procedure to accomplish both transactions simultaneously after the message flow has completed successfully. In case an exception is generated at any time of execution, neither transaction will occur |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Sep 23, 2014 11:11 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Files are non-transactional.
You can't tell a FileOutput node to "delete" a file.
Put the queue first. Once the queue is committed, write the file.
Also, consider storing the data in a database, rather than a file. |
|
Back to top |
|
 |
tigerstone |
Posted: Tue Sep 23, 2014 11:26 am Post subject: |
|
|
Novice
Joined: 06 Feb 2014 Posts: 20
|
1) Why a Database over File System ?
2) What If a the Finish File Terminal were connected and prompted after the queue is committed, In this case the file will be created in mqsitransit directory and move to the out directory on "Finish File". |
|
Back to top |
|
 |
Vitor |
Posted: Tue Sep 23, 2014 11:35 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
tigerstone wrote: |
1) Why a Database over File System ? |
You can roll back changes to a database in a unit of work as you describe in your OP. You can't roll back a file system.
tigerstone wrote: |
2) What If a the Finish File Terminal were connected and prompted after the queue is committed, In this case the file will be created in mqsitransit directory and move to the out directory on "Finish File". |
And what do you do if the queue can't be written to? The partially completed file will remain in the mqsitransit directory with a file handle open on it until the flow is bounced. At which point the handle will close and the file will remain in the mqsitransit directory indefinately. Or until you manually delete it. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
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
|
|
|
|