Data Definition utility

Use the IMS Data Definition utility (DFS3ID00) to submit Data Definition Language (DDL) SQL statements without the need of IMS Connect and ODBM address spaces.

The Data Definition utility writes the metadata for your application programs (PSBs) and databases definitions to the IMS Catalog records and the runtime blocks to the staging directory dataset. If AUTOIMPORT(CREATE) is specified in the <CATALOG> section of the DFSDFxxx PROCLIB member, then IMS will activate application and database resource definitions in an online IMS system by importing them from the staging directory data set and updating the IMS Catalog HEADER segment for the imported resources.

The DFS3ID00 utility can run in a BMP or a DL/I region. If you run the utility in a DL/I batch region and the IMS catalog is shared, you must specify IRLM support in the EXEC parameters of the utility JCL. In the following example, the second Y and irlmid value indicate IRLM support:
PARM=(DLI,DFS3ID00,DFSCP001,,,,,,,,,,,Y,Y,irlmid,,,,,,,,,,,'DFSDF=001')
Note: Using the DFS3ID00 utility in a DL/I batch region will enable database backout (BKO=Y) to dynamically backout IMS Catalog database changes if a pseudo-abend occurs during the DDL processing.

A Commit DDL statement defines the scope of the unit of work and drives the core of DDL processing – enabling Insert Record (IR) into the IMS Catalog, Block Building, and Auto Import. If a Commit DDL statement and an AUTOCOMMIT control option are not specified, the utility will perform the Auto Rollback DDL and the utility ends with return code 4.

The output of the DFS3ID00 utility includes a report that contains warnings, negative sqlcodes in case of the failure, and status about the DDL statements processed by the utility. The report also includes information about the DDL events for the diagnostic purposes.

Restrictions

The use of DROP DDL in DL/I batch region requires an offline IMSplex (DYNAMICPROGRAMVIEW control option is an exception case). ACTIVATE, ACTIVATE by RSCLST DD, ACTIVATE-NOCHECK, and AUTOACTIVATE control options are only supported in an offline IMSplex environment.
Restriction: DROP COLUMN requires the use of RESTRICT and deletion of all subfields.
  • If a table has the Restrict on Drop attribute, users are restricted from dropping the object until the attribute is removed.

Prerequisites

The following conditions must be met in order to run the Data Definition utility:
  • IMS managed ACBs must be enabled
  • 64-bit virtual storage is used
  • You are running IMS 15.3

Requirements

Ensure you have met the following requirement before using the Data Definition utility:
  • Resources that you intend to use with the Data Definition utility must be specified to IMS. If you do not specify all resources properly, IMS will generate many OLDs of logs for each execution of the DDL generation batch utility.

Recommendations

Currently, no recommendations are documented for the Data Definition utility.

Input and output

The input to the DFS3ID00 utility is semicolon terminated DDL statements that you can provide in any of the following ways:

  • Inline with the JCL
  • In a single or multiple data set that the JCL references

The utility returns messages to the SYSPRINT output data sets that are defined in the JCL.

Return codes

The following return codes are provided at program termination.

Return code
Meaning
0
No errors were detected, the utility successfully completed.
4
Warning, look for DFS MESSAGES for more details in the job log.
12
Utility failed, look for DFS MESSAGES for more details in the job log.
16
Unable to attach to the region controller.
18
Utility failed, look for DFS MESSAGES for more details in the job log.
20
PSB (DFSCP001) is offline during the attach to the region controller.
22
DD card is missing during the attach to the region controller.
24
The SYSPRINT DD statement was missing or invalid.
28
IMS ID supplied on the region controller parm is not active.
32
An abend occurred during DDL processing after successful attach to the region controller.

JCL specifications

The DFS3ID00 utility run in a BMP region. The following JCL statements are required:

  • An EXEC statement
  • DD statements that define inputs and outputs

The following is a sample of the JCL statements that can be used to define and manage database and application program definitions by running the DFS3ID00 utility in a BMP job. The JCL specifies the IMS catalog update PSB DFSCP001. In this example, IMSID is the identifier of the IMS system on which the job is to be run.

