Simplify Considerations

When you use the Simplify feature, be sure to consider: 
datacom151
When you use the Simplify feature, be sure to consider: 
Functions Requiring Inactive MUF
The execution of the first function that requires the CXX be available ensures that DBUTLTY has not already connected to a MUF and, if so, it is an error, is reflected by the following message, and undergoes error termination.
DB10053E - MUF RUNNING, FUNCTION REQUIRES MUF DOWN
If not connected, the function removes any DELAY68 setting and attempts to connect to MUF. If it is successful, it is an error, receives a DB10053E message, and undergoes error termination.
Once it is determined that the MUF is not enabled, the DBUTLTY ensures that the MUF cannot be enabled using this CXX. By using a shared global ENQ, it protects the execution of the entire DBUTLTY function set. Execution of a MUF during one of these DBUTLTY executions generates a startup error DB00205E with 1095 CXX DSN OWNED ELSEWHERE. If the ENQ is not available, the error is recognized as the following error message and the function terminated.
DB10055E - A MUF RUNNING WITH CXX, NOT ALLOWED
All functions other than INIT AREA=CXX checks that they are executing on a system in the same Sysplex as the one on which the CXX was initialized and, if not, generates error message DB00912E and return code 47(008). This protection ensures that the GRS ENQ processing protects the data sets and actions being performed.
Specific DBUTLTY functions and their descriptions subject to the rule that MUF is required to not be enabled are as follows:
  • INIT AREA=CXX
  • LOAD AREA=CXX(no DBID keyword)
  • CXXCLONE (no DBID keyword)
  • CXXMAINT OPTION=CONVERT1214
  • CXXMAINT OPTION=CONVERT1412
  • CXXMAINT OPTION=MATCHSID
  • INIT AREA=LXX
  • INIT AREA=FXX
  • RESET AREA=LXX
  • RESET AREA=CXX
  • SET OPTION1=MUF_NOT_ENABLED (all functions that follow)
  • INIT AREA=CXX
    The INIT AREA=CXX function sets the CXX being built to be in the Simplify mode. If needed, the INIT AREA=CXX function must be the first of these functions that execute in the DBUTLTY step. The INIT AREA=CXX without Simplify recognizes an error if DATACOM=AD was specified and is reflected in the following message and error termination:
    DB10057E - REQUIRES DBSIDPR SIMPLIFY YES
    The INIT AREA=CXX function checks that the CXX has not been opened by a previous function. A violation of this rule is reflected by the following message and error termination.
    DB10054E - FUNCTION REQUIRES xxx NOT TO BE OPEN
Exclusive ENQ protection of the CXX and also the DISP=OLD protection for the CXX is required. Both protections remain for the entire step.
This function expects to run with MUF not enabled. Therefore, the function SET OPTION1=MUF_NOT_ENABLED is not required. This function also effectively activates the SET option for the remainder of the DBUTLTY step.
Note:
When running without Simplify mode, this function trusts that the user executes the function when and where appropriate. The function provides no protection that the data set being initialized is not currently in use by one or more MUF/DBUTLTY executions. The function provides no protection that the data set being initialized does not become in use during any point of the initialization or following functions by one or more MUF/DBUTLTY executions. If executed in error, there are a significant number of error conditions that are possible.
  • LOAD AREA=CXX(no DBID= keyword)
    The LOAD AREA=CXX(no DBID=keyword) function restores the entire CXX from the backup. It does not restore the CXX name and does not alter the Simplify option from the current CXX. This function is normally used in the same DBUTLTY step as the INIT AREA=CXX immediately following. This function can execute in a step following the INIT AREA=CXX provided that the CXX has not been opened by a previous function in this step.
    In all cases, the function only executes if the CXX is still empty from the INIT. If the function is not in the INIT AREA=CXX step, it checks that the CXX has not been opened by another function. A violation of this rule is reflected by the following message and error termination.
    DB10054E - FUNCTION REQUIRES xxx NOT TO BE OPEN
