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 » Triggering CICS Txn based on a message in Local Queue

Post new topic  Reply to topic
 Triggering CICS Txn based on a message in Local Queue « View previous topic :: View next topic » 
Author Message
deepeshk79
PostPosted: Tue Jul 10, 2007 5:49 am    Post subject: Triggering CICS Txn based on a message in Local Queue Reply with quote

Apprentice

Joined: 25 Mar 2007
Posts: 45
Location: Los Angeles

Hi,

I'm trying to trigger a CICS transaction when a message comes into my MQ Local Queue in Mainframe. The following is the process that I have followed. Please let me know if there is anything wrong in this..

Created a Local Queue
Created an Initiation Queue
Created a Process

Now in the Process in the Application ID I have given the CICS Transaction Name. Is this correct ???

Then I went to CKTI and started the Initiation Queue.

Now When I put a message in my Local Queue, my CICS pgm related to that Transaction should start. But its not happening in that way.

Please clarify what I have missed. I did check the Local Queue, Initiation Queue and Process Definitions and they seem to be ok.

Thanks,
Deepesh
Back to top
View user's profile Send private message AIM Address
Vitor
PostPosted: Tue Jul 10, 2007 5:59 am    Post subject: Re: Triggering CICS Txn based on a message in Local Queue Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

deepeshk79 wrote:

Then I went to CKTI and started the Initiation Queue.


Pedantically, you can't start a queue. You start CKTI (trigger monitor) and point it at the initiation queue you're using.

Aside from this possibly irrelevant point, are all the other conditions for whatever trigger type you've specified (which you don't mention) set up correctly? For instance, are you trying to start a trigger first with messages already in the queue?
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
deepeshk79
PostPosted: Tue Jul 10, 2007 6:17 am    Post subject: Reply with quote

Apprentice

Joined: 25 Mar 2007
Posts: 45
Location: Los Angeles

Vitor,

The Trigger Type is First (F). Yes I'm already having some messages in my Local Queue.

What should be the value in the Application ID in the Process Definition. In the IBM Manual, they have given an example of a program in Unix Env for which they are specifiy the exe path in Appl ID. In CICS what should be the value for Application ID.

Thanks,
Deepesh
Back to top
View user's profile Send private message AIM Address
Vitor
PostPosted: Tue Jul 10, 2007 6:19 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

deepeshk79 wrote:
The Trigger Type is First (F). Yes I'm already having some messages in my Local Queue.


If you refer back to the IBM manual, you'll notice it states the a trigger type first message is raised when the queue depth goes from 0 -> 1 (i.e. the first message is received) among other conditions.

Hence if you have messages on the queue, this condition will never be met and the trigger message never sent.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
zpat
PostPosted: Tue Jul 10, 2007 6:20 am    Post subject: Reply with quote

Jedi Council

Joined: 19 May 2001
Posts: 5866
Location: UK

Applid is the target CICS transaction id (xxxx). Appl Type is CICS.
Back to top
View user's profile Send private message
deepeshk79
PostPosted: Tue Jul 10, 2007 6:29 am    Post subject: Reply with quote

Apprentice

Joined: 25 Mar 2007
Posts: 45
Location: Los Angeles

I read my local queue till all the messages are read and the Current queue depth = 0. Then I started the CKTI (trigger monitor) and pointed it at the initiation queue that I'm using.

Now when i tried a message to the local queue, the Current queue depth becomes 1 but it does not trigger the CICS txn that i have given in Application id of my process definition.

Any thoughts ?

Deepesh
Back to top
View user's profile Send private message AIM Address
Vitor
PostPosted: Tue Jul 10, 2007 6:32 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

deepeshk79 wrote:

Any thoughts ?


One of the other conditions isn't met?
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
deepeshk79
PostPosted: Tue Jul 10, 2007 6:40 am    Post subject: Reply with quote

Apprentice

