Customization
Customization in the z/OS environment refers to the process of modifying standard IBM or third-party vendor software to meet the unique operational requirements, performance goals, or business rules of a specific organization. It involves tailoring system parameters, configuration files, JCL procedures, or even adding user-written code at designated extension points, rather than altering the core vendor-supplied source code.
Key Characteristics
-
- Parameter-Driven: Many customizations are achieved by modifying parameters in system libraries like
SYS1.PARMLIBorPROCLIBmembers, which control system behavior and resource allocation. - Non-Destructive: Best practices dictate that customizations should avoid directly modifying vendor-supplied load modules or source code, instead utilizing configuration files, user exits, or overlays.
- Site-Specific: Changes are unique to an organization's infrastructure, security policies, naming conventions, or application integration needs.
- Impact on Maintenance: Customizations must be carefully managed during system upgrades,
PTF(Program Temporary Fix) application, or new product installations, as they may need to be re-evaluated or reapplied. - Documentation Criticality: Thorough documentation of all customizations is essential for troubleshooting, future maintenance, and knowledge transfer.
- Parameter-Driven: Many customizations are achieved by modifying parameters in system libraries like
Use Cases
-
- System Initialization: Tailoring
IPL(Initial Program Load) parameters inSYS1.PARMLIBmembers (e.g.,IEASYSxx,COMMNDxx) to define system resources, security settings, and default behaviors. - Middleware Configuration: Configuring
CICSregions,IMScontrol regions, orDB2subsystems with specific dataset names, buffer pool sizes, transaction limits, or security profiles. - JCL Procedures: Creating site-standard
PROCLIBmembers for common utilities, application execution, or job streams, incorporating site-specific dataset naming conventions or default parameters. - Security Implementation: Defining site-specific
RACF(Resource Access Control Facility) rules,ACF2, orTop Secretprofiles to control access to resources, datasets, and system functions. - User Exits: Implementing custom
COBOLorAssemblerroutines at predefined user exit points within IBM or vendor products to extend functionality or integrate with proprietary systems.
- System Initialization: Tailoring
Related Concepts
Customization is a fundamental aspect of System Programming and System Administration, enabling the mainframe to integrate seamlessly into an enterprise's unique IT landscape. It heavily relies on Parameter Libraries (PARMLIB) and Procedure Libraries (PROCLIB) for defining system and job-level behaviors. Effective customization often involves leveraging User Exits provided by products like CICS, IMS, or DB2 to insert site-specific logic. It is closely tied to Change Management processes to ensure controlled implementation and Disaster Recovery planning to ensure customized configurations are recoverable.
- Version Control: Use a robust Software Configuration Management (SCM) system to manage all customized
PARMLIBmembers,PROCLIBs, user exit source code, and documentation. - Documentation: Maintain comprehensive, up-to-date documentation for every customization, including its purpose, implementation details, impact, and rollback procedures.
- Isolation: Keep site-specific modifications separate from original vendor code where possible, for example, by using user-defined
PARMLIBsuffixes or separatePROCLIBs. - Minimization: Customize only when absolutely necessary, as each customization adds to maintenance overhead and complexity during upgrades.
- Rigorous Testing: Always test customizations thoroughly in a non-production environment (e.g.,
DEV,QA) before deploying to production. - Vendor Guidelines: Adhere to vendor recommendations and best practices for customization to maintain supportability and ensure compatibility with future releases.