Exclusive ENQ protection of the CXX and also the DISP=OLD protection for the CXX is required. Both protections remain for the entire step.
This function expects to run with MUF not enabled. Therefore, the function SET OPTION1=MUF_NOT_ENABLED is not required. This function also effectively activates the SET option for the remainder of the JCL stream.
  • CXXCLONE (no DBID=keyword)
    The CXXCLONE function performs as a special case of LOAD AREA=CXX and has a similar set of rules.
    When the DBID is not provided, this function restores the entire CXX from the backup. It does not restore the CXX name or alter the Simplify option from the current CXX. This function is normally used in the same DBUTLTY step as the INIT AREA=CXX immediately following. This function can execute in a step following the INIT AREA=CXX provided that the CXX has not been opened by a previous function in this step.
    In all cases, the function only executes if the CXX is still empty from the INIT. If the function is not in the INIT AREA=CXX step, it checks that the CXX has not been opened by another function. A violation of this rule is reflected by the following message and error termination.
    DB10054E - FUNCTION REQUIRES xxx NOT TO BE OPEN
Exclusive ENQ protection of the CXX and also the DISP=OLD protection for the CXX is required. Both protections remain for the entire step.
This function expects to run with MUF not enabled. Therefore, the function SET OPTION1=MUF_NOT_ENABLED is not required. This function also effectively activates the SET option for the remainder of the JCL stream.
Of special note, the CXXCLONE function accepts input as a backup of a Version 14.0 CXX and also a Version 12.0 CXX. This ability allows the migration of a single base or set of bases from Version 12.0 to Version 14.0 not using the CXXMAINT OPTION=CONVERT1214 ability that requires action for every base on the Version 12.0 backup provided.
  • CXXMAINT OPTION=CONVERT1214
    (or CONVERT1412)
    The CXXMAINT OPTION=CONVERT1214 function loads the entire CXX from the Version 12.0 backup. However, it does
    not
    alter the CXX name or the Simplify option from the current CXX. This function must occur in the same DBUTLTY step as the INIT AREA=CXX and the CXX must still be empty from the INIT. This function can execute in a step following the INIT AREA=CXX provided that the CXX has not been opened by a previous function in this step and the CXX is still empty from the INIT function.
    If the function is not in the INIT AREA=CXX step, it checks that the CXX has not been opened by another function. A violation of this rule is reflected by the following message and error termination.
    DB10054E - FUNCTION REQUIRES xxx NOT TO BE OPEN
Exclusive ENQ protection of the CXX and also the DISP=OLD protection for the CXX is required. Both protections remain for the entire step.
This function expects to run with MUF not enabled. Therefore, the function SET OPTION1=MUF_NOT_ENABLED is not required. This function also effectively activates the SET option for the remainder of the JCL stream.
  • CXXMAINT OPTION=ALTER,OPTION2=MATCHSID
    • The CXXMAINT OPTION=ALTER,OPTION2=MATCHSID function alters the CXX to match the current DBSIDPR definition as related to the DBSYSID macro parameter SIMPLIFY_MODE=.
    It executes under the rules of the DBSIDPR module. The function must be the first function to require access to the CXX because it checks that the CXX has not been opened by another function. A violation of this rule is reflected by the following message and error termination:
    DB10054E - FUNCTION REQUIRES xxx NOT TO BE OPEN
Exclusive ENQ protection of the CXX and also the DISP=OLD protection for the CXX is required. Both protections remain for the entire step.
This function expects to run with MUF not enabled. Therefore, the function SET OPTION1=MUF_NOT_ENABLED is not required. This function also effectively activates the SET option for the remainder of the JCL stream.
  • INIT AREA=LXX
    The INIT AREA=LXX function initializes the LXX control area and checks that the LXX has not been opened by another function. A violation of this rule is reflected by the following message and error termination.
    DB10054E - FUNCTION REQUIRES xxx NOT TO BE OPEN
    Exclusive ENQ protection of the LXX and also the DISP=OLD protection for the LXX is required. Both protections remain for the entire step.
    This function expects to run with MUF not enabled. Therefore, the function SET OPTION1=MUF_NOT_ENABLED is not required. This function also effectively activates the SET option for the remainder of the DBUTLTY step.
