0 Bewertungen0% fanden dieses Dokument nützlich (0 Abstimmungen)
105 Ansichten132 Seiten
IMS - INFORMATION MANAGEMENT SYSTEM DEVELOPED IN 1968 BY IBM DATA LANGUAGE-I (DL / I) WAS DEVELOPERED AS INTERFACE BETWEEN APPLICATION CODE and DATA in IMS DATABASE IMS Overview IMS Database Manager 2 / 6 / 2009 3:00 PM.
IMS - INFORMATION MANAGEMENT SYSTEM DEVELOPED IN 1968 BY IBM DATA LANGUAGE-I (DL / I) WAS DEVELOPERED AS INTERFACE BETWEEN APPLICATION CODE and DATA in IMS DATABASE IMS Overview IMS Database Manager 2 / 6 / 2009 3:00 PM.
IMS - INFORMATION MANAGEMENT SYSTEM DEVELOPED IN 1968 BY IBM DATA LANGUAGE-I (DL / I) WAS DEVELOPERED AS INTERFACE BETWEEN APPLICATION CODE and DATA in IMS DATABASE IMS Overview IMS Database Manager 2 / 6 / 2009 3:00 PM.
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 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 IMS Database Manager 2/6/2009 3:00 PM 6 IMS Components PRIMARY PRODUCTS IMS/DB - DATABASE MANAGEMENT, LOGGING & RECOVERY IMS/TM - INTERACTIVE ONLINE FUNCTIONS, TRANSACTION DRIVEN
PRODUCT INSTALLATIONS DBCTL DCCTL DB/DC
IMS Overview IMS Database Manager 2/6/2009 3:00 PM 7 MVS CALL DATA APPLICATION PROGRAM DL/I LOG INPUT / OUTPUT DATA BASE DL/I ENVIRONMENT IMS Overview IMS Database Manager 2/6/2009 3:00 PM 8 IMS Batch Environment Execution via JCL. Each job in an address space. Uses DBCTL Programs address space contains a copy of DL/I modules. Programs added without having to modify the IMS system definition. IMS Overview 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 IMS Database Manager 2/6/2009 3:00 PM 10 IMS Dependent Regions DL/I Region
IMS REGIONS MPP ONLINE DL/I BATCH BMP IMS Overview IMS Database Manager 2/6/2009 3:00 PM 12 BATCH DL/I TRUE BATCH PROCESSING NO DATA COMMUNICATION SERVICES ARE USED DATABASES ACCESSED MUST BE OFFLINE
MPP (MESSAGE PROCESSING PROGRAM) TRUE ONLINE PROCESSING TRANSACTION ARE ENTERED AT TERMINAL AND STORED IN MESSAGE QUEUE DATABASES ACCESSED MUST BE ONLINE
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 IMS Database Manager 2/6/2009 3:00 PM 14 SEGMENT OCCURRNCES TWIN SEGMENTS SIBLING SEGMENTS -- Level 1 -- Level 2 B3 A2 D1 B2 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 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 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 IMS Database Manager 2/6/2009 3:00 PM 17 ROOT A SEGMENT WITHOUT PARENT PARENT A SEGMENT WITH ONE OR MORE DEPENDENT SEGMENTS DIRECTLY UNDER IT
CHILD A 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 IMS Database Manager 2/6/2009 3:00 PM 18 1 6 5 11 7 10 4 2 8 3 9 A B E C D F Continued ... IMS Overview Segment Sequencing Numbering From Top to Bottom Front to Back Left to Right IMS Database Manager 2/6/2009 3:00 PM 19 2 4 1 3 5 7 6 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? EXERCISE IMS Overview IMS Database Manager 2/6/2009 3:00 PM 20 DATABASE RECORD
ONE OCCURRENCE OF A ROOT SEGMENT ALONG WITH ALL ITS DEPENDENT SEGMENTS IMS Overview IMS Database Manager 2/6/2009 3:00 PM 21 HOW MANY DATABASE RECORDS? EXERCISE IMS Overview IMS Database Manager 2/6/2009 3:00 PM 22 IMS DATABASE LIMITATIONS
IMS SUPPORTS 15 LEVELS 255 SEGMENTS 1000 FIELDS
NO LIMITATION ON NUMBER OF SEGMENT OCCURRENCES. IMS Overview 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 ENVIRONMENT App Prog DL/I DC Terminal Database DB PCB interface I/O PCB interface IMS Overview 2/6/2009 03:00 PM 24 DL/I Control Blocks IMS Database Manager 2/6/2009 3:00 PM 25 DATABASE DESCRIPTION (DBD) DEFINES THE LAYOUT OF THE DATABASE DATABASE ADMINISTRATOR DEFINES LAYOUT USING DBDGEN MACRO
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 IMS Database Manager 2/6/2009 3:00 PM 26 STATEMENTS IN DBD MACRO DATA BASE DESCRIPTION (DBD) STATEMENT DESCRIPTION DBD 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 POSITION IDENTIFIES A FIELD AS KEY OR SEARCH FIELD DL/I Control Blocks IMS Database Manager 2/6/2009 3:00 PM 27 SAMPLE DBDGEN
PRINT NOGEN DBD NAME=VENDOR,ACCESS=HDAM DATASET DD1=VEND,DEVICE=3380 SEGM NAME=VENSEG,PARENT=0,BYTES=100 FIELD NAME=(VENCODE,SEQ,U),BYTES=10,START=1,TYPE=C SEGM NAME=ITEMSEG,PARENT=VENSEG,BYTES=5 FIELD NAME=(ITEMCODE,SEQ,U),BYTES=5,START=1,TYPE=C SEGM NAME=LOCNSEG,PARENT=ITEMSEG,BYTES=9 FIELD NAME=(LOCNCODE,SEQ),BYTES=3,START=1,TYPE=C FIELD NAME=ORDDATE,BYTES=6,START=4,TYPE=C DBDGEN FINISH END DL/I Control Blocks IMS Database Manager 2/6/2009 3:00 PM 28 DATATYPES USED IN DBDGEN TYPE DESCRIPTION C Character (Default) COBOL PICTURE X P Packed Decimal COMP-3 Z Zoned Decimal S9 H Half Word Binary 9(4) COMP F Full Word Binary 9(8) COMP X Hexadecimal X---- DL/I Control Blocks IMS Database Manager 2/6/2009 3:00 PM 29 CAN WE DEFINE OVERLAPPING FIELDS?
DL/I Control Blocks IMS Database Manager 2/6/2009 3:00 PM 30 PROGRAM SPECIFICATION BLOCK (PSB)
MADE UP OF ONE OR MORE PROGRAM COMMUNICATION BLOCKS (PCBs) DB PCB - DEFINES PROGRAMS 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 IMS Database Manager 2/6/2009 3:00 PM 31 A B C D E DATABASE PCB 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 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 PSBGEN DL/I Control Blocks 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 IMS Database Manager 2/6/2009 3:00 PM 34 DBD1 DBD3 DBD2 PCB1 PCB2 PCB3 PCB4 APPLICATION PROGRAM CAN HAVE MULTIPLE VIEWS OF A DATABASE BY USING SEPARATE PCBS FOR A SINGLE DATABASE PSB DL/I Control Blocks 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 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 PCB PCB 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 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 2/6/2009 03:00 PM 38 IMS DB Programming IMS Database Manager 2/6/2009 3:00 PM 39 IMS Call IMS DB Programming Example :- CALL CBLTDLI USING GU VEDNOR-DB-PCB ITEM-SEG-IO-AREA VENDOR-SEG-SSA ITEM-SEG-SAA IMS Database Manager 2/6/2009 3:00 PM 40 APPLICATION 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/I Retrieve Insert Delete Replace Processing Termination Program Logic Data Area IMS Database Manager 2/6/2009 3:00 PM 41 IDENTIFICATION DIVISION
ENVIRONMENT DIVISION
DATA DIVISION FILE SECTION WORKING STORAGE SECTION LINKAGE SECTION
PROCEDURE DIVISION FUNCTION CODES
I/O AREA
SEGMENT SEARCH ARGUMENTS PCB MASKS DATA DIVISION IMS DB Programming IMS Database Manager 2/6/2009 3:00 PM 42 FUNCTION 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 ARE GU - GET UNIQUE GN - GET NEXT GNP - GET NEXT WITHIN PARENT GHU - GET HOLD UNIQUE GHN - GET HOLD NEXT GHNP - GET HOLD NEXT WITHIN PARENT DLET - DELETE REPL - REPLACE ISRT - INSERT XRST - RESTART CHKP - CHECKPOINT IMS DB Programming 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 AREA IMS DB Programming IMS Database Manager 2/6/2009 3:00 PM 44 USED IN LINKAGE SECTION
THE PCB MASK IMS DB Programming 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 MASK IMS DB Programming IMS Database Manager 2/6/2009 3:00 PM 46 PROCEDURE DIVISION. 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 DIVISION IMS DB Programming IMS Database Manager 2/6/2009 3:00 PM 47 IMS 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 IMS Database Manager 2/6/2009 3:00 PM 48 PCB 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 2/6/2009 03:00 PM 49 Segment Search Arguments 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 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 IMS Database Manager 2/6/2009 3:00 PM 52 WHAT IS THE SIGNIFICANCE OF MAX 15 SSA?
Segment Search Arguments IMS Database Manager 2/6/2009 3:00 PM 53 UNQUALIFIED SEARCHES FOR A SPECIFIC SEGMENT TYPE
QUALIFIED SEARCHES FOR A SPECIFIC SEGMENT OCCURRENCE MORE EFFICIENT THAN UNQUALIFIED SSA
TYPES OF SSAS Segment Search Arguments IMS Database Manager 2/6/2009 3:00 PM 54 UNQUALIFIED SSA Segment Search Arguments Segment Name b 8 1 IMS Database Manager 2/6/2009 3:00 PM 55 WORKING-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 9 th position - in position 10 and a blank in position 11 UNQUALIFIED SSA H I S T O R Y * H I S T O R Y - Segment Search Arguments IMS Database Manager 2/6/2009 3:00 PM 56 QUALIFIED SSA Segment Search Arguments Segment Name ( 8 1 Field Name op 8 2 Comparative Value )
n 1 Identifies a specific segment occurrence. 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 IMS Database Manager 2/6/2009 3:00 PM 58 WORKING-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. QUALIFIED SSA Segment Search Arguments 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 CODES Segment Search Arguments IMS Database Manager 2/6/2009 3:00 PM 60 COMMAND CODES Segment Search Arguments Concatenates the keyfields C Overrides the default parentage P Negates the replace function for the specified segment level following a path retrieval call N Path Call; allows retrieval or insertion of multiple segments in a hierarchic path with a single call D Retrieve the last occurrence of the segment type
L Retrieve the first occurrence of the segment type F Command Codes Description IMS Database Manager 2/6/2009 3:00 PM 61 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 SSA 01 CUSTOMER-SSA-QUAL 05 FILLER X(23) VALUE CUSTOMER(CUSTID = 12345)
01 LOANDETL-SSA-UNQUAL 05 FILLER X(11) VALUE LOANDETL*F IMS Database Manager 2/6/2009 3:00 PM 62 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
SSA 01 CUSTOMER-SSA-QUAL 05 FILLER X(23) VALUE CUSTOMER(CUSTID = 12345)
01 LOANDETL-SSA-UNQUAL 05 FILLER X(11) VALUE LOANDETL*L IMS Database Manager 2/6/2009 3:00 PM 63 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
SSA 01 CUSTOMER-SSA-UNQUAL 05 FILLER X(11) VALUE CUSTOMER*D
01 LOANDETL-SSA-UNQUAL 05 FILLER X(11) VALUE LOANDETL*L IMS Database Manager 2/6/2009 3:00 PM 64 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
SSA 01 CUSTOMER-SSA-UNQUAL 05 FILLER X(11) VALUE CUSTOMER*DN
01 LOANDETL-SSA-UNQUAL 05 FILLER X(11) VALUE LOANDETL IMS Database Manager 2/6/2009 3:00 PM 65 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
SSA 01 CUSTOMER-SSA-QUAL 05 FILLER X(23) VALUE CUSTOMER*P(CUSTID = 12345)
01 LOANDETL-SSA-UNQUAL 05 FILLER X(11) VALUE LOANDETL IMS Database Manager 2/6/2009 3:00 PM 66 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 SSA 01 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
SSA 01 ITEMS-SSA-QUAL 05 FILLER X(11) VALUE ITEMS *C(ITEMCODE =12345AB100) IMS Database Manager 2/6/2009 3:00 PM 67 BOOLEAN 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 IMS Database Manager 2/6/2009 3:00 PM 68 BOOLEAN 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 IMS Database Manager 2/6/2009 3:00 PM 69 BOOLEAN 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 2/6/2009 03:00 PM 70 DL/I Calls 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
CALL CBLTDLI USING GU , PCB-MASK, SEGMENT-IO-AREA SEGMENTA*-(AKEY=1) SEGMENTB*-(BKEY=2) SEGMENTD*-(DKEY=6)
AFTER THE CALL SEGMENTD WITH DKEY=6 WILL BE IN SEGMENT-IO-AREA 1 6 5 11 7 10 4 2 8 3 9 AKEY BKEY EKEY CKEY DKEY FKEY EXERCISE: WRITE A GU TO RETRIEVE FKEY=10 DL/I Calls 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 IMS Database Manager 2/6/2009 3:00 PM 74 DL/I Calls COMMON STATUS CODES FOR GU
SPACES - THE CALL IS SUCCESSFUL
GE - THE SEGMENT NOT FOUND IMS Database Manager 2/6/2009 3:00 PM 75 GET NEXT
1 6 5 11 7 10 4 2 8 3 9 AKEY BKEY EKEY CKEY DKEY FKEY GK GA DL/I Calls CALL CBLTDLI USING GN PCB-MASK, SEG-IO-AREA,
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 11 7 10 4 2 8 3 9 AKEY BKEY EKEY CKEY DKEY FKEY WHAT WILL BE THE RESULTS OF FOUR CONSEQUETIVE GNs AFTER EKEY=8 IS RETRIEVED? EXERCISE DL/I Calls IMS Database Manager 2/6/2009 3:00 PM 77 DL/I Calls COMMON STATUS CODES FOR GN
SPACES - THE CALL IS SUCCESSFUL
GB - END OF DATABASE 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 PARENT 1 6 5 11 7 10 4 2 8 3 9 AKEY BKEY EKEY CKEY DKEY FKEY DL/I Calls 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 IMS Database Manager 2/6/2009 3:00 PM 80 DL/I Calls COMMON STATUS CODES FOR GNP
SPACES - THE CALL IS SUCCESSFUL
GE - SEGMENT NOT FOUND / NO MORE SEGMENTS TO RETRIEVE 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 CALL 1 6 5 11 7 10 4 2 8 3 9 BKEY EKEY CKEY DKEY FKEY DL/I Calls 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) DL/I Calls 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 CALLS DL/I Calls 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 CALL WHAT WILL BE THE RESULT IF THE FIRST GHU CALL IS SEGMENTA*D(AKEY=1)? 1 6 5 11 7 10 4 2 8 3 9 BKEY EKEY CKEY DKEY AKEY FKEY DL/I Calls 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
CALL CBLTDLI USING REPL, LS-PCB-MASK, WS-IO-AREA ----- WILL RESULT IN UPDATE OF SEGMENTC 1 6 5 11 7 10 4 2 8 3 9 BKEY EKEY CKEY DKEY FKEY DL/I Calls IMS Database Manager 2/6/2009 3:00 PM 87 DL/I Calls COMMON STATUS CODES FOR REPL
SPACES - SUCCESSFUL REPLACE
DA - TRYING TO CHANGE KEY
DJ - NO PRECEDING GET HOLD CALL
RX - REPLACE RULE VIOLATION
IMS Database Manager 2/6/2009 3:00 PM 88 TWO MODES OF INSERT LOAD MODE - FOR INITIAL LOADING OF DATABASE UPDATE MODE - ADD TO EXISTING DATABASE
LOAD 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) DL/I Calls IMS Database Manager 2/6/2009 3:00 PM 89 UPDATE 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 CODES F OR L - OVERRIDES INSERT RULE D - INSERT PATH OF SEGMENTS
INSERT (ISRT) Continued ... DL/I Calls 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 11 7 10 4 2 8 3 9 BKEY EKEY CKEY DKEY FKEY DL/I Calls IMS Database Manager 2/6/2009 3:00 PM 91 DL/I Calls COMMON STATUS CODES FOR ISRT
SPACES - ISRT CALL IS SUCCESSFUL
GE - PARENT SEGMENT NOT FOUND
II - DUPLICATE RECORD IMS Database Manager 2/6/2009 3:00 PM 92 DL/I Calls 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 IMS Database Manager 2/6/2009 3:00 PM 93 DL/I Calls COMMAND CODES U & V
ABC Supplier Database B1000 A1000 ORD3 ORD2 ORD1 ORD6 ORD5 ORD4 SUPPLIER ITEMS ORDERS SSA 01 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 SSA 01 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 A1000 B1000 ORD6 ORD5 ORD4 ORD3 ORD2 ORD1 A1000 B1000 ORD6 ORD5 ORD4 ORD3 ORD2 ORD1 A1000 IMS Database Manager 2/6/2009 3:00 PM 94 DL/I Calls COMMAND CODES U & V
CALL CBLTDLI USING GN SUPPLIER-DB-PCB, ORDERS-IO-AREA SUPPLIER-UNQUAL-SSA ITEMS-UNQUAL-SSA ORDERS-UNQUAL-SSA
WITH COMMAND CODE U SSA 01 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 2/6/2009 03:00 PM 95 IMS Jobs IMS Database Manager 2/6/2009 3:00 PM 96 RUN JCL DL/I APPLICATION PROGRAM IMS DATABASE PROGRAM NAME PSB NAME C B L T D L I
D L I T C B 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 IMS Database Manager 2/6/2009 3:00 PM 97 BMP JOB
L DLET /* IMS Jobs IMS Database Manager 2/6/2009 3:00 PM 100 DFSDDLTO JOB PRINTING OPTIONS
//SYSIN DD * S 1 1 1 1 1 EMPDATA L GHU EMPLOYEE *N(EMPLKEY =KRISHNA ) PROJECT (PROJKEY =E-DART )
L DLET /* SEGMENT (1, b) PCB (1, 2) COMPARE (1, 2, b) CALL (1, 2, b) COMMENT (1, b) b do not print, 1 print always, 2 print if compare unequal IMS Jobs 2/6/2009 03:00 PM 101 Advanced Programming IMS Database Manager 2/6/2009 3:00 PM 102
ITS 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 POSITIONING IMS Database Manager 2/6/2009 3:00 PM 103 Advanced Programming MULTIPLE POSITIONING WITH MORE THAN ONE NORMAL PCBs PAY3 PAY2 PAY1 INV3 INV2 INV1 ABC SUPPLIER INVOICE PAYMENT PCB TYPE=DB,DBDNAME=SUPLRINF,KEYLEN=15,PROCOPT=G SENSEG NAME=SUPPLIER,PARENT=0 SENSEG NAME=INVOICE,PARENT=SUPPLIER SENSEG NAME=PAYMENT,PARENT=SUPPLIER
CHECK-POINT-RESTART-IO-AREA CONTAINS THE CHECKPOINT ID FOLLOWED BY SOME DATA IMS Database Manager 2/6/2009 3:00 PM 108 Advanced Programming CHECKPOINT 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 IMS Database Manager 2/6/2009 3:00 PM 109 Advanced Programming RESTART 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
IMS Database Manager 2/6/2009 3:00 PM 110 Advanced Programming CHECKPOINT RESTART PROCEDURE Issue XRST call Check if CHKP- XRST-AREA is spaces Process Records. Increment count of Records processed Is record count Greater than checkpoint Frequency? 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 IMS Database Manager 2/6/2009 3:00 PM 111 Advanced Programming SECONDARY 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
IMS Database Manager 2/6/2009 3:00 PM 112 Advanced Programming SECONDARY INDEXING IMS Database Manager 2/6/2009 3:00 PM 113 Advanced Programming SECONDARY INDEXING IMS Database Manager 2/6/2009 3:00 PM 114 Advanced Programming SECONDARY INDEXING PRINT NOGEN DBD NAME=COURSEDB,ACCESS=HIDAM DATASET DD1=COURSEDD,DEVICE=3380 SEGM NAME=COURCE,PARENT=0,BYTES=100 FIELD NAME=(COURSECD,SEQ,U),BYTES=5,START=9,TYPE=C FIELD NAME=COURSENM,BYTES=20,START=14,TYPE=C LCHILD NAME=(STUDIXSG,STUDIXDB),PTR=INDX XDFLD NAME=STUDINDX,SEGMENT=STUDENT, SRCH=(STUDNTNM) SEGM NAME=CLASS,PARENT=COURSE,BYTES=5 FIELD NAME=(CLASSCODE,SEQ,U),BYTES=10,START=1,TYPE=C SEGM NAME=INSTR,PARENT=CLASS,BYTES=100 SEGM NAME=STUDENT,PARENT=CLASS,BYTES=100 FIELD NAME=(STUDNTNO,SEQ,U),BYTES=10,START=1,TYPE=C FIELD NAME=STUDNTNM,BYTES=20,START=11,TYPE=C DBDGEN FINISH END COURSE DATABASE PRINT NOGEN DBD NAME=STUDIXDB,ACCESS=INDEX DATASET DD1=INDXDBDD,DEVICE=3380 SEGM NAME=STUDIXSG,PARENT=0,BYTES=25 LCHILD NAME=(COURSE,COURSEDB),INDEX=STUDINDX FIELD NAME=INDXSTNM,BYTES=20,START=1,TYPE=C FIELD NAME=INDXCSCD,BYTES=5,START=21,TYPE=C DBDGEN FINISH END INDEX DATABASE IMS Database Manager 2/6/2009 3:00 PM 115 Advanced Programming LOGICAL 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 IMS Database Manager 2/6/2009 3:00 PM 116 Advanced Programming LOGICAL DATABASE PRINT NOGEN DBD NAME=CRSLOGL,ACCESS=LOGICAL DATASET DD1=CRSELGDD,DEVICE=3380 SEGM NAME=COURSELG,PARENT=0,SOURCE=(COURCE,COURSEDB) SEGM NAME=PERSONS,PARENT=COURSELG, SOURCE=((INSTR,COURSEDB),(STUDENT,COURSEDB)) DBDGEN FINISH END LOGICAL DATABASE 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 TIPS IMS Database Manager 2/6/2009 3:00 PM 118 COMMON STATUS CODES STATUS CODE DESCRIPTION SPACES SUCCESSFUL CALL CALL TYPES ALL CALLS AC
CALL HAS SSA WITH A HIERARCHICAL ERROR
ALL GET CALLS ISRT 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 CALLS ISRT DA
SEQUENCE FIELD IS CHANGED
REPL
DJ
CALL IS NOT PRECEDED BY A SUCCESSFUL GET HOLD CALL DLET REPL GA
A HIGHER LEVEL SEGMENT IS RETRIEVED IN SEQUENTIAL PROCESSING GN, GNP
Advanced Programming IMS Database Manager 2/6/2009 3:00 PM 119 COMMON STATUS CODES STATUS CODE DESCRIPTION GE
SPECIFIED SEGMENT NOT FOUND
CALL TYPES ALL GET CALLS ISRT 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
DESCRIPTION ONE 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
DESCRIPTION A 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