Introduction to the IMS Option
Micro Focus Studio and Server
When technology complements business    Copyright © 1987-2025  SimoTime Technologies and Services  All Rights Reserved
  Table of Contents  v-24.01.01 - imsone01.htm 
  Introduction
  Program Overview and Logic Flow Chart
  Program Objectives
  Program Requirements
  Program Input and Output
  Execution
  WIP2
  Preparation
  Setting the Environment
  DBD Generation, Data Base Descriptor
  PSB Generation, Program Specification Block
  ZeroLoad the Data Base
  Populate the IMS Data Base
  Technical Details
  ACB, Application Control Block
  DBD, Data Base Definition (or Descriptor)
  PSB, Program Specification Block
  PCB, Program Control Block
  Validation and Diagnostic Assistance
  Validate and Diagnose using MFIMS
  Validate and Diagnose using the IMS Data Base Utility (IMSDBU)
  PCB Status Codes
  Summary
  Software Agreement and Disclaimer
  Downloads and Links
  Current Server or Internet Access
  Internet Access Required
  Glossary of Terms
  Contact or Feedback
  Company Overview
The SimoTime Home Page 

Table of Contents Previous Section Next Section Introduction

This intent of this suite of programs is to test the practicality of moving an IMS-oriented application that is currently running on a Mainframe System to a Windows System with Micro Focus Studio. The application processes a large IMS Data Base. The Data Base will need to be unloaded at the Mainframe System, transferred to the target system and re-loaded on the new Windows System with Micro Focus Studio.

Table of Contents Previous Section Next Section Program Overview and Logic Flow Chart

WIP2

Table of Contents Previous Section Next Section Program Objectives

The following shows the objectives for this suite of programs.

Item Description
1 Describe and Demonstrate the process for doing scripted DBD Generations.
2 Describe and Demonstrate the process for doing scripted PSB Generations.
3 Describe and Demonstrate the process for doing Zero Load of an IMS Data Base.
4 Describe and Demonstrate the process for populating an IMS Data Base using a COBOL program
  Objectives for this Suite of Programs

Table of Contents Previous Section Next Section Program Requirements

WIP2

Table of Contents Previous Section Next Section Program Input and Output

WIP2

Table of Contents Previous Section Next Section Execution

WIP1

Table of Contents Previous Section Next Section WIP2

WIP2

Table of Contents Previous Section Next Section Preparation

This section will describe how to generate the IMS Members and Compile the COBOL programs used in this suite of programs that will create an IMS Data Base.

Table of Contents Previous Section Next Section Setting the Environment

The IMSLIB and ACBLIB are used with IMS.

     set ES_IMSLIB=%BASEAPP%\IMSLIB
set ES_ACBLIB=%BASEAPP%\IMSLIB

Note:  the preceding variables will be set in the ENV1BASE.CMD command file.

The following shows the content of the command file (ENV1BASE.CMD) that is used as a single place to define and set the shared environment variables.

@echo OFF
rem  * *******************************************************************
rem  *               ENV1BASE.cmd - a Windows Command File               *
rem  *        This program is provided by SimoTime Technologies          *
rem  *           (C) Copyright 1987-2021 All Rights Reserved             *
rem  *             Web Site URL:   http://www.simotime.com               *
rem  *                   e-mail:   helpdesk@simotime.com                 *
rem  * *******************************************************************
rem  *
rem  * Text   - Provide a single point to set common environment variables.
rem  * Author - SimoTime Technologies
rem  * Date   - January 24, 1996
rem  *
rem  * Set the commonly used environment variables. This is used to provide
rem  * a single point for managing the commonly used environment variables.
rem  *
     set SimoLIBR=c:\SimoLIBR
     set BASELIB1=c:\SIMOSAM1\DEVL
     set BASELIB8=c:\SimoSAM8
     set BaseWIP1=c:\SimoSAM1\WIP1
     set DATAZERO=c:\SIMODATA\DEVL\DATA\ZERO
     set BASEAPP=%BaseLib1%
     set BASESYS=%BaseLib1%\SYS1
     set BASECAT=%BaseLib1%\DATA
     set UMAPALIB=%BASECAT%\ASC1
     set UMAPELIB=%BASECAT%\EBC1
     set SYSLOG=%BASESYS%\LOGS\SYSLOG_USER.DAT
     set SYSOUT=%BASEAPP%\LOGS\SYSOUT_SIMSAM01.txt
     set SLZMSG=%BASEAPP%\LOGS\SLZMSG_USER.TXT
     set PostNOTE=%BASEAPP%\LOGS\JOBLOG_SIMONOTE.TXT
     set SIMONOTE=%BASEAPP%\LOGS\JOBLOG_SIMONOTE.txt
     set USERPOST=%BASEAPP%\LOGS\ASSIGNED_USER_POST_FILE.txt
     if [%1]==[] goto NO_POST
     set SYSOUT=%BaseLib1%\LOGS\SYSOUT_%1.txt
     call SIMONOTE "+ ENV1BASE *"
     call SIMONOTE "+ ENV1BASE ********************************************************************%1"
     call SIMONOTE "+ ENV1BASE is preparing the System Environment..."
     call SIMONOTE "+ SIMOLIBR is %SIMOLIBR%"
     call SIMONOTE "+ MIFOSYS1 is %MIFOSYS1%"
     call SIMONOTE "+ BASELIB1 is %BASELIB1%"