Note:
When running without Simplify mode, this function trusts that the user executes the function when and where appropriate. The function provides no protection that the data set being initialized is not currently in use by one or more MUF/DBUTLTY executions. The function provides no protection that the data set being initialized does not become in use during any point of the initialization or following functions by one or more MUF/DBUTLTY executions. If executed in error, there are a significant number of error conditions that are possible.
  • INIT AREA=FXX
    The INIT AREA=FXX function initializes the FXX and checks that the FXX has not been opened by another function. A violation of this rule is reflected by the following message and error termination.
    DB10054E - FUNCTION REQUIRES xxx NOT TO BE OPEN
    Exclusive ENQ protection of the FXX and also the DISP=OLD protection for the FXX is required. Both protections remain for the entire step.
This function expects to run with MUF not enabled. Therefore, the function SET OPTION1=MUF_NOT_ENABLED is not required. This function also effectively activates the SET option for the remainder of the JCL stream.
Note:
When running without Simplify mode, this function trusts that the user executes the function when and where appropriate. The function provides no protection that the data set being initialized is not currently in use by one or more MUF/DBUTLTY executions. The function provides no protection that the data set being initialized does not become in use during any point of the initialization or following functions by one or more MUF/DBUTLTY executions. If executed in error, there are a significant number of error conditions that are possible.
  • RESET AREA=LXX
    and AREA=CXX
    The RESET AREA=LXX function resets the LXX control area to be empty. It is rarely used and should be more rare with Simplify. If used, it must always be done with the MUF not enabled. The RESET AREA=CXX functions reset the CXX control area to have no DASD locking. The database is also reset to not be open and not load or unload. It is not needed if MUF is enabled. If used, it must always be done with the MUF not enabled.
    This function checks that the LXX or CXX has not been opened by another function. A violation of this rule is reflected by the following message and error termination.
    DB10054E - FUNCTION REQUIRES xxx NOT TO BE OPEN
    Exclusive ENQ protection of the LXX or CXX and also the DISP=OLD protection for the LXX or CXX is required. Both protections remain for the entire step.
This function expects to run with MUF not enabled. Therefore, the function SET OPTION1=MUF_NOT_ENABLED is not required. This function also effectively activates the SET option for the remainder of the JCL stream.
Note:
When running without Simplify mode, this function trusts that the user executes the function when and where appropriate. The function provides no protection that the data set being initialized is not currently in use by one or more MUF/DBUTLTY executions. The function provides no protection that the data set being initialized does not become in use during any point of the initialization or following functions by one or more MUF/DBUTLTY executions. If executed in error, there are a significant number of error conditions that are possible.
  • SET
    OPTION1=MUF_NOT_ENABLED (all functions that follow)
    This SET option may only be executed if the DBUTLTY is not already connected to a MUF and has not already opened the Directory CXX. It has affect for the next function that requires the Directory CXX and ensures that MUF is not enabled and that the CXX is used locally. A violation of this rule is reflected by the following message and error termination.
    DB10054E - FUNCTION REQUIRES xxx NOT TO BE OPEN
Exclusive ENQ protection of the CXX and also the DISP=OLD protection for the CXX is required. Both protections remain for the entire step.
Functions Needing the CXX
With the Simplify feature, normal DBUTLTY functions can access and update control data and user data using MUF. This ensures MUF has control while providing current and updated information.
This section reviews the DBUTLTY functions that need the CXX and in releases prior to Version 14.0 caused the CXX to be opened for update in the DBUTLTY address space. With the Simplify feature, these functions have been changed to use the MUF for all CXX access and update while providing another level of control that benefits the functions.
Updates include the following:
  • The CXX DD statement required by these functions can be removed. If CXX update access is no longer needed, you can remove that right from security. This action makes the CXX much safer by having fewer people with the ability to accidentally overlay or change it.
    The CXX DD statement is dynamically allocated if the MUF is down and a function is running that requires MUF to be down or if you have directed that the DBUTLTY is to execute with MUF down.
  • A related change that affects all the functions is the Run Unit. Without Simplify, a DBUTLTY function connected to the MUF obtains a Run Unit from the MUF. If that DBUTLTY opens the CXX locally, it also obtains a Run Unit locally. With Simplify, the MUF Run Unit is shared locally and both have a single number.
  • All editing of CXX information allowing the function to continue occurs in the MUF address space. All setting of CXX information such as loading, unloading, loaded, and so forth, occurs in the MUF address space.
  • All CXX information used is current.
