132
2/6/2009 03:00 PM 1 IMS Database Manager Sreesanth Narath CSC

IMS Database Manager

Embed Size (px)

Citation preview

Page 1: IMS Database Manager

2/6/2009 03:00 PM 1

IMS Database ManagerSreesanth Narath

CSC

Page 2: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 2

• IMS Overview

• DL/I Control Blocks

• IMS DB Programming

• Segment Search Arguments

• DL/I Calls

• IMS Jobs

• Advanced Programming

IMS Database Manager

Agenda

Page 3: IMS Database Manager

2/6/2009 03:00 PM 3

IMS Overview

Page 4: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 4

IMS - INFORMATION MANAGEMENT SYSTEM

DEVELOPED IN 1968 BY IBM

DATA LANGUAGE-I (DL/I) WAS DEVELOPED AS A INTERFACE

BETWEEN APPLICATION CODE AND DATA IN IMS DATABASE

IMS Overview

Page 5: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 5

Product Features

• A MATURE PRODUCT FROM IBM• OVER 40 YEARS IN THE MARKET• MOST CRITICAL CORPORATE DATA UNDER IMS• TWO SEPARATE STRATEGIC PRODUCTS

– IMS DB MANAGER– IMS TRANSACTION MANAGER

IMS Overview

Page 6: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 6

IMS Components

• PRIMARY PRODUCTS – IMS/DB - DATABASE MANAGEMENT, LOGGING & RECOVERY– IMS/TM - ‘INTERACTIVE’ ON–LINE FUNCTIONS, TRANSACTION DRIVEN

• PRODUCT INSTALLATIONS– DBCTL– DCCTL– DB/DC

IMS Overview

Page 7: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 7

MVSMVS

CALLCALL DATADATA

APPLICATIONAPPLICATION

PROGRAMPROGRAM

DL/IDL/ILOGLOG

INPUT /INPUT /

OUTPUTOUTPUT

DATADATA

BASEBASE

DL/I ENVIRONMENT

IMS Overview

Page 8: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 8

IMS Batch Environment

• Execution via JCL.• Each job in an address space.• Uses DBCTL• Program’s address space contains a copy of DL/I modules.• Programs added without having to modify the IMS system definition.

IMS Overview

Page 9: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 9

IMS On-line Environment

• High volume, rapid response transaction processing.

• DBDC or DCCTL.

• IMS is a started task of MVS.

• IMS system definition must include information about all programs and resources under the control of IMS.

IMS Overview

Page 10: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 10

IMS Dependent Regions

• DL/I Region

• MPP Regions

• BMP Regions

IMS Overview

Page 11: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 11

MODES OF PROCESSING

BATCH DL/I MODE

MPP MODE

BMP MODE

IMS REGIONSIMS REGIONS

MPP

ONLINE

DL/I

BATCH

BMP

IMS Overview

Page 12: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 12

BATCH DL/IBATCH DL/I

TRUE BATCH PROCESSING

NO DATA COMMUNICATION SERVICES ARE USED

DATABASES ACCESSED MUST BE OFFLINE

MPP (MESSAGE PROCESSING PROGRAM)MPP (MESSAGE PROCESSING PROGRAM)

TRUE ONLINE PROCESSING

TRANSACTION ARE ENTERED AT TERMINAL AND STORED IN MESSAGE QUEUE

DATABASES ACCESSED MUST BE ONLINE

IMS Overview

Page 13: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 13

BMP (BATCH MESSAGE PROCESSING)BMP (BATCH MESSAGE PROCESSING)

1. TRANSACTION ORIENTED:

CAN READ & WRITE TO ONLINE MESSAGE QUEUES

CAN PROCESS ONLINE FILES AND DATABASES

2. BATCH ORIENTED:

CAN ONLY READ MESSAGE QUEUES

ACCESS ONLINE DATABASES IN BATCH MODE

IMS Overview

Page 14: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 14

SEGMENT OCCURRNCES

TWIN SEGMENTS SIBLING SEGMENTS

-- Level 1

-- Level 2

B3

A2

D1B2

A1

C1

ROOT SEGMENT (PARENT)

B1

HIERARCHICAL STRUCTURE

FOLLOWS INVERTED TREE STRUCTURE

EACH BOX IN THE HIERARCHY REPRESENTS A SEGMENT

ROOT SEGMENT WILL BE ON TOP

EACH SEGMENT (EXCEPT ROOT SEGMENT) IS DIRECTLY DEPENDENT ON ONLY ONE SEGMENT

IMS Overview

Page 15: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 15

SEGMENT IS THE SMALLEST INFORMATION THAT DL/I CAN FETCH

EACH SEGMENT WILL HAVE UNIQUE 8 CHARACTER (MAX) NAME

SEGMENTS ARE MADE UP OF 1 OR MORE FIELDS

FIELD IS THE SMALLEST UNIT THAT DL/I CAN HANDLE

EACH FIELD WILL HAVE MAX 8 CHARACTER NAME

SEGMENT TYPE vs SEGMENT OCCURRENCE

SEGMENT OCCURRENCE IS A PARTICULAR INSTANCE OF A SEGMENT TYPE

IMS Overview

Page 16: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 16

TWO TYPES OF FIELDS

KEY FIELDS

SEARCH FIELDS

KEY FIELD IS USED TO SEQUENCE DATABASE AND IT CAN NOT

BE CHANGED

BOTH TYPES OF FIELDS CAN BE USED TO SEARCH DATABASE

IMS Overview

Page 17: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 17

ROOT A SEGMENT WITHOUT PARENT

PARENTA SEGMENT WITH ONE OR MORE DEPENDENT SEGMENTS

DIRECTLY UNDER IT

CHILDA SEGMENT WHICH IS DIRECTLY DEPENDENT ON ANOTHER

SEGMENT

DEPENDENT ALL SEGMENTS UNDER A PARTICULAR SEGMENT OF THE DATABASE

TWIN ALL OCCURRENCES (2 OR MORE) OF A SEGMENT TYPE UNDER A PARENT

SIBLINGS OCCURRENCES OF DIFFERENT SEGMENT TYPES UNDER A PARENT

TYPES OF SEGMENTS

IMS Overview

Page 18: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 18

1

65

117

104

2 8

3 9

A

B E

CD

F

Continued ...Continued ...

IMS Overview

Segment Sequencing

Numbering From

Top to Bottom

Front to Back

Left to Right

Page 19: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 19

2 4

1

3

5 76 8 9

1. WHICH SEGMENTS ARE DEPENDENT ON SEGMENT 4?2. WHICH SEGMENTS ARE CHILD SEGMENTS OF SEGMENT 1?3. WHICH SEGMENTS ARE DEPENDENT SEGMENTS OF SEGMENT 1?4. HOW MANY LEVELS?

EXERCISEEXERCISE

IMS Overview

Page 20: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 20

DATABASE RECORDDATABASE RECORD

ONE OCCURRENCE OF A ROOT SEGMENT ALONG WITH ALL ITS DEPENDENT SEGMENTS

IMS Overview

Page 21: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 21

HOW MANY DATABASE RECORDS?

EXERCISEEXERCISE

IMS Overview

Page 22: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 22

IMS DATABASE LIMITATIONS IMS DATABASE LIMITATIONS

IMS SUPPORTS

15 LEVELS

255 SEGMENTS

1000 FIELDS

NO LIMITATION ON NUMBER OF SEGMENT OCCURRENCES.

IMS Overview

Page 23: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 23

DL/I FORMS BRIDGE BETWEEN APPLICATION PROGRAM AND IMS DATABASE

DL/I IS DATABASE MANAGER. IT CONSISTS OF IMS PROGRAM MODULES THAT RUN EXTERNAL TO APPLICATION PROGRAM

DL/I ALLOWS SEQUENTIAL OR RANDOM PROCESSING OF DATABASE

IMS ENVIRONMENTIMS ENVIRONMENT

App Prog

DL/I DC

TerminalDatabase

DB PCBinterface

I/O PCBinterface

IMS Overview

Page 24: IMS Database Manager

2/6/2009 03:00 PM 24

DL/I Control Blocks

Page 25: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 25

DATABASE DESCRIPTION (DBD)DATABASE DESCRIPTION (DBD) DEFINES THE LAYOUT OF THE DATABASE

DATABASE ADMINISTRATOR DEFINES LAYOUT USING DBDGEN MACRO

PROGRAM SPECIFICATION BLOCK (PSB)PROGRAM SPECIFICATION BLOCK (PSB) DEFINES THE PROGRAMS VIEW OF THE DATABASE AND APPLICATION

PROGRAMS ACCESS AUTHORITY TO DATABASE

DATABASE ADMINISTRATOR / PROGRAMMER DEFINES THIS USING PSBGEN MACRO

DL/I Control Blocks

Page 26: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 26

STATEMENTS IN DBD MACROSTATEMENTS IN DBD MACRO

DATA BASE DESCRIPTION (DBD)DATA BASE DESCRIPTION (DBD)

