ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » General IBM MQ Support » two phase commit for : z/OS, Cics, 3270 bridge, DB2, Cobol

Post new topic  Reply to topic
 two phase commit for : z/OS, Cics, 3270 bridge, DB2, Cobol « View previous topic :: View next topic » 
Author Message
EgilsJ.Rubenis
PostPosted: Thu Jan 23, 2003 12:47 am    Post subject: two phase commit for : z/OS, Cics, 3270 bridge, DB2, Cobol Reply with quote

Acolyte

Joined: 18 Nov 2002
Posts: 63
Location: Germany, Alfeld

Hi,

can somebody tell me how to implement a two phase commit?
I have incoming messages on Queue triggering a CicsTransaction.
The CicsTransaction updates data in a DB2 table.

My assumption so far from what i read in books is:

CicsTransaction
EXEC CICS SYNCPOINT
PERFORM UNTIL NO FURTHER MESSAGES
MQGET
INSERT DATA on TABLE
COMMIT

Question: Does the Commit set both, the Message and the DB Changes
or ist there anything else to do ?

thanks for your help
Back to top
View user's profile Send private message Send e-mail
oz1ccg
PostPosted: Thu Jan 23, 2003 2:07 am    Post subject: Reply with quote

Yatiri

Joined: 10 Feb 2002
Posts: 628
Location: Denmark

In CICS, the CICS acts as two-phase Commit coordinator, and therefore demands the other resource managers to either do commit or backout. So twophase commit is done automaticly in CICS.

You control it with EXEC CICS SYNCPOINT or EXEC CICS SYNCPOINT ROLLBACK, this is all in the CICS Application Programming Reference manual.

I have a comment on your design:
I personally like to do commits often, so I don't get a deadlock, because many systems are on-line systems.

CicsTransaction
Code:

PERFORM UNTIL NO FURTHER MESSAGES
   MQGET
   INSERT DATA on TABLE
   EXEC CICS SYNCPOINT
   END-PERFORM
MQCLOSE

The last MQCLOSE is important, (the manual say that CICS do it automaticly) because the CICS will first issue the MQCLOSE when it have resources for cleanup, or are in need of resources.

I had this situation:
The queue was open for input, and therefore didn't MQ issue a new trigger, and waited until eiter the triggerinterval occured or cleanup in the CICS.... Quite difficult to spot, because the CICS task was invisible in CEMT I TA(*)

Just my $0.02
_________________
Regards, Jørgen
Home of BlockIP2, the last free MQ Security exit ver. 3.00
Cert. on WMQ, WBIMB, SWIFT.


Last edited by oz1ccg on Thu Jan 23, 2003 2:14 am; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
bob_buxton
PostPosted: Thu Jan 23, 2003 2:09 am    Post subject: Reply with quote

Master

Joined: 23 Aug 2001
Posts: 266
Location: England

You use the EXEC CICS SYNCPOINT to perform the commit so you would not do that call first. This will cause DB2, MQ and any other resource managers to commit their updates.

You could choose to issue the Syncpoint after performing the DB2 updates relating to a sungle MQ message, after a group of messages or after emptying the whole queue. If you choose the latter option you need to consider how long you might be holding locks on DB2 rows whilst processing the queue, especially if you use MQGET WAIT to wait for more messages to arrive on the queue.
_________________
Bob Buxton
Ex-Websphere MQ Development
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » two phase commit for : z/OS, Cics, 3270 bridge, DB2, Cobol
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.