Following are the function changes:
BACKUP
AREA=CXX gets all information from the MUF. Before processing each database for information, an internal COMM STATS is done to synchronize the current MUF information.
  • AREA=a (user data area) communicates with MUF to ensure it is appropriate to execute the function. It is protected by MUF to guarantee no conflict of the BACKUP requirements. When MULTUSE=YES is specified, where allowed, running with Simplify mode works the same as without. For all other cases, Simplify works differently as described following.
    With SEQ=PHYSICAL,UPDATE=NO:
    • Allows execution with the area being open for read or update by other users and produces a hot backup.
    • Causes MUF to push current pipeline buffers from MUF memory to DASD where this backup gets its data.
    With SEQ=NATIVE or SEQ=PHYSICAL,UPDATE=YES:
    • Ensures no other users of the database exist and once started, allows no other users of the database.
    • Attempts to close the database.
    • Native obtains a share ENQ on the index areas. Both native and physical obtain a share ENQ on the data areas. To allow a MUF failure and restart to know about the execution of the DBUTLTY function, the DBUTLTY obtains a share ENQ on CADTCM02 and DBUTLTY/cxxname/dbid. This includes all forms of BACKUP and EXTRACT except SEQ=PHYSICAL,UPDATE=NO. If MUF restarts, it uses an ENQ with TEST to see if the DBUTLTY function is still executing. If not, the status is removed. If yes, the base is set to be in open with backup in process running. The function communicates with MUF briefly during its startup processing and then executes within the DBUTLTY address space to read and write all the appropriate rows and then communicate with MUF briefly to note completion.
When a large number of rows need processing, the time the DBUTLTY is not talking to MUF can be lengthy. After the row processing and before the close processing, the DBUTLTY has special code to verify it is in synchronization with the MUF and if not, drives a resynchronization process. If there is a MUF outage during the time of row processing and the MUF reenabled prior to the close time, the DBUTLTY automatically disconnects from the failed MUF and reconnects to the current MUF. If the MUF is not currently enabled, the DBUTLTY function honors a DBSIDPR setting of DELAY68 (or a DBUTLTY override with SET OPTION1=DELAY68=n) to wait for the enable a set maximum number of minutes.
Note:
This synchronization process occurs once and only at the point between row processing completes and close processing starts.
  • CXXMAINT
    The CONVERT1214, CONVERT1412, OPTION=ALTER,and OPTION2=MATCHSID, functions cannot run with MUF enabled. The other functions expect to run with the MUF enabled where it is used.
  • EXTBKUP
    Does not use the CXX or MUF.
  • EXTEND
    • AREA=IXX
      • Ensures that the database is not open for any other purpose and once started, blocks other opens.
      • Obtains exclusive ENQ of index areas.
      • Obtains an exclusive ENQ on CADTCM02 and DBUTLTY/cxxname/dbid.
      • Communicates with MUF briefly during its startup processing, executes within the DBUTLTY address space to format new tracks and then communicates with MUF briefly to note completion.
If a large number of tracks need processing, the time the DBUTLTY is not talking to MUF can be lengthy. After the track processing and before the close processing, the DBUTLTY has special code to verify it is in synchronization with the MUF and if not, drives a resynchronization process. If there is a MUF outage during the time of track processing and the MUF reenabled prior to the close time, the DBUTLTY automatically disconnects from the failed MUF and reconnects to the current MUF. If the MUF is not currently enabled, the DBUTLTY function honors a DBSIDPR setting of DELAY68 or a DBUTLTY override with SET OPTION1=DELAY68=n to wait for the enable a set maximum number of minutes.
Note:
This synchronization process occurs once and only at the point between track processing completes and close processing starts.
AREA=a (user data area)
With MULTUSE=YES works the same with Simplify as without Simplify. Without MULTUSE=YES:
  • Ensures that the database is not open for any other purpose and once started, blocks other opens.
  • Obtains exclusive ENQ of data areas.
  • Obtains an exclusive ENQ on CADTCM02 and DBUTLTY/cxxname/dbid.
  • Communicates with MUF briefly during its startup processing, executes within the DBUTLTY address space to format tracks and then communicates with MUF briefly to note completion.