:NO_POST
     call SIMONOTE "+ SIMONOTE Job Log File is %SIMONOTE% "
rem  *
     set MQBASE=C:\Program Files\IBM\WebSphere MQ
rem  *
rem  * Set the location for the Apache-Tomcat Server...
     set CATALINA_HOME=C:\APACHETC\apache-tomcat-7.0.52
rem     set CATALINA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_112
rem  *
rem  * Set the Environment for the Java Environment...
rem     set JAVABASE=C:\APACHETC\apache-tomcat-7.0.52
     set JAVABASE=C:\Program Files (x86)\Java\jdk1.8.0_112
     set JAVASDK="%JAVABASE%\bin"
     set JAVA_HOME=%JAVABASE%
     set JRE_HOME=%JAVABASE%
     set SIMOTCAT=%CATALINA_HOME%\webapps\simotcat
     set SIMPACKS=%CATALINA_HOME%\webapps\simotcat\WEB-INF\classes\simpacks
rem  *
rem  * Set the environment for the Micro Focus technology...
     set MIFOEDEV=C:\Program Files (x86)\Micro Focus\Enterprise Developer
     set MIFOVCBL=C:\Program Files (x86)\Micro Focus\Visual COBOL Build Tools
     set MIFOESTU=C:\Program Files (x86)\Micro Focus\Studio Enterprise Edition 6.0
     set MIFOEMFE="C:\Program Files (x86)\Micro Focus\Mainframe Express"
rem  *
rem  * Large file support, performance tuning and record locking of the File Handler
     set EXTFH=%BASESYS%\CONFIG\EXTFHBIG.CFG
rem  *
rem  * For IMS Support
     set ES_IMSLIB=%BASEAPP%\IMSLIB
     set ES_ACBLIB=%BASEAPP%\IMSLIB
rem  *
rem  * EZASOKETS Check EZASOKETS Enabled box or set ES_EZASOKET_SUPPORT=YES
     set EZACONFG=BASESYS1\CONFIG\EZACONFG.dat
rem  *
rem  * Resource Allocation and Performance for SORT and non-Relational Data
rem  set MFJSENGINE=SYNCSORT
     set SORTSCHEME=1
     set SORTSPACE=750000000
     set TMP=C:\SORTWORK
rem  *
     set ES_ALLOC_OVERRIDE=%BASESYS%\CONFIG\CATMAPA1.cfg
rem  * For CORE_ON_ERROR function, ABEND Dump
rem  *     set COBCONFIG_=%BASESYS%\CONFIG\diagnose.cfg
rem  *
rem  * Consolidated Trace Facility (CTF)
rem  *     set MFTRACE_CONFIG=%BASESYS%\CONFIG\ctf.cfg
rem  *     set MFTRACE_LOGS=c:\ctflogs
rem  *
rem  * For Job Restart, ABEND Recovery
     set MF_UCC11=Y
     set ES_JES_RESTART=Y
rem  *
rem  * Set environment for MFBSI (Micro Focus Batch Scheduling Interface)
     set ES_EMP_EXIT_1=mfbsiemx
     set MFBSI_DIR=%BASESYS%\LOGS\%JESSERVERNAME%
     set MFBSIEOP_CMD=ENABLE
     set MFBSIEOP_CSV=ENABLE
     set MFBSIEOP_HTM=ENABLE
     set MFBSIEOP_XML=ENABLE
rem  *
rem  * Set Behavior and Trace Flags for GETJOBDD
rem  *   Position=12345678/12345678
     set JDDFLAGS=nnnWnnnn/YYnnnnnn
rem  *
rem  * If not already set then set the PATH for Micro Focus Directories
     if "%SIMOPATH%" == "Y" goto JUMPPATH
     if "%MIFOSYS1%" == "EDEV" goto JUMPEDEV
     if "%MIFOSYS1%" == "VCBL" goto JUMPVCBL
     if "%MIFOSYS1%" == "ESTU" goto JUMPESTU
     if "%MIFOSYS1%" == "EMFE" goto JUMPEMFE
:JUMPEDEV
     set path=%BASESYS%\LOADLIB;%MIFOEDEV%\bin;%JAVASDK%;%BASEAPP%\JAVA;%PATH%;
     set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%;%MIFOEDEV%\CPYLIB
     set MIFOBASE=%MIFOEDEV%
     goto JUMPPATH
:JUMPVCBL
     set path=%MIFOVCBL%\bin;%MIFOVCBL%;%JAVASDK%;%BASEAPP%\JAVA;%PATH%;
     set MIFOBASE=%MIFOVCBL%
     goto JUMPPATH
:JUMPESTU
     set MIFOBASE=%MIFOESTU%\Base
     set MIFOBIN=%MIFOBASE%\bin
     set path=%BASESYS%\LOADLIB;%MIFOBASE%;%MIFOBIN%;%JAVASDK%;%BASEAPP%\JAVA;%PATH%;
     set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%;%MIFOBASE%\SOURCE
     goto JUMPPATH
