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 » Mainframe, CICS, TXSeries » Messages on queue when Cics is down

Post new topic  Reply to topic
 Messages on queue when Cics is down « View previous topic :: View next topic » 
Author Message
giuly020277
PostPosted: Tue Aug 07, 2007 6:42 am    Post subject: Messages on queue when Cics is down Reply with quote

Centurion

Joined: 07 Aug 2007
Posts: 146
Location: Florence,Italy

Hello everyone,
i need your help. I proove to explain my problem.
my queue Z/OS receive some messages from an MQ on Sun solaris. When it happen...a trigger start a transaction ( called TMAT)who update some database. it always run correctly until cics is running.During the night....cics is down...and my queue receive messages. At morning...at cics start up transactuion CKTI check initiation queue and start my transaction tmat. this one...get my messages away from my queue...but doesnt update my database. Why?? when it run when cics is running it's all ok. when it run at cics startup...it doesn't update. It depend on application program??

Help me please....it seems that at cics startup transaction does'nt retrieve information about queue....

thanks all

Giuliano
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Aug 07, 2007 6:53 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Is the database started, when CICS is starting?

Are you seeing errors? Is your program abending?
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
Mr Butcher
PostPosted: Tue Aug 07, 2007 6:55 am    Post subject: Reply with quote

Padawan

Joined: 23 May 2005
Posts: 1716

well you said it gets the message but does not update the database... so it gets information about the queue.

you should do some debugging at the database part..... and make sure you check returncodes properly (and output them somewhere too)
_________________
Regards, Butcher
Back to top
View user's profile Send private message
giuly020277
PostPosted: Tue Aug 07, 2007 10:41 pm    Post subject: Reply with quote

Centurion

Joined: 07 Aug 2007
Posts: 146
Location: Florence,Italy

hello ,

thank u for your fast reply.

For jefflowrey
yes...databases are started when cics is starting...and programmer doesn't see an ything wrong about program.


It's strange...because whe cics in up....all things go right: from sun solaris we receive a message. Trigger is on...and run TMAT transaction who update databases and write on another queue on mainframe.

When cics is down...and we have messages on the queue....at starting of Cics....transaction TMAT run...it takes messages from queue...but it doesn't do nothing...

I have to say to programmer to check how it get information from queue?


thanks

Giuliano
Back to top
View user's profile Send private message
giuly020277
PostPosted: Tue Aug 07, 2007 11:14 pm    Post subject: Reply with quote

Centurion

Joined: 07 Aug 2007
Posts: 146
Location: Florence,Italy

...i forget to ask u a thing...

I have to put my transaction TMAT on PLT table of Cics.....to be sure it run at start up of cics....or it automatically start when transaction CKTI detect that there are messages on the queue??
Back to top
View user's profile Send private message
Mr Butcher
PostPosted: Tue Aug 07, 2007 11:42 pm    Post subject: Reply with quote

Padawan

Joined: 23 May 2005
Posts: 1716

if ckti starts and opens the initiation queue, then - if trigger conditions are met - a trigger is created for the application queue that holds messages. So there is no need to put the transaction into the plt (if a transaction is triggered you get the TMC structure passed that holds the queuename you need to procdess. how do you handle that with plt?).


from my point of view there are several possibilities / reasons

1. your program is started too early, and thats whay it fails on the first time

2. your program fails every first time

3. your program is not very error-prone. where is your unit of work (if you get the message, but dont update database and dont write queue?)

4. something else

i would start with checking the MQ and DB2 calls in the program code and verify the return code checkings in the program, and then perform some debugging......
_________________
Regards, Butcher
Back to top
View user's profile Send private message
giuly020277
PostPosted: Wed Aug 08, 2007 1:33 am    Post subject: Reply with quote

Centurion

Joined: 07 Aug 2007
Posts: 146
Location: Florence,Italy

hello,
can u tell me please why u tell me that my transaction is started too early??
Why it should be go wrong all first time?

Thank u for your help

Ciao

Giuliano
Back to top
View user's profile Send private message
Mr Butcher
PostPosted: Wed Aug 08, 2007 2:54 am    Post subject: Reply with quote

Padawan

Joined: 23 May 2005
Posts: 1716

why? because it is a bad design, bad setup, bad programming, or all of it, or none of it.
i do not know why it is just a guess or assumption or the way i would approach the problem. you can continue asking, people will answer, everyone with different assumption or guesses, and you will still not know why.
you know the component that fails, you also know when it fails, so what prevents you from investigating and debugging exactly that situation?
_________________
Regards, Butcher
Back to top
View user's profile Send private message
giuly020277
PostPosted: Wed Aug 08, 2007 11:05 pm    Post subject: Reply with quote

Centurion

Joined: 07 Aug 2007
Posts: 146
Location: Florence,Italy

hello,
i solved my problem.
the problem was that i had a trigger type of FIRST and programmer has inserted a loop who read all records on queue. Now i have setted trygger type EVERY and now..all things go right.

At Cics startup....ckti let my transaction (TMAT) to run....and it read all messages on queue.

Thank u all

Ciao
Back to top
View user's profile Send private message
Mr Butcher
PostPosted: Wed Aug 08, 2007 11:34 pm    Post subject: Reply with quote

Padawan

Joined: 23 May 2005
Posts: 1716

Quote:
the problem was that i had a trigger type of FIRST and programmer has inserted a loop who read all records on q


i do not see why this is a problem. this is "normal" processing for a queue trigger first.

from my point of view, your problem still exists. looks like your first trigger fails (somehow), and then because of trigger first you are not triggered again (but in that case it conflicts with your statement that the first message is read because you would be triggered again if you leave a trigger-first-queue non empty).
looks like trigger every circumvents your problem because you are triggered again if a message arrives, and then your program works processing all messages.

well it is up to you to investigate the "true" problem.....
_________________
Regards, Butcher
Back to top
View user's profile Send private message
kevinf2349
PostPosted: Sun Aug 12, 2007 12:13 pm    Post subject: Reply with quote

Grand Master

Joined: 28 Feb 2003
Posts: 1311
Location: USA

Quote:
the problem was that i had a trigger type of FIRST and programmer has inserted a loop who read all records on queue. Now i have setted trygger type EVERY and now..all things go right.


I would be extremely surprised if that was the real problem. It sounds to me as if the real problem is syncpoint usage in the TMAT transaction. It is only working on EVERY because the CMIT is being done when each transaction ends. Far from slolving the problem, what you have done is potentially risk a SOS in your CICS region.

Further thought....what does the TMAT transaction actually do in MQ terms? Does it only process one message and then exit or is it processing messages in a loop until it gets a 2033? Either way simply changing the triggering from FIRST to EVERY may very well have design implications for transacton TMAT.
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 » Mainframe, CICS, TXSeries » Messages on queue when Cics is down
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.