Sample 1 - In which DDL statements are specified inline:

//BMP3ID00 JOB  'IMS SYSTEM',CLASS=K,MSGLEVEL=(1,1),REGION=0M       
//BMP    EXEC  PGM=DFS3ID00,                                         
//       PARM=(BMP,DFS3ID00,DFSCP001,,,,,,,,,,,IMSID,,,,,,)                                                        
//STEPLIB  DD  DSN=IMSTESTL.TNUC0,DISP=SHR                           
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR 
//DFSRESLB DD  DSN=IMSTESTL.TNUC0,DISP=SHR              
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR     
//PROCLIB  DD  DSN=IMSVS.PROCLIB2,DISP=SHR                   
//         DD  DSN=IMSTESTG.I%%%TS%%.PROCLIB,DISP=SHR                 
//SYSPRINT DD  SYSOUT=*                                 
//SYSABEND DD  SYSOUT=*                                 
//IMSSQL   DD  *                                        
   DROP PROGRAMVIEW DYNPSB;                              
   COMMIT DDL;                                             
Sample 2- In which DDL statements are in a dataset:
//BMP3ID00 JOB  'IMS SYSTEM',CLASS=K,MSGLEVEL=(1,1),REGION=0M       
//BMP    EXEC  PGM=DFS3ID00,                                         
//       PARM=(BMP,DFS3ID00,DFSCP001,,,,,,,,,,,IMSID,,,,,,)                                                    
//STEPLIB  DD  DSN=IMSTESTL.TNUC0,DISP=SHR                           
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR 
//DFSRESLB DD  DSN=IMSTESTL.TNUC0,DISP=SHR              
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR     
//PROCLIB  DD  DSN=IMSVS.PROCLIB2,DISP=SHR                   
//         DD  DSN=IMSTESTG.I%%%TS%%.PROCLIB,DISP=SHR      
//SYSPRINT DD  SYSOUT=*                                 
//SYSABEND DD  SYSOUT=*                                 
//IMSSQL   DD  DISP=SHR,UNIT=SYSDA,VOL=SER=VOL001,
//         DSN=USER1.DDL(DEDBJN21)
//         DD  DISP=SHR,UNIT=SYSDA,VOL=SER=VOL000,         
//              DSN=USER.DDL(DEDBJN41) 
Sample 3- In which VERBOSE and AUTOCOMMIT control options is specified:
//BMP3ID00 JOB  'IMS SYSTEM',CLASS=K,MSGLEVEL=(1,1),REGION=0M       
//BMP    EXEC  PGM=DFS3ID00,                                         
//       PARM=(BMP,DFS3ID00,DFSCP001,,,,,,,,,,,IMSID,,,,,,)                                                    
//STEPLIB  DD  DSN=IMSTESTL.TNUC0,DISP=SHR                           
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR 
//DFSRESLB DD  DSN=IMSTESTL.TNUC0,DISP=SHR              
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR     
//PROCLIB  DD  DSN=IMSVS.PROCLIB2,DISP=SHR                   
//         DD  DSN=IMSTESTG.I%%%TS%%.PROCLIB,DISP=SHR      
//SYSPRINT DD  SYSOUT=*                                 
//SYSABEND DD  SYSOUT=*
//SYSINID  DD  *
 VERBOSE AUTOCOMMIT
//IMSSQL   DD  DISP=SHR,UNIT=SYSDA,VOL=SER=VOL001,
//         DSN=USER1.DDL(TESTDB01)
//         DD  DISP=SHR,UNIT=SYSDA,VOL=SER=VOL000,         
//              DSN=USER.DDL(TESTPSB1) 
Sample 4- In which SIMULATE control options is specified:
//BMP3ID00 JOB  'IMS SYSTEM',CLASS=K,MSGLEVEL=(1,1),REGION=0M       
//BMP    EXEC  PGM=DFS3ID00,                                         
//       PARM=(BMP,DFS3ID00,DFSCP001,,,,,,,,,,,IMSID,,,,,,)                                                    
//STEPLIB  DD  DSN=IMSTESTL.TNUC0,DISP=SHR                           
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR 
//DFSRESLB DD  DSN=IMSTESTL.TNUC0,DISP=SHR              
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR     
//PROCLIB  DD  DSN=IMSVS.PROCLIB2,DISP=SHR                   
//         DD  DSN=IMSTESTG.I%%%TS%%.PROCLIB,DISP=SHR      
//SYSPRINT DD  SYSOUT=*                                 
//SYSABEND DD  SYSOUT=*
//SYSINID  DD  *
 SIMULATE
