DDIO file considerations
To use DDIO files, you must first allocate a file and then format it. We recommend that you use the default allocation and formatting parameters provided in the SLCXCNTL sample library members. Use the initial DDIO file for about a week to get a representative sampling of DDIO member sizes. The DIRX report will display how much space the DDIO members are using. You can use this information to calculate the allocation specifications for your permanent files. For more information on allocating your files, see Allocating-a-DDIO-file.
You should consider the following items before you allocate and format a DDIO file:
- How many listings do you plan to put into your DDIO file?
- What is the average size of the listings you plan to keep in this DDIO file?
- Do you plan to use VSAM or sequential DDIO files (or a mixture of both)?
- Will any of the members be automatically deleted when the file becomes full? For more information, see Locking Your DDIO Members here.
Sharing source listing files
Source listing files can be shared among all of the BMC AMI products that use them and also across multiple address spaces or CICS regions. For example, the same source listing file can service two CICS development regions using both BMC AMI DevX Abend-AID for CICS and BMC AMI DevX Code Debug for CICS and three production regions using only BMC AMI DevX Abend-AID for CICS. It can also provide source support for BMC AMI DevX Abend-AID reports. Any source listing DDIO files used by BMC AMI DevX Code Debug for CICS in a CICS region must be VSAM.
Locking your DDIO members
The AUTODELETE parameter of the CWDDSUTL, CWFXSDUT, CWAASDUT, CWDDLPUT, or CWDDALLU utilities determines the action taken when an attempt is made to write a member to a DDIO file that is full. A DDIO file is considered full when all of the groups (EXTENTs) in the file have been allocated or the number of members specified by REPTCOUNT has been reached.
Manual and Automatic Locking
The autodelete process is based on manual and automatic locks:
- Manual locks are created online using the L line command from any directory screen or with the batch utility LOCK command.
- Automatic locks are created whenever a member is added to a DDIO file formatted using the AUTODELETE=DUPS or AUTODELETE=STAGED option. The most recent of all members with the same name is automatically locked. For source shared directory usage this is done at the database level for the selected database unless the AUTOLOCKMAX parameter has been set to a value of 1 or greater via the CREATE or CHANGE functions. When AUTOLOCKMAX is set, autolocking of the most current source members will be done at the shared-directory level (across all source listing databases), with the specified value determining how many duplicate members will be autolocked - regardless of which database they are on.
Members that have been manually locked retain their locks during the autodeletion process. They may be unlocked by using the U line command online or with the UNLOCK batch command. A DELETE command in batch, or the D line command online, will unlock a member prior to executing the delete.
For source listings, the oldest member is the program with the earliest compile date and time. For BMC AMI DevX Abend-AID reports and transaction dump information entries, the oldest member is the member with the earliest creation date and time. For source shared directory usage this is reflected at the database level unless AUTOLOCKMAX is set to a value of 1 or greater; if set, the oldest source listing members are determined at the shared-directory level.
AUTODELETE options
For a description of AUTODELETE, see Command Parameter for all DDIO files.
DDIO file full condition
A DDIO file full condition exists when new members cannot be added to a full DDIO file, in which case an error is returned. A DDIO file full condition will occur with the following AUTODELETE options:
YES | All members are manually or automatically locked or in use. |
DUPS | All members are manually or automatically locked or in use. |
STAGED | All members are manually locked or in use. |
NO | The file is full. |
Resolving a DDIO file full condition
You can perform the following steps to resolve a file full condition:
- Manually delete members from the file.
- Manually unlock members when AUTODELETE=YES, DUPS, or STAGED.
- Allocate and format a larger file, and use the MOVE or COPY commands to transfer the contents of the full file to the new file.
- Use the EXPORT command with the DELETE option to archive all or some members to a sequential file (tape or disk).
Using EXPORT, space can be freed up without losing members since members can be imported back into the file as needed. This method also avoids the overhead created by formatting new files.
- If you are using the Source Listing Database and Shared Directory DDIO format (required for C Language Processor, VisualAge PL/I, and Enterprise PL/I LONGNAME support), you can set up your shared directory to perform dynamic database creation. You must first create a DBMODEL in your shared directory to define the parameters that will be used to create and format a new Source Listing Database dynamically.
The DYNCREATE parameter must also be set to YES. The CWPDDIO DD statement must point to your shared directory (NOT to a specific Source Listing Database). When the file full condition is encountered, a new Source Listing Database will dynamically be created and formatted and the source member created in that database. An informational message is generated to let you know this has occurred. If you are using the Source Listing Database and Shared Directory DDIO format you can run the REFRESH command (see batch utility commands) to delete older duplicate versions of each program. The maximum number of duplicates remaining for each program is determined by the DUPMAX value specified in the REFRESH command. Any manually-locked members are ignored in the process and will not be deleted. The REFRESH process looks at all source members within the shared directory.
- If you are using the Source Listing Database and Shared Directory DDIO format you can set the DUPMAX parameter in the shared directory via CREATE or CHANGE commands. If DUPMAX is set, the value will be used to limit the versions of a program within the source shared directory by automatically deleting older versions as needed before adding the new version. Any manually-locked members are ignored in the delete process (will not be deleted).