If a large number of tracks need processing, the time the DBUTLTY is not talking to MUF can be lengthy. After the track processing and before the close processing, the DBUTLTY has special code to verify it is in synchronization with the MUF and if not, drives a resynchronization process. If there is a MUF outage during the time of track processing and the MUF reenabled prior to the close time, the DBUTLTY automatically disconnects from the failed MUF and reconnects to the current MUF. If the MUF is not currently enabled, the DBUTLTY function honors a DBSIDPR setting of DELAY68 or a DBUTLTY override with SET OPTION1=DELAY68=n to wait for the enable a set maximum number of minutes.
Note:
This synchronization process occurs once and only at the point between track processing completes and close processing starts.
  • EXTRACT
    Same as BACKUP for data area.
  • INIT
    • AREA=IXX
      • Ensures that the database is not open for any other purpose and once started, blocks other opens.
      • Obtains exclusive ENQ of index areas.
      • Sets the CXX database as in INIT INDEX.
      • Obtains an exclusive ENQ on CADTCM02 and DBUTLTY/cxxname/dbid/IXX/COMMON.
      • Communicates with MUF briefly during its startup processing, executes within the DBUTLTY address space to format tracks and then communicates with MUF briefly to note completion.
If a large number of tracks need processing, the time the DBUTLTY is not talking to MUF can be lengthy. After the track processing and before the close processing, the DBUTLTY has special code to verify it is in synchronization with the MUF and if not, drives a resynchronization process. If there is a MUF outage during the time of track processing and the MUF reenabled prior to the close time, the DBUTLTY automatically disconnects from the failed MUF and reconnects to the current MUF. If the MUF is not currently enabled, the DBUTLTY function honors a DBSIDPR setting of DELAY68 or a DBUTLTY override with SET OPTION1=DELAY68=n to wait for the enable a set maximum number of minutes.
Note:
This synchronization process occurs once and only at the point between track processing completes and close processing starts.
AREA=a (user data area)
With MULTUSE=YES, works the same with Simplify as without Simplify. Without MULTUSE=YES:
  • Ensures that the database is not open for any other purpose and once started, blocks other opens.
  • Obtains exclusive ENQ of data areas.
  • Obtains an exclusive ENQ on CADTCM02 and DBUTLTY/cxxname/dbid.
  • Communicates with MUF briefly during its startup processing, executes within the DBUTLTY address space to format some tracks and then communicates with MUF briefly to note completion.
    It is unlikely that an INIT of a data area will execute long because it does not format all tracks but just some at the start of the extent. The following LOAD will format the rest. After the track processing and before the close processing, the DBUTLTY has special code to verify it is in synchronization with the MUF and if not, drives a resynchronization process. If there is a MUF outage during the time of track processing and the MUF reenabled prior to the close time, the DBUTLTY automatically disconnects from the failed MUF and reconnects to the current MUF. If the MUF is not currently enabled, the DBUTLTY function honors a DBSIDPR setting of DELAY68 or a DBUTLTY override with SET OPTION1=DELAY68=n to wait for the enable a set maximum number of minutes.
Note:
This synchronization process occurs once and only at the point between track processing completes and close processing starts.
  • LOAD
    With MULTUSE=YES, works the same with Simplify as without Simplify. Without MULTUSE=YES:
    • Ensures that the database is not open for any other purpose and once started blocks other opens.
    • Gets an exclusive ENQ of each index area and data area.
    • Gets an exclusive ENQ on CADTCM02 and DBUTLTY/cxxname/dbid.
    • Communicates with MUF briefly during its startup processing and then will execute within the DBUTLTY address space to read and write all the appropriate rows and then communicate with MUF briefly to note completion.