//IMSSQL   DD  DISP=SHR,UNIT=SYSDA,VOL=SER=VOL001,
//         DSN=USER1.DDL(TESTDB02)
//         DD  DISP=SHR,UNIT=SYSDA,VOL=SER=VOL000,         
//              DSN=USER.DDL(TESTPSB2)
Sample 5- Asterisk (*) to comment out SIMULATE and VERBOSE control options:
//BMP3ID00 JOB  'IMS SYSTEM',CLASS=K,MSGLEVEL=(1,1),REGION=0M       
//BMP    EXEC  PGM=DFS3ID00,                                         
//       PARM=(BMP,DFS3ID00,DFSCP001,,,,,,,,,,,IMSID,,,,,,)                                                    
//STEPLIB  DD  DSN=IMSTESTL.TNUC0,DISP=SHR                           
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR 
//DFSRESLB DD  DSN=IMSTESTL.TNUC0,DISP=SHR              
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR     
//PROCLIB  DD  DSN=IMSVS.PROCLIB2,DISP=SHR                   
//         DD  DSN=IMSTESTG.I%%%TS%%.PROCLIB,DISP=SHR      
//SYSPRINT DD  SYSOUT=*                                 
//SYSABEND DD  SYSOUT=*
//SYSINID  DD  *
  *SIMULATE *VERBOSE AUTOCOMMIT
//IMSSQL   DD  DISP=SHR,UNIT=SYSDA,VOL=SER=VOL001,
//         DSN=USER.DDL(TESTDB02)
//         DD  DISP=SHR,UNIT=SYSDA,VOL=SER=VOL000,         
//              DSN=USER.DDL(TESTPSB2)
Sample 6- Data sets concatenated with inline on IMSSQL DD:
//BMP3ID00 JOB  'IMS SYSTEM',CLASS=K,MSGLEVEL=(1,1),REGION=0M       
//BMP    EXEC  PGM=DFS3ID00,                                         
//       PARM=(BMP,DFS3ID00,DFSCP001,,,,,,,,,,,IMSID,,,,,,)                                                    
//STEPLIB  DD  DSN=IMSTESTL.TNUC0,DISP=SHR                           
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR 
//DFSRESLB DD  DSN=IMSTESTL.TNUC0,DISP=SHR              
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR     
//PROCLIB  DD  DSN=IMSVS.PROCLIB2,DISP=SHR                   
//         DD  DSN=IMSTESTG.I%%%TS%%.PROCLIB,DISP=SHR      
//SYSPRINT DD  SYSOUT=*                                 
//SYSABEND DD  SYSOUT=*
//SYSINID  DD  *
   AUTOCOMMIT
//IMSSQL   DD  *                                         
 CREATE DATABASE DEMODB1; 
 CREATE TABLE T1(C1 INT PRIMARY KEY); 
/*                                                       
//         DD  DISP=SHR,UNIT=SYSDA,VOL=SER=VOL001,       
//             DSN= USER.DDL(TESTDB03)
//         DD  DISP=SHR,UNIT=SYSDA,VOL=SER=VOL002,       
//             DSN= USER.DDL(TESTDB03)
//         DD  *                                         
 DROP PROGRAMVIEW DEMOPSB1 IF EXISTS;
 CREATE PROGRAMVIEW DEMOPSB1 
                (CREATE SCHEMA S1 USING DEMODB1 AS S1
                                 (CREATE SENSEGVIEW T1)
                 ) LANGASSEM;
/*
Note:

Any datasets concatenated with inline must be FB LRECL 80.

Sample 7 Single and Multi-line comments start with /* and end with */:
//BMP3ID00 JOB  'IMS SYSTEM',CLASS=K,MSGLEVEL=(1,1),REGION=0M       
//BMP    EXEC  PGM=DFS3ID00,                                         
//       PARM=(BMP,DFS3ID00,DFSCP001,,,,,,,,,,,IMSID,,,,,,)                                                    
//STEPLIB  DD  DSN=IMSTESTL.TNUC0,DISP=SHR                           
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR 
//DFSRESLB DD  DSN=IMSTESTL.TNUC0,DISP=SHR              
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR     
//PROCLIB  DD  DSN=IMSVS.PROCLIB2,DISP=SHR                   
//         DD  DSN=IMSTESTG.I%%%TS%%.PROCLIB,DISP=SHR      
//SYSPRINT DD  SYSOUT=*                                 
//SYSABEND DD  SYSOUT=*
//SYSINID  DD  *
   VERBOSE