STATEMENT DESCRIPTIONDBD SPECIFIES DATABASE NAME, ACCESS METHOD

DATASET SPECIFIES DD NAME TO BE USED IN JCL

SEGM SPECIFIES SEGMENT NAME,SEGMENT LENGTH, PARENT

FIELD SPECIFIES FIELD NAME, LENGTH, STARTING POSITIONIDENTIFIES A FIELD AS KEY OR SEARCH FIELD

DL/I Control Blocks

Page 27: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 27

SAMPLE DBDGENSAMPLE DBDGEN

PRINT NOGENDBD NAME=VENDOR,ACCESS=HDAMDATASET DD1=VEND,DEVICE=3380SEGM NAME=VENSEG,PARENT=0,BYTES=100FIELD NAME=(VENCODE,SEQ,U),BYTES=10,START=1,TYPE=CSEGM NAME=ITEMSEG,PARENT=VENSEG,BYTES=5FIELD NAME=(ITEMCODE,SEQ,U),BYTES=5,START=1,TYPE=CSEGM NAME=LOCNSEG,PARENT=ITEMSEG,BYTES=9FIELD NAME=(LOCNCODE,SEQ),BYTES=3,START=1,TYPE=CFIELD NAME=ORDDATE,BYTES=6,START=4,TYPE=CDBDGENFINISHEND

DL/I Control Blocks

Page 28: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 28

DATATYPES USED IN DBDGENDATATYPES USED IN DBDGEN

TYPE DESCRIPTIONC Character (Default)

COBOL PICTUREX

P Packed Decimal COMP-3Z Zoned Decimal S9H Half Word Binary 9(4) COMPF Full Word Binary 9(8) COMPX Hexadecimal X’----’

DL/I Control Blocks

Page 29: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 29

CAN WE DEFINE OVERLAPPING FIELDS?

DL/I Control Blocks

Page 30: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 30

PROGRAM SPECIFICATION BLOCK (PSB)PROGRAM SPECIFICATION BLOCK (PSB)

MADE UP OF ONE OR MORE PROGRAM COMMUNICATION

BLOCKS (PCBs)

DB PCB - DEFINES PROGRAM’S VIEW OF A IMS DATABASE

WHENEVER A DATABASE VIEW DEFINED BY THE PCB IS ACCESSED BY A CALL, THE RESULTS OF CALL ARE PASSED THROUGH THE PCB TO PROGRAM

PSB IS GENERATED BY PSBGEN MACRO

DL/I Control Blocks

Page 31: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 31

A

B C

D E

DATABASEDATABASE PCBPCB

PCB GIVES LOGICAL VIEW OF A DATABASE

PORTION OF DATABASE THAT THE PROGRAM PROCESSES IS CALLED APPLICATION DATA STRUCTURE

A

C

E

DL/I Control Blocks

Page 32: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 32

PRINT NOGEN

PCB TYPE=DB,DBDNAME=VENDOR,KEYLEN=15,PROCOPT=LS

SENSEG NAME=VENSEG,PARENT=0

SENSEG NAME=ITEMSEG,PARENT=VENSEG

SENFLD NAME=ITEMNO

SENFLD NAME = ITEMNAME

PSBGEN PSBNAME=KAB000B,LANG=COBOL,CMPAT=Y

END

• KEYLEN IS THE LENGTH OF CONCATENATED KEY

SAMPLE PSBGENSAMPLE PSBGEN

DL/I Control Blocks

Page 33: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 33

PROCOPTS IN PSB DEFINES SECURITY LEVEL FOR THE PROGRAM

DL/I Control Blocks

PROCOPT Description

G Get or Read

R Replace

I Insert

D Delete

A All Options (GRID)

L / LS Initial Load

K Access only Key of Segments

O Used with G to indicate Hold call is not allowed

P Path Call

Page 34: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 34

DBD1 DBD3DBD2

PCB1 PCB2

PCB3 PCB4

APPLICATION PROGRAM CAN HAVE MULTIPLE VIEWS OF A DATABASE BY USING SEPARATE PCBS FOR A SINGLE DATABASE

PSBPSB

DL/I Control Blocks

Page 35: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 35

PRINT NOGEN

PCB TYPE=DB,DBDNAME=VENDOR,KEYLEN=15

SENSEG NAME=VENSEG,PROCOPT=G

SENSEG NAME=ITEMSEG,PARENT=VENSEG,PROCOPT=R

SENSEG NAME=LOCNSEG,PARENT=ITEMSEG,PROCOPT=A

PSBGEN

END

1. LIST THE SEGMENTS THAT MAY BE UPDATED USING THIS PSB

2. LIST THE SEGMENTS THAT CANNOT BE UPDATED

3. GIVE THE VALID PROCOPT TO BE CODED FOR ADDING AND REPLACING RECORDS IN LOCATION SEGMENT

DL/I Control Blocks

Page 36: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 36

EMPDATA

WORKDATA DEPTDATA BENDATA

BASED ON THE ABOVE VIEW OF DATABASE FILL IN THE MISSING PIECES OF PCBPCB TYPE=DB,DBDNAME=EMPDB,KEYLEN=16,PROCOPT=G

SENSEG NAME=_________________,PARENT=_____________________

SENSEG NAME=_________________,PARENT=_____________________

SENSEG NAME=_________________,PARENT=_____________________

SENSEG NAME=_________________,PARENT=_____________________

PSBGEN LANG=COBOL,PSBNAME=EMPPSBY

END

DL/I Control Blocks

Page 37: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 37

DL/I Control Blocks

DBD

ACB

PSB

Access Control Block (ACB)

•Controls Access to Database

•ACBGEN builds control blocks by getting information from DBD and PSB

Page 38: IMS Database Manager

2/6/2009 03:00 PM 38

IMS DB Programming

Page 39: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 39

IMS Call IMS Call

IMS DB Programming

Example :-

CALL ‘CBLTDLI’ USING ‘GU’VEDNOR-DB-PCBITEM-SEG-IO-AREAVENDOR-SEG-SSAITEM-SEG-SAA

Page 40: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 40

APPLICATION PROGRAM COMPONENTSAPPLICATION PROGRAM COMPONENTS

IMS DB Programming

Segment To/From Database

Return Info From DL/I

I/O Area

PCB Mask

DL/I Modules DL/I

Program Entry

Calls to DL/IRetrieveInsertDeleteReplace

ProcessingTermination

Program Logic

Data Area

Page 41: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 41

IDENTIFICATION DIVISION

ENVIRONMENT DIVISION

DATA DIVISIONFILE SECTIONWORKING STORAGE SECTIONLINKAGE SECTION

PROCEDURE DIVISION

FUNCTION CODES

I/O AREA

SEGMENT SEARCH ARGUMENTS

PCB MASKS

DATA DIVISIONDATA DIVISION

IMS DB Programming

Page 42: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 42

FUNCTION CODESFUNCTION CODES

A FUNCTION CODE IS A 4 BYTE CODE TO TELL DL/I WHAT KIND OF CALL THE PROGRAM IS MAKING

SOME VALID FUNCTION CODES AREGU - GET UNIQUEGN - GET NEXTGNP - GET NEXT WITHIN PARENTGHU - GET HOLD UNIQUEGHN - GET HOLD NEXTGHNP - GET HOLD NEXT WITHIN PARENTDLET - DELETEREPL - REPLACEISRT - INSERTXRST - RESTARTCHKP - CHECKPOINT

IMS DB Programming

Page 43: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 43

A RECORD DESCRIPTION IN THE WORKING STORAGE SECTION WHICH HOLDS

DATABASE SEGMENTS DATA

IS USED BY DL/I TO PASS SEGMENTS TO THE PROGRAM

CAN BE USED BY PROGRAMMER TO ADD OR REPLACE SEGMENT DATA

MUST BE EQUAL TO OR GREATER THAN THE LENGTH OF THE LONGEST SEGMENT TO BE USED BY THE PROGRAM

IN CASES WHERE MULTIPLE SEGMENTS OF A HIERARCHY ARE UPDATED OR RETRIEVED, THE I/O AREA MUST BE LARGE ENOUGH TO HOLD THE LARGEST CONCATENATION OF THESE SEGMENTS

INPUT/OUTPUT AREAINPUT/OUTPUT AREA

IMS DB Programming

Page 44: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 44

USED IN LINKAGE SECTION

LINKAGELINKAGE SECTIONSECTION01 DB-PCB-1.

03 DBD-NAME PIC X(8).

03 SEG-LEVEL PIC X(2).

03 STATUS-CODE PIC X(2).

03 PROC-OPTIONS PIC X(4).

03 IMS-RESERVED PIC S9(5) COMP.

03 SEG-NAME PIC X(8).

03 KEY-LEN PIC S9(5) COMP.

03 NUMBER-OF-SENEGS PIC S9(5) COMP.

03 KEY-FEEDBACK PIC X(??). <= length depends on segment key