:JUMPEMFE
     set MIFOBASE=%MIFOEMFE%\Base
     set MIFOBIN=%MIFOBASE%\bin
     set path=%BASESYS%\LOADLIB;%MIFOBASE%;%MIFOBIN%;%JAVASDK%;%BASEAPP%\JAVA;%PATH%;
     set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%;%MIFOBASE%\SOURCE
     goto JUMPPATH
rem  *
:JUMPPATH
     set SIMOPATH=Y
rem  *
     set MAINFRAME_FLOATING_POINT=true
     set COBIDY=%BASEAPP%\COBIDY
     set COBPATH=.;%BASEAPP%\LOADLIB;%BASEAPP%\LOADLIB\GNTS;%BASESYS%\LOADLIB;%SimoLIBR%
     set LIBPATH=.;%BASEAPP%\LOADLIB;%BASEAPP%\LOADLIB\GNTS;%BASESYS%\LOADLIB;%SimoLIBR%
     set TXDIR=%BASESYS%\LOADLIB;%MIFOBASE%
     set CobCpy=%BASEAPP%\CobCpy1;%BASEAPP%\CobCpy2;%BASEAPP%\CobCpy6;%SimoLIBR%
rem  *
     set USERCLASS=%BASELIB1%\LOADLIB
     set CLASSPATH=.
     set CLASSPATH=%CLASSPATH%;%JAVABASE%
     set CLASSPATH=%CLASSPATH%;%JAVABASE%\lib
     set CLASSPATH=%CLASSPATH%;\%USERCLASS%\simpacks
     set CLASSPATH=%CLASSPATH%;C:\APACHETC\apache-tomcat-7.0.52\webapps\simotcat\WEB-INF\classes
     set CLASSPATH=%CLASSPATH%;C:\APACHETC\apache-tomcat-7.0.52\webapps\simotcat\WEB-INF\classes\simpacks
rem  *
     if "%MIFOSYS1%" == "ESTU" set CLASSPATH=%CLASSPATH%;%MIFOBIN%
     if "%MIFOSYS1%" == "EDEV" set CLASSPATH=%CLASSPATH%;%MIFOEDEV%
     if "%MIFOSYS1%" == "VCBL" set CLASSPATH=%CLASSPATH%;%MIFOVCBL%
     if "%MIFOSYS1%" == "VCBL" set CLASSPATH=%CLASSPATH%;%MIFOVCBL%\bin\mfcobol.jar
rem  *
     set JobStatus=0000
     call SIMONOTE "+ ENV1BASE is returning to caller"


Table of Contents Previous Section Next Section DBD Generation, Data Base Descriptor

WIP2

The following Command File (DBDGENE1.cmd) is a scripted build for a DBD Generation.

@echo OFF
rem  * *******************************************************************
rem  *               DBDGENE1.CMD - a Windows Command File               *
rem  *         This program is provided by SimoTime Enterprises          *
rem  *           (C) Copyright 1987-2012 All Rights Reserved             *
rem  *             Web Site URL:   http://www.simotime.com               *
rem  *                   e-mail:   helpdesk@simotime.com                 *
rem  * *******************************************************************
rem  * This procedure calls the following Windows Command Files.
rem  * 1. Env1Base.CMD - provides a single point for setting commonly
rem  *                   used environment variables.
rem  * 2. SimoNOTE.CMD - provides a consistent process for displaying
rem  *                   messages to the screen and writing to a journal
rem  *                   or log file.
rem  * ************************************************************************
     call ..\Env1Base
     set CmdName=DBDGENE1
rem  *
     call SimoNOTE "***********************************************%CmdName%.CMD"
     call SimoNOTE "Starting JobName %CmdName%.CMD"
rem  *
rem  * Set the environment variable to use the MiFoAscIBMcomp.DIR directives file
rem  * as the default.
     set zDIRS=%BaseLib1%\DIRS\MiFoAscIBMcomp.DIR
rem  * The following two statements will set the environment variables to
rem  * a "Y" for Yes or "N" for No. A "Y" will cause the function to be
rem  * performed by the called procedure. An "N" value will not perform the
rem  * function.
     set EraseAfter=N
     set TransferGNT=N
rem  *
rem  * Read the file containing a list of program names and pass the contents
rem  * of each record to the command file that does the actual compile.
rem  * Each record in the file contains an eight character program name.
     set AOK_Count=0
     set NOK_Count=0
     set SLIB1=%BASEAPP%\IMSLIB\DBD
     set TLIB1=%BASEAPP%\HOLD\IMSA
     set MemberList=MemberList.TXT
     mfims dbdgen %SLIB1%\cusmasdb.dbd nocls map verify echo(errend,0,50)
rem  *
     call SimoNOTE "AOKcount Compile Count for AOK is %AOK_Count% "
     call SimoNOTE "NOKcount Compile Count for NOK is %NOK_Count% "
     call SimoNOTE "Finished JobName %CmdName%.CMD"
     if not "%SimoGENS%" == "BATCH" pause

Table of Contents Previous Section Next Section PSB Generation, Program Specification Block

WIP2

The following Command File (PSBGENE1.cmd) is a scripted build for a PSB Generation.

