Author |
Message
|
deepeshk79 |
Posted: Tue Jul 10, 2007 5:49 am Post subject: Triggering CICS Txn based on a message in Local Queue |
|
|
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 |
|
 |
Vitor |
Posted: Tue Jul 10, 2007 5:59 am Post subject: Re: Triggering CICS Txn based on a message in Local Queue |
|
|
 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 |
|
 |
deepeshk79 |
Posted: Tue Jul 10, 2007 6:17 am Post subject: |
|
|
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 |
|
 |
Vitor |
Posted: Tue Jul 10, 2007 6:19 am Post subject: |
|
|
 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 |
|
 |
zpat |
Posted: Tue Jul 10, 2007 6:20 am Post subject: |
|
|
 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 |
|
 |
deepeshk79 |
Posted: Tue Jul 10, 2007 6:29 am Post subject: |
|
|
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 |
|
 |
Vitor |
Posted: Tue Jul 10, 2007 6:32 am Post subject: |
|
|
 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 |
|
 |
deepeshk79 |
Posted: Tue Jul 10, 2007 6:40 am Post subject: |
|
|
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 |
|
 |
tleichen |
Posted: Tue Jul 10, 2007 6:54 am Post subject: |
|
|
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 |
|
 |
bob_buxton |
Posted: Wed Jul 11, 2007 12:49 am Post subject: |
|
|
 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 |
|
 |
deepeshk79 |
Posted: Wed Jul 11, 2007 2:49 am Post subject: |
|
|
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 |
|
 |
Vitor |
Posted: Wed Jul 11, 2007 2:56 am Post subject: |
|
|
 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 |
|
 |
cschneid |
Posted: Wed Jul 11, 2007 8:24 am Post subject: |
|
|
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 |
|
 |
|