THE PCB MASKTHE PCB MASK

IMS DB Programming

Page 45: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 45

THERE SHOULD BE ATLEAST ONE PCB FOR EACH DATABASE USED

STATUS CODE OF PCB MASK EXPLAINS WHETHER A CALL IS SUCCESSFUL OR NOT

THE SEQUENCE IN WHICH PCB MASKS ARE DEFINED IN LINKAGE SECTION NEED NOT BE SAME AS THAT IN PSB

THE PCB MASKTHE PCB MASK

IMS DB Programming

Page 46: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 46

PROCEDUREPROCEDURE DIVISIONDIVISION.

ENTRY ‘DLITCBL’ USING DB-PCB-1,

DB-PCB-2, Sequence should match that of

:::::::::::: PSB Macro

::::::::::::

::::::::::::

CALL ‘CBLTDLI’ USING WS-FUNCTION-CODE,

DB-PCB-MASK,

IO-AREA,

SSA-1, SSA-2, SSA-3, …. Optional

::::::::::

::::::::::

GOBACK.

PROCEDURE DIVISIONPROCEDURE DIVISION

IMS DB Programming

Page 47: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 47

IMS ENTRY LINKAGEIMS ENTRY LINKAGE

IMS DB Programming

Transfers control from DL/I to the program.

Sets addressability to the PCBs

PCB listing in the ENTRY statement should be in the same sequence as they appear in the PSB of the program

Page 48: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 48

PCB – DATABASE RELATIONSHIPPCB – DATABASE RELATIONSHIP

IMS DB Programming

Call DL/I , ...., PCB1, ....Call DL/I , ...., PCB2, .....

Database

B

Database

A

PCB 2 PCB 1

DBDB DBDA

PSB

Program

Page 49: IMS Database Manager

2/6/2009 03:00 PM 49

Segment Search

Arguments

Page 50: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 50

STANDARD IMS CALL TO ACCESS ANY DATABASE

CALL ‘CBLTDLI’ USING FUNCTION CODE,

DB-PCB,

I-O AREA,

SSA-1,

SSA-2,

………

………

Segment Search Arguments

Page 51: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 51

THE SSA IS AN AREA IN WORKING STORAGE USED TO IDENTIFY THE

SEGMENT TO WHICH ACCESS IS REQUIRED

IT IS AN OPTIONAL DL/I CALL PARAMETER THAT QUALIFIES A CALL BY

SPECIFIYING A PARTICULAR SEGMENT TYPE OR OCCURRENCE

WHEN SPECIFIED IN A DL/I CALL

THE SSA ALWAYS FOLLOWS I/O PARAMETER

THERE MAY BE 1 TO 15 SSAs IN A CALL STATEMENT

THE SSAs MUST APPEAR IN HIERARCHICAL ORDER BY SEGMENT TYPE

THE SSA CONTAINS INFORMATION TO OBTAIN THE REQUIRED SEGMENT. THE INFORMATION COULD BY SEGMENT NAME OR SEGMENT NAME & SEGMENT KEY OR SEGMENT NAME & SEARCH FIELD

Segment Search Arguments

Page 52: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 52

WHAT IS THE SIGNIFICANCE OF MAX 15 SSA?

Segment Search Arguments

Page 53: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 53

UNQUALIFIEDUNQUALIFIED

SEARCHES FOR A SPECIFIC SEGMENT TYPE

QUALIFIEDQUALIFIED

SEARCHES FOR A SPECIFIC SEGMENT OCCURRENCE

MORE EFFICIENT THAN UNQUALIFIED SSA

TYPES OF SSASTYPES OF SSAS

Segment Search Arguments

Page 54: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 54

UNQUALIFIED SSAUNQUALIFIED SSA

Segment Search Arguments

Segment Name b

8 1

Page 55: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 55

WORKING-STORAGE-SECTIONWORKING-STORAGE-SECTION.

…………..

01 HISTORY-SSA.

05 SEGMENT-NAME PIC X(8) VALUE ‘HISTORY ‘.

05 FILLER PIC X(1) VALUE SPACE.

Blank in 9th position or ‘*’ in 9th position ‘-‘ in position 10 and a blank in position 11

UNQUALIFIED SSAUNQUALIFIED SSA

H I S T O R Y *

H I S T O R Y

-

Segment Search Arguments

Page 56: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 56

QUALIFIEDQUALIFIED SSASSA

Segment Search Arguments

Segment Name (

8 1

Field Name op

8 2

Comparative Value )

n 1

Identifies a specific segment occurrence.

Page 57: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 57

OPERATORS USED IN QUALIFIED SSA

OPERATOR SYMBOLS

Equal to ‘EQ’, ‘= ‘, ‘ =‘

Not Equal to ‘NE’, ‘¬=‘, ‘=¬’

Less than ‘LT’, ‘< ‘, ‘ <‘

Less than or Equal to ‘LE’, ‘<=‘, ‘=<‘

Greater than ‘GT’, ‘> ‘, ‘ >’

Greater than or Equal to ‘GE’, ‘>=‘, ‘=>’

Segment Search Arguments

Page 58: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 58

WORKING-STORAGE-SECTIONWORKING-STORAGE-SECTION.…………..01 SSA-EMPLOYEE. 03 SEGMENT-NAME PIC X(8) VALUE ‘EMPLOYEE’ 03 COMMAND-CODE PIC X(2) VALUE ‘*-’. 03 BEGIN-QUALIFY PIC X(1) VALUE ‘(‘. 03 KEY-NAME PIC X(8) VALUE ‘EMPKEY ‘. 03 OPERATOR PIC X(2) VALUE ‘ =‘. 03 KEY-VALUE PIC X(12) . 03 END-QUALIFY PIC X(1) VALUE ‘)‘.PROCEDURE DIVISION.…..MOVE ‘123456789000’ TO KEY-VALUE.CALL ‘CBLTDLI’ USING ‘GU’, EMP-PCB, EMPDATA-IO-AREA, SSA-EMPLOYEE.

QUALIFIEDQUALIFIED SSASSA

Segment Search Arguments

Page 59: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 59

COMMAND CODES INCREASE THE FUNCTIONALITY OF IMS CALLS

COMMAND CODES ARE DESIGNATED BY AN ASTERISK ‘*’ FOLLOWED BY CHARACTERS

NOTE: Detailed description of Command codes will be covered in Session “COMMAND CODES”

COMMAND CODESCOMMAND CODES

Segment Search Arguments

Page 60: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 60

COMMAND CODESCOMMAND CODES

Segment Search Arguments

Concatenates the keyfieldsC

Overrides the default parentageP

Negates the replace function for the specified segment level following a path retrieval callN

Path Call; allows retrieval or insertion of multiple segments in a hierarchic path with a single callD

Retrieve the last occurrence of the segment typeL

Retrieve the first occurrence of the segment typeF

Command Codes Description

Page 61: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 61

COMMAND CODE ‘F’COMMAND CODE ‘F’

Segment Search Arguments

CUSTOMER

Bank Customer Database

LOANDETL

Requirement:A batch process reduces the rate of interest of the first loan if the customer has more than 5 active loans

WITHOUT COMMAND CODE WITH COMMAND CODE

- ISSUE GN CALLS FOR ‘LOANDETL’ SEGMENT WITH QUALIFIED ‘CUSTOMER’ SSA AND UNUQALIFIED ‘LOANDETL’ SSA UNTIL END OF DATABASE OR 5 LOANS ARE FOUND

-ISSUE A SEPARATE GHU CALL TO GET THE FIRST LOAN SEGMENT

-UPDATE THE INTREST RATE AND ISSUE REPL CALL TO ‘LOANDETL’ SEGMENT

- ISSUE GHN CALLS FOR ‘LOANDETL’ SEGMENT WITH QUALIFIED ‘CUSTOMER’ SSA AND UNUQALIFIED ‘LOANDETL’ SSA UNTIL END OF DATABASE OR 5 LOANS ARE FOUND

-USE THE SAME GN CALL WITH ‘*F’ POPULATED IN THE FIELD FOR COMMAND CODE IN SSA

- UPDATE THE INTREST RATE AND ISSUE REPL CALL TO ‘LOANDETL’ SEGMENT

SSA01 CUSTOMER-SSA-QUAL 05 FILLER X(23) VALUE ‘CUSTOMER(CUSTID = 12345)

01 LOANDETL-SSA-UNQUAL 05 FILLER X(11) VALUE ‘LOANDETL*F’

Page 62: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 62

COMMAND CODE ‘L’COMMAND CODE ‘L’

Segment Search Arguments

CUSTOMER

Bank Customer Database

LOANDETL

Requirement:Get the latest Loan Details of a particular customer

WITHOUT COMMAND CODE WITH COMMAND CODE

- ISSUE GN CALLS FOR ‘LOANDETL’ SEGMENT WITH QUALIFIED ‘CUSTOMER’ SSA AND UNUQALIFIED ‘LOANDETL’ SSA UNTIL END OF DATABASE

