Customer wants to double the size of a file which is currently 1 cylinder. I haven't done this. Do I need to run an expand page or just allocate a new dataset at 2 cylinders? What else is involved? Does the DMCL need to be updated?
There are 3 methods
If this is not an emergency I would suggest unload/reload into a new 2 cyl dataset – yes dmcl must be changed
If this IS an emergency and you have free pages behind your existing area, I would suggest EXTEND SPACE – yes dmcl must be changed, but NO OUTAGE
If you do not have free pages behind the area, you might try expand page
Or as a last result – move the page ranges to a new range with breathing space, and then do one of the three above
All changes to the size of a file will require DMCL changes
Technology Architect, Database Infrastructure Services
Technology Solution Services
123 East Main Street
Louisville, KY 40202
(502) 476-2538 or 407-7266
do you have an example of expand space? thanks Mike
Occasionally, we are presented with an “opportunity” where an online area has filled, and the user needs to be able to add information to the area IMMEDIATELY, without interrupting service to the area AND without deleting information from the area. Prior to release 12.0, this simply was not possible. The two methods for making more space available to an area were UNLOAD/RELOAD and EXPAND PAGE. Both these methods required the area to be OFFLINE to the Central Version, and were not necessarily speedy, thus the user was not satisfied.
Release 12.0 has presented us with a third opportunity to make more space available to an area 1) IN REAL TIME and 2) WITHOUT removing the area from service: EXTEND SPACE. Briefly, this new feature allows pages to be dynamically added to the end of an area where unallocated pages exist.
Following is an example I just completed.
A) Identify area to be extended:
[D AREA SCPTB01.TB-TBL-AREA ALL
This customer is running version 17 and decided to just do an extend space because not much space is needed.
so you added a new file to the area with the extend space?
If you are asking me, the answer is YES
Sorry Chris, I should have put your name in the reply. Thanks for the information.
Since you appear to be new to this operation (if not to IDMS), aside from the suggestions you will receive from other folk on this panel I STRONGLY suggest:
You take a full, clean backup of everything you are going to touch before you touch anything (both database AREAs, Dictionary and load libs)
You test the procedure in a non-production environment first.
If you don’t have experience with backups and restores, you should test those procedures in non-production first of all.
You arrange for application testing as the final step of your expansion, and be prepared to fall back if issues are detected… don’t wait for normal production operations to begin before validating your change.
Mainframe Service Delivery Manager
Kaiser Permanente Information Technology
925 200-7045 (mobile)
I have already made this paper too long, for which I must crave pardon, not having now time to make it shorter. Benjamin Franklin
If you decide to do an unload/reload, KB000024632 might help. It is quite detailed and targeted to new DBAs unfamiliar with the process. Link:
What are the steps to run a basic unload-reload? - CA Knowledge
Nothing beats a real world example!! Thanks, Chris. BTW - I can't figure out how to open the emz.zip files. I can unzip them but the emz files still won't open. (The png files may have enough information in them to figure out how to do the EXTEND SPACE, though.)
I would recommend UNLOAD/RELOAD https://comm.support.ca.com/kb/what-are-the-steps-to-run-a-basic-unloadreload/kb000024632
If you decide to do EXTEND SPACE which I would only recommend for extreme emergency expansion of an area, be VERY careful with any subsequent modification of the AREA def. NEVER Delete/Add (Drop/Create) an AREA definition to make changes. If you have Extended the area space a Drop/Add will lose the Extended attribute and if there are CALC records in the area you could have a major mess that can only be repaired with unload/reload.
The best rule when altering an AREA def is to use ALTER and only issue the syntax needed to make the changes.
Brian, how to find out if there are CALC records? would a dis area command show me
No. You need to know the name of a subschema that is "global" (contains all records and sets in the schema), then in CV while set to dict where the subschema resides: LOOK SUBSCHEMA=ssname
IDMSLOOK - OPSYS=z/OS Release 19.0 Service pack 4 tape GJJ04I SUBSCHEMA=EMPSS01 EMPSS01 was #LOADed From --> SYSDICT Entry Point Offset +0 - Reentrant - AMODE 31 - RMODE ANY SUBSCHEMA=EMPSS01 Compiled=2015-02-12 15.02.47 Subschema Structure is Network and Unbound Area Name Segment ------------------ -------- EMP-DEMO-REGION n/a INS-DEMO-REGION n/a ORG-DEMO-REGION n/a Record Name Stored Rec ID F/V Area Name --------------------------------- ------- ------ --- ------------------ COVERAGE VIA 400 F INS-DEMO-REGION DENTAL-CLAIM VIA 405 V INS-DEMO-REGION DEPARTMENT CALC 410 F ORG-DEMO-REGION EMPLOYEE CALC 415 F EMP-DEMO-REGION EMPOSITION VIA 420 F EMP-DEMO-REGION EXPERTISE VIA 425 F EMP-DEMO-REGION HOSPITAL-CLAIM VIA 430 F INS-DEMO-REGION INSURANCE-PLAN CALC 435 F INS-DEMO-REGION JOB CALC 440 V ORG-DEMO-REGION NON-HOSP-CLAIM VIA 445 V INS-DEMO-REGION OFFICE CALC 450 F ORG-DEMO-REGION SKILL CALC 455 F ORG-DEMO-REGION SR1 VIA 1 F n/a SR6 VIA 6 F n/a SR7 CALC 7 F n/a STRUCTURE VIA 460 F EMP-DEMO-REGION
And this Friday, we'll have part 2 on this topic: [WEBCAST] CA IDMS Database Maintenance: Enlarge the Database (Session 2 of 2) – October 19, 2018 @ 11 a.m. ET
Lenn just sent out the recording specifically about expanding the database.
was created by Lenn Thompson in CA IDMS IUA EIUA - View the video
Brian, Thanks for the info. No calc records. I notice the CV started task has the file names hard coded. Since I will be adding a new file doing an extend space, will the CV dynamically allocate that file ?
CV dynamically allocates files defined to the DMCL if that FILE definition specifies a DSNAME. If the DDname is specified in JCL CV will use that DSname rather than the one specified in the FILE def.
If you do the EXTEND Space your new DMCL load module will have the new File def, and if it specifies a DSname then CV will allocate that either at DCMT V DMCL NC time or when you recycle the CV to come up with the new DMCL. Be sure you rename the existing DMCL loadmod in your DBA loadlib before punching and linking the new one just in case there is any need to go back to it. Also, if you have not done DCMT V DMCL NC under the current release with a DMCL compiled under the current release, you may not be able to do the DCMT V DMCL NC. CV requires the old and new DMCLs internally indicate the same IDMS release.
If the dataset name is included in the DMCL file statement, a DMCL NEWCOPY will allocate the new file
Seems like we needed a "what are my options" Knowledge doc for enlarging IDMS database areas so based on much of what is in this post I wrote KB000117673. https://comm.support.ca.com/kb/what-are-the-choices-to-expand-an-idms-database-area/kb000117673
Brian, What are my options for backout?
how do I backout this command -
ALTER PHYSICAL AREA IASCHEMA.AR-EIEMPL-ADUSER EXTEND SPACE 225 PAGES WITHIN FILE X331001x FROM 1 FOR all BLOCKS <====== side note ( is ' all ' blocks ok for this command? )
I guess to backout this command -
ALTER PHYSICAL AREA IASCHEMA.AR-EIEMPL-ADUSER MAXIMUM SPACE 450 PAGES -
I would alter the max space back to the original size -
ALTER PHYSICAL AREA IASCHEMA.AR-EIEMPL-ADUSER MAXIMUM SPACE 225 PAGES
After rows are written to the new file portion of the area – you CAN’T BACK IT OUT (without an unload/reload)
And you don’t NEED to revert the max space
Chris is correct. If you have already done the EXTEND and any records have been stored in the new file, your only choice is to unload/reload with new def that defines the area with the new page range but without the extend syntax.
If all you did was the source update, you should be able to ALTER to specify the original primary space and exclude the new file and the def should then look like it did prior to the EXTEND syntax.
Hopefully you tested the use of the EXTEND SPACE syntax on an AREA that is not an actual Area defined to your DMCL.
Brian, I'm planning to test this process in the customer's test CV. I'm not sure how to test this with an area that's not defined to DMCL.
Yes testing the whole process in test is good and make sure all relevant Areas are backed up.
I meant testing the syntax and reversing it if that is what you were asking: backing out the syntax without having gone any further in the EXTEND process.
If you meant backing out the entire EXTEND SPACE process, as Chris indicated, once any records are stored in that extended file you can't go back to the old definition without losing records and breaking chains. Unload/Reload is the way do that.
And I recommend UNLOAD/RELOAD for the doubling of the area you need to double, not EXTEND SPACE.
Your choice of course, but if this is not an emergency it makes no sense to EXTEND SPACE.
Brian, Thanks for the info. The customer's idea to extend because not much space is needed. Since IDMS has been around for a long time, I think both options are dependable solutions.
All the choices are dependable, but are NOT equally recommended, depending upon your needs:
Presence of CALC records
Ability to live with area retrieval/offline for a while
Getting error trying to generate DMCL :
CONNECT TO SYSTEM; Status = 0 SQLSTATE = 00000 SET OPTIONS ON ERROR ROLLBACK; ********** IDMSSSP(Source SQL)-----> SET OPTIONS ON ERROR ROLLBACK Status = 0 SQLSTATE = 00000 GENERATE DMCL DMCL9998; Status = -4 SQLSTATE = 64000 Messages follow: DB004000 T203 C-4M6015: DMCL DMCL9998 is not defined Command Facility ended with errors
This is a new DMCL. dO I NEED TO create before punch generate and link it?
//LOADDMCL EXEC PGM=IDMSBCF,REGION=2048K //STEPLIB DD DSN=IDOT.CV01.DBALOAD,DISP=SHR // DD DSN=IDOT.CV01.LOAD,DISP=SHR //SYSCTL DD DSN=IDOT.CV01.SYSCTL,DISP=SHR //SYSPCH DD DSN=&&PCH(DMCL9998),UNIT=SYSDA, // DCB=(BLKSIZE=3200,LRECL=80,RECFM=FB,DSORG=PO), // DISP=(NEW,PASS,DELETE), // SPACE=(TRK,(10,5,5)) //SYSLST DD SYSOUT=* //SYSJRNL DD DUMMY //SYSIDMS DD * DMCL=IDMSDMCL /* //SYSIPT DD * CONNECT TO SYSTEM; SET OPTIONS ON ERROR ROLLBACK; GENERATE DMCL DMCL9998; PUNCH DMCL LOAD MODULE DMCL9998;
Customer has a REXX routine the reads a IDMS subschema to determine space utilization. The routine does a get area page range from the DMCL. SEE BELOW :
S3310000 has 6 segmented sets ____Set_Name____ ___Area_Name____ __From__ ___For__ _Type__ IX-EIEMPL-ADUSER AR-EIEMPL-ADUSER 0 100 PERCENT Get Area Page Range from DMCL Set in Process = IX-EIEMPL-ADUSER Seconds to Execute DMCL = 1 Offset into AR-EIEMPL-ADUSER : 0% For 100% Area Pages ..: 870001 To 870225 (225) Set Sub Pages: 870001 To 870225 (225)
BUT when I do a LOOK DMCL it shows :
IASCHEMA.AR-EIEMPL-ADUSER 0 870,001 870,450 2,676 X3310001
What am I missing ?
Could be many things:
Someone could have defined subareas
Your rexx script is not processing the information properly
The REXX proc is not reading the correct source. It could be reading from a punched source? Could be that the source needs to be punched to the file the REXX procedure is using.
Retrieving data ...