View previous topic :: View next topic
|
Author |
Message |
jcr
New User
Joined: 12 Apr 2007 Posts: 8 Location: Australia
|
|
|
|
I have a question about channels. Consider the following simple scenario:
- TranA creates ChannelA
- TranA starts TranB, passing ChannelA
- TranB gets ChannelA
TranA may be run concurrently by any number of users, so there may be any number of ChannelA's being PUT at the same time, and hence any number of ChannelA's being 'got' at the same time. Is CICS able to tell which TranB gets which ChannelA, or will there be contention? ie. does the channel name have to be uniquely generated each time, eg ChanAxxx where xxx = some randomly generated string? |
|
Back to top |
|
|
koppineedi
New User
Joined: 19 Sep 2007 Posts: 7 Location: chennai
|
|
|
|
Hi,
There will be no contention.
To ensure that programs cannot interfere with each others working storage, CICS obtains a separate copy of working storage for each execution of an application program. Thus, if a user application program is in use by 11 user tasks, there are 11 copies of working storage in the appropriate dynamic storage area (DSA).
WORKING-STORAGE SECTION.
*CHANNEL NAME
01 INSURANCE-CHANNEL PIC X(20) VALUE 'INSURDETAILS'.
*CONTAINER NAME
01 INSURER-NAME PIC X(20) VALUE 'INSRNAME'.
01 INSURED-NAME PIC X(20) VALUE 'INSDNAME'.
01 CITY PIC X(10).
for example if the transaction is run concurrently by two users copies of 2 working storage will be made.
2nd question-
does the channel name have to be uniquely generated each time, eg ChanAxxx where xxx = some randomly generated string?
no you need not generate the channel name uniquely.
Regards,
Haranadh. |
|
Back to top |
|
|
jcr
New User
Joined: 12 Apr 2007 Posts: 8 Location: Australia
|
|
|
|
Thanks for that. I knew that was the case for working storage.
But I thought channels/containers were stored outside the program's working storage, in a location managed by CICS? |
|
Back to top |
|
|
|