- ISSUE JUST ONE GN CALL FOR ‘LOANDETL’ SEGMENT WITH QUALIFIED ‘CUSTOMER’ SSA AND ‘*L’ POPULATED IN THE FIELD FOR COMMAND CODE IN UNQUALIFIED ‘LOANDETL’ SSA

SSA01 CUSTOMER-SSA-QUAL 05 FILLER X(23) VALUE ‘CUSTOMER(CUSTID = 12345)

01 LOANDETL-SSA-UNQUAL 05 FILLER X(11) VALUE ‘LOANDETL*L’

Page 63: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 63

COMMAND CODE ‘D’COMMAND CODE ‘D’

Segment Search Arguments

CUSTOMER

Bank Customer Database

LOANDETL

Requirement:Get the Customer info and latest Loan Details of all Customers

WITHOUT COMMAND CODE WITH COMMAND CODE

- ISSUE A GN CALL FOR ‘CUSTOMER’ SEGMENT USING UNQUALIFIED SSA

- ISSUE GN CALLS FOR ‘LOANDETL’ SEGMENT WITH QUALIFIED ‘CUSTOMER’ SSA AND UNUQALIFIED ‘LOANDETL’ SSA UNTIL END OF DATABASE

- CONTINUE WITH STEP 1 AND STEP 2 UNTILL END OF DATABASE OCCURS IN STEP1

-ISSUE GN CALLS WITH ‘*D’ COMMAND CODE IN UNQUALIFIED ‘CUSTOMER’ SSA AND UNQUALIFIED ‘LOANDETL’ SSA ‘*L’ COMMAND CODE UNTILL END OF DATABASE

SSA01 CUSTOMER-SSA-UNQUAL 05 FILLER X(11) VALUE ‘CUSTOMER*D’

01 LOANDETL-SSA-UNQUAL 05 FILLER X(11) VALUE ‘LOANDETL*L’

Page 64: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 64

COMMAND CODE ‘N’COMMAND CODE ‘N’

Segment Search Arguments

CUSTOMER

Bank Customer Database

LOANDETL

Requirement:Reduce the interest rate if the age of the customer is more than 65

WITHOUT COMMAND CODE WITH COMMAND CODE

- ISSUE A GN CALL FOR ‘CUSTOMER’ SEGMENT USING UNQUALIFIED SSA

- IF THE AGE OF CUSTOMER IS MORE THAN 65, ISSUE A GHN CALL FOR ‘LOANDETL’ SEGMENT WITH UNUQALIFIED ‘LOANDETL’ SSA

- UPDATE THE INTEREST RATE AND ISSUE A REPLACE CALL

- ISSUE A GHN CALL WITH ‘*DN’ COMMAND CODE IN UNQUALIFIED ‘CUSTOMER’ SSA AND UNQUALIFIED ‘LOANDETL’ SSA

- IF THE AGE OF CUSTOMER AGE OF CUSTOMER IS MORE THAN 65, UPDATE THE INTEREST RATE AND ISSUE A REPLACE CALL

SSA01 CUSTOMER-SSA-UNQUAL 05 FILLER X(11) VALUE ‘CUSTOMER*DN’

01 LOANDETL-SSA-UNQUAL 05 FILLER X(11) VALUE ‘LOANDETL’

Page 65: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 65

COMMAND CODE ‘P’COMMAND CODE ‘P’

Segment Search Arguments

CUSTOMER

Bank Customer Database

LOANDETL

Requirement:Get the all the Loan Details for a particular Customer

WITHOUT COMMAND CODE WITH COMMAND CODE

- ISSUE A GU/GN CALL FOR ‘CUSTOMER’ SEGMENT USING QUALIFIED SSA

- ISSUE GNP CALLS FOR ‘LOANDETL’ SEGMENT WITH UNUQALIFIED ‘LOANDETL’ SSA UNTIL END OF DATABASE

- ISSUE A GN CALL FOR ‘LOANDETL’ SEGMENT USING QUALIFIED ‘CUSTOMER’ SSA WITH *P COMMAND CODE AND UNQUALIFIED ‘LOANDETL’ SSA

- ISSUE GNP CALLS FOR ‘LOANDETL’ SEGMENT WITH UNUQALIFIED ‘LOANDETL’ SSA UNTIL END OF DATABASE

SSA01 CUSTOMER-SSA-QUAL 05 FILLER X(23) VALUE ‘CUSTOMER*P(CUSTID = 12345)

01 LOANDETL-SSA-UNQUAL 05 FILLER X(11) VALUE ‘LOANDETL

Page 66: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 66

COMMAND CODE ‘C’COMMAND CODE ‘C’

Segment Search Arguments

SUPPLIER

Supplier Database

ITEMS

Requirement:Get the Item Price details for Item Code = ‘AB100’ for Supplier Code = ‘12345’

WITHOUT COMMAND CODE WITH COMMAND CODE

- ISSUE A GU CALL FOR ‘ITEM’ SEGMENT USING QUALIFIED ’SUPPLIER’ SEGMENT SSA AND QUALIFIED ‘ITEMS’ SEGMENT SSA

SSA01 SUPPLIER-SSA-QUAL 05 FILLER X(11) VALUE ‘SUPPLIER(SUPLRID = 12345)

01 ITEMS-SSA-QUAL 05 FILLER X(11) VALUE ‘ITEMS (ITEMCODE =AB100)

- ISSUE A GU CALL FOR ‘ITEM’ SEGMENT USING QUALIFIED SSA FOR ‘ITEMS’ SEGMENT WITH ‘*C’ COMMAND CODE AND CONCATENATED KEYFIELDS

SSA01 ITEMS-SSA-QUAL 05 FILLER X(11) VALUE ‘ITEMS *C(ITEMCODE =12345AB100)

Page 67: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 67

BOOLEAN OPERATIONS IN SSABOOLEAN OPERATIONS IN SSA

Segment Search Arguments

USED TO FURTHER RESTRICT THE SEARCH

CAN BE SEARCHED WITH MORE THAN ONE CONDITION OR MORE THAN ONE FIELDS

CODED IN THE SAME QUALIFIED SSA

Page 68: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 68

BOOLEAN OPERATIONS IN SSABOOLEAN OPERATIONS IN SSA

Segment Search Arguments

01 SSA-ITEMSEG-QUAL-B. 03 SEGMENT-NAME PIC X(8) VALUE ‘ITEMSEG ’ 03 COMMAND-CODE PIC X(2) VALUE ‘*-’. 03 BEGIN-QUALIFY PIC X(1) VALUE ‘(‘. 03 KEY-NAME1 PIC X(8) VALUE ‘ITEMNO ‘. 03 KEY-OPER1 PIC X(2) VALUE ‘ >‘. 03 KEY-VALUE1 PIC X(5). 03 BOOLEAN-FILLER PIC X(1) VALUE ‘&’ 03 KEY-NAME2 PIC X(8) VALUE ‘ITEMNO ‘. 03 KEY-OPER2 PIC X(2) VALUE ‘ <‘. 03 KEY-VALUE2 PIC X(5). 03 END-QUALIFY PIC X(1) VALUE ‘)‘.

‘ITEMSEG *-(ITEMNO > 50000&ITEMNO < 60000)’

Example -1

Page 69: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 69

BOOLEAN OPERATIONS IN SSABOOLEAN OPERATIONS IN SSA

Segment Search Arguments

01 SSA-EMPLOYEE-QUAL-B. 03 SEGMENT-NAME PIC X(8) VALUE ‘EMPDATA ’ 03 COMMAND-CODE PIC X(2) VALUE ‘*-’. 03 BEGIN-QUALIFY PIC X(1) VALUE ‘(‘. 03 KEY-NAME1 PIC X(8) VALUE ‘EMPDEPT ‘. 03 KEY-OPER1 PIC X(2) VALUE ‘EQ‘. 03 KEY-VALUE1 PIC X(10). 03 BOOLEAN-FILLER PIC X(1) VALUE ‘&’ 03 KEY-NAME2 PIC X(8) VALUE ‘EMPSTAT ‘. 03 KEY-OPER2 PIC X(2) VALUE ‘NE‘. 03 KEY-VALUE2 PIC X(10). 03 END-QUALIFY PIC X(1) VALUE ‘)‘.

‘EMPDATA *-(EMPDEPT EQ FINANCE &EMPSTAT NE RETIRED )’

Example -2

Page 70: IMS Database Manager

2/6/2009 03:00 PM 70

DL/I Calls

Page 71: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 71

ONE OF THE FOLLOWING FUNCTIONS WILL BE USED IN A RETRIEVAL DL/I CALL

GU - GET UNIQUE

GN - GET NEXT

GNP - GET NEXT WITHIN PARENT

WHEN A RETRIEVAL IS DONE WITH AN INTENT TO UPDATE OR DELETE RECORDS, THE ABOVE FUNCTION CODES WILL BE PREFIXED WITH ‘HOLD’

GHU - GET HOLD UNIQUE

