View previous topic :: View next topic
|
Author |
Message |
Badiger
New User
Joined: 18 Feb 2010 Posts: 3 Location: bangalore
|
|
|
|
Hi ,
I have come accross an assembler routine which uses CSACDTA macro . But the CICS version being used is 6.5 and this macro is no longer being supported . Can some one please advice on how the following assebmler program can be amended to address the CSA address.
DFHAFCD TYPE=LOCATE,CB=AFCB,REG=4 ADDRESS CICS AFCB
L R4,8(R4) GET CSA ADDRESS FROM HERE
L R5,CSACDTA (TCA) R5=ADDR WITHIN CSACDTA
Thank You |
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
Welcome to the world of Threadsafe. Beginning with CICS/TS 3.1, this label was renamed to CSAQRTCA and with that, an accompanying comment in the CSA DSECT -
"DO NOT USE: Non threadsafe. -> TCA of current task. Only valid when on QR TCB"
Subsequently, with TS 3.2, this label (data) became Fetch Protected and with that, an "ASRD" abend will be raised when you try to address it.
I have a solution, but it took me a while to put it together and I'd rather not give it away.
Bill |
|
Back to top |
|
|
Badiger
New User
Joined: 18 Feb 2010 Posts: 3 Location: bangalore
|
|
|
|
Hello Bill, I appreciate that you have spend a considerable time and effort finding the solution to this but it would be quite helpful if you could share it with me.
Thanks in advance. |
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
This is one of those unique times when I am selling my services. Like I said, I will not just give this away.
Your shop can submit a figure to me (in $USD) via Private Messaging.
I make no apologies to be reimbursed for my time and effort.
Bill |
|
Back to top |
|
|
thanoozm
New User
Joined: 23 May 2007 Posts: 26 Location: hyderabad
|
|
Back to top |
|
|
Badiger
New User
Joined: 18 Feb 2010 Posts: 3 Location: bangalore
|
|
|
|
Yes , Usage of DFHKERN is the solution for getting rid of CSACDTA or CSAQRTCA.
I have now used DFHKERN in my code and is working fine.
DFHKERN FUNCTION=INQUIRE_TASK,TCAADDRESS=R5,STACK_AVAIL=NO
Thanks thanooz the link you provided gives the same solution. |
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
Yes, you have it right. Until 6-7 years ago, IBM never posted the "real" solution (but they were warning folks beforehand), so traversing control blocks was the only way. DFHKERN TYPE=INQUIRE_TASK does all of this for you.
You probably don't need the CSA DSECT anymore in your source, if all you had needed was the TCA-label address.
The following are required -
Code: |
DFHAFCD TYPE=DSECT AFCB-DSECT
DFHKERN TYPE=PROCESSOWN GENERATE DSECTS FOR 'INQUIRE_TASK'
|
Bill |
|
Back to top |
|
|
|