Joined: 25 Mar 2007
Posts: 45
Location: Los Angeles

Let me show you my definitions...

LOCAL QUEUE DEFINITION IS AS BELOW

Code:

                                             Display a Local Queue - 1
 
 Press F8 to see further fields, or Enter to refresh details.
 
                                                                 More:    +
 Queue name  . . . . . . . . . CSQ6.LOCAL.QUEUE
 Disposition . . . . . . . . : QMGR    CSQ6
 Description . . . . . . . . :
 
 Put enabled . . . . . . . . : Y  Y=Yes, N=No
 Get enabled . . . . . . . . : Y  Y=Yes, N=No
 Usage . . . . . . . . . . . : N  N=Normal, X=XmitQ
 Storage class . . . . . . . : DEFAULT
 CF structure name . . . . . :
 Dynamic queue type  . . . . : N  N=Non-dynamic (Predefined), T=Temporary,
                                  P=Permanent, S=Shared
 Page set identifier . . . . : 4
 Use counts - Output . . . . : 0             Input . . . . : 0
 Current queue depth . . . . : 1
 


Code:

                          Display a Local Queue - 4
 
 Press F7 or F8 to see other fields, or Enter to refresh details.
 
                                                                 More:  - +
 Queue name  . . . . . . . . : CSQ6.LOCAL.QUEUE
 Disposition . . . . . . . . : QMGR    CSQ6
 
 Trigger Definition
 
    Trigger type . . . . . . : F  F=First, E=Every, D=Depth, N=None
    Trigger set  . . . . . . : Y  Y=Yes, N=No
 
    Trigger message priority : 0  0 - 9
    Trigger depth  . . . . . : 1          1 - 999999999
 
    Initiation queue . . . . : CSQ6.INIT.QUEUE
    Process name . . . . . . : CSQ6.PROCESS.TRAN.XYZ1
    Trigger data . . . . . . :
 


INIT QUEUE DEFINITION IS AS BELOW

Code:


                          Display a Local Queue - 1
 
 Press F8 to see further fields, or Enter to refresh details.
 
                                                                 More:    +
 Queue name  . . . . . . . . . CSQ6.INIT.QUEUE
 Disposition . . . . . . . . : QMGR    CSQ6
 Description . . . . . . . . : INITIATION QUEUE
 
 Put enabled . . . . . . . . : Y  Y=Yes, N=No
 Get enabled . . . . . . . . : Y  Y=Yes, N=No
 Usage . . . . . . . . . . . : N  N=Normal, X=XmitQ
 Storage class . . . . . . . : DEFAULT
 CF structure name . . . . . :
 Dynamic queue type  . . . . : N  N=Non-dynamic (Predefined), T=Temporary,
                                  P=Permanent, S=Shared
 Page set identifier . . . . : 4
 Use counts - Output . . . . : 0             Input . . . . : 1
 Current queue depth . . . . : 0


Code:

                          Display a Local Queue - 4
 
 Press F7 or F8 to see other fields, or Enter to refresh details.
 
                                                                 More:  - +
 Queue name  . . . . . . . . : CSQ6.INIT.QUEUE
 Disposition . . . . . . . . : QMGR    CSQ6
 
 Trigger Definition
 
    Trigger type . . . . . . : F  F=First, E=Every, D=Depth, N=None
    Trigger set  . . . . . . : N  Y=Yes, N=No
 
    Trigger message priority : 0  0 - 9
    Trigger depth  . . . . . : 1          1 - 999999999
 
    Initiation queue . . . . :
    Process name . . . . . . :
    Trigger data . . . . . . :
 


PROCESS DEFINITION AS BELOW

Code:

                         Display a Process - 1
 
 Press F8 to see further fields, or Enter to refresh details.
 
                                                                 More:    +
 Process name  . . . . . . . . CSQ6.PROCESS.TRAN.XYZ1
 Disposition . . . . . . . . : QMGR    CSQ6
 Description . . . . . . . . :
 
 Application type  . . . . . : CICS
 
 Application
    ID . . . : XYZ1