GHN - GET HOLD NEXT

GHNP - GET HOLD NEXT WITHIN PARENT

DL/I RETRIEVAL CALLSDL/I RETRIEVAL CALLS

DL/I Calls

Page 72: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 72

GET UNIQUEGET UNIQUE

CALL ‘CBLTDLI’ USING ‘GU ‘, PCB-MASK,SEGMENT-IO-AREASEGMENTA*-(AKEY=1)SEGMENTB*-(BKEY=2)SEGMENTD*-(DKEY=6)

AFTER THE CALL SEGMENTD WITH DKEY=6 WILL BE IN SEGMENT-IO-AREA

1

6

5

117

104

2 8

3 9

AKEY

BKEY

EKEY

CKEY DKEY FKEY

EXERCISEEXERCISE: WRITE A GU TO RETRIEVE FKEY=10

DL/I Calls

Page 73: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 73

WHAT WILL BE THE OUTPUT OF A GU CALL WITH NO SSA?

DL/I Calls

Page 74: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 74

DL/I Calls

COMMON STATUS CODES FOR ‘GU’COMMON STATUS CODES FOR ‘GU’

SPACES - THE CALL IS SUCCESSFUL

GE - THE SEGMENT NOT FOUND

Page 75: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 75

GET NEXTGET NEXT

1

6

5

117

104

2 8

3 9

AKEY

BKEY

EKEY

CKEYDKEY FKEY

GK

GA

DL/I Calls

CALL ‘CBLTDLI’ USING ‘GN ‘ PCB-MASK,

SEG-IO-AREA,

Page 76: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 76

CALL ‘CBLTDLI’ USING ‘GN ‘, PCB-MASK,SEG-IO-AREA,SEGMENTA*-(AKEY=1)SEGMENTE*-(EKEY=8)

AFTER THE CALL SEGMENTE WITH EKEY=8 WILL BE IN PROGRAM I/O AREA

1

6

5

117

104

2 8

3 9

AKEY

BKEY EKEY

CKEYDKEY

FKEY

WHAT WILL BE THE RESULTS OF FOUR CONSEQUETIVE GNs AFTER EKEY=8 IS RETRIEVED?

EXERCISEEXERCISE

DL/I Calls

Page 77: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 77

DL/I Calls

COMMON STATUS CODES FOR ‘GN’COMMON STATUS CODES FOR ‘GN’

SPACES - THE CALL IS SUCCESSFUL

GB - END OF DATABASE

Page 78: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 78

CALL ‘CBLTDLI’ USING ‘GU ’, LS-PCB-MASK, SEGMENT-IO-AREA,

SEGMENTA*-(AKEY=1)

SEGMENTB*-(BKEY=2)

CALL ‘CBLTDLI’ USING ‘GNP ‘, LS-PCB-MASK, SEGMENT-IO-AREA

AFTER THE CALL SEGMENTC WITH CKEY=3 WILL BE IN SEGMENT-IO-AREA

GET NEXT WITHIN PARENTGET NEXT WITHIN PARENT

1

65

117

104

2 8

3 9

AKEY

BKEY EKEY

CKEYDKEY

FKEY

DL/I Calls

Page 79: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 79

WHAT WILL BE THE OUTPUT IF GNP IS DONE 4 MORE TIMES IN

PREVIOUS EXAMPLE?

DL/I Calls

Page 80: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 80

DL/I Calls

COMMON STATUS CODES FOR ‘GNP’COMMON STATUS CODES FOR ‘GNP’

SPACES - THE CALL IS SUCCESSFUL

GE - SEGMENT NOT FOUND / NO MORE SEGMENTS TO RETRIEVE

Page 81: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 81

CALL ‘CBLTDLI’ USING ‘GN ‘, LS-PCB-MASK, WS-SEG-IO-AREA,

SEGMENTA*D(AKEY=1)

SEGMENTF*-(FKEY=10)

WHAT WILL BE THE RESULT AFTER SUCCESSFUL COMPLETION OF THE ABOVE CALL?

PATH CALLPATH CALL

1

6

5

117

104

2 8

3 9

BKEY

EKEY

CKEYDKEY

FKEY

DL/I Calls

Page 82: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 82

FUNCTIONS IDENTICAL TO GU/GN/GNP

INDICATES THE REQUESTED SEGMENT(S) MAY BE DELETED OR REPLACED FORCING IMS TO PUT A LOCK ON THESE SEGMENTS WHICH WILL BE RELEASED ONLY AFTER ANOTHER CALL BY SAME PCB

THIS ENSURES DATA INTEGRITY

GET HOLD CALLS (GHU/GHN/GHNP)GET HOLD CALLS (GHU/GHN/GHNP)

DL/I Calls

Page 83: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 83

SEGMENTS MUST HAVE BEEN RETRIEVED WITH A GET HOLD CALL (GHU, GHN, GHNP)

NO INTERVENING CALLS BETWEEN GET HOLD CALL AND REPLACE/DELETE CALLS

MULTIPLE REPLACE CALLS ALLOWED AFTER A GET HOLD CALL

DELETE/REPLACE CALLSDELETE/REPLACE CALLS

DL/I Calls

Page 84: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 84

CALL ‘CBLTDLI’ USING ‘GHU ‘, LS-PCB-MASK, SEGMENT-IO-AREA

SEGMENTA*-(AKEY=1)

SEGMENTB*-(BKEY=2).

CALL ‘CBLTDLI’ USING ‘DLET’, LS-PCB-MASK

DELETE CALLDELETE CALL

WHAT WILL BE THE RESULT IF THE FIRST GHU CALL IS SEGMENTA*D(AKEY=1)?

1

6

5

117

104

2 8

3 9

BKEY EKEY

CKEYDKEY

AKEY

FKEY

DL/I Calls

Page 85: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 85

UPDATE CONTENTS OF A SEGMENT

KEY FIELD MAY NOT BE ALTERED

SSAs ARE NOT USED NORMALLY

COMMAND CODES

D - TO REPLACE PATH OF SEGMENTS

N - TO EXCLUDE SEGMENTS FROM PATH

REPLACE (REPL)REPLACE (REPL)

DL/I Calls

Page 86: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 86

CALL ‘CBLTDLI’ USING ‘GHU ‘, LS-PCB-MASK, WS-IO-AREA,SEGMENTA*-(AKEY=1)SEGMENTB*-(BKEY=2)SEGMENTC*-(CKEY=3)

Change contents of WS-IO-AREA

CALL ‘CBLTDLI USING ‘REPL’, LS-PCB-MASK, WS-IO-AREA

----- WILL RESULT IN UPDATE OF SEGMENTC

1

6

5

117

104

2 8

3 9

BKEYEKEY

CKEYDKEY FKEY

DL/I Calls

Page 87: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 87

DL/I Calls

COMMON STATUS CODES FOR ‘REPL’COMMON STATUS CODES FOR ‘REPL’

SPACES- SUCCESSFUL REPLACE

DA - TRYING TO CHANGE KEY

DJ - NO PRECEDING GET HOLD CALL

RX - REPLACE RULE VIOLATION

Page 88: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 88

TWO MODES OF INSERTTWO MODES OF INSERT

LOAD MODE - FOR INITIAL LOADING OF DATABASE

UPDATE MODE - ADD TO EXISTING DATABASE

LOAD MODELOAD MODE:

FOR LOAD MODE PROCOPT = L or LS MUST BE SPECIFIED IN PSB

PROCOPT=L LOADS DATABASE BUT NOT NECESSARILY IN SEQUENTIAL ORDER

INSERT (ISRT)INSERT (ISRT)

DL/I Calls

Page 89: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 89

UPDATE MODEUPDATE MODE:

FOR UPDATE MODE PROCOPT=I or IS MUST BE SPECIFIED IN PSB

PROCOPT=I INSERTS SEGMENTS IN SEQ OR RANDOM ORDER

PROCOPT=IS ADDS NEW SEGMENTS ONLY IN ASCENDING ORDER

COMMAND CODESCOMMAND CODES

“F” OR “L” - OVERRIDES INSERT RULE

“D” - INSERT PATH OF SEGMENTS

INSERT (ISRT)INSERT (ISRT)

Continued ...Continued ...

DL/I Calls

Page 90: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 90

99

MOVE DATA FOR SEGMENTE INTO WS-SEGMENT-IO-AREA WITH EKEY=99

CALL ‘CBLTDLI’ USING ‘ISRT’, LS-PCB-MASK, SEGMENT-IO-AREA,

SEGMENTA*-(AKEY=1)

SEGMENTE

AFTER THE CALL SEGMENTE WITH EKEY=99 IS INSERTED

1

6

5

117

104

2 8

3 9

BKEY

EKEY

CKEYDKEY

FKEY

DL/I Calls

Page 91: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 91

DL/I Calls

COMMON STATUS CODES FOR ‘ISRT’COMMON STATUS CODES FOR ‘ISRT’

SPACES - ISRT CALL IS SUCCESSFUL

