I want to know what 's the use of CA1 exit TMSXITC , anyone have experience before ?
When i saw the discription it said "CA-1 Exit C is related to accounting data. It is used to copy the job accounting data when creating a multi-volume tape file. Also enforces tape retention standards when tape is being used with disp=old or disp=shr since JES2 cannot pick-up that retention period needs to be re-evaluated."
I am not very famaliar with tape , so my question is what it means by muti-volume tape file ? and what is retention period means ?
Joined: 06 Jun 2008 Posts: 8697 Location: Dubuque, Iowa, USA
A multi-volume tape file is a data set that requires more than one tape volume. A tape data set can reside on as many as 255 volumes. Back in the tape reel days, a volume was a reel; then it became a cartridge as reels were replaced by cartridges.
Retention period is specified in various ways (via DD statement is the most common) and indicates the number of days to keep the tape. After the retention period passes, CA-1 will expire the tape and return it to the scratch pool for writing a new data set on it. Expiration date is an alternative way of indicating the retention period. See the JCL Reference manual on the DD statement LABEL parameter for more information.
Joined: 30 Nov 2013 Posts: 917 Location: The Universe
Mr. Sample's summary is basically correct. LABEL=RETPD=5 tells the system to add 5 days to the current date and store that date as the tape's expiration date. For example, today is August 5. If I specify LABEL=RETPD=5, the tape will expire August 10, and you can write over it on August 10. On August 11 I think it is, CA1 will add the tape to the scratch tape pool so it can be placed in racks as a scratch tape. I'm less certain about the mechanics for robots and virtual tape, but I think it's the same.
If I remember CA1 correctly, if no expiration date is provided in JCL, CA1 uses a default retention period that is set in CA1 startup parameters.
As Mr. Sample says, a multi-volume tape data extends over several tape volumes. This used to be very common, though as tape capacity has increased it has become somewhat less common. On the other hand, virtual tape volume capacity tends to run less than real tape volume capacity, so you can draw your own conclusions. CA1 manages a multi-volume tapes as a group.
Thank you very much for your answer. Following is part of our exit , for
STCCHEK part , i am not sure what this part of code used for , especailly this part
STCCHEK DS 0H CHECK FOR STC
CLI 0(R9),X'00' TMMACT XC'D BY TMSXITJ FOR STC ?
BE EXIT YES, GO TO EXIT AND BYPASS STC'S
LR R7,R10 BEGINING OF USER FIELD (CURRENT VOL)
LA R6,266(0,0) THIS IS THE BEGINING OF THE TMC RCD
SR R7,R6
USING TMACCTDS,R7
What's the purpose of substract R6 from R7 and use R7 as base register ?
I didnt get it. Thanks
Code:
* REGISTER USAGE
* R0 UNUSED
* R1 UNUSED
* R2 UNUSED
* R3 POINTER TO SYMBOL SUBSTITUTION PARAMETER LIST
* R4 WORK REGISTER
* R5 UNUSED
* R6 UNUSED
* R7 UNUSED
* R8 ADDRESS OF PARAMETER LIST
* R9 ADDRESS OF ACCOUNTING AREA
* R10 ADDRESS OF CURRENT VOLUME
* R11 ADDRESS OF BASE VOLUME
* R12 BASE REGISTER
* R13 SAVE AREA
* R14 RETURN ADDRESS
* R15 RETURN CODE (NOT REQUIRED)
**********************************************************
EJECT
TMSXITC CSECT ,
TMSXITC AMODE 31
TMSXITC RMODE ANY
*---------------------------------------------------------------------*
* THIS MODULE IS REENTRANT. IF A GETMAIN IS REQUIRED FOR WORKING *
* STORAGE, REMOVE SAVE=NO AND ADD DATA=WORKAREA IN THE FOLLOWING *
* TMMLINK MACRO. *
*---------------------------------------------------------------------*
TMMLINK ENTRY,BASE=(R12),EQUS=YES, X
DATA=WORKAREA, X
SYSMOD=CAL0C60 CAL0C60
EJECT
SPACE 2
LR R8,R1 PARAMETER LIST
USING UX0CPARM,R8 ADDRESSABILITY
LM R9,R11,UX0CPARM LOAD ALL PARAMETERS
USING TMRECST,R10 ADDRESSABILITY
LTR R11,R11 Q. IS THIS A MULTI-VOLUME
BNZ MULTIVOL A. YES, COPY ONLY CERTAIN FIELDS
SPACE 2
MVC TMACCT,0(R9) MOVE ACCT FIELD TO USER FIELD
STCCHEK DS 0H CHECK FOR STC
CLI 0(R9),X'00' TMMACT XC'D BY TMSXITJ FOR STC ?
BE EXIT YES, GO TO EXIT AND BYPASS STC'S
LR R7,R10 BEGINING OF USER FIELD (CURRENT VOL)
LA R6,266(0,0) THIS IS THE BEGINING OF THE TMC RCD
SR R7,R6
USING TMACCTDS,R7
CLI TMAREA,C'Q' EXCLUDE MEDICARE VOLUMES
BE EXIT
CLI TMAREA,C'T' IS THIS TECHNICAL SERVICES?
BNE JOBNMCHK NO, GO CHECKJOBNAME
CLC TMSYSID,=C'JHS' IS THIS JHS ARCHIVING SYSTEM?
BE EXIT YES, GO EXIT AND HONOR RETPD
Joined: 06 Jun 2008 Posts: 8697 Location: Dubuque, Iowa, USA
First, your questions SHOULD be raised internally -- the exit was written (and presumably maintained) by someone working at your site, so asking on a forum like this is not going to get you definitive answers.
Second, STC is shorthand for started task. Since HSM, for one, runs as a started task a tape management system would need to know which tapes are being used by started tasks.
Third, asking about R6 and R7 in the exit is not going to help much unless you know Assembler very well. You need to look at the assembled code to see what is happening. It appears from code inspection that R7 points to the address of the current volume; the starting address of the TMC record is loaded into R6 and subtracted so only relative offsets are left. The DSECT TMCACCTDS presumably maps those relative addresses to actual variable names. That would allow the CLI TMAREA instructions to address the correct byte.