Also for the Local Queue Default persistence . . . . : Y
and for Init Queue Default persistence . . . . : N

Are these definitions ok ??

Thanks,
Deepesh
Back to top
View user's profile Send private message AIM Address
tleichen
PostPosted: Tue Jul 10, 2007 6:54 am    Post subject: Reply with quote

Yatiri

Joined: 11 Apr 2005
Posts: 663
Location: Center of the USA

Is this maybe a security related problem? Have you checked the logs (MQ, CICS, and system)?
_________________
IBM Certified MQSeries Specialist
IBM Certified MQSeries Developer
Back to top
View user's profile Send private message
bob_buxton
PostPosted: Wed Jul 11, 2007 12:49 am    Post subject: Reply with quote

Master

Joined: 23 Aug 2001
Posts: 266
Location: England

Are you sure that your transaction is not being started and then failing quietly?
    Does it issue any 'Hello World' messages to show that is has started up?

    Has it been coded to expect an MQTM on input?

    Are there any console messages from the trigger monitor?

    Are there any messages on the Dead Letter Queue?

    If you are able to run CKQC what does the CKTI display show for the number of APIs issued by the trigger monitor?

    If you temporarily change your process to specify transaction CKBR does the CICS bridge transaction start?

_________________
Bob Buxton
Ex-Websphere MQ Development
Back to top
View user's profile Send private message
deepeshk79
PostPosted: Wed Jul 11, 2007 2:49 am    Post subject: Reply with quote

Apprentice

Joined: 25 Mar 2007
Posts: 45
Location: Los Angeles

Bob,

Here r the answers

Quote:

Are you sure that your transaction is not being started and then failing quietly?


Yes the transaction did start and from the CICS Admin i got the abend ABM3. The description of the error is as below

=========================================
ERZ062007E Abnormal termination ABM3. Basic Mapping Support (BMS) operation requested by a non-terminal transaction.

Explanation: A non-terminal transaction, such as an Automatic Transaction Initiation (ATI) transaction with no terminal specification, requested a BMS operation.

System Action: CICS terminates the transaction with abend code ABM3.

User Response: Either remove the BMS commands from the transaction, or initiate the transaction from a terminal.
=========================================

Quote:

Does it issue any 'Hello World' messages to show that is has started up?


NO

Quote:

Has it been coded to expect an MQTM on input?


NO

I think the program is failing at the EXEC CICS SEND Command. Is it that i have to accept MQTM as input always ? If you have any sample program which accepts MQTM as input, plz send me the link.

Thanks,
Deepesh
Back to top
View user's profile Send private message AIM Address
Vitor
PostPosted: Wed Jul 11, 2007 2:56 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

deepeshk79 wrote:
Yes the transaction did start and from the CICS Admin i got the abend ABM3...I think the program is failing at the EXEC CICS SEND Command.


Then it sounds like the trigger process is working fine, but you're trying to send a BMS map to a non-terminal context. In any event, it's a application issue and you need to resolve it outside the strict MQ arena.

deepeshk79 wrote:

Is it that i have to accept MQTM as input always ? If you have any sample program which accepts MQTM as input, plz send me the link.


All triggered applications receive a triggered header; how else would they know how, why or where they'd been triggered from? Samples are provided in all the usual places and the header format is described in the APR. The use of the fields is described in the APG, not far from where you read about the triggering conditions.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
cschneid
PostPosted: Wed Jul 11, 2007 8:24 am    Post subject: Reply with quote

Novice

Joined: 22 Mar 2005
Posts: 13

deepeshk79 wrote:


If you have any sample program which accepts MQTM as input, plz send me the link.



You might want to take a look at the MA1K SupportPac. Program J7200506 has some example code which may be helpful.
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 » Triggering CICS Txn based on a message in Local Queue
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.