GE - PARENT SEGMENT NOT FOUND

II - DUPLICATE RECORD

Page 92: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 92

DL/I Calls

COMMAND CODES ‘U’ & ‘V’COMMAND CODES ‘U’ & ‘V’

‘U’ AND ‘V’ ARE USED TO PREVENT GN AND GNP CALLS FROM LEAVING THE CURRENT POSITIONS

WHEN USED WITH UNQUALIFIED SSAs, THOSE GIVE THE EFFECTIVENESS OF QUALIFIED SSAs

Page 93: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 93

DL/I Calls

COMMAND CODES ‘U’ & ‘V’COMMAND CODES ‘U’ & ‘V’

ABC

Supplier Database

B1000A1000

ORD3

ORD2

ORD1

ORD6

ORD5

ORD4

SUPPLIER

ITEMS

ORDERS

SSA01 SUPPLIER-UNQUAL-SSA PIC X(09) VALUE ‘SUPPLIER ‘01 ITEMS-UNQUAL-SSA PIC X(09) VALUE ‘ITEMS ‘01 ORDERS-UNQUAL-SSA PIC X(09) VALUE ‘ORDERS ‘

CALL ‘CBLTDLI’ USING ‘GN ‘ SUPPLIER-DB-PCB, ORDERS-IO-AREA SUPPLIER-UNQUAL-SSA ITEMS-UNQUAL-SSA ORDERS-UNQUAL-SSA

WITHOUT COMMAND CODE ‘U’

SSA01 SUPPLIER-UNQUAL-SSA PIC X(09) VALUE ‘SUPPLIER ‘01 ITEMS-UNQUAL-SSA PIC X(11) VALUE ‘ITEMS *U ‘01 ORDERS-UNQUAL-SSA PIC X(09) VALUE ‘ORDERS ‘

WITH COMMAND CODE ‘U’

A1000

ORD1

A1000

ORD2

ORD1

A1000

ORD3

ORD2

ORD1

A1000

ORD4

ORD3

ORD2

ORD1

A1000

ORD5

ORD4

ORD3

ORD2

ORD1

A1000

ORD6

ORD5

ORD4

ORD3

ORD2

ORD1

A1000B1000

ORD6

ORD5

ORD4

ORD3

ORD2

ORD1

A1000B1000

ORD6

ORD5

ORD4

ORD3

ORD2

ORD1

A1000

Page 94: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 94

DL/I Calls

COMMAND CODES ‘U’ & ‘V’COMMAND CODES ‘U’ & ‘V’

ABC

Supplier Database

B1000A1000

ORD3

ORD2

ORD1

ORD6

ORD5

ORD4

SUPPLIER

ITEMS

ORDERS

SSA01 SUPPLIER-UNQUAL-SSA PIC X(09) VALUE ‘SUPPLIER ‘01 ITEMS-UNQUAL-SSA PIC X(11) VALUE ‘ITEMS *U ‘01 ORDERS-UNQUAL-SSA PIC X(09) VALUE ‘ORDERS ‘

CALL ‘CBLTDLI’ USING ‘GN ‘ SUPPLIER-DB-PCB, ORDERS-IO-AREA SUPPLIER-UNQUAL-SSA ITEMS-UNQUAL-SSA ORDERS-UNQUAL-SSA

WITH COMMAND CODE ‘U’

SSA01 SUPPLIER-UNQUAL-SSA PIC X(09) VALUE ‘SUPPLIER ‘01 ITEMS-UNQUAL-SSA PIC X(11) VALUE ‘ITEMS *V ‘01 ORDERS-UNQUAL-SSA PIC X(09) VALUE ‘ORDERS ‘

WITH COMMAND CODE ‘V’

XYZ

A1000

ORD8

ORD7

Page 95: IMS Database Manager

2/6/2009 03:00 PM 95

IMS Jobs

Page 96: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 96

RUN JCL

DL/I

APPLICATIONPROGRAM

IMSDATABASE

PROGRAM NAME

PSB NAME

CB

LTD

LI

DLI

TCB

L

GOBACK

RUN JCL EXECUTES THE BATCH PROCESSOR DFSRRC00 AND PASSES THE APPLICATION PROGRAM NAME AND PSBNAME AS PARAMETERS

ENTRY DLITCBL PASSES THE PCB ADDRESS TO THE PROGRAM

CBLTDLI ACCEPTS PARAMETERS LIKE FUNCTION CODE, I/O AREA AND SSA TO DO THE NECESSARY DATABASE OPERATIONS AND RETURNS DATA AND STATUS CODES DESCRIBING THE SUCCESS OF THE CALL

GOBACK IN THE COBOL PROGRAM TAKES THE CONTROL BACKTO DL/I WHICH PERFORMS IMS FILES CLOSING AND TERMINATES THE BATCH STEP. “STOP RUN” SHOULD NEVER BE USED AS IT WILL NOT FREE RESOURCES

IMS Jobs

Page 97: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 97

BMP JOBBMP JOB

//STEP050 //STEP050 EXEC EXEC PGM=PGM=DFSRRC00DFSRRC00,REGION=1600K, ,REGION=1600K,

// // PARM=(PARM=(BMPBMP,,PROGNAMEPROGNAME,,PSBNAMEPSBNAME,,,,,,,,,,,,,,,,,,IMSIDIMSID,,) ,,)

//RESLIB //RESLIB DD DD DSN=IMS.PROD.DSN=IMS.PROD.RESLIBRESLIB,DISP=SHR ,DISP=SHR

//SYSUDUMP DD //SYSUDUMP DD SYSOUT=* SYSOUT=*

//SNAPDD DD //SNAPDD DD SYSOUT=* SYSOUT=*

//IMS //IMS DD DD DSN=IMS.DSN=IMS.DBDLIBDBDLIB,DISP=SHR ,DISP=SHR

// // DD DD DSN=IMS.DSN=IMS.PSBLIBPSBLIB,DISP=SHR ,DISP=SHR

//SYSOUT DD //SYSOUT DD SYSOUT=*,DCB=BLKSIZE=133 SYSOUT=*,DCB=BLKSIZE=133

//PRINT //PRINT DD DD SYSOUT=* SYSOUT=*

IMS Jobs

Page 98: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 98

DL/I JOBDL/I JOB

//STEP050 //STEP050 EXEC EXEC PGM=DFSRRC00,REGION=1600K, PGM=DFSRRC00,REGION=1600K,

// // PARM=(PARM=(DLIDLI,PROGNAME,PSBNAME,,,,,,,,,IMSID,,) ,PROGNAME,PSBNAME,,,,,,,,,IMSID,,)

//RESLIB //RESLIB DD DD DSN=IMS.PROD.RESLIB,DISP=SHR DSN=IMS.PROD.RESLIB,DISP=SHR

//SYSUDUMP DD //SYSUDUMP DD SYSOUT=* SYSOUT=*

//SNAPDD DD //SNAPDD DD SYSOUT=* SYSOUT=*

//IMS //IMS DD DD DSN=IMS.DBDLIB,DISP=SHR DSN=IMS.DBDLIB,DISP=SHR

// // DD DD DSN=IMS.PSBLIB,DISP=SHR DSN=IMS.PSBLIB,DISP=SHR

//SYSOUT//SYSOUT DD DD SYSOUT=*,DCB=BLKSIZE=133 SYSOUT=*,DCB=BLKSIZE=133

//PRINT //PRINT DD DD SYSOUT=* SYSOUT=*

//DDNAME1 DD//DDNAME1 DD DSN=IMS.DB1.FILENAME,DISP=SHRDSN=IMS.DB1.FILENAME,DISP=SHR

//DDNAME2 DD//DDNAME2 DD DSN=IMS.DB2.FILENAME, DISP=SHRDSN=IMS.DB2.FILENAME, DISP=SHR

//DDNAME3 DD//DDNAME3 DD DSN=IMS.DB3.FILENAME, DISP=SHRDSN=IMS.DB3.FILENAME, DISP=SHR

IMS Jobs

Page 99: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 99

DFSDDLTO JOBDFSDDLTO JOB

//STEP050 //STEP050 EXEC EXEC PGM=DFSRRC00,REGION=1600K, PGM=DFSRRC00,REGION=1600K,

// // PARM=(DL/I,PARM=(DL/I,DFSDDLTODFSDDLTO,PSBNAME,,,,,,,,,IMSID,,) ,PSBNAME,,,,,,,,,IMSID,,)

//RESLIB //RESLIB DD DD DSN=IMS.PROD.RESLIB,DISP=SHR DSN=IMS.PROD.RESLIB,DISP=SHR

//IMS //IMS DD DD DSN=IMS.DBDLIB,DISP=SHR DSN=IMS.DBDLIB,DISP=SHR

// // DD DD DSN=IMS.PSBLIB,DISP=SHR DSN=IMS.PSBLIB,DISP=SHR