When a large number of rows need processing, the time the DBUTLTY is not talking to MUF can be lengthy. After the row processing and before the close processing, the DBUTLTY has special code to verify it is in synchronization with the MUF and if not, drives a resynchronization process. If there is a MUF outage during the time of row processing and the MUF reenabled prior to the close time, the DBUTLTY automatically disconnects from the failed MUF and reconnects to the current MUF. If the MUF is not currently enabled, the DBUTLTY function honors a DBSIDPR setting of DELAY68 (or a DBUTLTY override with SET OPTION1=DELAY68=n) to wait for the enable a set maximum number of minutes.
Note:
This synchronization process occurs once and only at the point between row processing completes and close processing starts.
  • RECOVERY forward
    With MULTUSE=YES works the same with Simplify as without Simplify. Without MULTUSE=YES:
    • Ensures that the database is not open for any other purpose and once started, blocks other opens.
    • Obtains an exclusive ENQ of each index area and data area.
    • Obtains an exclusive ENQ on CADTCM02 and DBUTLTY/cxxname/dbid.
    • Communicates with MUF briefly during its startup processing, executes within the DBUTLTY address space to read and write all the appropriate rows and then communicates with MUF briefly to note completion.
When a large number of rows need processing, the time the DBUTLTY is not talking to MUF can be lengthy. After the row processing and before the close processing, the DBUTLTY has special code to verify it is in synchronization with the MUF and if not, drives a resynchronization process. If there is a MUF outage during the time of row processing and the MUF reenabled prior to the close time, the DBUTLTY automatically disconnects from the failed MUF and reconnects to the current MUF. If the MUF is not currently enabled, the DBUTLTY function honors a DBSIDPR setting of DELAY68 (or a DBUTLTY override with SET OPTION1=DELAY68=n) to wait for the enable a set maximum number of minutes.
Note:
This synchronization process occurs once and only at the point between row processing completes and close processing starts.
  • REORG load portion
    With MULTUSE=YES works the same with Simplify as without Simplify. Without MULTUSE=YES:
    • Ensures that the database is not open for any other purpose and once started, blocks other opens.
    • Obtains an exclusive ENQ of each index area and data area.
    • Obtains an exclusive ENQ on CADTCM02 and DBUTLTY/cxxname/dbid.
    • Communicates with MUF briefly during its startup processing, executes within the DBUTLTY address space to read and write all the appropriate rows and then communicates with MUF briefly to note completion.
When a large number of rows need processing, the time the DBUTLTY is not talking to MUF can be lengthy. After the row processing and before the close processing, the DBUTLTY has special code to verify it is in synchronization with the MUF and if not, drives a resynchronization process. If there is a MUF outage during the time of row processing and the MUF reenabled prior to the close time, the DBUTLTY automatically disconnects from the failed MUF and reconnects to the current MUF. If the MUF is not currently enabled, the DBUTLTY function honors a DBSIDPR setting of DELAY68 (or a DBUTLTY override with SET OPTION1=DELAY68=n) to wait for the enable a set maximum number of minutes.
Note:
This synchronization process occurs once and only at the point between row processing completes and close processing starts.
  • REPORT
    • AREA=CXX obtains all information printed from the MUF. Before processing each database for information, an internal COMM STATS is done to synchronize the current MUF information.
    • AREA=LXX obtains all information printed from the MUF. Does not open the LXX locally.
  • RESET
    Not allowed either LXX or CXX
  • RETIX
    With MULTUSE=YES works the same with Simplify as without Simplify.
    Without MULTUSE=YES, it ensures that the database is not open for any other purpose and once started, blocks other opens.
    • Obtains an exclusive ENQ of each index area and data area.
    • Obtains an exclusive ENQ on CADTCM02 and DBUTLTY/cxxname/dbid.
    • Communicates with MUF briefly during its startup processing, executes within the DBUTLTY address space to read and write all the appropriate rows and then communicates with MUF briefly to note completion.
When a large number of rows need processing, the time the DBUTLTY is not talking to MUF can be lengthy. After the row processing and before the close processing, the DBUTLTY has special code to verify it is in synchronization with the MUF and if not, drives a resynchronization process. If there is a MUF outage during the time of row processing and the MUF reenabled prior to the close time, the DBUTLTY automatically disconnects from the failed MUF and reconnects to the current MUF. If the MUF is not currently enabled, the DBUTLTY function honors a DBSIDPR setting of DELAY68 (or a DBUTLTY override with SET OPTION1=DELAY68=n) to wait for the enable a set maximum number of minutes.
Note:
This synchronization process occurs once and only at the point between row processing completes and close processing starts.