@echo OFF
rem  * *******************************************************************
rem  *               PSDGENE1.CMD - a Windows Command File               *
rem  *         This program is provided by SimoTime Enterprises          *
rem  *           (C) Copyright 1987-2012 All Rights Reserved             *
rem  *             Web Site URL:   http://www.simotime.com               *
rem  *                   e-mail:   helpdesk@simotime.com                 *
rem  * *******************************************************************
rem  * This procedure calls the following Windows Command Files.
rem  * 1. Env1Base.CMD - provides a single point for setting commonly
rem  *                   used environment variables.
rem  * 2. SimoNOTE.CMD - provides a consistent process for displaying
rem  *                   messages to the screen and writing to a journal
rem  *                   or log file.
rem  * ************************************************************************
     call ..\Env1Base
     set CmdName=PSBGENE1
rem  *
     call SimoNOTE "***********************************************%CmdName%.CMD"
     call SimoNOTE "Starting JobName %CmdName%.CMD"
rem  *
rem  * Set the environment variable to use the MiFoAscIBMcomp.DIR directives file
rem  * as the default.
     set zDIRS=%BaseLib1%\DIRS\MiFoAscIBMcomp.DIR
rem  *
rem  * Read the file containing a list of program names and pass the contents
rem  * of each record to the command file that does the actual compile.
rem  * Each record in the file contains an eight character program name.
     set SLIB1=%BASEAPP%\IMSLIB\PSB
     set TLIB1=%BASEAPP%\HOLD\IMSA
     set MemberList=MemberList.TXT
     dir /on /b %SLIB1%\*.PSB>%MemberList%
     for /F "eol=; tokens=1,2* delims=." %%i in (%MemberList%) do mfims PSBgen %SLIB1%\cusmasps.psb nocls verify echo(errend,0,50)
rem  *
     call SimoNOTE "Finished JobName %CmdName%.CMD"
     if not "%SimoGENS%" == "BATCH" pause

Table of Contents Previous Section Next Section ZeroLoad the Data Base

WIP2

The following JCL Member (IMSLODJ1.jcl) is the job that will read the VSAM Customer Master File and load the IMS Data Base.

//IMSLODJ1 JOB 'MICRO FOCUS',CLASS=A,MSGCLASS=A
//* *******************************************************************
//*
//* Text   - Load the Customer Master Data Base (DLI)
//* Author - Micro Focus
//* Date   - March 13, 2012
//*
//* This set of programs illustrate the use of a COBOL program to do
//* a load of an IMS Data Base in an Enterprise Server Environment.
//*
//* *******************************************************************
//* Stop the DB for exclusive access
//STEP01  EXEC PGM=MFDBUJCL,PARM='/STO DB CUSMASDB'
//SYSOUT  DD SYSOUT=*
//*
//* *******************************************************************
//* Execute a COBOL program to load the Data Base
//*
//STEP02   EXEC PGM=DFSRRC00,
//             PARM=(DLI,IMSLODC1,CUSMASPS,,0000,,0,,,,T,MFIMSA,,N)
//STEPLIB   DD DSN=PGMLIB,DISP=SHR
//          DD DSN=IMS.EXITLIB,DISP=SHR
//          DD DSN=IMS.LOADLIB,DISP=SHR
//          DD DSN=IMS.RESLIB,DISP=SHR
//DFSRESLB  DD DSN=IMS.RESLIB,DISP=SHR
//DFSVSAMP  DD DSN=IMS.CNTLLIB(DFSVSAM),DISP=SHR
//IEFRDER   DD DUMMY,DCB=(DSORG=PS,RECFM=VB,LRECL=8188,BLKSIZE=8192)
//SYSUDUMP  DD SYSOUT=Z
//SYSPRINT  DD SYSOUT=*
//SYSOUT    DD SYSOUT=*
//*
//CUSTMAST  DD DSN=SIMOTIME.DATA.CUSTMAST,DISP=SHR
//REPTLOAD  DD SYSOUT=*
//*
//* *******************************************************************
//* Start the DB to reinstate shared access
//*
//STEP03  EXEC PGM=MFDBUJCL,PARM='/STA DB CUSMASDB'
//SYSOUT  DD SYSOUT=*
//


Table of Contents Previous Section Next Section Populate the IMS Data Base

WIP2

The following JCL Member (IMSOBFJ1.jcl) is the job that will populate the IMS Data Base with generic names and addresses.