//SYSOUT//SYSOUT DD DD SYSOUT=*,DCB=BLKSIZE=133 SYSOUT=*,DCB=BLKSIZE=133

//PRINT //PRINT DD DD SYSOUT=* SYSOUT=*

//EMPDD DD//EMPDD DD DSN=IMS.EMPDATA.FILE,DSN=SHRDSN=IMS.EMPDATA.FILE,DSN=SHR

//SYSIN//SYSIN DD * DD *

S 1 1 1 1 1S 1 1 1 1 1 EMPDATAEMPDATA

LL GHUGHU EMPLOYEE *DN(EMPLKEY =KRISHNA )EMPLOYEE *DN(EMPLKEY =KRISHNA )

PROJECTPROJECT (PROJKEY =E-DART )(PROJKEY =E-DART )

LL DLETDLET

/*/*

IMS Jobs

Page 100: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 100

DFSDDLTO JOBDFSDDLTO JOB

•PRINTING OPTIONSPRINTING OPTIONS

//SYSIN//SYSIN DD * DD *

S 1 1 1 1 1S 1 1 1 1 1 EMPDATAEMPDATA

LL GHUGHU EMPLOYEE *N(EMPLKEY =KRISHNA )EMPLOYEE *N(EMPLKEY =KRISHNA )

PROJECTPROJECT (PROJKEY =E-DART )(PROJKEY =E-DART )

LL DLETDLET

/*/* SEGMENT (1, b)SEGMENT (1, b)

PCBPCB (1, 2) (1, 2)

COMPARECOMPARE (1, 2, b) (1, 2, b)

CALLCALL (1, 2, b) (1, 2, b)

COMMENT (1, b)COMMENT (1, b)

b – do not print, 1 – print always, 2 – print if compare unequalb – do not print, 1 – print always, 2 – print if compare unequal

IMS Jobs

Page 101: IMS Database Manager

2/6/2009 03:00 PM 101

Advanced Programmi

ng

Page 102: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 102

IT’S A TECHNIQUE OF SETTING DIFFERENT POINTERS TO THE SAME DATABASE

IT CAN BE DONE WITH EITHER MORE THAN ONE NORMAL PCBs OR A SINGLE ‘MULTIPLE POSITIONABLE’ PCB

Advanced Programming

MULTIPLE POSITIONINGMULTIPLE POSITIONING

Page 103: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 103

Advanced Programming

MULTIPLE POSITIONING WITH MORE THAN ONE NORMAL PCBs

PAY3PAY2

PAY1

INV3

INV2

INV1

ABCSUPPLIER

INVOICE

PAYMENT

PCB TYPE=DB,DBDNAME=SUPLRINF,KEYLEN=15,PROCOPT=GSENSEG NAME=SUPPLIER,PARENT=0SENSEG NAME=INVOICE,PARENT=SUPPLIERSENSEG NAME=PAYMENT,PARENT=SUPPLIER

PCB TYPE=DB,DBDNAME=SUPLRINF,KEYLEN=15,PROCOPT=GSENSEG NAME=SUPPLIER,PARENT=0SENSEG NAME=INVOICE,PARENT=SUPPLIERSENSEG NAME=PAYMENT,PARENT=SUPPLIER

PSB

CALL ‘CBLTDLI’ USING ‘GN ‘ SUPLRINF-PCB-1 INVOICE-IO-AREA SUPPLIER-QUAL-SSA INVOICE-UNQUAL-SSA

CALL ‘CBLTDLI’ USING ‘GN ‘ SUPLRINF-PCB-2 PAYMENT-IO-AREA SUPPLIER-QUAL-SSA PAYMENT-UNQUAL-SSA

PROGRAM

Page 104: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 104

Advanced Programming

MULTIPLE POSITIONING WITH A SINGLE PCB

PAY3PAY2

PAY1

INV3

INV2

INV1

ABCSUPPLIER

INVOICE

PAYMENT

CALL ‘CBLTDLI’ USING ‘GN ‘ SUPLRINF-PCB-1 INVOICE-IO-AREA SUPPLIER-QUAL-SSA INVOICE-UNQUAL-SSA

CALL ‘CBLTDLI’ USING ‘GN ‘ SUPLRINF-PCB-1 PAYMENT-IO-AREA SUPPLIER-QUAL-SSA PAYMENT-UNQUAL-SSA

PROGRAM

PCB TYPE=DB,DBDNAME=SUPLRINF,KEYLEN=15, PROCOPT=G,POS=MSENSEG NAME=SUPPLIER,PARENT=0SENSEG NAME=INVOICE,PARENT=SUPPLIERSENSEG NAME=PAYMENT,PARENT=SUPPLIER

PSB

Page 105: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 105

Advanced Programming

GSAM FILESGSAM FILES

PCB TYPE=GSAM,NAME=GSAMINP,PROCOPT=GS

PCB TYPE=GSAM,NAME=GSAMOUT,PROCOPT=LS

PSB

DBD NAME=GSAMINP,ACCESS=GSAMDATASET DD1=INFILE,RECFM=FB DBDGEN FINISH END

DBD

NORMAL FLAT FILES OF FXIXED/VARIABLE BLOCK

GSAM FILES ARE NEEDED IN CASE FILE HANDLING IS PERFORMED BY IMS

IMS CAN READ SEQUENTIALLY FROM GSAM FILES (GN) AND INSERT INTO GSAM FILES (ISRT)

Page 106: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 106

IT’S A POINT IN THE EXECUTIN OF THE PROGRAM WHEN THE CHANGES MADE TO DATABASES ARE MADE PERMANENT

ONCE CHECKPOINT IS ISSUED,CHANGES ARE NOT REVERSIBLE

TWO TYPES OF CHECKPOINTS BASIC CHECKPOINT SYMBOLIC CHECKPOINT

Advanced Programming

CHECKPOINTCHECKPOINT

Page 107: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 107

Advanced Programming

CHECKPOINTCHECKPOINT

BASIC CHECKPOINT

CALL 'CBLTDLI' USING ‘CHKP’ I-O-PCB

CHECK-POINT-RESTART-IO-AREA

• CHECK-POINT-RESTART-IO-AREA CONTAINS THE CHECKPOINT ID FOLLOWED BY SOME DATA

Page 108: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 108

Advanced Programming

CHECKPOINTCHECKPOINT

SYMBOLIC CHECKPOINT

CALL 'CBLTDLI' USING ‘CHKP’ I-O-PCB CHECK-POINT-RESTART-IO-LENGTH CHECK-POINT-RESTART-IO-AREA CHECK-POINT-RESTART-SAVE-LENGTH CHECK-POINT-RESTART-SAVE-AREA.

• CHECK-POINT-RESTART-IO-AREA CONTAINS THE CHECKPOINT ID FOLLOWED BY SOME DATA• UPTO SEVEN SAVE AREAS ALONG WITH THEIR LENGTHS CAN BE SPECIFIED

Page 109: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 109

Advanced Programming

RESTARTRESTART

CALL 'CBLTDLI' USING ‘XRST’ I-O-PCB CHECK-POINT-RESTART-IO-LENGTH CHECK-POINT-RESTART-IO-AREA CHECK-POINT-RESTART-SAVE-LENGTH CHECK-POINT-RESTART-SAVE-AREA.

• CHECK-POINT-RESTART-IO-AREA CONTAINS THE CHECKPOINT ID FOLLOWED BY SOME DATA

• UPTO SEVEN SAVE AREAS ALONG WITH THEIR LENGTHS CAN BE SPECIFIED

FUNCTION ‘XRST’ IS USED TO RESTART THE PROGRAM

IMS AUTOMATICALLY REPOSITIONS GSAM FILES TO LAST CHECKPOINT STATUS

ALL OTHER DATABASES SHOULD REPOSITIONED BY THE APPLICATION PROGRAM

Page 110: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 110

Advanced Programming

CHECKPOINT – RESTART PROCEDURECHECKPOINT – RESTART PROCEDURE

Issue ‘XRST’ call

Check if CHKP-XRST-AREA is spaces

Process Records.Increment count ofRecords processed

Is record count Greater than checkpointFrequency?

Issue ‘CHKP’ call.Reset record count to zero

Reposition the Non-GSAM DBs using Fields in SAVE-AREA

Move counters & Current Key fields to SAVE-AREA

YES NORMAL RUN

RESTART RUN

NO

NO

YES

Page 111: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 111

Advanced Programming

SECONDARY INDEXINGSECONDARY INDEXING

USED TO ACCESS DATA USING A PATH OTHER THAN THE HIERARCHIAL PATH OF THE DATABASE

SECONDARY INDEXES ARE STORED IN A SEPARATE DATABASE

SECONDARY INDEX DATABASE CONTAINS A SET OF POINTERS MAPPED TO A TARGET SEGMENT AND A SOURCE SEGMENT

Page 112: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 112

Advanced Programming

SECONDARY INDEXINGSECONDARY INDEXING

Page 113: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 113

Advanced Programming

SECONDARY INDEXINGSECONDARY INDEXING