//IMSSQL   DD  *,DLM=@@                       
                                            
/* 
      1ST IS DATABASE 
 */                            
DROP DATABASE DEMODB1 IF EXISTS;                 
CREATE DATABASE DEMODB1;                 
CREATE TABLE T1(C1 INT PRIMARY KEY);          
COMMIT DDL;                                   
                                              
/* 
   2ND DATABASE                               
   HAS COMMENT OVER TWO LINES 
 */              
DROP DATABASE DEMODB2 IF EXISTS;                 
CREATE DATABASE DEMODB2;                         
CREATE TABLE T1(C1 INT PRIMARY KEY);                   
COMMIT DDL;                                            
                                                       
/* 3RD IS A PSB */                                          
DROP PROGRAMVIEW DEMOPSB IF EXISTS;                    
CREATE PROGRAMVIEW DEMOPSB(CREATE SCHEMA S1 USING DEMODB1 
AS DEMODB1 (CREATE SENSEGVIEW T1),                        
CREATE SCHEMA S2 USING DEMODB2                            
AS DEMODB2 (CREATE SENSEGVIEW T1) ) LANGASSEM;            
COMMIT DDL;                                                                                                   
/* END OF ALL DDL STATEMENTS */                        
@@ 
Note:
  • Both Single and Multi-line comments start with /* and end with */.
  • Use the VERBOSE control option to print comments along with the full text of the DDL statements in the job output.
  • Use DLM if comments are included within the in-line DDL statements.
Sample 8- In which DYNAMICPROGRAMVIEW control option is specified.
//BMP3ID00 JOB  'IMS SYSTEM',CLASS=K,MSGLEVEL=(1,1),REGION=0M       
//BMP    EXEC  PGM=DFS3ID00,                                         
//       PARM=(BMP,DFS3ID00,DFSCP001,,,,,,,,,,,IMSID,,,,,,)                                                    
//STEPLIB  DD  DSN=IMSTESTL.TNUC0,DISP=SHR                           
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR 
//DFSRESLB DD  DSN=IMSTESTL.TNUC0,DISP=SHR              
//         DD  DSN=IMSBLD.I%%%TS%%.CRESLIB,DISP=SHR     
//PROCLIB  DD  DSN=IMSVS.PROCLIB2,DISP=SHR                   
//         DD  DSN=IMSTESTG.I%%%TS%%.PROCLIB,DISP=SHR      
//SYSPRINT DD  SYSOUT=*                                 
//SYSABEND DD  SYSOUT=*
//SYSINID  DD  *
   AUTOCOMMIT DYNAMICPROGRAMVIEW=(CREATEYES)
//IMSSQL   DD  *                                         
 CREATE PROGRAMVIEW DYNPSB1 
                (CREATE SCHEMA S1 USING DEMODB1 AS S1
                                 (CREATE SENSEGVIEW T1)
                 ) LANGASSEM;
