IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

How to replace CSACDTA in Assembler program


IBM Mainframe Forums -> PL/I & Assembler
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Badiger

New User


Joined: 18 Feb 2010
Posts: 3
Location: bangalore

PostPosted: Thu Feb 18, 2010 6:56 pm
Reply with quote

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
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2501
Location: Atlanta, Georgia, USA

PostPosted: Thu Feb 18, 2010 7:13 pm
Reply with quote

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
View user's profile Send private message
Badiger

New User


Joined: 18 Feb 2010
Posts: 3
Location: bangalore

PostPosted: Fri Feb 19, 2010 2:14 pm
Reply with quote

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
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2501
Location: Atlanta, Georgia, USA

PostPosted: Fri Feb 19, 2010 4:34 pm
Reply with quote

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
View user's profile Send private message
thanoozm

New User


Joined: 23 May 2007
Posts: 26
Location: hyderabad

PostPosted: Mon Feb 22, 2010 5:15 pm
Reply with quote

Hi,

Below link will help for going forward. As davised don't use CSACDTA or CSAQRTCA.

www-01.ibm.com/support/docview.wss?uid=swg21264616
(fixed)

thanks
thanooz.
Back to top
View user's profile Send private message
Badiger

New User


Joined: 18 Feb 2010
Posts: 3
Location: bangalore

PostPosted: Tue Feb 23, 2010 9:32 am
Reply with quote

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
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2501
Location: Atlanta, Georgia, USA

PostPosted: Tue Feb 23, 2010 5:52 pm
Reply with quote

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
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> PL/I & Assembler

 


Similar Topics
Topic Forum Replies
No new posts Replace each space in cobol string wi... COBOL Programming 3
No new posts Using API Gateway from CICS program CICS 0
No new posts Replace Multiple Field values to Othe... DFSORT/ICETOOL 12
No new posts DB2 Event passed to the Application P... DB2 1
No new posts How to pass the PARM value to my targ... COBOL Programming 8
Search our Forums:

Back to Top