View previous topic :: View next topic
|
Author |
Message |
pahiker
New User
Joined: 10 Aug 2012 Posts: 51 Location: USA
|
|
|
|
I have an app that needs to return a large amount of data back to itself between screen sessions, so I am using channels to do that (required by our Tech Review Board, so I have no choice). The question I have is one of how CICS is functioning. The return statement is:
Code: |
EXEC CICS RETURN
TRANSID ('RICO')
CHANNEL (CA-CHANNEL-NAME)
END-EXEC |
The return works, the map for the app is displayed, the user makes their changes and hits enter. Now, the question / problem:
I am testing using CA's Intertest, when control comes back into the program it doesn't seem to be coming back as a normal return (i.e., Intertest does not stop at the breakpoint on line 1). In order to get Intertest to stop I have to set it up as if it were stopping a background task. The original program, before the need to pass the large data, used a return with a commarea option, doing it that way Intertest regains control in it's normal method.
Does this sound right? Does CICS return to the transaction differently with channels than it does with commareas? |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
What did the vendor tell you when you contacted them? If you haven't contacted the vendor, why not? The vendor should be your FIRST point of contact for issues like this. |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
This should have been then posted under 'CA Product' section of the forum. How big the screen data could be and why not to be saved in queues and hope you can ask this to tech board later? |
|
Back to top |
|
|
pahiker
New User
Joined: 10 Aug 2012 Posts: 51 Location: USA
|
|
|
|
Robert Sample wrote: |
What did the vendor tell you when you contacted them? If you haven't contacted the vendor, why not? The vendor should be your FIRST point of contact for issues like this. |
Because I don't see this as a CA issue. I am asking if I am right that when using RETURN CHANNEL that CICS returns to the task differently than it does with a RETURN COMMAREA. I am new, obviously, to using channels and was surprised at what I observed. |
|
Back to top |
|
|
pahiker
New User
Joined: 10 Aug 2012 Posts: 51 Location: USA
|
|
|
|
Rohit Umarjikar wrote: |
This should have been then posted under 'CA Product' section of the forum. How big the screen data could be and why not to be saved in queues and hope you can ask this to tech board later? |
The area I am working with is 54,395,394 bytes, our tech review team doesn't want that much stored in a queue. Multiple users could be working with the application at the same time, meaning multiple queue entries of this size.
Again, I am not seeing this as a CA issue, but asking if what I am experiencing is correct, or if I am doing something wrong. I posted it here because I am asking a question about how CICS handles a RETURN CHANNEL command. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
Quote: |
gain, I am not seeing this as a CA issue, but asking if what I am experiencing is correct, or if I am doing something wrong. I posted it here because I am asking a question about how CICS handles a RETURN CHANNEL command. |
Actually, you ARE asking a CA question. CICS handles a RETURN -- no matter if it includes CHANNEL or COMMAREA -- exactly the same way. Hence the issue you are having is NOT related to CICS but rather to how InterTest handles RETURN CHANNEL versus RETURN COMMAREA. And this issue IS a CA issue, not a CICS issue. |
|
Back to top |
|
|
pahiker
New User
Joined: 10 Aug 2012 Posts: 51 Location: USA
|
|
|
|
Robert Sample wrote: |
Quote: |
gain, I am not seeing this as a CA issue, but asking if what I am experiencing is correct, or if I am doing something wrong. I posted it here because I am asking a question about how CICS handles a RETURN CHANNEL command. |
Actually, you ARE asking a CA question. CICS handles a RETURN -- no matter if it includes CHANNEL or COMMAREA -- exactly the same way. Hence the issue you are having is NOT related to CICS but rather to how InterTest handles RETURN CHANNEL versus RETURN COMMAREA. And this issue IS a CA issue, not a CICS issue. |
Actually, thanks, you answered my question. That's all I wanted to know. |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
Quote: |
The area I am working with is 54,395,394 bytes, our tech review team doesn't want that much stored in a queue. Multiple users could be working with the application at the same time, meaning multiple queue entries of it. |
I am sure that doesn't make queues bad. You have an option to searlize tasks, why that big size of data a single point of time? Are you rendering thousands of pages? Anyways thats not something you want to look for.
Quote: |
The original program, before the need to pass the large data, used a return with a commarea option, doing it that way Intertest regains control in it's normal method. |
are you RETURNing with channels in called program? |
|
Back to top |
|
|
pahiker
New User
Joined: 10 Aug 2012 Posts: 51 Location: USA
|
|
|
|
Rohit Umarjikar wrote: |
I am sure that doesn't make queues bad. You have an option to searlize tasks, why that big size of data a single point of time? Are you rendering thousands of pages? Anyways thats not something you want to look for. |
It contains information about items cherry-picked off of an order, there is a large amount of information that needs to be passed between several called programs, and retained between screen sessions.
Quote: |
are you RETURNing with channels in called program? |
yes. But, the question I have was answered. |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
Back to top |
|
|
pahiker
New User
Joined: 10 Aug 2012 Posts: 51 Location: USA
|
|
|
|
That's where I'm at at the time. |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
Quote: |
That's where I'm at at the time. |
but you said you are also doing in called program ( hope not XCTL) else you already got your answer? |
|
Back to top |
|
|
RahulG31
Active User
Joined: 20 Dec 2014 Posts: 446 Location: USA
|
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
Quote: |
I don't think passing a CHANNEL name is needed if you are RETURNing the control to CICS. What will CICS do with the CHANNEL name, I guess nothing. |
If there are more than one then the one specified in RETURN will become the current CHANNEL when the next time transaction hits otherwise you sounds right. |
|
Back to top |
|
|
RahulG31
Active User
Joined: 20 Dec 2014 Posts: 446 Location: USA
|
|
|
|
Rohit Umarjikar wrote: |
Quote: |
I don't think passing a CHANNEL name is needed if you are RETURNing the control to CICS. What will CICS do with the CHANNEL name, I guess nothing. |
The one specified in RETURN will become the current CHANNEL when the next time transaction hits. |
The CHANNEL name passed is to be used by the programs i.e. when control is RETURNed to another program (at the next higher logical level). RETURNing control to CICS would effectively mean end of transaction.
. |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
Quote: |
The CHANNEL name passed is to be used by the programs i.e. when control is RETURNed to another program (at the next higher logical level). RETURNing control to CICS would effectively mean end of transaction |
It would mean end of the current TASK. but CHANNEL can only be embedded under RETURN is when your next higher logical level is CICS.
When you LINK the program then you pass the CHANNEL name and that becomes the current one to the called program or even subsequent programs for that matter but when you do RETURN you don't specify nothing as it is indeed the CURRENT CHANNEL.
Current channel example, with LINK commands |
|
Back to top |
|
|
RahulG31
Active User
Joined: 20 Dec 2014 Posts: 446 Location: USA
|
|
|
|
Ok. I missed one thing and that is RETURNing to CICS with a TRANSID and a CHANNEL name. The CHANNEL name is passed to the next program using that TRANSID.
I was thinking of a RETURN with a CHANNEL and that wouldn't make sense But when you have TRANSID, that is something different (starting a new transaction).
I don't have anything else to say on this Post.
. |
|
Back to top |
|
|
pahiker
New User
Joined: 10 Aug 2012 Posts: 51 Location: USA
|
|
|
|
Rohit Umarjikar wrote: |
Quote: |
That's where I'm at at the time. |
but you said you are also doing in called program ( hope not XCTL) else you already got your answer? |
I'm doing a link into the called program, the transfer there and back work fine, the problem was always on the top level program doing the RETURN CHANNEL. |
|
Back to top |
|
|
pahiker
New User
Joined: 10 Aug 2012 Posts: 51 Location: USA
|
|
|
|
You are wrong on this, I just tested it. Without the CHANNEL on the RETURN statement when I go to read the channel I get:
RESP=122 CHANNELERR
RESP2=2 The channel specified on the CHANNEL option could not be found |
|
Back to top |
|
|
RahulG31
Active User
Joined: 20 Dec 2014 Posts: 446 Location: USA
|
|
|
|
pahiker wrote: |
You are wrong on this, I just tested it. Without the CHANNEL on the RETURN statement when I go to read the channel I get:
RESP=122 CHANNELERR
RESP2=2 The channel specified on the CHANNEL option could not be found |
It may have sounded like that but I was talking about Not using the CHANNEL option altogether in RETURN. If you are using the CHANNEL option but Not passing the CHANNEL Name then you'll get RESP=122.
Again, a CHANNEL option may be used with RETURN if you have TRANSID on RETURN. If you don't have TRANSID then, CHANNEL option is Not required.
. |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
Quote: |
Again, a CHANNEL option may be used with RETURN if you have TRANSID on RETURN. If you don't have TRANSID then, CHANNEL option is Not required. |
Indeed true without TRANSID RETUEN thing, because at that point the Transaction is finished and there is no COME BACK, so who cares about CHANNEL or any COMMAREA data for that matter ;But it is must to provide otherwise( to get current CHANNEL name resumed for the next TASK).
I think TS got what he wants, and topic can be locked. |
|
Back to top |
|
|
pahiker
New User
Joined: 10 Aug 2012 Posts: 51 Location: USA
|
|
|
|
Rohit Umarjikar wrote: |
I think TS got what he wants, and topic can be locked. |
Agreed. Not sure how to lock it, or is that a mod/admin thing? |
|
Back to top |
|
|
|