IDMS Storage Protection FAQ
search cancel

IDMS Storage Protection FAQ

book

Article ID: 267022

calendar_today

Updated On:

Products

IDMS

Issue/Introduction

This article covers some common questions about IDMS Storage Protection.

Environment

Release: All supported releases.

Resolution

  1. What is storage protection?
    The purpose of IDMS Storage Protection is to ensure that online user-mode programs running in an IDMS address space do not overwrite storage that they should not overwrite.

  2. What is the difference between standard storage protection and HPSPO (High Performance Storage Protect Option)?
    In short, HPSPO ensures that user-mode programs do not overwrite the CV's system storage areas. Standard storage protection also protects user programs from overwriting the storage of other user programs.

  3. Why are there two types?
    Standard storage protection has a very high CPU overhead, to the extent where it is not practical to use it in a production environment. HPSPO offers what is important - protecting the CV - with almost no CPU overhead.

  4. How do you specify which type you want?
    See Enabling High Performance Storage Protect at the bottom of Storage Protection.

  5. How do you enable storage protection?
    Storage protection is enabled by specifying PROTECT or NOPROTECT on the System Generation SYSTEM and PROGRAM statements. If the SYSTEM statement specifies NOPROTECT, then there is no storage protection in the CV at all regardless of the setting on individual PROGRAM statements. This is true of both storage protection types.

  6. What does it mean to specify PROTECT at the program level?
    Specifying PROTECT on program X means that IDMS will prevent program X from overwriting other storage areas according to the storage protect type in use. It does *not* mean that program X's own storage areas will be protected from being overwritten by other programs.

  7. How does IDMS enforce storage protection?
    A more in-depth technical discussion of storage protection is available at Storage Protection and Difference between standard Storage Protection and the High Performance Storage Protection feature.

  8. What kind of programs should have PROTECT?
    In general, all user-written online cobol, assembler and PL/1 programs are candidates for PROTECT unless they are specifically intended to update IDMS system control blocks.

  9. What about ADS dialogs?
    ADS dialogs should also be PROTECTed. However, even if defined as a PROGRAM to sysgen, the PROTECT/NOPROTECT clause on an ADS dialog is meaningless. All ADS dialogs run with the protect option specified on programs ADSOMAIN and ADSORUN1.

  10. What happens if a user program does attempt to overwrite a storage area that it should not, and PROTECT is in force?
    The program will be abended with a S0C4 - in IDMS terms this will be a D003 program check abend issued with a DC027001 or DC027002 message on the dc-log.

  11. What kind of abends would happen if a user program does overwrite a storage area that it should not, and PROTECT is not in force?
    This would be considered a bug in the user code and as such, any abend (or none at all) is possible depending on what is being overwritten. But in general, the most common errors would be that the task owning the storage being overwritten will eventually abend with a storage violation type error such as DC016001, DC016003 or DC016006.