/*
Note:

The DYNAMICPROGRAMVIEW control option only applies to programviews (not databases) in the IMSSQL DD input.

Sample 9- In which DDL statements are submitted in a DL/I batch region of the utility.
//DLI3ID00 JOB  'IMS SYSTEM',CLASS=K,MSGLEVEL=(1,1),REGION=0M       
//DLI    EXEC  PGM=DFS3ID00,                                         
//     PARM=(DLI,DFS3ID00,DFSCP001,,,,,,,,,,,Y,N,,,,,,,,,, 
//             ,,'DFSDF=001') 
//STEPLIB  DD  DSN=IMS.SDFSRESL,DISP=SHR 
//DFSRESLB DD  DSN=IMS.SDFSRESL,DISP=SHR
//PROCLIB  DD  DSN=IMS.PROCLIB,DISP=SHR 
//SYSABEND DD  SYSOUT=*       DUMP DATA SET 
//SYSPRINT DD  SYSOUT=*         MESSAGES, STATISTICS 
//IEFRDER  DD  ...                         LOG DATA SET WITH CATALOG UPDATES 
//DFSVSAMP DD  ...                     BUFFER POOL PARAMETERS
//SYSINID  DD  *
   AUTOCOMMIT 
//IMSSQL   DD  *                                         
 CREATE DATABASE DEMODB1;
 CREATE TABLE T1 (C1 CHAR(20) PRIMARY KEY);
 CREATE PROGRAMVIEW DEMOPSB1 
                (CREATE SCHEMA S1 USING DEMODB1 AS S1
                                 (CREATE SENSEGVIEW T1)
                 ) LANGASSEM;
  ALTER TABLE T2 IN DATABASE DEMODB2 MAXBYTES 200; 
  DROP PROGRAMVIEW DEMOPSB2 IF EXISTS;
/*
Note:
  • IRLM support is indicated in this example and is necessary if authorization of the catalog database exists.
  • DROP DDL in a DL/I batch region requires the IMSplex to be offline.
Sample 10- In which DYNAMICPROGRAMVIEW control option is specified in a DL/I batch.
//DLI3ID00 JOB  'IMS SYSTEM',CLASS=K,MSGLEVEL=(1,1),REGION=0M       
//DLI    EXEC  PGM=DFS3ID00,                                         
//     PARM=(DLI,DFS3ID00,DFSCP001,,,,,,,,,,,Y,Y,irlmid,,,,,,,,, 
//             ,,'DFSDF=001') 
//STEPLIB  DD  DSN=IMS.SDFSRESL,DISP=SHR 
//DFSRESLB DD  DSN=IMS.SDFSRESL,DISP=SHR
//PROCLIB  DD  DSN=IMS.PROCLIB,DISP=SHR 
//SYSABEND DD  SYSOUT=*       DUMP DATA SET 
//SYSPRINT DD  SYSOUT=*         MESSAGES, STATISTICS 
//IEFRDER  DD  ...                         LOG DATA SET WITH CATALOG UPDATES 
//DFSVSAMP DD  ...                     BUFFER POOL PARAMETERS
//SYSINID  DD  *
   AUTOCOMMIT DYNAMICPROGRAMVIEW
//IMSSQL   DD  *                                         
 CREATE PROGRAMVIEW DYNPSB1 
                (CREATE SCHEMA S1 USING DEMODB1 AS S1
                                 (CREATE SENSEGVIEW T1)
                 ) LANGASSEM;
  DROP PROGRAMVIEW DYNPSB2 IF EXISTS;
/*
Note:
  • The DYNAMICPROGRAMVIEW control option in DL/I batch region only accepts programviews (not databases) in the IMSSQL DD input. Specification of databases in IMSSQL DD input is not supported.
  • IRLM support is indicated and is necessary if authorization of the catalog database exists.

Sample 11- In which ACTIVATE control option is specified in a DL/I batch region.

//DLI3ID00 JOB  'IMS SYSTEM',CLASS=K,MSGLEVEL=(1,1),REGION=0M       
//DLI    EXEC  PGM=DFS3ID00,                                         
//     PARM=(DLI,DFS3ID00,DFSCP001,,,,,,,,,,,Y,N,,,,,,,,,, 
//             ,,'DFSDF=001') 
//STEPLIB  DD  DSN=IMS.SDFSRESL,DISP=SHR 
//DFSRESLB DD  DSN=IMS.SDFSRESL,DISP=SHR
//PROCLIB  DD  DSN=IMS.PROCLIB,DISP=SHR 
//SYSABEND DD  SYSOUT=*       DUMP DATA SET 
//SYSPRINT DD  SYSOUT=*         MESSAGES, STATISTICS 
//IEFRDER  DD  ...                         LOG DATA SET WITH CATALOG UPDATES 
//DFSVSAMP DD  ...                     BUFFER POOL PARAMETERS
//SYSINID  DD  *
   ACTIVATE
/*
Note:
  • Use of the DYNAMICPROGRAMVIEW control option in DL/I batch regions only accepts programviews in the IMSSQL DD input. Specification of databases in IMSSQL DD input is not supported.
  • IRLM support is indicated in this example and is necessary if authorization of the catalog database exists.
Sample 12- In which ACTIVATE control option with RSCLST is specified in a DL/I batch.
//DLI3ID00 JOB  'IMS SYSTEM',CLASS=K,MSGLEVEL=(1,1),REGION=0M       
//DLI    EXEC  PGM=DFS3ID00,                                         
//     PARM=(DLI,DFS3ID00,DFSCP001,,,,,,,,,,,Y,N,,,,,,,,,, 
//             ,,'DFSDF=001') 
//STEPLIB  DD  DSN=IMS.SDFSRESL,DISP=SHR 
//DFSRESLB DD  DSN=IMS.SDFSRESL,DISP=SHR
//PROCLIB  DD  DSN=IMS.PROCLIB,DISP=SHR 
//SYSABEND DD  SYSOUT=*       DUMP DATA SET 
//SYSPRINT DD  SYSOUT=*         MESSAGES, STATISTICS 
//IEFRDER  DD  ...                         LOG DATA SET WITH CATALOG UPDATES 
//DFSVSAMP DD  ...                     BUFFER POOL PARAMETERS
//RSCLST   DD  *
DEMODB1
DEMOPSB1
%%%PSB
D*S*T%R
*/
//SYSINID  DD  *
   ACTIVATE