//IMSOBFJ1 JOB SIMOTIME,ACCOUNT,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1
//* *******************************************************************
//*       This JCL Member is provided by SimoTime Technologies        *
//*           (C) Copyright 1987-2019 All Rights Reserved             *
//*             Web Site URL:   http://www.simotime.com               *
//*                   e-mail:   helpdesk@simotime.com                 *
//* *******************************************************************
//*
//* Text   -   Execute a COBOL program to populate a Customer File.
//* Author -   SimoTime Technologies
//* Date   -   January 01, 1997
//*
//* This COBOL program will read a control file and access the various
//* name files to populate or update a customer master file.
//*
//* This program uses a Sequential ADD methodology. Therefore,
//* the records being added to the file need to be in sequence
//* by the record key. Since this does an OPEN for OUTPUT it is used
//* to create a new file.
//*
//*                     ************
//*                     * IMSOBJJ1 *
//*                     ********jcl*
//*                          *
//*                          *
//*    ************     ************     ************
//*    * OBFCTL80 *--*--* IMSOBFC1 *-----* CUSMASDB *
//*    *******rseq*  *  ********cbl*     ******imsdb*
//*                  *       *
//*    ************  *       *
//*    * LASTNAME *--*       *
//*    *******rseq*  *       *
//*                  *       *
//*    ************  *       *
//*    * FNAMEF01 *--*       *
//*    *******rseq*  *       *
//*                  *       *
//*    ************  *       *
//*    * FNAMEM01 *--*       *
//*    *******rseq*  *       *
//*                  *       *
//*    ************  *       *
//*    * POSTCODE *--*       *
//*    *******rseq*  *       *
//*                  *       *
//*    ************  *       *
//*    * STREET01 *--*       *
//*    *******rseq*          *
//*                          *
//*                     ************
//*                     *   EOJ    *
//*                     ************
//*
//* *******************************************************************
//* Step 1 of 5, Delete any previously created file...
//*
//CLEANUP EXEC PGM=IEFBR14
//OBFCTL80 DD  DSN=SIMOTIME.DATA.OBFCTL80,DISP=(MOD,DELETE,DELETE),
//             STORCLAS=MFI,
//             SPACE=(TRK,5),
//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=800,DSORG=PS)
//*
//* *******************************************************************
//* Step 2 of 5, Create and populate a new QSAM file...
//*
//CNTLCRT1 EXEC PGM=IEBGENER
//SYSPRINT DD  SYSOUT=*
//SYSIN    DD  DUMMY
//* :....1....:....2....:....3....:....4....:....5....:....6....:....7. ..:....8
//SYSUT1   DD  *
* A comment is identified by an asterisk (*) in position one (1)
* ..:....1....:....2....:....3....:....4....:....5....:....6....
/CTL FLAGS=FFFF0100
/CTL RECORDS=45000
/*
//SYSUT2   DD  DSN=SIMOTIME.DATA.OBFCTL80,
//             DISP=(NEW,CATLG,DELETE),
//             STORCLAS=MFI,
//             SPACE=(TRK,5),
//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=800,DSORG=PS)
//*
//* *******************************************************************
//* Step 3 of 5, Stop the DB for exclusive access
//*
//STEP03  EXEC PGM=MFDBUJCL,PARM='/STO DB CUSMASDB'
//SYSOUT  DD SYSOUT=*
//*
//* *******************************************************************
//* Step 4 of 5, Load the IMS Data Base.
//*
//STEP04   EXEC PGM=DFSRRC00,
//             PARM=(DLI,IMSOBFC1,CUSMASPS,,0000,,0,,,,T,MFIMSA,,N)
//STEPLIB   DD DSN=PGMLIB,DISP=SHR
//          DD DSN=IMS.EXITLIB,DISP=SHR
//          DD DSN=IMS.LOADLIB,DISP=SHR
//          DD DSN=IMS.RESLIB,DISP=SHR
//DFSRESLB  DD DSN=IMS.RESLIB,DISP=SHR
//DFSVSAMP  DD DSN=IMS.CNTLLIB(DFSVSAM),DISP=SHR
//IEFRDER   DD DUMMY,DCB=(DSORG=PS,RECFM=VB,LRECL=8188,BLKSIZE=8192)
//SYSUDUMP  DD SYSOUT=Z
//SYSPRINT  DD SYSOUT=*
//OBFCTL80 DD  DISP=OLD,DSN=SIMOTIME.DATA.OBFCTL80
//FNAMEF01 DD  DISP=OLD,DSN=SIMOTIME.DATA.FNAMEF01
//FNAMEM01 DD  DISP=OLD,DSN=SIMOTIME.DATA.FNAMEM01
//LASTNAME DD  DISP=OLD,DSN=SIMOTIME.DATA.LASTNAME
//POSTCODE DD  DISP=OLD,DSN=SIMOTIME.DATA.POSTCODE
//STREET01 DD  DISP=OLD,DSN=SIMOTIME.DATA.STREET01
//SYSOUT   DD  SYSOUT=*
//*
//*
//* *******************************************************************
//* Step 5 of 5, Start the DB to reinstate shared access.
//*
//STEP05  EXEC PGM=MFDBUJCL,PARM='/STA DB CUSMASDB'
//SYSOUT  DD SYSOUT=*
//

Table of Contents Previous Section Next Section Technical Details

WIP1

Table of Contents Previous Section Next Section ACB, Application Control Block

WIP1

Table of Contents Previous Section Next Section DBD, Data Base Definition (or Descriptor)

DBD stands for Data Base Definition. The DBD is used to define segments,key fields and access methods used for an IMS Database.

The following member (CUSMASDB.dbd) is a simple DBD.

         DBD    NAME=CUSMASDB,ACCESS=(HIDAM,VSAM)
         DATASET DD1=CUSMASDB,DEVICE=3380,MODEL=1,SCAN=15,SIZE=4096
         SEGM   NAME=CUSMAS,PARENT=0,BYTES=512
         FIELD  NAME=(CUSNUM,SEQ,U),START=001,BYTES=012
         DBDGEN
         FINISH
         END

Table of Contents Previous Section Next Section PSB, Program Specification Block

The IMS Program Specification Block (PSB) defines the IMS database and application programs access authority to database. It defines the logical data structure. A PSB is made up of one or more Program Control Blocks (PCBs).

The following member (CUSMASPS.psb) is a simple PSB.

         PCB   TYPE=DB,DBDNAME=CUSMASDB,PROCOPT=A,KEYLEN=12
         SENSEG  NAME=CUSMAS,PARENT=0
         PSBGEN  LANG=COBOL,CMPAT=NO,PSBNAME=CUSMASPS
         END

Table of Contents Previous Section Next Section PCB, Program Control Block

The IMS Program Control Block (PCB) defines which database the program will access and the type of access allowed. It defines the program's view of the database.

Field/Function Structure
PCB-DBDNAME PCB-DBDNAME     PIC X(8).
The Data Base Name
PCB-SEGLVL PCB-SEGLVL      PIC X(2).
Hierarchical Level
PCB-STATUS PCB-STATUS      PIC X(2).
DLI Status Code
PCB-PROCOPT PCB-PROCOPT     PIC X(4).
Processing Options
PCB-RESERVED PCB-RESERVED    PIC S9(08) COMP.
Reserved for DL/1
PCB-SEGNAME PCB-SEGNAME     PIC X(8).
Segment Name Feedback
PCB-FDBKLEN PCB-FDBKLEN     PIC S9(08) COMP.
Feedback Key Length
PCB-SENSEGS PCB-SENSEGS     PIC S9(08) COMP.
Number of Sensitive Segments
PCB-FDBKAREA PCB-FDBKAREA    PIC X(nnn).
Key Feedback Area
  The Structure of a Process Control Block (PCB)

Table of Contents Previous Section Next Section Validation and Diagnostic Assistance

WIP1

Table of Contents Previous Section Next Section Validate and Diagnose using MFIMS

WIP2

MFIMS IMSDBU

MFIMS IMSDBU ZERO

Table of Contents Previous Section Next Section Validate and Diagnose using the IMS Data Base Utility (IMSDBU)

WIP2

WIP2

//IMSDBUJ1 JOB SIMOTIME,CLASS=1,MSGCLASS=0,NOTIFY=CSIP1
//* *******************************************************************
//*        This program is provided by SimoTime Technologies          *
//*           (C) Copyright 1987-2019 All Rights Reserved             *
//*             Web Site URL:   http://www.simotime.com               *
//*                   e-mail:   helpdesk@simotime.com                 *
//* *******************************************************************
//*
//* Text   - IMS Data Base Utility, display all DB's.
//* Author - SimoTime Technologies
//* Date   - January 24, 1996
//*
//* WIP
//*
//* This set of programs on a Windows System with Micro Focus
//* Studio, Enterprise Edition
//*
//* *******************************************************************
//* Step 1 of 1, Display a list of DB's with Status...
//*
//STEP01  EXEC PGM=MFDBUJCL,PARM='/DIS DB ALL'
//SYSOUT  DD SYSOUT=*
//

Table of Contents Previous Section Next Section PCB Status Codes

The following status codes may be returned after processing an IMS call

Status Code Description
blank The IMS call completed successfully
AA The alternate PCB contains a transaction code instead of a logical terminal as a destination
AB Segment I/O area is missing from call statement
AC An error is in an SSA for a DLET, Get, ISRT, or REPL call for one of these reasons
1. DL/I could not find a segment in the DB PCB specified in the call that has the segment name given in the SSA.
2. The segment name is in the DB PCB, but the SSA specifying that segment name is not in its correct hierarchic sequence.
3. The call specifies two SSAs for the same hierarchic level.
AD Function argument is not coded correctly
AF Size of variable length record is invalid for GSAM get access
AH invalid SSA encountered on insert call
AI error opening database, Database not available for exclusive access
AJ SSA specified for the call is invalid
AK field name specified for qualified SSA is incorrectly coded
AL batch program has issued a ROLS, ROLB, or SETS call and either the system log does not reside on disk or dynamic backout is not specified
AM function specified is not compatible with one of segment sensitivity, program type, or PCB processing
AO a physical I/O error has occurred
AP a CHKP function issued a transaction oriented BMP or a message call has more than 4 parameters
AT I/O area specified is too small
AU length for SSAs specified exceeds the maximum allowed
AY logical terminal name found in a response alternate PCB has more than one physical terminal assigned
AZ a PURG or ISRT was ignored in a conversational program
A1 logical terminal name specified incorrectly in I/O area for a CHNG call
A2 PCB specified incorrectly for a CHNG call
A3 PCB specified incorrectly for an ISRT or PURG call
A4 security violation
A5 parameter list specified incorrectly on ISRT or PURG call
A6 ISRT function message length exceeds allowable length
A7 ISRT function number of messages added exceeds maximum allowed
A8 ISRT function issued to a response alternate PCB must follow ISRT to I/O PCB and these statements are reversed
A9 ISRT function message to response alternate PCB ignored because SAMETRM=YES
BA call not completed because data is not available, operations by current call up to this error have been backed out
BB call not completed because data is not available, operations since last commit point have been backed out
CA CMD function command verb invalid
CB CMD function command from an AOI program not allowed
CC after command completed successfully, IMS returned one or more command responses
CD program does not have authority to execute a command listed in this CMD function
CE IMS rescheduled a message as a result of a call with the function GU since the last CMD call
CF message scheduled before IMS was started
CG message retrieved by GU originated from an AOI user exit
CH Automated Operator Interface (AOI) encountered a system error, current command not ignored
CI IMS rescheduled a message as a result of a call with the function GU since the last CMD call and message scheduled before IMS was started
CJ IMS rescheduled a message as a result of a call with the function GU since the last CMD call and message retrieved by GU originated from an AOI user exit
CK message scheduled before IMS was started and message retrieved by GU originated from an AOI user exit
CL IMS rescheduled a message as a result of a call with the function GU since the last CMD call, message scheduled before IMS was started, and message retrieved by GU originated from an AOI user exit
CM exception response occurred when executing a command issued via CMD call
CN value in PSBIOAZ field is incorrect
DA REPL or DLET attempted to change segment key field
DJ get hold issued after REPL or DLET
DX DLET violated delete rule for segment
FA arithmetic overflow error
FC call type and segment type are incompatible
FD resource deadlock
FE FLD function received non blank status code in FSA
FF MSDB did not contain free space when ISRT was issued
FG FLD function received non blank status code in FSA and program has used all of buffer pool
FH DEDB was not accessible when database call was issued or commit point was reached
FI I/O area address not accessible to program
FM randomizer did not return a DMAC address
FN field name of FSA undefined in DBD and FLD function issued
FP invalid hex or packed field in I/O area
FS buffer limit for region exceeded
FT number of SSAs exceeds limit of 15 for DEDB or 1 for MSDB
FV verify operation failed at commit point
FW program has used all of buffer pool
GA call completed successfully but higher level crossed for GN or GNP call
GB end of database reached on GN call
GC attempted to cross unit-of-work boundary
GD position in database lost
GE segment not found
GG processing with procopt of GON or GOT and concurrent update activity is occurring
GK call completed successfully but different segment type on same level retrieved for GN or GNP call
GL LOG request has an invalid log code
GP GNP issued but parentage was not previously established
II attempt to insert a segment with a duplicate key
IX insert rule violation
LB attempt to load a segment that already exists
LC attempt to load a segment out of sequence
LD attempt to load a segment whose parent does not exist
LE hierarchical sequence in DBD does not match that in the segment to be loaded
MR terminal name invalid on ISRT message call
NA one or more databases not available
NE during index maintenance, a segment was not found
NI unique secondary index but duplicate key encountered
NO physical I/O error
NU information only, REPL DLET or ISRT may return BA status code
QC GU message request failed
QD GN requested but no more message segments exist
QE GN not followed by GU message request
QF length of message segment is less than 5 bytes
QH terminal symbolic error encountered
RA token does not match any on an outstanding SETS call
RC ROLS call was rejected
RX replace rule violation
SA storage space for I/O area unavailable on SETS call
SB attempted to set 10 levels (only 9 are allowed)
SC SETS call was rejected TACICS command level failed because PSB is not defined
SY IMS incurred an internal error during sync point processing for an IMS Java SYNC request call.
TA This status code applies to CICS online command-level programs only, and it is returned following a scheduling request. The PSB named in the request is not in the PSB directory.
TC This status code applies to CICS online command-level programs only, and it is returned following a scheduling request. It means that you have already scheduled a PSB.
TE This status code applies to CICS online command-level programs only, and it is returned following a scheduling request. The PSB could not be scheduled because an initialization error occurred.
TG This status code applies to CICS online command-level programs only, and it is returned following a terminate request. The program issued a terminate request when there was no PSB scheduled.
TH This status code applies to CICS online command-level programs only, and it is returned following a database request or a statistics request. The program attempted to access the database before scheduling a PSB.
TI This status code applies to command-level programs only, and it is returned after an ISRT command. The ISRT command defined an invalid path to the segment. Data must be transferred for all segments between the first named segment and the last named segment.
TJ This status code applies to CICS online command-level programs only, and it can be returned after any command that a CICS online program uses. DL/I is not active.
TL This status code applies to CICS online command-level programs only, and it is returned after a scheduling request. A conflict in scheduling intent occurred. (This cannot occur if program isolation has been specified.)
TN This status code applies to command-level programs only, and it can be returned after any of the commands. An invalid SDIB exists. An initialization call was not made, or the system's DIB (not the application program's DIB) was overlaid.
TO This status code applies to command-level programs only, and it is returned following a REPL command. A path-replace error occurred. The segments to be replaced are compared to the previous Get command and one of the following situations occurred:
1. A segment is named to be replaced that was not retrieved by the Get command.
2. Data had not been transferred (no INTO option) for this segment on the Get command.
3. The attributes of the data to be transferred do not match the data in the database.
TP PROCOPT invalid
TQ I/O PCB access not allowed in a local DL/I call
TR This status code means that the CICS XDLIPRE exit routine returned X'04' in register 15 because the routine determined that the immediately preceding DL/I request should not be executed.
TY This status code applies to CICS online command-level programs only, and it is returned following a database or statistics request. The database was not open when the request was issued.
TZ This status code applies to CICS online command-level programs only, and it is returned following a database or statistics request. The length of the retrieved segment is greater than 64 KB.
UC during batch processing, a checkpoint record was written to the utility control facility (UCF) dataset
UR during batch processing, IPL is restarted under UCF
US during batch processing, an IPL is halted
UX during batch processing both checkpoint and program halted
VI during an insert or update length of variable length segment is too long
  PCB Status Codes

Table of Contents Previous Section Next Section Summary

The purpose of this document is to assist as a tutorial for new programmers or as a quick reference for experienced programmers. In the world of programming there are many ways to solve a problem. This document and the links to other documents are intended to provide a choice of alternatives.

Table of Contents Previous Section Next Section Software Agreement and Disclaimer

Permission to use, copy, modify and distribute this software, documentation or training material for any purpose requires a fee to be paid to SimoTime Technologies. Once the fee is received by SimoTime the latest version of the software, documentation or training material will be delivered and a license will be granted for use within an enterprise, provided the SimoTime copyright notice appear on all copies of the software. The SimoTime name or Logo may not be used in any advertising or publicity pertaining to the use of the software without the written permission of SimoTime Technologies.

SimoTime Technologies makes no warranty or representations about the suitability of the software, documentation or learning material for any purpose. It is provided "AS IS" without any expressed or implied warranty, including the implied warranties of merchantability, fitness for a particular purpose and non-infringement. SimoTime Technologies shall not be liable for any direct, indirect, special or consequential damages resulting from the loss of use, data or projects, whether in an action of contract or tort, arising out of or in connection with the use or performance of this software, documentation or training material.

Table of Contents Previous Section Next Section Downloads and Links

This section includes links to documents with additional information that are beyond the scope and purpose of this document. The first group of documents may be available from a local system or via an internet connection, the second group of documents will require an internet connection.

Note: A SimoTime License is required for the items to be made available on a local system or server.

Table of Contents Previous Section Next Section Current Server or Internet Access

The following links may be to the current server or to the Internet.

Note: The latest versions of the SimoTime Documents and Program Suites are available on the Internet and may be accessed using the Link to Internet icon. If a user has a SimoTime Enterprise License the Documents and Program Suites may be available on a local server and accessed using the Link to Server icon.

Link to Internet   Link to Server   Explore the COBOL Connection for more examples of COBOL programming techniques and sample code.

Link to Internet   Link to Server   Explore the JCL Connection for more examples of JCL functionality with programming techniques and sample code.

Link to Internet   Link to Server   Explore The ASCII and EBCDIC Translation Tables. These tables are provided for individuals that need to better understand the bit structures and differences of the encoding formats.

Link to Internet   Link to Server   Explore The File Status Return Codes that are used to interpret the results of accessing VSAM data sets and/or QSAM files.

Table of Contents Previous Section Next Section Internet Access Required

The following links will require an internet connect.

A good place to start is The SimoTime Home Page for access to white papers, program examples and product information. This link requires an Internet Connection

Explore The Micro Focus Web Site for more information about products (including Micro Focus COBOL) and services available from Micro Focus. This link requires an Internet Connection.

Table of Contents Previous Section Next Section Glossary of Terms

Link to Internet   Link to Server   Explore the Glossary of Terms for a list of terms and definitions used in this suite of documents and white papers.

Table of Contents Previous Section Next Section Contact or Feedback

This document was created and is maintained by SimoTime Technologies. If you have any questions, suggestions, comments or feedback please use the following contact information.

1. Send an e-mail to our helpdesk.
1.1. helpdesk@simotime.com.
2. Our telephone numbers are as follows.
2.1. 1 415 763-9430 office-helpdesk
2.2. 1 415 827-7045 mobile

 

We appreciate hearing from you.

Table of Contents Previous Section Next Section Company Overview

SimoTime Technologies was founded in 1987 and is a privately owned company. We specialize in the creation and deployment of business applications using new or existing technologies and services. We have a team of individuals that understand the broad range of technologies being used in today's environments. Our customers include small businesses using Internet technologies to corporations using very large mainframe systems.

Quite often, to reach larger markets or provide a higher level of service to existing customers it requires the newer Internet technologies to work in a complementary manner with existing corporate mainframe systems. We specialize in preparing applications and the associated data that are currently residing on a single platform to be distributed across a variety of platforms.

Preparing the application programs will require the transfer of source members that will be compiled and deployed on the target platform. The data will need to be transferred between the systems and may need to be converted and validated at various stages within the process. SimoTime has the technology, services and experience to assist in the application and data management tasks involved with doing business in a multi-system environment.

Whether you want to use the Internet to expand into new market segments or as a delivery vehicle for existing business functions simply give us a call or check the web site at http://www.simotime.com


Return-to-Top
IMS Option for Micro Focus Studio
Copyright © 1987-2025
SimoTime Technologies and Services
All Rights Reserved
When technology complements business
http://www.simotime.com