AOI - Application Owning Interface
The Application Owning Interface (AOI) is a CICS facility that allows CICS application programs (typically written in COBOL, PL/I, or Assembler) to issue CICS system commands programmatically. Its primary purpose is to enable applications to monitor, control, and react to events within the CICS environment, automating operational tasks and resource management.
Key Characteristics
-
- Programmatic Control: Enables CICS applications to execute CICS system commands, such as
INQUIRE,SET,PERFORM, andDISCARD, directly from within their code. - Two Types: Historically, AOI Type 1 involved direct manipulation of CICS system areas (e.g.,
EXEC CICS ADDRESS CSA), while AOI Type 2 (the preferred and safer method) utilizes specificEXEC CICS INQUIREandEXEC CICS SETcommands to access and modify CICS resources. - Security Integration: Access to AOI functions and specific commands is controlled by CICS internal security and external security managers like
RACF,ACF2, orTop Secret, requiring appropriate authorization for the transaction and the user. - Resource Management: Allows applications to dynamically manage CICS resources such as programs, transactions, files, terminals, and connections without manual operator intervention.
- Event-Driven Automation: Facilitates the creation of applications that can respond to specific CICS events or conditions by issuing corrective or administrative commands.
- Programmatic Control: Enables CICS applications to execute CICS system commands, such as
Use Cases
-
- Automated Resource Availability: A CICS application can dynamically enable or disable transactions, programs, or files based on time of day, workload, or specific business rules.
- System Monitoring and Alerting: Programs can periodically
INQUIREabout the status of CICS resources (e.g., task counts, file status) and trigger alerts or take corrective action if thresholds are exceeded. - Error Recovery and Restart: An application can detect a failure in a specific CICS resource or task and programmatically attempt to restart it or take other predefined recovery steps.
- Workload Balancing: An AOI program could adjust the availability of certain CICS services or connections based on the current system load to optimize performance.
- Custom Operator Interfaces: Developers can build custom CICS transactions that provide a simplified, application-specific interface for operators to perform complex CICS administrative tasks.
Related Concepts
AOI is fundamental to CICS system programming, providing the programmatic equivalent of many CEMT commands and CICS Explorer functions. It heavily relies on CICS RDO (Resource Definition Online) as it manipulates resources defined within it, and its usage is tightly integrated with RACF (or other ESMs) for robust security control. It often forms part of larger z/OS automation strategies, allowing CICS applications to contribute to overall system management and responsiveness.
- Prioritize Type 2 AOI: Always use
EXEC CICS INQUIRE/SETcommands (Type 2 AOI) over older Type 1 methods for improved stability, maintainability, and CICS version compatibility. - Strict Security: Implement the principle of least privilege; grant only the minimum necessary
RACFand CICS transaction/resource security authorizations required for the AOI program to function. - Robust Error Handling: Include comprehensive error handling for all
EXEC CICScommands issued via AOI to gracefully manage command failures and prevent unexpected system behavior. - Thorough Testing: Rigorously test AOI programs in non-production environments to ensure they behave as expected and do not inadvertently impact critical CICS resources or system stability.
- Logging and Auditing: Implement logging mechanisms to record all AOI command executions, including the command issued, the user, the time, and the outcome, for auditing and troubleshooting purposes.