/*
Note:
  • Use of the ACTIVATE control option with RSCLST DD in DL/I batch regions requires the IMSplex to be offline.
  • Inline resource names on RSCLST DD must be newline separated. Resource name must start at column 1.
  • Associated relative resources from the staging will also be activated.
Sample 13- In which ACTIVATE-NOCHECK control option with RSCLST is specified in a DL/I batch.
//DLI3ID00 JOB  'IMS SYSTEM',CLASS=K,MSGLEVEL=(1,1),REGION=0M       
//DLI    EXEC  PGM=DFS3ID00,                                         
//     PARM=(DLI,DFS3ID00,DFSCP001,,,,,,,,,,,Y,N,,,,,,,,,, 
//             ,,'DFSDF=001') 
//STEPLIB  DD  DSN=IMS.SDFSRESL,DISP=SHR 
//DFSRESLB DD  DSN=IMS.SDFSRESL,DISP=SHR
//PROCLIB  DD  DSN=IMS.PROCLIB,DISP=SHR 
//SYSABEND DD  SYSOUT=*       DUMP DATA SET 
//SYSPRINT DD  SYSOUT=*         MESSAGES, STATISTICS 
//IEFRDER  DD  ...                         LOG DATA SET WITH CATALOG UPDATES 
//DFSVSAMP DD  ...                     BUFFER POOL PARAMETERS
//RSCLST   DD  *
DEMODB2
DEMOPSB2
DEMOPSB3
*/
//SYSINID  DD  *
   ACTIVATE-NOCHECK
