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 a CICS application

Post new topic  Reply to topic
 Triggering a CICS application « View previous topic :: View next topic » 
Author Message
DELLIPIZ
PostPosted: Thu Nov 06, 2008 7:00 pm    Post subject: Triggering a CICS application Reply with quote

Acolyte

Joined: 08 Oct 2003
Posts: 70

I have some questions on triggering a CICS application:

1) First of all, can I have multiple processes triggering the same CICS program:

For example:

Process name . . . . . . . . TEST.REQUEST.ONE
Disposition . . . . . . . . : QMGR XXXX
Description . . . . . . . . : KICKS OFF FMPTA99 ON MVS
Application type . . . . . : CICS
Application ID . . . : TA99

Process name . . . . . . . . TEST.REQUEST.TWO
Disposition . . . . . . . . : QMGR XXXX
Description . . . . . . . . : KICKS OFF FMPTA99 ON MVS
Application type . . . . . : CICS
Application ID . . . : TA99


2) If so, can I use the 'User data' field in the MQ process to pass information to the CICS program. For example, I would like to pass the queue name of where the data is coming from along with the length
of the data. Is that possible? If so, how would that be coded in a PL1 program?

Thanks so much!
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Nov 06, 2008 8:24 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Bad design
  • The data length should be irrelevant as it is subject to change
  • the source queue is already present in the TMC2 structure. Why pass it to CICS a second time?
  • I would suggest that you use the userdata/trigger data fields to specify which copy book to use with the messages for that queue. Mind you, as you may have different message types you may have to pass a list...

_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
DELLIPIZ
PostPosted: Thu Nov 06, 2008 8:58 pm    Post subject: Reply with quote

Acolyte

Joined: 08 Oct 2003
Posts: 70

Hi,

Thanks for the response. I guess I should explain what I am trying to do.
Currently, we receive ISO 8583 (1100) records via Expedite / CICS. We have a continous receive setup on the mailbox, so that once we receive data in that mailbox, we kick off the CICS program. Each customer who sends us data has a different file length... some send 260 bytes, some send 150, 142, etc. That field length is specified in the continous receive setup for that customer and that is how we handle it now. However, in one mailbox, we can have multiple ISO 8583s sent by the customer. In my example below, we have 2 1100s.... each being 142 in length.

1100........10129381 350 0000000991001442380811031246470000000000001007372
20249915 09055991053USD040281628881100........10129381 350 0000000991001442380811031246470000000000001007372
20249915 09055991053USD04028162888

Now I need to be able to replace the whole mailbox process and use MQ instead.

So I'll have some customers sending lengths of 260, 150, 142, etc.... and some sending more than one IS0 8583 in one MQ message. The length that each customer sends does not change.

So to sum it up, I need to be able to handle multiple record lengths and be able to seperate the ISO 8583 (1100) messages if more than one is sent.

With that said, any suggestions would be appreciated.

Also, you said that 'I would suggest that you use the userdata/trigger data fields to specify which copy book to use with the messages for that queue. Mind you, as you may have different message types you may have to pass a list...' I'm not sure what you mean by the list? Can you give me an example of how this would look? And also, how I could access it via my PL1 program.

Thanks again!
Back to top
View user's profile Send private message
bob_buxton
PostPosted: Fri Nov 07, 2008 2:56 am    Post subject: Reply with quote

Master

Joined: 23 Aug 2001
Posts: 266
Location: England

If each MQ queue only receives messages of a given length you could hard code that information in the trigger data of the queue definition which is passed to the application. You wouldn't need to define multiple process definitions.

However if a queue could receive a mixture of message lengths the trigger message does not contain any information specific to the message that caused the trigger to be issued. Remember that a triggered application should process all the messages on the queue - information from the first message might not be the same in subsequent messages.
_________________
Bob Buxton
Ex-Websphere MQ Development
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Nov 07, 2008 3:06 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

And note that you could probably inspect the start of the message to define the type and have that program dispatch the message to the relevant process queue. Now if you can also determine/inspect the length of the corresponding message you can further refine your dispatch model.

So you have a receive queue with the triggered dispatch program and a bunch of triggered process queues with information pertinent to your transaction. Each process queue can have it's own process for triggering. All of these processes can trigger the same transaction, each with different parms.

Enjoy
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
DELLIPIZ
PostPosted: Fri Nov 07, 2008 6:23 am    Post subject: Reply with quote

Acolyte

Joined: 08 Oct 2003
Posts: 70

Thanks for your time!

I think you are saying that I can pass the message length of the individual ISO 8385 in the 'Trigger Data' field in the queue, let's say 142 in one queue and 260 in another queue, while still triggering the same PROCESS, but I'm still not sure how my program can use that information to pick up the message off the queue only 142 or 260 tytes at a time. Cause, as I mentioned earlier, in one MQ message, I can have multiple 142 length ISO 8593s, so I still need a way to seperate them, since they are just coming in as a blob of data.
Back to top
View user's profile Send private message
Vitor
PostPosted: Fri Nov 07, 2008 9:43 am    Post subject: Reply with quote

Grand High Poobah

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

DELLIPIZ wrote:
I'm still not sure how my program can use that information to pick up the message off the queue only 142 or 260 tytes at a time. Cause, as I mentioned earlier, in one MQ message, I can have multiple 142 length ISO 8593s, so I still need a way to seperate them, since they are just coming in as a blob of data.


As indicated on your other thread here you can only read an entire message at a time. It's up to you to chop up the message buffer using any method you see fit.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
DELLIPIZ
PostPosted: Mon Nov 10, 2008 5:54 am    Post subject: Reply with quote

Acolyte

Joined: 08 Oct 2003
Posts: 70

I'm running with MQ on MVS. How do I use that TMC2 structure in my MQGET command, so I know which queue to 'get' from?

Thanks!
Back to top
View user's profile Send private message
bob_buxton
PostPosted: Mon Nov 10, 2008 6:49 am    Post subject: Reply with quote

Master

Joined: 23 Aug 2001
Posts: 266
Location: England

DELLIPIZ wrote:
I'm running with MQ on MVS. How do I use that TMC2 structure in my MQGET command, so I know which queue to 'get' from?

Thanks!


In CICS the MQTM structure is passed to your application as Start Data and can be accessed via an EXEC CICS RETRIEVE command.

See the CSQ4Cxxxx sample programs shipped with the product for examples in Cobol and C.
_________________
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 » Mainframe, CICS, TXSeries » Triggering a CICS application
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.