Page 114: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 114

Advanced Programming

SECONDARY INDEXINGSECONDARY INDEXING

PRINT NOGENDBD NAME=COURSEDB,ACCESS=HIDAMDATASET DD1=COURSEDD,DEVICE=3380SEGM NAME=COURCE,PARENT=0,BYTES=100FIELD NAME=(COURSECD,SEQ,U),BYTES=5,START=9,TYPE=CFIELD NAME=COURSENM,BYTES=20,START=14,TYPE=CLCHILD NAME=(STUDIXSG,STUDIXDB),PTR=INDX XDFLD NAME=STUDINDX,SEGMENT=STUDENT, SRCH=(STUDNTNM)SEGM NAME=CLASS,PARENT=COURSE,BYTES=5FIELD NAME=(CLASSCODE,SEQ,U),BYTES=10,START=1,TYPE=CSEGM NAME=INSTR,PARENT=CLASS,BYTES=100SEGM NAME=STUDENT,PARENT=CLASS,BYTES=100FIELD NAME=(STUDNTNO,SEQ,U),BYTES=10,START=1,TYPE=CFIELD NAME=STUDNTNM,BYTES=20,START=11,TYPE=CDBDGENFINISHEND

COURSE DATABASE

PRINT NOGENDBD NAME=STUDIXDB,ACCESS=INDEXDATASET DD1=INDXDBDD,DEVICE=3380SEGM NAME=STUDIXSG,PARENT=0,BYTES=25LCHILD NAME=(COURSE,COURSEDB),INDEX=STUDINDXFIELD NAME=INDXSTNM,BYTES=20,START=1,TYPE=CFIELD NAME=INDXCSCD,BYTES=5,START=21,TYPE=CDBDGENFINISHEND

INDEX DATABASE

Page 115: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 115

Advanced Programming

LOGICAL DATABASELOGICAL DATABASE

LOGICAL DATABSE PROVIDES A LOGICAL VIEW OF DATA

IT CREATES A VIEW OF DATA FROM MORE THAN ONE SEGMENTS OF SAME DATABASE OR DIFFERENT

IT CAN BE USED TO CREATE A PATH BETWEEN SEGMENTS WHICH ARE OTHERWISE UNRELATED

Page 116: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 116

Advanced Programming

LOGICAL DATABASELOGICAL DATABASE

PRINT NOGENDBD NAME=CRSLOGL,ACCESS=LOGICALDATASET DD1=CRSELGDD,DEVICE=3380SEGM NAME=COURSELG,PARENT=0,SOURCE=(COURCE,COURSEDB)SEGM NAME=PERSONS,PARENT=COURSELG,

SOURCE=((INSTR,COURSEDB),(STUDENT,COURSEDB))DBDGENFINISHEND

LOGICAL DATABASE

Page 117: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 117

USE QUALIFIED SSAS WHEREVER POSSIBLE

ASSUMED SSAS SHOULD BE AVOIDED EVEN THOUGH DL/I CONSTRUCTS MISSING SSAS

MINIMIZE THE NUMBER OF DL/I CALLS BY USING COMMAND CODES

USE SEARCH FIELDS AND BOOLEAN OPERATIONS IN SSAs INSTEAD OF USING IF STATEMENTS IN COBOL PROGRAM

TRY USING SECONDARY INDICES

Advanced Programming

PROGRAMING TIPSPROGRAMING TIPS

Page 118: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 118

COMMON STATUS CODESCOMMON STATUS CODES

STATUS CODE DESCRIPTION

SPACES SUCCESSFUL CALL

CALL TYPES

ALL CALLS

AC CALL HAS SSA WITH A HIERARCHICAL ERROR ALL GET CALLSISRT

AI ERROR WHILE OPENING DATABASE. COMMON CAUSE IS LOADING A DATABASE WHICH IS NOT EMPTY OR DO OTHER THAN LOAD PROCESSING ON EMPTY DATABASE

ALL CALLS

AJ CALL SPECIFIES AN INVALID SSA ALL CALLS

AK FIELD NAMED IN A QUALIFIED SSA IS NOT CORRECT ALL GET CALLSISRT

DA SEQUENCE FIELD IS CHANGED REPL

DJ CALL IS NOT PRECEDED BY A SUCCESSFUL GET HOLD CALL

DLETREPL

GA A HIGHER LEVEL SEGMENT IS RETRIEVED IN SEQUENTIAL PROCESSING

GN, GNP

Advanced Programming

Page 119: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 119

COMMON STATUS CODESCOMMON STATUS CODES

STATUS CODE DESCRIPTION

GE SPECIFIED SEGMENT NOT FOUND

CALL TYPES

ALL GET CALLSISRT

GK A SEGMENT OF DIFFERENT TYPE, BUT AT THE SAME LEVEL IS RETRIEVED DURING SEQUENTIAL PROCESSING

GN, GNP

GP PROPER PARENTAGE IS NOT IN EFFECT GNP

II DUPLICATE INSERT ISRT

GB END OF DATA BASE WAS REACHED DURING SEQUENTIAL RETRIEVAL

GN

VI INVALID LENGTH ERROR REPL, ISRT

Advanced Programming

Page 120: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 120

U0047U0047

DESCRIPTIONONE OF THE DBPCBS IN THE PSB FAILED TO OBTAIN THE DATABASE AUTHORIZATION THROUGH DBRC. USUALLY OCCURS WHEN DATABASE IS UP IN ONLINE OR DATABASE IS USED IN UPDATE MODE BY ANOTHER PROGRAM.

SOLUTION•BRING DOWN THE DATABASE USING /DBR DB DATABASE NAME•WAIT TILL CONTENDING JOB COMPLETES AND RESTART THE JOB

Advanced Programming

COMMON IMS ABENDSCOMMON IMS ABENDS

Page 121: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 121

U0456U0456

DESCRIPTIONA DL/I BATCH REGION, BMP PROGRAM COULD NOT BE INITIATED BECAUSE THE PSB HAS BEEN STOPPED OR LOCKED BY A COMMAND OR A PRIOR PROGRAM FAILURE

SOLUTION•ANALYZE WHY THE PSB IS LOCKED OR STOPPED. RESTART THE JOB AFTER THE PSB HAS BEEN UNLOCKED

TO UNLOCK PSB FOR A BMP PROGRAM USE /START PROGRAM psbname COMMAND

Advanced Programming

Page 122: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 122

U0476U0476

DESCRIPTIONA DL/I CALL DOES NOT INCLUDE A VALID PCB ADDRESS

PROBABLE CAUSES• PSB LANGUAGE TYPE SPECIFIED IS NOT SAME AS THAT OF APPLICATION PROGRAM• COBOL MAIN PROGRAM ENTERED AT PROCEDURE DIVISION INSTEAD OF DLITCBL BECAUSE ENTRY DLITCBL NOT INCLUDED IN LKED

Advanced Programming

Page 123: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 123

U0844U0844

DESCRIPTIONNO SPACE AVAILABLE IN THE DATABASE

SOLUTIONTHE SIZE OF THE DATABASE MUST BE INCREASED BY ALLOCATIONG A LARGER PRIMARY OR SECONDARY STORAGE.

Advanced Programming

Page 124: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 124

U3303U3303

DESCRIPTIONAPPLICATION PROGRAM TRIED TO USE A DATABASE THAT WAS NOT AVAILABLE FOR ACCESS AND/OR UPDATE.

SOLUTIONCHECK THE STATUS OF DATABASE GIVEN IN DFS3303I MESSAGE USING/DISPLAY DB database nameIF DATABASE IS DOWN START THE DATABASE USING THE COMMAND/START DB database name

Advanced Programming

Page 125: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 125

/DIS A/DIS A

IMS COMMANDSIMS COMMANDS

Advanced Programming

Page 126: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 126

/DIS Q/DIS Q

Advanced Programming

IMS COMMANDSIMS COMMANDS

Page 127: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 127

/DIS TRAN transaction name/DIS TRAN transaction name

Advanced Programming

IMS COMMANDSIMS COMMANDS

Page 128: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 128

/DIS STATUS TRAN/DIS STATUS TRAN

Advanced Programming

IMS COMMANDSIMS COMMANDS

Page 129: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 129

/DIS PGM psb name/DIS PGM psb name

Advanced Programming

IMS COMMANDSIMS COMMANDS

Page 130: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 130

/DIS DB database name/DIS DB database name

Advanced Programming

IMS COMMANDSIMS COMMANDS

Page 131: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 131

/START /START • /START PGM /START PGM

• /START TRAN/START TRAN

• /START DB/START DB

• /START REGID/START REGID

/STOP/STOP• /STOP PGM /STOP PGM

• /STOP TRAN/STOP TRAN

• /STOP DB/STOP DB

• /STOP REGID/STOP REGID

Advanced Programming

IMS COMMANDSIMS COMMANDS

Page 132: IMS Database Manager

IMS Database Manager 2/6/2009 3:00 PM 132