/*
Note:
  • Only resources specified on RSCLST DD will be activated; associated relative resources will not be pulled in and not activated.
  • The ACTIVATE control option with RSCLST DD in DL/I batch region requires the IMSplex to be offline.
  • DFS9044E may be issued as a result of improperly specifying resources on the RSCLST DD.
Sample 14- In which AUTOACTIVATE is specified in a DL/I batch region.
//DLI3ID00 JOB  'IMS SYSTEM',CLASS=K,MSGLEVEL=(1,1),REGION=0M       
//DLI    EXEC  PGM=DFS3ID00,                                         
//     PARM=(DLI,DFS3ID00,DFSCP001,,,,,,,,,,,Y,N,,,,,,,,,, 
//             ,,'DFSDF=001') 
//STEPLIB  DD  DSN=IMS.SDFSRESL,DISP=SHR 
//DFSRESLB DD  DSN=IMS.SDFSRESL,DISP=SHR
//PROCLIB  DD  DSN=IMS.PROCLIB,DISP=SHR 
//SYSABEND DD  SYSOUT=*       DUMP DATA SET 
//SYSPRINT DD  SYSOUT=*         MESSAGES, STATISTICS 
//IEFRDER  DD  ...                         LOG DATA SET WITH CATALOG UPDATES 
//DFSVSAMP DD  ...                     BUFFER POOL PARAMETERS
//SYSINID  DD  *
   AUTOACTIVATE
/*
//IMSSQL   DD  *                                         
 CREATE DATABASE DEMODB2;
 CREATE TABLE T1 (C1 CHAR(20) PRIMARY KEY);
 CREATE PROGRAMVIEW DEMOPSB2 
                (CREATE SCHEMA S1 USING DEMODB2 AS S1
                                 (CREATE SENSEGVIEW T1)
                 ) LANGASSEM;
  COMMIT DDL;
/*
Note:

The AUTOACTIVATE control option in DL/I batch region requires the IMSplex to be offline.

DD statements

IMSSQL DD
Defines the SQL DDL statements to be run. You can specify the DDL statements inline or in a data set. Any data sets concatenated with inline must be FB LRECL 80. The following concatenations are not supported:
  1. You cannot mix FB and VB data sets.
  2. You cannot have concatenated FB data sets with different LRECLs.
  3. You cannot have VB data sets concatenated with inline.
PROCLIB DD

Defines the IMS.PROCLIB data set that contains the DFSDFxxx member that defines various attributes of the IMS catalog that are required by the utility.

STEPLIB DD

Points to IMS.SDFSRESL, which contains the IMS nucleus and required IMS modules. If STEPLIB is unauthorized, you must include a DFSRESLB DD statement.

SYSABEND DD

Defines the dump data set.

SYSPRINT DD

Defines the output message data set.

When the SYSPRINT DD statement refers to a DASD or tape data set, you can control the block size of this data set with the BLKSIZE sub-parameter of the DCB parameter. If specified, the BLKSIZE value must be an exact multiple of 132 or a system ABEND013-20 can result. Omitting BLKSIZE from a DASD data set causes a system-determined block size to be used.

Regardless of what value is specified for LRECL, the utility will always use a record length of 132.

DDLTRACE DD

Defines the output DDL events data set. This is optional DD card. If not supplied to the utility, then DDL events are printed to SYSPRINT data set.

SYSINID DD

An optional control statement sequential data set with 80-character fixed-length records. Only characters in positions 1 - 72 are read. The control statement parameters, which are separated by blanks, can be specified on one or more records.

For a description of the control statements that you can specify with the SYSINID DD statement, see Control statements.

RSCLST DD

Defines the output resource list data set. Name and type of resources are written to the data set. This is optional DD card.

Defines the input inline resource names or resource list data set for ACTIVATE control option to activate specific members.

DFSVSAMP

Defines the buffer pool parameters data set.

IEFRDER DD

Defines the primary IMS log data set.

IEFRDER2 DD

Defines the secondary IMS log data set.

DFSRESLB DD

Points to an authorized library that contains the IMS SVC modules. For IMS batch, SDFSRESL and SDFSRESL and any data set that is concatenated to it on the DFSRESLB DD statement must be authorized through the Authorized Program Facility (APF). This DD statement provides an authorized library for the IMS SVC modules, which must be in an authorized library. The JOBLIB or STEPLIB statement does not need to be authorized for IMS batch.

Control statements

The following control statement parameters, which are separated by blanks, can be specified on one or more records by using the SYSINID DD statement.

VERBOSE

Specifies that the DFS3ID00 utility will print full text of the DDL statements in the job log. If VERBOSE control option is not specified, then utility will only print full text of failing DDL statement.

AUTOCOMMIT

Specifies that the DFS3ID00 utility will perform auto Commit if no COMMIT DDL statement is provided by the user. If user does not specify AUTOCOMMIT control option or COMMIT DDL statement, then utility will perform auto ROLLBACK DDL.

SIMULATE

Specifies that the DFS3ID00 utility will perform simulation of DDL statements which includes parser validations, commit level validations, block builder validations, and DROP DDL cross-reference validations. SIMULATE control option has higher precedence over AUTOCOMMIT control option and COMMIT DDL statement. All simulation driven changes to IMS Catalog and Directory data set will be rolled back upon the completion of the simulation. SIMULATE control option will not exercise AUTOIMPORT for CREATE and ALTER DDL statements.

DYNAMICPROGRAMVIEW=(CREATEYES | CREATENO)

Specifies that the DFS3ID00 utility will automatically Import all the input CREATE PROGRAMVIEWs. If CREATEYES is specified, then PDIR will be created with the DOPT flag ON. If CREATENO is specified, then PDIR will not be created. If user just specifies DYNAMICPROGRAMVIEW, then the utility defaults to CREATENO. For all programviews in the input, the utility will override the DFSDFxxx Proclib specifications of AUTOIMPORT, AUTOCREATE, and DDL section’s CREPGM.

If you run the utility in a DL/I batch region, programview will automatically be activated for the IMS Directory, but will not be defined to the IMS. The CREATEYES|CREATENO option will be rejected if executed in a DL/I batch region. In a DL/I batch region, only CREATE/DROP PROGRAMVIEW DDLs are supported. In a DL/I batch region, extended sharing of PDSE data sets must be enabled in z/OS®®. For more information, see z/OS: Specifying Extended PDSE Sharing in a Multiple-System Environment.

ACTIVATE

Specifies that the DFS3ID00 utility will activate application and database resource definitions (PSBs and DBDs) in an offline IMSplex by activating them from the staging data set of the IMS catalog. The IMS management of ACBs must be enabled before you can use the ACTIVATE control option. If some or all IMSs in the IMSplex are up, ACTIVATE control option is rejected.

AUTOACTIVATE

Specifies that the DFS3ID00 utility will first process the DDL statements and then activate the subject application and database resource definitions (PSBs and DBDs) in an offline IMSplex environment. The IMS management of ACBs must be enabled before you can use the AUTOACTIVATE control option. If some or all IMSs in the IMSplex are up, the AUTOACTIVATE control option is rejected.

ACTIVATE with RSCLST DD card

Inline RSCLST DD specifies one or more newline separated 1 - 8 character names of database DBD or program PSB or both resources to be activated from the staging directory to the active directory. Wildcard names can be specified. When * is specified, all of the ACBs in the staging directory are activated. This is equivalent to the use of ACTIVATE with no RSCLST DD card.

For a successful ACTIVATE, all resources associated with the database DBD and program PSB resources that are specified on the RSCLST are also activated, except for GSAM. For GSAM DBDs and PSBs, only the named GSAM DBDs and PSBs are activated. For example, if a DBD is in the staging directory, any of its index databases, logically related databases (including secondary index), and PSBs that are also in the staging directory will be activated. In another example, if a PSB is in the staging directory, any of the database DBDs it references that are also in the staging directory will be activated.

Use the following wildcard character schemes is supported:
  • * Matches zero or more characters.
  • % Matches exactly one character.
The following examples illustrate possible uses of wildcard characters.
  • BE* Matches any string that begins with BE, of any length. For example, BE, BEE, or BEEBLEBROX.
  • %%S Matches any three-character string that ends with an S. For example, IMS or CQS.
  • R*S*T%R Matches any string that meets the following requirements: Begins and ends with an R Contains an S after the R The S is followed by a string that contains a T Has any number of intervening characters between the first R, the S, and the T Has exactly one character between the T and the final R For example, ROASTER, ROSTER, RESORTER, RECEPTOR, RSTZR.
  • * Matches any string.
ACTIVATE-NOCHECK with RSCLST DD card

Specifies that the DFS3ID00 utility will activate application and database resource definitions (PSBs and DBDs) in an offline IMSplex environment without pulling any relative resources from the staging directory data set which are not specified on the RSCLST DD card.